In September 2012 I received the first Raspberry Pi® and I was very impressed what it was able to do. Moreover than being only fascinated I was surprised that this all was possible for less than 30 €.
It is obvious that a computer running Linux can run a web server, database and much more. But that a device which is that cheap can do this is incredible and opens high power computing for lots of applications – at least for me.
When I am talking about high power computing than I refer to the embedded world where I’m doing my developing work normally, and where computer have often clock frequencies of 10 MHz or less.
[gn_heading style=”1″]Embedded Engineering[/gn_heading]
When an embedded designer needs much more power the work becomes really tough. Clock rates of 1 GHz, difficult design of multi layered printed circuit boards are only two of the obstacles you have to break through. Not even talked about the thousands of pages of documentation you have to understand.
I think many developers who created their embedded computer design based on ARM9 or ARM11 for automation equipment which is sold at lower volumes (< 10.000 pcs. per year) will start crying. At least their financial managers would when they calculate how many hours the company invested in the new design and when they compare this with the costs of a Raspberry Pi®. And don’t forget the losses because of the later launched product (time to market).
I know what I am talking about and know companies who went this way and there are many reasons to do this. Let’s imagine you need a modern graphic display with a resolution of 128 x 64 pixels instead of your old 2 x 16 character based one from the 80’s. And there is a request that remote access via the Internet browser would be nice to have. Then the system should be extendable to some degree and logging data to a SD-Card would be great.
At this point I would say someone leaves the standard 8 or 16 bit microcontroller based world and think about computers which more power. Of course there are solutions for low power microcontrollers providing Ethernet access, Internet, etc. But when you compare how long it takes to get all the features from the previous paragraph into a small microcontroller with the savings of your own design you have to sell lots before break even. Remember for microcontrollers like Atmel AtMega®, Microchip Pic®, etc. you have to do the most of your work by yourself.
When you compare this to the simple installation of Apache, Tomcat or MariaDB under Linux computers it’s waste of time and money do reinvent the wheel – at least for the quantities I’m talking about.
Moreover developing applications becomes easier which such a system behind you, also. I can understand when an embedded developer disagrees, but have you ever thought about programming embedded applications in Java, Python and PHP? It is difficult to get familiar with this thought since I refused using even C++ for my applications and stuck with pure C until now.
Let’s summarize what a Raspberry can do for you as substitution in the embedded world:
- It is a mature hardware platform providing lots of peripherals working out of the box without any development necessary
- Powerful ARM11 controller with 700 MHz clock frequency
- 10Mbit / 100 Mbit Ethernet controller
- USB Host controller
- 512 MByte RAM
- Video Output HDMI and Composite
- SD Memory Card slot
- Many General Purpose IO lines
- Take advantage of the Linux Operating System
- Develop your application on the same platform where the final application runs. There are now debug adapters of programs needed.
- Development of embedded applications using the same programming languages that you use on the PC
- Creating embedded applications become much easier, design professional user interfaces and programs with Eclipse, Java, Python and PHP and make portable embedded designs.
- Use Apache web server as a mature platform for your web based applications
- Employ MariaDB as replacement for MySQL® which allows professional logging of any kind of data
- Get access to your computer by Secure Shell (SSH) from wherever you are, install or update new programs and configure them remotely
- Other Advantages
- Add WiFi to your embedded computer without trouble
These are only a few points and the list above is far from being complete.
[gn_heading style=”1″]Conclusion and Perspective[/gn_heading]
Finally, I do not want to praise such computers like the Raspberry Pi® and I do not want to throw the practice of embedded design into disarray. As you can see at our LucidControl IO USB Modules which are based on Atmels ATXMEGA® microcontroller and is programmed in pure C, there are still lots of reasons to program in this style.
Also in points of power aspects small microcontroller have a big advantage and make devices with e.g. AAA batteries possible.
Within the next days and weeks I will complete this article and let you know my experiences with programming the Raspberry Pi® in Java.
I found something very interesting called RAP (Remote Application Platform) which allows making Java applications with SWT user interfaces running on a web server like the Tomcat.
This is a very neat thing because it gives the user the impression having a “real” application running in the browser instead e.g. an HTML based PHP site. Moreover it allows using existing desktop Java applications via the web.
The RAP, Tomcat and also a demo application is already running showing the power of the system and of course of our LucidControl USB IO Modules.
If you are interested in this see the following links:
Remote Application Platform Home (eclipse.org)
Remote Application Platform Demo (eclipse.org)