Now that I knew I have control over the board when I reuse a known communication address for the NRF24L01+, I wanted to be able to pair to all eskateboards with this controller.
It took me several days to start this part of the exercise because I feared the pairing procedure would be pretty complicated. Turns out I was right. It's pretty involved.
First, I looked at a pairing process that failed because the board did not respond (it was powered off on purpose).
In the screenshot above you can see an excerpt of the process that eventually led to a failed pairing attempt.
The interesting bit is the 16 frequencies the remote cycles through when searching for the skateboard. Catching all those was easy but very important at the same time as can be seen later during normal operation.
- First, the power setting is changed to the lowest setting as the controller assumes pairing is only really being done with direct access to the skateboard itself.
- CRC will be activated and the power setting will be set.
- Then the address is changed to a standard address the remote and the board will both switch to during pairing.
- If this is a new cycle it would switch frequencies now.
- Otherwise it will just load and send the pairing commend 0xC0 0x5F and wait for a response.
- If the ACK from the motor controller is not received within a couple of milliseconds it will hop to the next frequency and try again.
This aborts after several cycles as far as I remember.