These tools, such as development and evaluation boards and integrated development environments (IDEs), take much of the hard work out of system development and mean that projects are no longer based simply on trial and error. Not surprisingly, chipmakers and board vendors have put substantial resources into providing low-cost or even free development tools to encourage further sales of their products.
One of the easiest ways to get involved with electronics is with one of the popular embedded MCU boards - like those from Arduino and SparkFun. These units are designed to be easy and enjoyable to use for beginners, proving to be a good way to learn and to try out ideas. Their general-purpose nature means they can be implemented into hobbyist designs as well as for prototyping. However, many chipmakers, like Cypress and Texas Instruments (TI), now make development kits which are somewhere in between hobbyist devices and professional evaluation boards, and can be used to prototype production scale electronics. These kits can provide a useful stepping stone as developers learn their craft, because they provide many simple features, like an Arduino or SparkFun product, but they also let users directly work with chips and hardware that could subsequently be turned into a mass produced electronic system. That said, many professional engineers are now using hobbyist-oriented kits, like Arduino, as versatile development and testing tools.
An overview of the embedded world
The world of embedded systems development can be a confusing one, offering a dizzying variety of hardware products and their clones, and an even wider variety of software tools. To better understand the many options available to system developers, whether amateur or professional, it helps to start with a brief overview of a typical development environment. At the centre of the embedded development workbench is, of course, the development or evaluation board based around the target MCU. Generally speaking, the difference between a development board and a finished product board is that the development board provides easy access to internal signals and I/O pins and is straightforward to reprogram. Development boards may also provide additional developer-friendly features, such advanced clock speed control.
The software side of development takes place on a host PC or laptop (or potentially a mobile device, though this is still fairly uncommon), which is linked to the development board via USB - and perhaps also via other interfaces, such as serial port, depending on the requirements of the project. More traditional external monitoring and testing tools, like multimeters and oscilloscopes, are also essential.
The host PC will run an IDE, providing access to software development tools - namely editors, compilers, debuggers, library managers, etc. In addition to embedded system IDE and software tools vendors, individual hardware vendors provide IDEs, software tools and libraries for their specific products too. Simulation and emulation software, such as circuit design/emulation and PCB design tools, may run also on the PC to provide supplementary support.
Early stage development may in fact take place entirely on the host PC, using simulator software which emulates the targeted hardware. As development progresses, execution can be moved onto the host hardware board. Obviously, a modular style of development can be very helpful here, as it may be possible to test functions in isolation in order to track down software and hardware bugs.
Choosing the right software and hardware
With the bewildering array of choices and combinations available, developers would be wise to choose hardware and related software tools with some care, based on the anticipated demands of their project. Early research and planning is important, because different development platforms are more or less suited to working with different applications and external hardware. Software support and future development paths also need to be considered, to reduce the risk of relying on software which is abandoned by its developers. Obviously, this more considered approach becomes far more important for projects that may need to scale up to mass production.
Very often, of course, the best IDE to use is the one actually supplied by the development board vendor. For example, look at the case of a programmable touchscreen-controlled bench power supply project based around an Arduino DUE. The DUE is one of the more powerful Arduino boards, and it is based on a 32-bit ARM core microcontroller with 54 digital input/output pins and 12 analogue inputs. This project originally relied almost totally on the standard Arduino IDE. However, the developer eventually turned to a separate visual development tool, EEZ Studio, to handle tasks like designing and animating a graphical user interface on the power supply’s colour touch-screen display, because the Arduino IDE support for this aspect was rather rudimentary.
While the standard IDE tools are often the most suitable, sometimes it is necessary to look further afield for optimised development software. Take the example of a smart window project developed around a TI SimpleLink MCU LaunchPad kit. This project’s goal was to offer a window that was suitable for implementation in homes and offices, which could be dimmed automatically depending on incoming light, or dimmed via a timer, or even by remote control from a mobile app. A sheet of electrochromic film covered the glass window to provide the dimming capability.
The TI SimpleLink range of kits are based around I/O-centric development boards aimed at connectivity-focused applications like building and home automation or Internet of Things (IoT) deployments. The specific board used in this case was a MSP432 with an add-on board for Wi-Fi. The MSP432 board was chosen for its low-cost, extensive I/O connections and ultra-low power consumption - thereby enabling a very long battery lifetime. Battery life was an important consideration because the need to put the controller board as close as possible to the window - with the intention of possibly building this into the frame in the future. This made an external power source impractical, for aesthetic and cost reasons.
While TI LaunchPad kits provide strong development tools based on the popular Eclipse IDE, the developers in this case mainly relied on IBM’s Bluemix hybrid cloud development platform to build their software. They used this platform because it is designed specifically for apps that will remain cloud-connected during operation, and this capability meant that it would be simple to scale up the project to handle many windows. In addition, the developers’ assessment was that Bluemix provided better iOS support at the time, and an iPhone/iPad controller app was a critical part of the project.
The extremely low cost of development kits, combined with the wide choice of development software, means that powerful projects are within almost anyone’s grasp. The real-world project development examples described here illustrate how a little research and planning can avoid potential pitfalls that lie ahead, particularly for projects with more ambitious goals and strong commercial prospects.
About the author:
Mark Patrick is Technical Marketing Manager, EMEA at Mouser Electronics - www.mouser.com