After many years I have made the switch to Banana Pi.
There was so many different companies trying to mimic the success of the Raspberry Pi when it made its Kickstarter goals and people were waiting (impatiently sometimes) to acquire one. This will be a short little blog post about walking away from Raspberry Pi and supporting the Banana Pi. Read on if you like.
Goodbye Raspberry Pi:
After the first article about the Raspberry Pi; It ends with ceremonial goodbyes and the reasons why many have thrown their hands up about this machine. Because the community and the things that people did do with this great little machine is truly amazing! However, it's very hard to take with all of the challenges and crashing this machine does as well.
Power Issues / Blackout issues with Raspberry Pi
Starting with the number one challenge of having a Raspberry Pi (Model B 512mb version). Which is simply put it kept blacking out/Crashing. Asking on forums about this issue one ends up quickly hitting with a barrage of people stating that it's a defective power supply and in order for the Raspberry Pi to operate at its very best then it must be at 5.2volts at 2amps. Not 5volts 2 amps because there's a power drop that can be measured on the contact pads of the Pi as your testing out software. And this is true! When I launched a game like Quake3 which can lock up the Pi in 3 minutes. voltage did drop to 4.8-4.7 on the test pads. Perhaps its an amperage thing? That cell-phone chargers aren't necessarily good at maintaining constant amperage for any length of time. Okay, so lets bust out a PC ATX power supply. 5.23 volts with 32 amps of power! Nope! Still crashes like it's hooked up to the cell-phone charger. Hmm, defective Raspberry Pi? After doing a bit of check around there was some that were made in China which were not awesome. And the ones made in the UK were better. Fair enough, after purchasing another Raspberry Pi and running the same tests again want to know what the result of a UK made Raspberry Pi was? Not AS crashy as before, but hooking too many USB devices with it. EVEN WITH a self powered USB hub that takes zero power away from the Pi. The Raspberry Pi from the UK would simply say:
Fuck you, I'm done! Blacking out now! - My Raspberry Pi
Now this after loading Rasbian multiple times, changing out the MMC did not help, modifying kernel parameters to slow down the clock of the USB, disabling swap on the MMC. It could end up running for anywhere from a week to a month solid and one day when logging into the unit the Raspberry Pi is off of the network again but still powered up in its red-light stupid state. There was a friend who gave me his 256mb Model B version to play with for a brief moment. Although it didn't crash that often I noticed how the network card was heating up hotter than the processor. What the hell?!? Even with his Pi, it crashed a few times. If there is any final conclusion to my adventures in the Raspberry Pi and embedded computing world is the Raspberry Pi did teach people a LOT about Linux, computers, and the way things work in a tight environment. And with such a strong community that believes in the Pi. That if the Raspberry Pi never existed ARM processor development in the Linux world would be pushed back to the dark ages. So to that end, I do have to thank the community for their hard work. As for the hardware itself. It left nothing but bitterness towards this lowly user of their product.
Processing Issues with the Raspberry Pi.
In most cases when working with simple things like hosting a website, or a robot or home automation. 700Mhz ARMv6 is more than enough really! In the industrial world, its almost considered overkill as you can get something like an Arduino to do a lot of the basic tasks of GPIO computing. But you can't go wrong with a $35 price tag (plus power supply, USB cables, case, MMC card AHH SHIT we just spent $90!) but you get the idea. When it comes to raw processing power. Such as dealing with a beast of a program like OpenSim. Which utilizes MySQL, and built inside of Mono which is a very heavy programming language. The Raspberry Pi barely works! You can log in, you can walk around, that's about it! When it comes to being a file-server, or a cheap router. Unless your internet is 10Mbs of download/upload speed or lower, the Raspberry Pi ends up choking. Using a Pidora image (Fedora for Raspberry Pi) for its firewall and NAT features of that image. As for a samba server, it may be faster than downloading it off of some server overseas, but not by much!
Build issues with the Raspberry Pi.
While better then the previous versions of Raspberry Pi's with 256mb. Having two screw-holes was a little annoying and placed a lot of stress on the Pi when mounting it into a case. We are fully aware the Raspberry Pi B+ corrected this issue. It makes anyone leery if you want to put the cash down for Raspberry Pi #3 at this point of the game.
Hello Banana Pi:
Purchased on a Newegg special for $48 because they are making way for the new Banana Pi Pro which is supposed to rival the Raspberry Pi B+. They were selling them cheaply because the Pro was coming out. There was not any processor or performance improvement. Just the 40 Pin GPIO header, moving around some of the components, and still maintaining the two USB headers. So no real big gain in purchasing the updated Banana Pi. When the banana pi came in the mail. There was some worry at how thin the board was! It was half of the thickness of the Raspberry Pi board which makes the whole thing feel unbelievably fragile! But everything powered upon it without issue.
No first-time boot configuration screen!
However, after loading Raspbian onto another MMC card for the Banana Pi and powering it up. It was a little annoying that it dumped you right into the X desktop! You have to change your hostname manually as the bpi-config didn't work. It likes to load into the desktop when most of what this site talks about is headless configurations! So, after a quick change in the bpi-config and finding the default usernames and passwords I needed to do so. I was golden there. The difference in processing power can be felt the moment you pass the first apt-get update command. The raw speed of how it handled everything the Gigabit network kicking in and taking advantage of all of the bandwidth of my cable modem connection when the packages download. This is a good thing!
Headless Mode/Memory Split:
It has roughly the same GPU level as the Raspberry Pi. But guess what? If you are running your banana pi in headless mode then that's 128mb of ram that is going to nothing. Raspi-Config does not change this at all. To change this I had to modify the /boot/uEnv.txt with the following command:
sunxi_fb_mem_reserve=16 sunxi_no_mali_mem_reserve sunxi_g2d_mem_reserve=0 sunxi_ve_mem_reserve=0
Here is the snapshot of my uEnt.txt to compare. The bootargs= statement is all one continuous line.
bootargs=console=ttyS0,115200 console=tty0 sunxi_fb_mem_reserve=16 sunxi_no_mali_mem_reserve sunxi_g2d_mem_reserve=0 sunxi_ve_mem_reserve=0 disp.screen0_output_mode=EDID:1280x720p50 hdmi.audio=EDID:0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait aload_script=fatload mmc 0 0x43000000 bananapi/script.bin; aload_kernel=fatload mmc 0 0x48000000 bananapi/uImage; bootm 0x48000000; uenvcmd=run aload_script aload_kernel
This frees up a total of 1008mb of ram for the use which if you have a lot of power/memory hungry daemons as described in this blog this will help a lot! You are still leaving 16mb of ram so if you want to boot to a graphical UI you still can. 3d rendering will just be impossible in this state.
USB OTG.
We did try an OTG cable for my Samsung Galaxy phone thinking that it can be used as a third USB port for something like my Bluetooth adapter, or USB thumb drive. No power was going to that port, and even with a powered hub, no data was coming out despite Linux dmesg saying that there is an extra USB controller there! If it's just for the android load that's kind of a shame. But oh well.
Installing all of the software my Raspberry Pi had onto the Banana Pi:
Since there were a lot of the configurations already set up on my Raspberry Pi it was just a matter of copying over said configurations to the Banana Pi. So things like Samba, Light HTTP Daemon, MySQL, were just about drop-and-go. But let's go through some of the software that was previously published on my site.
- Transmission - A sleep command has to be passed for 5 seconds in the /etc/rc.local folder before starting this service. Initialization of the Gigabit Ethernet took a little longer then it does on the Raspberry Pi and due to a bug in the programming if it does not see a network connection up when Transmission starts it simply ignores all network adapters! Kind of annoying considering no other daemon has this issue mentioned in this article. but Oh well.
- AMule Daemon - copying the service script is no longer necessary to make an "amuled" service. It makes "amule-daemon" service instead. So you need to modify the /etc/init.d/amule-daemon and add the appropriate username running AMule for that.
- MiniDLNA Server - Nothing changed between Raspberry to Banana. All is good!
- Audio Airplay on Pi - A new file "/etc/asound.conf" had to be generated in order for audio to be directed through my USB DAC because the sunxi audio controller simply does not want to give up its position as card 0. The audio quality of the on-board the Banana Pi is amazing! And if you do not need coaxial or fiber jacks to go to your amp the Banana Pi does not click or skip or "hiss" when playing Airplay audio like the Raspberry Pi does.
- OpenSim - This program is where the Banana Pi truly shines! with the Dual-Core 1Ghz processor and DDR3 ram to back it up. Terra-forming land in real-time again! Scripts now work without having to wait for other sim functions to finish first. OpenSim is truly a program that needs multiple cores for it to run properly because of how many different daemons OpenSim relies upon. Configuration was drag-and-drop for me with no problems.
- Samba - The throughput of the Gigabit ethernet is not %100 like transferring off of another Pentium PC. I would say that throughput is around %40 of gigabit. However it certainly is faster and less painless as the Raspberry Pi was!
- CGMiner - as pointless as bitcoin even is now we did fire it up on my Banana Pi and tried it out anyway! I did have a lot of crashing when mining the bitcoins. But the Banana Pi has been up for a week solid now and not a single crash on this front
Update to this article about power and USB cables.
3/6/2017 - We will be the first to admit that we were dumb and naive about the Raspberry Pi when it first came out. But then again a lot of people were! There was frustration with having all of the right power supplies and your meter reading everything perfect but for some reason, Everyone's Raspberry Pi's were blacking out. It wasn't until the Raspberry Pi 3 was released that it actually started to explain what was going on. This little colorful icon will appear in the upper right-hand corner sometimes appearing before the operating system has even booted all the way up. This icon on the Raspberry Pi 3 tells us that we are not undervolted. But undercurrent. The lack of amperage and/or current is due to how poorly made your average USB phone charger is constructed. Most phone chargers only have a few strands of copper running through the cable. This will mean that as a device is asking for more voltage and current, the USB cable itself is behaving a lot like a resistor. This means even if you are pumping 5.25 volts. By the time the Raspberry Pi demands 1-2 amps. it drops to 4.7volts and ultimately dies!
Buck step down regulators are handy things!
The reason why my DC-DC buck step-down converters work so well in the Banana and Orange Pi is simply put = distance from "PSU" to Pi is almost nothing. And the gauge of wire I used is higher than the USB charger. Even if my 12vdc current drops from the current pull the DC-DC buck continues to regulate it to exactly 5.25 volts. The added advantage of using these buck converters to us is a lot of the power bricks that are around the house are 12vdc so it's actually cheaper then buying a special 5.25vdc wall-plug and hoping for the best in terms of your USB charge cable to your Pi.
Final Thoughts:
It has not crashed once and it was running it stand-alone with a Apple I-Pad charger or when I have it hooked up in my enclosure with Block Erruptors off of a 4amp 5-volt supply. Everything that was learned on the Raspberry Pi can be immediately applied and deployed on the Banana Pi. $15-20 price difference for stable audio, faster processor, and more RAM is a fair price for such a device. Most importantly; Everything simply works without blacking out! Something that expected from the very first Raspberry Pi. Even if it does crash can hit the power or reset button instead of the potential damage to the USB charge port on the board itself. As for the software perspectives of the Banana Pi. It may not have N00bs. But it can load an Android OS because the ARM processor is new enough to handle it. Which is a plus for those who like their phones but don't want to dive into crazy SSH shells and Linux? The banana Pi hardware great. And when paired with all of the research the Raspberry Pi crowd has done it makes this product even better.
Hi, if i reading right, the banana pi works good with a external usb dac for hearing audio data?
Thanks for the article!
Thomas
When it comes to DAC audio the sound is as good as it was on my Raspberry Pi B+ and I didn't have to do any kernel mods to the USB driver to stop it from clicking.
The SunXi audio is also really good as well and doesn't buzz or cut out like it did my Pi B+. But it doesn't have that crispness that hooking up a USB DAC has. I think it's all thanks to multi-core processing where I'm no longer messing with the clock timing when for example I SSH into the unit or download torrents.