Recent Posts
Professional ARM Cortex M3 Development System With Eclipse-Based IDE Starting At 85 Dollars
Posted by
onThere are two worlds when it comes to the programming of embedded applications, one for hobbyists and engineers involved in rapid prototyping and one for "professional" programmers. The first one is represented by hardware platforms such as the Arduino, Raspberry Pi, BeagleBone, and others. The second is dominated by non-standard and thus expensive hardware systems in combination with a US$5000+ compiler, easily affordable by larger corporations and a pain for smaller businesses... at least, that is the impression among those engineers dealing with budget restraints.
The Big Myth: Development with systems like the Arduino or Raspberry Pi saves time and money.
Don't get me wrong, when it comes to the development of a new embedded application, my first urge is to take that Arduino Due, slap on some additional hardware (shields) and get going without major hassle. And there is nothing wrong with that approach for the first hours of programming. Reality hits when it comes to debugging (Hint: The Arduino platform does not support debugging beyond adding printf, recompiling, and uploading). That's not a big deal when the application is small but it's a major pain when the program requirements are somewhat complex. In the end, you spend an annoyingly large amount of time debugging your application.
Okay, let's switch to the Raspberry Pi, install that compiler with all the professional debugging functionality and code away. Yet again, there is nothing wrong with that approach for the first hours of programming. However, after a while you get annoyed by the limitations, specifically the processing speed. The RPi is a great system, but it cannot replace your PC. Add to this that the RPi, in my very personal opinion, is not a real embedded system. After all, it comes with a full-blown operating system with, admittedly, great features, but when it comes to embedded applications, you'll have to deal with excruciatingly long startup times. In addition, you need to install scripts to execute your application at startup, install drivers, add driver settings, etc. All in all, you need to deal with too many operating-system-related topics, and if you're not a Linux specialist, you need to become one.
But that's not all... Let's have a look at the hardware costs. It is easy to look at the hardware costs of the mere CPU board. An Arduino Uno goes for, more or less, US$20 but there is not much you can do with it. So, maybe you need an RS232 shield plus a CAN Bus interface, and suddenly, we are at US$60. This is still very affordable, but think performance. The Uno is great for small applications, but it runs out of memory and speed very quickly. Upgrading the CPU and adding more hardware gets you easily into the range of the so-called professional solutions.
The same can be said about the Raspberry Pi. The CPU goes for, more or less, US$38. Add US$20 for power supply plus SD card, assuming you have an extra keyboard and monitor somewhere in your office. Instead of the RS232, we can use one of the on-board USB ports, but we still need a CAN board for roughly US$48. Now, we are at US$106, not including further hardware components.
Now, let's look at a professional solution, such as our OpenLPC1768, an ARM Cortex M3 development board that comes with a full-blown IDE, supporting professional debugging. Like with the Arduino, startup times are in the range of milli-seconds, and like the RPi, it comes with the performance of an ARM processor. The CPU board goes for US$85 including the debug probe, which also supplies the voltage to operate. You can add a CAN Bus board for US$15, and, rather than using the onboard USB ports, you can add an RS232 port for another US$13. Total costs: US$113, shipping within the US included.
The point is, before you start the development of your application, compare performance and associated hardware costs.
A solution such as our OpenLPC1768 may not be everybody's cup of tea, and, after all, there is nothing wrong with using systems like the Arduino, Raspberry Pi, BeagleBone, and others. But I can say, out of personal experience, that programming this kind of ARM hardware in combination with the (free-of-charge) MCUXpresso Integrated Development Environment (IDE) is far more effective and rewarding. And yes, I do have that US$4,500+ KEIL compiler with the US$500+ hardware, but I have yet to find a reason to prefer them over the OpenLPC1768 plus MCUXpress IDE.
OpenLPC1768 - LPC1768 ARM Cortex M3 Development Board
Open1768 is an ARM Cortex-M3 development board that features an LPC1768 device as the microcontroller. It supports further expansion with various optional accessory boards for specific application. The modular and open design makes it the ideal for starting application development with ARM Cortex-M3 microcontroller.
The board comes with a debug probe (JTAG), and it can be easily extended by matching hardware components such as RS232, RS485, Ethernet, CAN bus, USB, and more.