Radio Control for the Raspberry Pi Pico – using I-Bus
The Raspberry Pi Pico does not come with any kind of wireless build-in, but that doesn’t mean you can’t control it without wires. You can easily add a Radio Control controller such as ones used to control RC model Airplanes.
In an earlier video I explained about how you could interface with a receiver using the same PWM signal which is normally used to control servo motors. Whilst this worked it put a lot of work load on the Raspberry Pi Pico and was not as reliable as I hoped for.
I have now investigated other technologies and found that using I-Bus is a much better way to interface to a radio control receiver. This did mean an upgrade for the receiver, but it was a big improvement in reliability and reduces the load on the Raspberry Pi Pico.
The RC controller I am using is a FlySky FS-i6. This is a relative is relatively inexpensive controller for RC model planes. Although designed for model airplanes it can be used with other models and in this case to send signals to a Raspberry Pi Pico. You could also use other types of controllers such as those designed for cars or boats, as long as they can provide an I-Bus output. It may also be possible to use SBus, but that may need additional electronics or an alternative software library. If you’d rather use PWM then see: Radio Control for the Raspberry Pi Pico using PWM, although there is significant advantages to using I-Bus instead of PWM.
Originally I used the FS-iA6 receiver, but unfortunately that does not support I-Bus. A better receiver is the FS-iA6B which has the same PWM output as the FS-iA6 but also adds IBus. The I-Bus interface can be used to interface with a Raspberry Pi Pico or other microcontroller using a serial UART connection.
Instead of using C++ which I used when reading PWM, I have created this using MicroPython, which is easier to understand and modify.
In this video I only cover the theory, but I plan to put this to practical use in a future project most likely based around a mecanum robotics chassis.
The micropython class library and demonstration code is available from the link below: