TLDR: If values on the Receiver tab in BetaFlight aren’t changing when you move the sticks on your transmitter, the UART baud rate on your RX might have been changed. Flash the RX, or make sure the serial baud rate is 420000.
I had soldered the flight controller (FC) to the radio receiver (RX), and was reasonably confident that the joints were sound. The RX was successfully bound to my transmitter (TX). Everything looked good, yet there was no movement on the Receiver tab in BetaFlight when I connected the FC to my laptop and moved the sticks on the TX.
I Googled for answers, yet found nothing suspect in my setup:
- TX on the flight controller (FC) was connected to RX on the receiver, and RX on the FC was connected to TX on the receiver.
- The correct UART was configured as Serial RX in BetaFlight.
- BetaFlight had been flashed with the right protocol (CRSF).
- Model match was disabled.
- Not using a DJI VTX, so no need to disconnect the SBUS wire.
- I even tapped the data and could see that CRSF was being sent from the TX pad on the receiver to the RX pad on the FC.
I was running out of ideas, so decided to use a different FC that I knew worked and had seen the signals being received in BetaFlight before. This FC now also didn’t register any movement on the Receiver tab.
The receiver was the only common thing at this point. How had it worked before, but not now? I hadn’t changed anythi…
I had changed something. I had changed the UART baud rate while looking through the configuration interface. Claude had been ‘helping’ me get everything set up, and had told me to change the baud rate on the receiver to match the baud rate on the transmitter, which was set to 915k.
Baud rates had to match, it said. They can’t be negotiated, it said.
Claude had seen ‘baud rate’ and assumed it was the rate for the radio receiving data from the transmitter. It didn’t know that it was the UART baud rate that’s used to send data to the FC through the serial connection. I was too new, naive, and trusting, to know otherwise.
The receiver was sending data to the FC just fine, but doing so at a speed that the FC couldn’t read. The FC uses a baud rate of 420000 when using CRSF. It’s literally hard-coded in BetaFlight, and as the default for CRSF output in ExpressLRS.
I set the baud rate back to 420000, flashed the firmware, and everything worked just peachy.
Learning something new is difficult enough as it is. LLMs can sometimes get in the way and send you on a wild goose chase.