Introduction to Single Board Computing
This is an introductory post which deals with single board computers, their need and examples. Two popular boards – Raspberry Pi and BeagleBone Black are also discussed in detail. In the end, the features of these two boards are also compared.
- Single Board Computers
- Raspberry Pi
- The Beagles
- Raspberry Pi vs BeagleBone Black
- What’s Next?
With the advent of technology in the consumer electronics domain, single board computers have become quite popular among both consumers and developers. These days everyone has virtually become so much “wired” that they cannot live without these so called – gadgets. Right from the mobile phone in your pockets to high end gaming consoles, including tablets, PCs, iPod, etc., everything is basically a single board computer.
Single Board Computers
What are they?
Yes, you guessed it right! It’s a computer in a single board! ;) Now obviously you might raise the question “Are there Multiple Board Computers as well?” Well, as a matter of fact, yes! There is a difference between traditional computers and single board computers. You must be familiar that full-fledged computers (like PCs and Mac) have a motherboard. On the motherboard, you will essentially find a processor (like the Intel® Core™, AMD® Athlon™, etc.), and other circuitry associated with that. You will also find slots for other peripherals like RAM, ROM, Hard Disk, LAN Card, CPU Fan, Heat Sink, LCD monitor, etc. These peripherals need to be attached to the motherboard separately in order to make the PC/Mac fully functional.
Unlike PCs/Mac, single board computers consist of everything on a single board itself! On the board, we have a processor and all other necessary peripherals and circuitry as well. We have onboard RAM, ROM, flash storage, AV ports, Ethernet port, etc. This means that one board is sufficient to act as a full-fledged computer! Yes, even they can boot into an operating system (OS) like Linux, Android, etc. and operate like any other computer. Being lightweight and specific, they have found huge application in smartphones, tablets and other consumer products.
These days’ semiconductor manufacturers are building ever powerful processors, which are no less than beasts, thanks to Moore’s Law. These processors, based upon a unique architecture like ARM, Intel x86 or other custom architectures, give whopping performances like 1.2 GHz clock frequency, etc. When combined with 1GB DDR3 RAM, 2GB Flash storage, HDMI/AV port, USB ports, LAN ports, etc. on the same board, it becomes a single board computer! Simply power it up, connect to a display device and boom! You are all set to go… your computer has successfully booted into an OS like Linux, Android, etc.
These single board computers are not as powerful as the current day PCs, laptops or Mac, and hence do not dissipate much heat. In addition to that, the processors are designed in order to generate less heat and consume less power. That’s why you can run your smartphone the entire day without charging the battery or cooling it down!
All the electronic gadgets that you see around – smartphones, tablets, etc. have one such single board computer inside them – their motherboard! Most of them will run Android and iOS (an OS just like Windows, Linux, Mac OSx, etc.). You can download and install apps just like you do on your PC.
Why do we need them?
There are several reasons one might opt to use a single board computer. Portability being one of the major features. You can carry around a small computer like your smartphone in your pocket everywhere you go! These devices are pretty intuitive to use as well. They consume less power and energy as compared to traditional computers. And the most important feature is being cost effective! Being low cost, these products can reach a much larger part of the community. And this makes them suitable for developer applications as well for development of new apps, testing, debugging, hardware development, hacking etc.
As an end user (or consumer), examples are all around you – electronic gadgets! Next time you look at any such gadget, Google out its specifications!
As a developer, apart from the gadgets, there are some notable single board computers available in the market for both, hardware and software development. Some of them include Raspberry Pi, The Beagles (BeagleBoard, BeagleBoard xM, BeagleBone, BeagleBone Black), PandaBoard, MK802, MK808, Cubieboard, MarsBoard, Hackberry, Udoo, etc. Recently, Intel® has also entered into the Open Source world with its Atom™ processor based MinnowBoard.
In this post, further we will discuss mostly about Raspberry Pi and The Beagles (mostly the new BeagleBone Black), since they are the two most cost effective and small sized single board computers.
Raspberry Pi is a credit-card-sized single board computer developed by the UK based Raspberry Pi Foundation for the sole intention of teaching programming and basic computer science to school students. It runs Linux on a 700 MHz ARM processor, has two USB ports to connect the keyboard and mouse, supports video via HDMI and/or RCA, connects to the internet via the Ethernet port, storage handled by a SD card, and what will blow you away is its cost – merely $35!
Even before it was launched in February 2012, it had gone viral among people! When I ordered it, it was backordered and took around 8-10 weeks for me to get it! But that isn’t a problem now. It is manufactured and sold by element14/Farnell, RS Components and Egoman. The cost is low because there are no overhead charges, just the manufacturing cost; reason being Raspberry Pi Foundation is a non-profit organization aiming for charity, and want their product to be available and affordable to everyone! You can check out their website for several success stories of their charitable purpose.
However the low cost of Pi has led to several developers get their hands on it and work out several interesting projects and hacks using it! And the presence of GPIO (General Purpose Input/Output) pins on the board has lured many developers to use it for several physical computing projects which include hardware interfacing of electronics! Since it is open source, it has a huge community supporting it. Just check out its website, and you will get to know what people have done with it!
Raspberry Pi Specifications
There are two models of Raspberry Pi – Model A and Model B. Let’s have a look at some of its specifications:
So you can see that Raspberry Pi is powerful enough to drive a 1080p monitor and serve as a full-on desktop computer! In the upcoming posts on maxEmbedded, we will not only learn how to use Raspberry Pi as a desktop computer and a media center, but also for development and hacking purposes! So subscribe to stay tuned!
Based upon ARM based processors from Texas Instruments, the Beagles are a bunch of single board computers aimed at open source computing. The Beagles consist of four siblings – BeagleBoard, BeagleBoard xM, BeagleBone and the all new BeagleBone Black.
BeagleBoard and BeagleBoard xM
BeagleBoard is $125 single board computer, which contains the OMAP3538 SoC by Texas Instruments (TI) based upon 720 MHz ARM Cortex-A8 processor. The cool thing about this board is that it has an on-board Digital Signal Processor (DSP) along with the ARM processor. The TMS32064xx DSP by TI is pretty powerful and is used for processing analog/digital signals (like audio, video, etc). It has a 512 MB SDRAM as well.
BeagleBoard xM is the successor of its elder sibling which costs $149, contains the AM37x SoC by TI based upon 1 GHz ARM Cortex-A8 processor. It has significant developments in the board design and specifications over the traditional BeagleBoard. You can check out the differences here. This board is powerful enough to give laptop-like performance!
One of the best things about these boards is that they are open source and have good support from the developer community and has also developed an ecosystem by now.
This is a smaller version of the BeagleBoard(s). It has an AM335x 720 MHz ARM Cortex-A8 processor from TI and costs $89. But unlike the BeagleBoard(s), this doesn’t have a DSP at all. It has 32 KB of EEPROM and 256 MB DDR2 RAM. What made it more popular among developers is its greater scope for hardware interfacing with more number of GPIO pins and more supported interfaces (like UART, Timers, PWM, ADC, SPI, etc).
So till now we have discussed about Raspberry Pi, BeagleBoard, BeagleBoard xM and BeagleBone. You can refer to this site for a comparison of specifications between them all. But more than all of them, we are interested in discussing about the all new revolutionary BeagleBone Black released this April (2013).
The All New BeagleBone Black
The BeagleBone Black is a $45 mini-PC and is the most recent version of the Beagles and contains a TI Sitara AM335x ARM Cortex A8 processor running at 1 GHz clock speed. It has the same pin layout as that of its previous white version BeagleBone. It has 512 MB DDR3 RAM and 2 GB on-board flash storage which is used to boot an OS. By default, it comes with the Linux Angstrom pre-loaded OS and can support different flavors of Linux and Android.
Similar to the Raspberry Pi, it comes with one USB port, one microUSB port, a micro HDMI port, a micro SD card slot and a 10/100 Ethernet jack. Now unlike the 8 digital pins of Raspberry Pi, BeagleBone Black has 65 digital I/O pins, analog pins, SPI, I2C, PWM, timers, and much more! We will discuss more features in the next section where we compare BeagleBone Black and Raspberry Pi.
Raspberry Pi vs BeagleBone Black
As you would have read above, currently the two most trending single board computers are Raspberry Pi (R-Pi) and the BeagleBone Black (BBB). Lets compare them feature-wise.
|Feature||Raspberry Pi (Model B) (R-Pi)||BeagleBone Black (BBB)||Remarks|
|Cost||$35 + Tax||$45 + Tax||BBB costs $10 more than R-Pi, but it’s justified. Read ahead to know why!|
|Processor||700 MHz Broadcom BCM2835 ARM11 (Overclocked till 1 GHz)||1 GHz TI Sitara AM3358 ARM Cortex A8||Even though both operate at the same frequency (after overclocking the R-Pi), ARM Cortex-A8 processor provides up to 150% better performance than ARM11.|
|RAM||512 MB SDRAM||512 MB DDR3 RAM||DDR3 RAM is faster than SDRAM and consumes lesser power. So bonus for BBB.|
|GPU||VideoCore IV with 1080p video encoder/decoder for H.264, MPEG2 and VC1||PowerVR SGX530 and no video encoder/decoder||R-Pi can play 1080p Full HD videos smoothly, but BBB can’t. BBB should be able to play 480p/720p videos decently.|
|Storage||SD card slot||2 GB onboard eMMC Flash storage and a micro SD card slot||BBB can run OS from its onboard Flash and its micro SD card can be used for additional storage (optional). For R-Pi, it needs an external SD card to boot up.|
|Ethernet||10/100 M||10/100 M||Both offer similar performance.|
|USB||2 host ports||1 client / 1 host port(s)||2 host ports in R-Pi ensure that a USB keyboard and a USB mouse can be connected directly, which is not possible in BBB. For BBB, an external USB hub might be necessary.|
|Video||HDMI (1080p), Composite||Micro HDMI (1280×1024 max)||R-Pi has standard HDMI along with Composite RCA (AV) output supporting Full HD, whereas BBB has a micro HDMI port with limited resolution and lacks AV port.|
|Audio||Via HDMI, 3.5mm audio jack||Via HDMI only||A major limitation in BBB, extra hardware may be required for BBB to output audio without HDMI.|
|Power||Micro USB 5v or GPIO header; 322 mA when idle. Rated at 700 mA||Micro USB 5v, GPIO header or DC jack as well, 210-460 mA when idle||BBB has an option to be powered up via a DC adaptor along with the choice for USB. If more load is connected to the boards (like USB keyboard and mouse), it is suggested to go for higher current rated power sources (like 1A or so).|
|Peripherals||8 GPIO pins, PWM, SPI, I2C, USART, CSI (Camera Serial Interface), DSI (Digital Serial Interface)||65 GPIO pins, SPI, I2C, USART, CAN, Timers, Analog, LCD, PWM||No match for BBB here! Unless you want to connect a camera module through the CSI port, BBB offers a lot more opportunities to hack.|
|OS Support||Linux (supporting ARMv6)||Linux, Android||Ubuntu cannot run on R-Pi since it supports hardware with ARMv7 or higher. BBB is universal in this regard and has a lot of options.|
So it is clear that BeagleBone Black has much more to offer than the Raspberry Pi, and that too for $45 only! To summarize, BeagleBone Black has a better and faster processor and RAM, internal flash storage, an Ethernet port, a DC power jack, an excellent OS support with nearly all flavors of Linux and Android running on it and lots of possibilities for hardware hacking. On the flip side, it loses to Raspberry Pi as a teaching/learning resource and a media center with limited video resolution and missing AV output and single USB port. And as far as the online resource and community is concerned, both are satisfactory. You will never be lost with any of these devices, you can always get help online! Slowly, maxEmbedded will also turn into one of the resources for them!
So to end this comparison, I would like to state that both the devices are meant for different purposes. Raspberry Pi is primarily aimed at education, whereas BeagleBone Black is meant for developers. If you want to make an application involving a media center or GUI, Raspberry Pi is the best. If you want to make a good embedded systems or robotics based project, BeagleBone Black would suit your needs, and prove even more powerful than the Arduino! Hey wait, now what’s Arduino? A new term, or rather a new device! We’ll see it in the next post!
Now this is more than enough for one single post! Let’s summarize what we discussed in this post:
- We discussed about the basics of single board computing along with their practical implementations and examples.
- Then we discussed about Raspberry Pi, which is a single board computer, and its features.
- Then we checked out the Beagles – a family of four single board computers – BeagleBoard, BeagleBoard xM, BeagleBone and BeagleBone Black.
- Then we saw BeagleBone Black in detail.
- Finally we ended with a comparison between Raspberry Pi and the BeagleBone Black.
In the next post, we will discuss about Real Time Computing and Controllers. We will also discuss about Arduino and compare it with single board computers like Raspberry Pi and BeagleBone Black! And in forthcoming posts, we will also discuss how to use these devices in your projects!! So subscribe to stay updated!
In case of any queries, doubts or criticism, please leave a reply below this post. We will respond to it gladly. :)
Arizona State University
Dear sir, can you please suggest any microcontroller preferably cheap, wherein i can do on-board image processing using opencv without using any intermediate bulky computer for processing image data
Hello Anonymous (or whatever your name is),
Microcontrollers are not capable of processing images. Plus to run OpenCV, you need an OS (like Linux) which is not possible in a microcontroller. For your purpose, you can use single board computers like the ones discussed above. People have successfully installed and worked with OpenCV in Raspberry Pi. Installation of OpenCV in Linux is also pretty straightforward, but due to the limited resources, the installation and the processing is pretty slow.
In your post, you have mentioned that BBB is better than rasberry pi. So for my application which is better considering that i want to use a usb webcamera. And moreover arduino makes people lazy and is suitable for people with no electronics background. So i wanted to know that whether rasberry pi/BBB also uses the same kind of programming environment ( means the use of inbuilt functions for every task as inarduino)
For your application, you can use any one of them. Working on both of them are similar.
Raspberry Pi and BBB are single board computers, and hence are not programmed the way Arduino is programmed. To program Arduino, you directly write a code to be executed in its hardware. Whereas in RPi/BBB, you run an Operating System. Its just like your PC. You switch it on, and then the OS (like Linux) boots up. Then it shows you a desktop screen (for that you will need a display device). Then its just the way you work on a computer. You will install OpenCV in it just like any other software, and then start programming it in your preferred language (C, C++, Python, etc). Did you get me?
yes i got it thanks for your reply
p.s. i can’t comment at the end so wrote here
We will be posting tutorials on Raspberry Pi here on maxEmbedded soon. So you can subscribe to stay updated.
PS. It’s okay to comment here. I have limited the threads to 4 conversations deep. If its more than that, it looks ugly. ;)
really good article…enjoyed it :D….i have a question…if i wanted to do IK for a robotic arm wat software shud i be running on these boards?? i know that there r many available which can do it on a pc but which is the best for these boards??
Which software do you normally use for Inverse Kinematics? Is it for Windows or Linux? If it is for Linux, then it can be run on these boards, but again, they should be light software. Remember, these boards have 1 GHz single core ARM processor unlike your PC which has a 2 GHz Intel dual/quad core processor!
In general, if you want to control a robotic arm, you will need to use servo motors. Mostly you will be using RC servo motors which operate upon PWM signals. So you will need to generate PWM signals using GPIO pins of these boards. Now there is no such software for this. You will simply open up an editor, type some code (usually using Python language) using some pre-built libraries/APIs, compile/build it to generate an executable file. Now when you run this executable in the OS, then you will find PWM generated from one of these GPIO pins. Its just like writing drivers – a piece of software which runs to control the hardware!
actually i have heard that OpenRAVE package in ros is used for ik and is compatible with ubuntu….so if I am running such software(assuming they run comfortably) wont i b able to control my arm…pls give further details if u have an idea about it….refer to the following link for ROS:http://openrave.programmingvision.com/wiki/index.php/ROS:ControllingRobots
Yes you can. You can try it out. Nothing can be said unless you try it.
Btw, you can also try running ROS in BeagleBone Black. But its all about trying and doing. You can’t be sure unless you implement them. I am still trying to get my hands on BeagleBone Black. Once I get it, I will definitely try it out. You can try it out too!
completely agree with u…. my beaglebone black is on its way….waiting to get my hands on it :D :D
And don’t forget to share your experiences with me! :)
Now, time starts for ARM in India
i am doing a project using BBB and i need audio output from it,can you please help me to get audio output from BBB ,i am in very much need of it.thankyou
BBB doesn’t has a dedicated 3.5mm audio jack. Audio is integrated in HDMI. So you can either use that, or else use a separate audio cape, which are quite costly. Audio capes are open source, so you can make one yourself as well. You can check this for other solutions as well.
Thanks for this site! Just starting with R-Pi and will get a BBB based on your recommendation. I’m a windows software developer but more interested in hacking/home automation these days. Do you have any comparisons between BBB and Arduino posted? Looking for just the right board to base all my HA networking on. Thought RPI at first but now BBB looks more attractive.
Good, BBB is definitely better than R-Pi for HA. But Arduino is also a good choice for that! Unlike BBB or R-Pi, Arduino is not a single board computer. It is just like any other microcontroller development platform. Well, as a matter of fact, lately a few Arduinos have been released having Intel and ARM processors as well. Programming an Arduino is simple and you can prototype your designs fast.
i want to perform fft analysis of a analog signal . can an atmega 32 do it and if not can u suggest me an arduino board which can perform the fft
i want to perform fft analysis of a analog signal . can an atmega 32 do it and if not can u suggest me an arduino board which can perform the fft?
Well, you could do FFT analysis using ATmega32 upto a certain extent because ATmega32 CPU is not optimized for DSP applications. I would say give it a shot.
Can I do all the experiment by Single board computer which can be done by microcontroller
like LCD display, LED chaser, multiplexing, handling analogue inputs,
What language should I learn to operate this single board computer.
If I Buy a raspberry Pie, what are the minimum peripherals do I need.
Will you provide some small understandable experiment with raspberry pie.
Yes you can. Technically speaking, there’s no difference between a simple microcontroller development board and a single-board computer. It’s just that the CPU of the SBC is a lot more powerful, can run an OS and can virtually do anything you can think of.
Operating a SBC needs knowledge of some programming language like C, Python, etc. You can use pre-built libraries for this. And since most of them are Linux based, and if you wish to write Linux kernel modules, you’ll need to be really good in C with good knowledge of computer architecture and Operating Systems.
Yes, we’ll be posting some tutorials on using the RPi soon. Thanks! :)
I have recently been messing around with a minnowboard. I liked the idea of having the extra built in buttons but I stopped there after having trouble with the drivers. How can I put extra time into a project if there is no basic driver support? It would seem to me that drivers for basic devices would be the first thing you would want to have. I have never been able to get the Ethernet Controller or the GPU to work with Windows. I expected Intel to do a better job, but right out of the gate they have failed. Yes I can run the OS, but practical usage is out the door if you can’t even get decent drivers.
I agree with you Gary. I don’t know about the Minnowboard, but I feel that Intel has also failed with its new Galileo board. I have been trying to work with that board, but it’s so hard to get it up and running. I hate the level of abstraction that Arduino provides, and I wanted to run a full fledged yocto Linux onto it without any Arduino support. Guess the firmware doesn’t allow that. One thing that you would see while getting any new embedded platform is the ecosystem and the community support available. For Intel Galileo, there’s hardly any online documentation for Linux hackers to utilize the features that the new Quark processor has to offer.
Hey , i read your blog it is very informative and helpful for many of us . Thankyou for sharing it .
this is a good article. i got more information about motherboard. i m sharing with you about gaming cpu under 10,000.