这是官网关于SPI 接收机的介绍:SPI Receivers – ExpressLRS
本文全文转载于以上网页。
A few Flight Controllers and AIOs have been released with ExpressLRS receivers on-board using SPI instead of a regular UART. This means you can build a more compact and lightweight whoop or nano longrange rig without the need for an external receiver. More of these flight controllers are coming into stores.
Because the ExpressLRS code is “baked-in” to the flight controller firmware instead of a second microcontroller, these can not be updated the same way external receivers are. These SPI receivers will work always work with the ExpressLRS firmware of the same major version. That is, ExpressLRS 1.x.x and ExpressLRS 2.x.x need different Flight Controller firmware (Betaflight builds).
Binding Procedure¶
There are two ways to bind the receiver, as shown below
Button Binding¶
Put the receiver into bind mode using any of these procedures:
- “Bind” button in the Betaflight Configurator, Receiver Page (if can’t be found, update the Betaflight firmware).
- using the CLI, type in
bind_rx
and press enter once. - press the bind button on the flight controller.
- using the CLI, type in
set expresslrs_uid = 0
, press enter once, then save and reboot
Execute elrs.lua in your handset and press the Bind
button. The RX and TX should be now bound.
Please mind the order, RX first, TX second.
Video Tutorial( ExpressLRS Happymodel 2.4 AIO Binding How To – YouTube ) (thanks to @JyeSmith):
Binding Phrase¶
The binding phrase is hashed into 6 bytes represented as numbers. These 6 bytes are referred to as the UID bytes. UID bytes are entered into the Betaflight CLI for binding. Please look below for instructions. When building via ExpressLRS Configurator or via VS Code, note down the UID bytes from the build log. You can also use the generator below to retrieve your UID bytes from your binding phrase.
UID Byte Generator¶
Binding Phrase
UID Bytes
1 |
<button class="md-clipboard md-icon" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: transparent; border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: var(--md-default-fg-color--lightest); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s ease 0s; width: 1.5em; z-index: 1;" title="Copy to clipboard" data-clipboard-target="#__code_0 > code"></button><code>212,50,59,163,20,74 |
Setting Binding Phrase¶
Go to Betaflight CLI and enter the following commands. (Enter your binding phrase above)
1 2 |
<button class="md-clipboard md-icon" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: transparent; border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: var(--md-default-fg-color--lightest); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s ease 0s; width: 1.5em; z-index: 1;" title="Copy to clipboard" data-clipboard-target="#__code_1 > code"></button><code>set expresslrs_uid = 212,50,59,163,20,74 save |
RF Mode Adjustment¶
These AIOs with ExpressLRS SPI Receivers are set to use 500Hz as default. To adjust it, you will need to go into Betaflight CLI and use the following commands:
1 2 3 |
<button class="md-clipboard md-icon" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; background: transparent; border: 0px; font-family: inherit; font-size: inherit; margin: 0px; padding: 0px; border-radius: 0.1rem; color: var(--md-default-fg-color--lightest); cursor: pointer; height: 1.5em; outline: none; outline-offset: 0.1rem; position: absolute; right: 0.5em; top: 0.5em; transition: color 0.25s ease 0s; width: 1.5em; z-index: 1;" title="Copy to clipboard" data-clipboard-target="#__code_2 > code"></button><code>set expresslrs_rate_index = [your index] save |
Where [your index]
corresponds to the following :
- 500Hz = 0
- 250Hz = 1
- 150Hz = 2
- 50Hz = 3
With the Updated Betaflight firmware, adjusting your packet rate from the Lua Script will also adjust the packet rate in the AIO.
Updating¶
As mentioned, you must flash a Betaflight firmware that’s compatible with the ExpressLRS major version on your transmitter. ExpressLRS 1.x.x TX only works with Betaflight firmware for ExpressLRS 1.x.x, and upgrading the transmitter to ExpressLRS 2.x.x means flashing the flight controller with a different Betaflight version. If upgrading minor versions, such as from ExpressLRS 1.1.0 to 1.2.0 on the transmitter, no changes to the flight controller are needed although there may be bug fixes to the ExpressLRS Betaflight implementation as well.
In preparation for this, you should save a copy of your diff all
dump.
Download the necessary binaries (zipped) from this Betaflight PR page. Extract the Hex File and, using Betaflight Configurator 10.8.0 (Nightly), flash the binary using the Load Firmware [Local] button found at the bottom right of the Firmware Flasher (Flight Controller in DFU Mode).
Once flashed, you will need to paste in the diff all
you have saved. Don’t forget to type in save
and press enter once done. Power cycle your flight controller, and you should be set. Review your Betaflight settings, and check your RC link.
This procedure will only apply while Betaflight 4.3.0 is not yet released. Section will be updated appropriately for any changes in procedures.
For more information, head over to the Betaflight PR page. We can also help out over at Discord!
Content taken from the PR page ℅ of @phobos-