Banana Pi M2+ (bpi-m2p)
The good, the bad, and the ugly (03.07.2017)
Förderjahr 2016 / Projekt Call #11 / ProjektID: 1655 / Projekt: upribox v2

the good

The Banana Pi M2+ is cheaper than the Raspberry Pi3, has Gigabit Ethernet, onboard WiFi, and a nice square formfactor. The board, in addition, features 8GB of onbard eMMC flash storage and additional SD cards are therefore not required. Overall, from comparing the specs of Banana Pi M2+ vs. Rasperry Pi 3, the M2+ appeared to be the perfect hardware for our Usable Privacy Box project. Therefore, starting in January 2017 we began to port our upribox Software to the Banana Pi M2+. In the remainder of this blogpost we explain why we decided it was best to stick to the Raspberry Pi 3 after all.

the bad

One shortcoming which became apparent after our first tests of the M2+: when using the onboard WiFi module in access point mode, the WiFi coverage is very low. In our tests we would receive a Wifi signal only in very close proximity to the M2+: WiFi only worked if you were in the proximity of a few meters. This first issue was disappointing but we discovered that with the help of a patch antenna, we could could noticeably increase the WiFi coverage. Our lesson learned: in order to use properly use M2+'s onboard WiFi module you need to buy additional hardware from Alibaba or other electronic outlets. The WiFi access point is a crucial aspect of our project and this finding was thus a first disappointment. Only later we ran into another issue with the M2+, which we did not anticipate: there is no stable up-to-date Kernel supporting this board. The Armbian project does a great job in creating software images for a number of ARM-based single board computers, including the M2+. Armbian also provides security backports for the legacy Kernel (3.4) used in their stable M2+ image. In turned however out that we require a feature from new Kernel versions, namely: IPv6 NAT support, for our zero-config feature. The mainline Kernel for H3-based boards is in progress but it is not expected to reach a stable state in the near future.

the ugly

After some weeks of testing we discovered two bad things of the M2+ board: we require additional patch antennas for bearable WiFi coverage, and worse we might need to backport the netfilter IPv6 NAT support to the legacy Linux Kernel (3.4). Things however got ugly after we did some tests of the Banana Pi M2+ in production and in realistic settings: the Banana Pi M2+ overheats, becomes unresponsive, and you literally burn your fingers when touching the board. It turned out that this issue cannot be fixed by underclocking the CPU/RAM in software because the Banana Pi M2+ suffers from a fundamental hardware design error of the board's voltage regulator. Experiments with heat sinks did not fix the problem, so finally after some months we invested into working with the board - we decided that the board is not suitable for our project.

To sum up, we invested quite quite some effort into adapting our existing upribox Software for the M2+ and finally decided that the hardware does not meet our quality standards. The Raspberry Pi 3 has a powerful WiFi-module onboard, excellent Software support support (Kernel 4.9), and most important does not overheat in production. We nevertheless hope that the Raspberry Pi project soon releases a new revision with Gigabit-Ethernet.

Our experiments with the M2+ board did result in negative results and we decided to write this blog post to help other projects to avoid this mistake. In addition to efforts we put into porting our software, KollektivPlus2 designed awesome 3D-printed cases for the M2+ which are unfortunately for the time being obsolete. case prototypes by KollektivPlus2 for BananaPi M2+






If you already own a BananaPi M2+ and want to try our upribox image despite potential overheating issues, you can download it here:

Markus Donko-Huber

Profile picture for user markus.huber


Raspberry Know How
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.