Navio on Banana Pi
Recently we have received a Raspberry Pi compatible board from Lemaker named Banana Pi. And even though Navio’s main supported board is Raspberry Pi, it is good when there are alternatives that can provide additional capabilities for advanced users.
Banana Pi has a great ratio of performance and price. Being just a little bit more expensive than Raspberry Pi it is much more snappier – it’s got 4x times more MIPS. It also provides extended connectivity capabilities: gigabit ethernet, IR receiver, SATA port.
Lemaker team made a great work for making Banana Pi compatible with Raspberry Pi as much as possible – you can run Raspbian distribution, work with I2C and SPI peripherals, use ported libraries like RPi.GPIO and WiringPI. Working with Banana Pi feels very familiar.
We tested our Navio shield with Banana Pi and here are the results:
All I2C devices are working as expected
- MS5611 barometer – ✓
- PCA9685 PWM generator – ✓
- ADS1115 ADC – ✓
All SPI devices are working great too
- MPU9250 IMU – ✓
- Ublox NEO GPS receiver – ✓
What’s lacking for now, but can be implemented
- PPM input. Banana Pi uses different processor – Allwinner A20. The code that we used to read PPM on Raspberry won’t work with it, so it had to be rewritten using Allwinner’s capabilities. Also, there are other ways of getting PPM values – for example, some USB adapters that connect RC controllers to PC for using in RC simulators can be used with Banana Pi too.
- Real-time kernel. Due to the different processor, kernels are not interchangeable with Raspberry Pi ones. Kernels with RT-patch and Xenomai do exist for various Allwinner boards, so it is possible to compile a kernel for Banana Pi too.
Small issues
- RCA connector does not allow to firmly connect the shield since it’s too close to the 26-pin header. But it can be removed easily – simply cut it with tweezers or desolder it.
- Banana Pi cannot be powered through 5V pin on 26-pin header. We used that pin to power Raspberry Pi from 2.54mm (0.1”) standard power input on Navio. Workaround is simple – Banana Pi should use USB port for power input while Navio can be powered from it too by using a jumper or separately from 5VNAV input.
While Banana Pi community is not that huge as the one around Raspberry Pi, it’s creators and supporters are very helpful on their forum. We hope that Banana Pi can be a useful alternative for advanced users. Of course, for now without an RT-kernel and PPM input it’s not that much useful for copters and planes, but may fit nicely in other robotic projects.