Reboot when Data port connected to RX and TX of microcontroller

I used to be able to connect the RX and TX of the RTK Facet Data port to a Feather M4 microcontroller. Now, after buying new facets and connecting the Li-polys together, I get unexpected behaviour when connecting the RX and TX pins.

I have the RTK Facet and the Feather M4 connected to the same Li-poly.

When the battery is plugged in, the Sparkfun logo will appear on the screen, dim out, reappear, and the system will start up in Rover mode. When I press and hold the power setup button, “Shutting Down…” will appear on the screen, dim out, and then the system will restart in Rover mode. This only occurs when the RX and TX pins are connected; when disconnected, the system behaves like usual, even when the batteries are still connected together. The only way to shut off the whole system now is to unplug the battery.

The RTK Facet will not turn on with the RX and TX connected to the Feather M4, and the Li-poly is only connected to the RTK Facet.

Is this expected behaviour, or am I missing something super simple? Why can’t the RTK Facet function with the RX and TX pins connected to the Feather? Why does the RTK Facet go through this weird rebooting behaviour when the batteries are connected together?

Thanks in advance,

How is the external battery connected to the Facet? This is not an application we ever really envisioned so it has me worried. Be careful not to back feed power into any of the connectors.

The DATA port can be used to provide power to your Feather. Please see docs here: https://docs.sparkfun.com/SparkFun_RTK_ … onnection/

We are using the li-poly battery that came with the Facet and using a Y to make two JST connections instead of one. We are using the regular battery connector, and we can’t use the Data port for power because we can’t power the Feather m4 using a 5V pin.

However, after doing more testing today, the issue persists regardless of where the power comes from. We plugged our microcontroller into our computer, so it is now on a separate power supply than the Facet.

When the RX and TX pins are connected, but gnd is not, the Facet will not turn on. The Facet will turn on the instant we link the gnd pin. It will enter the weird startup process I mentioned above (the Sparkfun logo will appear on the screen, dim out, reappear, and startup) and then won’t shut down and will continuously restart.

This didn’t happen before with an older facet (one year ago ish) running older firmware.

Hi,

When the Facet starts up after a power-on, it checks to see if the Power/Setup button is being pressed. If it isn’t, it assumes the user touched the button by accident and it goes back to sleep. The same thing happens after a firmware update or a reset via USB. But, yes, IIRC the older firmware did not do that. We changed it, I think to prevent accidental power-on.

There is something very weird about your setup. Maybe you are glitching the power? I think you are causing the Facet to reset and it then goes back to sleep because the button is not being held.

I hope this helps,

Paul

I should still be able to turn on the Facet even when just the RX and TX pins are connected, shouldn’t I? Those pins shouldn’t have anything to do with power cycling, right?

How might we be glitching power? In our latest test, the only lines connected were gnd, RX, and TX, and I don’t know what we could be doing with those pins that would cause this weird startup and reboot behaviour.

Hi,

I suspect you are somehow back-feeding power to the ESP32 through the TX and RX pins, enough to power it up. It then checks the Setup button, sees it is not pressed and then tries to put itself back to sleep?

It’s very strange, but perhaps it is something like that?

Best wishes,

Paul

Could an incorrect Baud Rate do this?

Hi,

Baud rate should have no effect on this.

By default a Serial TX pin is high (3.3V). What I think is happening is that the Feather TX pin is sourcing enough current into the ESP32 RX pin to power up the ESP32. Maybe not completely, but partially. There are protection diodes on the I/O pins between the pin and 3.3V. If the ESP32 is powered off and you connect 3.3V to an I/O pin, current can flow through the diode to the 3.3V rail and power-up the ESP32.

I have seen this before when I had a SAMD21 connected to a Raspberry Pi. The Raspberry Pi TX pin was able to push enough current into the SAMD21 RX pin to power-up the SAMD21. Even though the SAMD voltage regulator was powered off. The solution was to disable the Raspberry Pi TX pin when it was not being used. I think you are seeing the same thing.

Best wishes,

Paul

tldr; Firmware bug. Please see issue (https://github.com/sparkfun/SparkFun_RT … issues/474). Please upgrade to firmware RC May 25th.

Sorry about that! And thanks for reporting.

I appreciate the quick fix. How long until you expect to release the new version?

Hi,

You can download the May 25th binary from this page:

https://github.com/sparkfun/SparkFun_RT … e_Binaries

I hope this fixes your issue!

Best wishes,

Paul

Unfortunately, the issues didn’t get fixed. I downloaded the binary file for May 25 successfully, and the Facet starts up with v3.4-DEV, but I get the same issues.

Please remove the external power source and power the external device from the DATA port’s 3.3V/GND pins. The RTK Facet will control the 3.3V to your board, powering down the external board when the Facet is off. This should prevent back feeding from the TX/RX lines. You may also try inline resistors, or worst case DC blocking diodes but I’m not sure what that will do to the serial signal.

Our external board is not supposed to be powered using an external power supply, and it is only supposed to take lipoly or usb-c. This setup used to work for us until we purchased new RTK Facets with more recent firmware. Are there any other modifications to the firmware that can be made to accommodate this?

Oh that’s interesting. What firmware version where you using where the Facet was working as desired?

Oh, I don’t remember, something starting with a 1.x I believe. This project was worked on in the Fall of last year by someone else, and I have just taken it up now. The facets were ordered Summer of 2022. Maybe there has been a hardware change since then.

Is there any firmware change that can be made to prevent the RX and TX lines from starting up the Facet so that the power setup button can only turn it on?