An Arduino that runs Windows or Linux, or almost any other OS
December 14, 2013
The Arduino has done wonders to bring embedded systems in reach of people who otherwise wouldn't have access to them. It is a very powerful system, but it has drawbacks and limitations. The program and data sizes are limited, as is the execution speed. They are often plenty for many projects, but sometimes more is needed. For larger projects more space is needed. Or maybe it needs to be faster. Also, you only have one program and to have the processor do more than one thing (multitask) requires some tricky programming. Also, you develop on the PC then download to the Arduino rather than develop directly on the Arduino. And, unlike on the PC where we have wonderful debuggers that can show us almost everything about our program while it is running, debugging is often "printf()" and pray.
So, other, more powerful replacements have recently become available that address those problems. The Raspberry PI is the biggest and others like the Beaglebone Black and a few others are available. They solve many of the issues, but come with their own problems. Flaky and underpowered USB ports, incompatible devices, minimal and low powered I/O pins, incompatible processors and software, etc.
Sometimes people use a PC, whether as a general purpose motherboard type or a laptop. But again, the I/O problem creeps in since it isn't designed for that sort of thing, and it is large and power hungry.
But today, I came across this: http://shop.dmp.com.tw/INT/products/23. It is a board that is PC compatible with an x86 processor, standard PC I/O (USB, PCIe, sata, etc), AND GPIO, pwm outputs, analog inputs, low power, AND the same form factor as an Arduino. It is capable of running Linux, some versions of Windows, or some other Real Time or other operating system. You can run interpreters and compilers (Python, Perl, C, C++, Ada, whatever) right on the board, and debug on the same board, or write the programs on a PC and copy it over almost unchanged. This opens up a world of opportunity that hasn't existed before. I've been waiting on exactly this. These boards aren't going to challenge your multi-gigahertz game machine, but they offer adequate performance for most of what we do. At 300 MHz an X86 is roughly equivalent in processing power to a 750 MHz ARM (like the PI). I suspect it won't be long before we see higher performance versions. I have thought for a long time this is exactly what we need. Now it's here. I haven't bought any of the other boards I mentioned here for a variety of reasons, but I think I will get one of these. What do you think? How will this affect what you are doing? I look forward to hearing your thoughts.