Skip to content
James edited this page Jul 29, 2021 · 17 revisions

Updating?

If you're updating the firmware on an existing handset checkout the What's New page for info.

Limitations

The handset only supports a subset of features of ExpressLRS, so to connect successfully the receiver will need to be compiled with:

  • 500Hz support
  • hybrid switches
  • a fixed UID

Order of assembly for main PCB

There's a gotcha on the order of assembly; if you put the MCU on too early you can't get at one of the headers for the radio carrier. But soldering all the MCU pins is also tricky so you don't want too much stuff in the way when you do it. I messed this up in the latest build and melted one of the radio carrier pin strips while soldering the MCU. So my recommendation:

  1. Solder the passives first
  2. Add the pinstrip for the radio carrier that is between the rows of the mcu pins. Don't add the second radio pinstrip yet - that will give you more space to work with in the next step
  3. Solder the MCU (don't forget the 2x4 pins)
  4. Add the second pinstrip for the radio
  5. Add the sockets for the active filter (use turned pin if building with the FNW case as the lower profile gives more vertical space)
  6. Add the remaining sockets for switches etc

There are two options for power, either supply regulated 5V to the 5V-IN connector or use a 2S lipo on the 2SBAT connector and add a buck converter with 5V output using the 5VBUCK pin header (untested). The + connector on the 2SBAT input is used for battery voltage monitoring, so if using regulated 5V input, connect the unregulated battery voltage to the 2SBAT + pin (no buck needed).

Active filter component values

EasyEda project page with a table of values for the active filter

https://easyeda.com/jbk1/expresscontroller

I'm currently leaning to filter cutoffs in the 500 to 1000 Hz region. With the FrSky Hall sensors it doesn't look like we need a lot of filtering to get pretty smooth output.

There's a "cheat sheet" to help when assembling the filter board

https://github.com/ExpressLRS/Handset/blob/main/Wiki/images/filter_cheat_sheet.png

Flashing the GD32 Risc-V

Flashing the dev board is annoyingly finicky, and some boards seem to be worse than others. There's a relatively short window after powering up with the boot button held when DFU is active, so you need to find a sequence that works for you. You can either hold the boot button down and apply power, or you can power up first, then hold boot while pressing reset to enter DFU. Because the boot and reset buttons are small and close together the first way is physically easier, but the second seems to have more predictable timing. The 'upload' button in vscode also has an annoyingly variable amount of delay which makes this harder. If you can't get it working from vscode, use the platformio/advanced/verbose upload option (from within vscode) to see the full command that vscode is using, copy that to a terminal and run it by hand so that you have more control over the timing.

Clone this wiki locally