My Taranis External Module Bay Stopped Working and Fixed!

by Oscar

I had a power problem with the Taranis external module bay, it took a while, but it was fixed at last. I want to share this adventure of troubleshooting as it was quite a great learning experience. And it might actually help somebody in the future, who knows.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

I couldn’t have done this without the help from Andrey Mironov (GitHub Profile), huge thank you to the man!

Are you still wondering what to buy, X9D-Plus, QX7 or X-Lite? Here’s my 2 cents.

The Problem – No Power to External Module

External Modules stopped working in my Taranis X9D Plus radio transmitter. It wasn’t powering on anymore even when I have enabled external module in model setup. Same result on both R9M and Crossfire. These modules were tested working fine on a different radio.

The first thing I checked was the voltage to the module, it’s the 3rd pin from the top in the module bay. And I was getting 0V regardless the External Module setting.

Troubleshooting the Cause of Problem

So the first thing I did was taking the Taranis apart, and see where that external module power pin is connected to. You can see, it’s the output of two FET’s, which is controlled by a signal from a GPIO (a pin on the STM32F2 micro controller).

When the GPIO gives a low signal, the output should be 0V. When GPIO gives a high signal, the FET’s should supply a voltage to power the External module. First thought was that these transistors might have failed, but let’s look deeper.

Here is a similar schematic how this circuit works.

According to the GPIO assignment in OpenTX source code, we were able to trace down which pin it is in the MCU. PD08 is responsible for turning the external module power on and off.

So here is the STM32F2 processor in the Taranis, the brain of our Taranis, and where OpenTX runs on :)

According to the STM32F2 pinout diagram, we were able to find out where PD8 is.

So next, we checked if this GPIO pin is actually working: goes low when external module is disabled, and goes high when it’s enabled. Unfortunately, this pin is always 0V regardless the setting, and also has continuity to ground. It’s possible that the pin has an internal short to ground.

In summary, the pin that controls the external module power is dead (somehow).

Finding the Solution

Andrey suggested we should assign the external module power function to a spare pin in OpenTX code, then he could compile the custom OpenTX firmware for me.

There are quite a few spare pins we could use on the STM32F2. In the end we decided to go with PA14 because it’s right at the corner which should make soldering much easier. Initially it was used for debugging, but I don’t really use that personally so that isn’t a problem to remap it.

Only two lines need to be changed in the OpenTX code. From:

#define EXTMODULE_PWR_GPIO GPIOD #define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PD.08

To

#define EXTMODULE_PWR_GPIO GPIOA #define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_14 // PA.14, SWDP-CLCK

We spent a long time trying to find a good place to cut the copper trace from GPIO PD08. But because the trace vanishes in a via hole, and there is a screen glued to other side of the board, we didn’t have much success. In the end I just cut it right next to the MCU leg. It was quite a challenge because the traces are less than 1mm wide…

Then I scraped away the solder mask next to the cut, expose the copper trace that is connected to the FET’s, and soldered it to the new GPIO, PA14.

The traces are so thin, even a 30AWG wire looks huge LOL :D

Finally, I flashed the custom OpenTX firmware from Andrey, and voila! External module works again!

Further Reading: How to flash OpenTX firmware.

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.

16 comments

john gorman 8th September 2023 - 5:03 pm

I was getting this also and also thought my taranis x9d plus was borked, but following some multi meter checks with my X7 and an actual R9m module, I realized that the model needed to be set to something using the external module (like set external module to CRSF if flashing ELRS). Did this and rechecked wiring to the receiver and flashing worked fine. For ref, the X9MM is 3.5-10v….my x9D battery was pushin about 8.3v which I could see at the external pins once model with external RF was active.

Reply
Enrique P 20th June 2023 - 4:13 pm

Awesome troubleshooting. I know this isn’t a new article but I was gifted a Taranis X9D+ and I’m loving all your information on mods and repairs. I probably would have made it to discovering that the pin output was bad but tbh probably would have tried replacing the mosfets first. I know, troubleshooting is a deductive reasoning exercise. I definitely would not have known how to reassign the pin output. That was pretty special in my world. Thanks again for the article. I plan on upgrading my TX coax, maybe wrapping it in vinyl, adding some gold hardware to the switches. My biggest wish would be to replace the display with an OLED. I’m going to dig some and see if that would be possible or practical. Thanks for your website!

Reply
Diemontt 7th October 2022 - 9:25 pm

Hi! I have a problem with my X9D Plus 2019, the R9M external module is not recognized by the radio. Checking TX/PPM is grounded on STM 32, can someone help me by remapping STM32F407. Thank you very much

Reply
Sergey K. 31st May 2022 - 6:35 am

Hi! I had similar problem оn my Taranis QX7 – my ELRS Micro TX were not working in Module Bay – there was no power. I thought that i have broken channel PD8 on microcontroller STM32, but there was stupid reason – the GND pin in Module Bay were bad soldered. Resoldering resolved this problem. So, first of all – doble check GND pin in module bay and battery ground – it should be connected together :)

Reply
SergeyKopylov 30th May 2022 - 6:45 pm

Hi! I had similar problem jn my Taranis QX7 – my ELRS Micro TX were not working in Module Bay – there was no power. I thought that i have broken channel PD8 on microcontroller STM32, but there was stupid reason – the GND pin in Module Bay were bad soldered. Resoldering resolved this problem. So, first of all – doble check GND pin in module bay and battery ground – it should be connected together :)

Reply
Fraser 10th July 2019 - 9:06 pm

Hi Oscar,
I came across this article as i am having another issue with my module bay, albeit similar. I cannot upgrade firmware of Receivers but flashing via external module options. With external module off the voltage and ground are currently reading 6.6v, but I have seen measurements up at 7.4 (current battery reading). if I enable external module bay as XJT or R9M, I get a voltage reading of 0.6V. Does this sound correct?

I cannot firmware update receivers from my X9D+, but I do have an STK, so its never bothered me a huge deal… but I have ordered an R9 2019 module and receivers and now worried if the module will even work in my module bay. Id also really like to be able to flash receivers if wanted to, but never got it work with several receivers and SPORT on bottom pin GND on next up and voltage on next up again.
Interestingly when I have tried flashing RX with external bay in XJT/PWM I have been able to measure a temporary increase in voltage when the Flash External module option is selected for a firmware file.

Kinda head bashing stuff now. Any idea’s? I live not to far and would be great to touch base with or fly sometime. Stanmere spot is fun ;-)

Reply
Lasselars 1st July 2019 - 9:56 pm

How to enable/test/make the pin to go high?
Interesting article. I am an owner of a second hand QX7 and the previous owner said that the external bay stopped working for him. I bought it because I like to slowly move to FrSky from FlySky.
I have never, so far, been into the settings in the transmitter so I don’t know, yet, how to do correct settings so I could measure my pins.
If I like to check if my QX7 has a similar power issue how should I do settings so that power is enabled?
All help or hints are helpful.

Reply
Paul 11th April 2019 - 11:29 pm

Fantastic repair, I know how difficult it is to solder, I disconnected my ribbon cables with my battery still connected on my X9D and blew the STM32F205VET6 !
I managed to successfully replace this, but it was not an easy repair.
I have more MODs planned for my Taranis
Can you tell me if this part of the Open TX code
“#define INTMODULE_PWR_GPIO GPIOC
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_6 // PC.06”

Means PIn “87” enables power to the internal TX module?

Reply
Paul 17th April 2019 - 5:47 pm

My bad, it’s pin “62” “63” I can confirm this switches on the internal TX module.

Reply
Dekel Elzam 15th March 2019 - 9:37 pm

its happened to me today..
why that’s happened? there is any way to solve it without that solution?

Reply
Ched999uk 31st January 2019 - 4:07 pm

That took a bit of detective work. Well done.

Reply
Andrey M. 31st January 2019 - 7:24 am

Good job

Reply
Frank 31st January 2019 - 5:58 am

Why not put this pin always on High? much easier and firmware-update proof.
Yes the module is always on when you power the radio, who cares :-)

Reply
Andrey Mironov 31st January 2019 - 11:06 am

Why not solder blob the P-channel FET, shorting source and drain together?
That’s not the goal of this article

Reply
Stewart 31st January 2019 - 2:38 am

Nice fix! I always love reading these creative hacks to fix things and impressive soldering? I’m pretty sure I would of buggered it up completely. Also interesting that it is a STM32F2 chip that powers it. I’ve always wondered why we never got flight controllers based on this (or F5s or F6s for that matter) and interesting to note there is one in the Taranis

Reply
Andrey Mironov 31st January 2019 - 11:07 am

F5 and F6 do not exist. F2 is a predecessor of F4, worse in all respect even than F3

Reply