Software/Hardware Solution Facilitates IoT System Development

Recon Industrial Controls has announced LabRecon, a software and hardware product that enables users to create rich graphical interfaces for “remote” IoT or “local” measurement and control applications. A drag-and-drop panel builder and graphical programming environment allows one to easily build an interface and create the operating logic for any project. A USB connected “Breadboard Experimentor” circuit board provides the measurement and control link.
The product features a “Measurement Wizard” that lets you choose from a built-in database of over 500 commercially available sensors to automatically configure sensor configurations. The wizard also provides circuits with component values for voltage and current measurements. LabRecon’s “Breadboard Experimentor” incorporates a solder-less breadboard to quickly build interface circuitry to sensors or output devices. The on-board LabRecon chip provides many I/O options including 8 12-bit analog, frequency and digital inputs. Outputs comprise PWM, servo, frequency and stepper motor signals. Pins can also be configured to support 24-bit ADCs, 12 or 16-bit DACs and port expanders. As an alternative to the Breadboard Experimentor, LabRecon chips are available in DIP packages, which provide the same I/O functionality.

The software’s graphical programming feature uses Drag-and-drop functions, which can be wired together, to add analysis and control functionality to a project. Algorithms can be further expanded using the “code link” interface to text-based languages such as Python, Java, C#, Visual Basic and so on. LabRecon also comprises a server to allow access of the created GUI by computers or mobile devices. Furthermore, emails and text messages can be sent periodically or upon events. The server also includes a MQTT broker to allow MQTT clients to share data with the software. Even without Breadboard Experimentor or the LabRecon chip, the software has powerful features that can be used for free. Such features include simulation, the Measurement Wizard and a serial monitor/terminal.

A Kickstarter campaign is underway for the LebRecon product. The Kickstarter link is posted on www.LabRecon.com

Recon Industrial Controls | www.labrecon.com

 

Embedded File System Adds RAID5 Support

SEGGER Microcontroller has added a RAID5 option to its emFile embedded file system to maximize data integrity and reliability. RAID5 delivers a high level of data integrity by providing an additional layer of fail-safety on top of the CRC and/or error correction used by the underlying driver or storage medium. With RAID5, the storage device is divided into several partitions, one of which holds parity information allowing data recovery in case of a partition fail. It can be used on any storage medium and the parity information can be stored on the same storage device (in a separate partition) or on a separate device.
The add-on has a tiny memory footprint, typically using about 1 KB of RAM and 3 KB of flash memory. RAID5 is available as an additional option and as an alternative to RAID1. RAID1 has been in the market for many years, and proven its value over and over, but does use 50% of the raw storage capacity for data security. The amount of storage used by RAID5 is configurable, typically using 5% or less. Being part of the emFile storage layer, the new add-on can also be used for USB Mass storage as well as other applications.

SEGGER Microcontroller | www.segger.com

GPS Guides Robotic Car

Arduino UNO in Action

In this project article, Raul builds a robotic car that navigates to a series of GPS waypoints. Using the Arduino UNO for a controller, the design is aimed at robotics beginners that want to step things up a notch. In the article, Raul discusses the math, programming and electronics hardware choices that went into this project design.

By Raul Alvarez-Torrico

In this article I lay out a basic differential drive robotic car for waypoint autonomous navigation using the Global Positioning System (GPS). The robotic car receives a list of GPS coordinates, and navigates to waypoints in their given order. To understand how it works, I will discuss concepts about GPS, a simple approach to implement autonomous navigation using GPS, the hardware required for the task, how to calculate navigation vectors using the “Haversine Formula” and the “Forward Azimuth Formula” and a simple implementation of a moving average filter for filtering the GPS coordinate readings. I also discuss a simple approach to navigation control by minimizing the robotic car’s distance and heading error with respect to the goal.

This project is aimed at beginners with basic robotic car experience—that is, line followers, ultrasonic obstacle avoiders and others who now want to try something a little more complex—or anyone who is interested in the subject.

Figure 1 shows the main components of the system. The GPS receiver helps to calculate the distance from the robotic car to the goal. With the aid of a digital compass, the GPS also helps to determine in which direction the goal is located. Those two parameters—distance and direction—give us the navigation vector required to control the robotic car toward the goal. I used a four-wheel differential drive configuration for the car, which behaves almost the same as a two-wheel differential drive. The code provided with the project should work well with both configurations.

Figure 1
GPS Robotic Car block diagram

To calculate the distance to the goal, I used the Haversine Formula, which gives great-circle distances between two points on a sphere from their longitudes and latitudes. The Forward Azimuth Formula was used to calculate the direction or heading. This formula is for the initial bearing which, if followed in a straight line along a great-circle arc, will take you from the start point to the end point. Both parameters can be calculated using the following known data: The goal’s GPS coordinate, the robotic car’s coordinate obtained from the GPS receiver and the car’s heading with respect to North obtained from the digital compass.

The robotic car constantly recalculates the navigation vector and uses the obtained distance and heading to control the motors to approach the goal. I also put a buzzer in the robotic car to give audible feedback when the robotic car reaches the waypoints.

HARDWARE

As shown in Figure 1, I used an Arduino UNO board as the main controller. I chose Arduino because it’s incredibly intuitive for beginners, and it has an enormous constellation of libraries. The libraries make it easy to pull off reasonably advanced projects, without excessive details about the hardware and software drivers for sensors and actuators.

The GPS receiver I chose for the task is the HiLetgo GY-GPS6MV2 module, based on the U-blox NEO-6M chip. The digital compass is the GY-271 module, based on the Honeywell HMC5883L chip. Both are low-cost and ubiquitous with readily available Arduino libraries. The U-blox NEO-6M has a UART serial communication interface, and the HMC5883L works with the I2C serial protocol. To avoid interference, the compass should be placed at least 15 cm above the rest of the electronics.

The DC motors are driven using the very popular L298N module, based on the STMicroelectronics L298N dual, full-bridge driver. It can drive two DC motors with a max current of 2 A per channel. It can also drive two DC motors in each channel if the max current specification is not surpassed—which is what I’m doing with the four-wheel drive chassis I used for my prototype. The chassis has a 30 cm × 20 cm aluminum platform, four generic 12 V DC 85 rpm motors and wheels that are 13 cm in diameter. But almost any generic two-wheel or four-wheel drive chassis can be used.

Figure 2
Circuit diagram for the Robotic Car project

For supplying power to the robotic car, I used an 11.1 V, 2,200 mA-hour (LiPo) Lithium-Polymer battery with a discharge rate of 25C. For my type of chassis, a battery half that size should also work fine. Figure 2 shows the circuit diagram for this project, and Figure 3 shows the finished car.

Figure 3
Completed GPS Robotic Car

GLOBAL POSITIONING SYSTEM

The Global Positioning System (GPS) is a global navigation satellite system owned by the United States government. It provides geolocation and time information to any GPS receiver on the surface of the Earth, whenever it has unobstructed line of sight to at least four GPS satellites—the more the better [1]. GPS receivers typically can provide latitude and longitude coordinates with an accuracy of about 2.5 m to 5 m under ideal conditions, such as good sky visibility and lots of visible satellites. My robotic car is programmed with one or more waypoints given by latitude and longitude coordinates, and the car’s GPS receiver gives its actual position in the same type of coordinates.  …

Read the full article in the June 347 issue of Circuit Cellar
(Full article word count: 3773 words; Figure count: 8 Figures.)

Don’t miss out on upcoming issues of Circuit Cellar. Subscribe today!

Note: We’ve made the October 2017 issue of Circuit Cellar available as a free sample issue. In it, you’ll find a rich variety of the kinds of articles and information that exemplify a typical issue of the current magazine.

New Certified Service Regulates V2X-Connected Vehicles

INTEGRITY Security Services (ISS), a subsidiary of Green Hills Software, has announced the ISS Misbehavior Authority Service (MAS), which is the first MA Service for the US V2X ecosystem. The ISS MAS will begin by serving the US Department of Transportation’s Connected Vehicle Pilots already subscribing to the ISS Certificate Management Service (CMS) and all other ISS CMS Subscribers. As the de facto US national SCMS Manager, ISS continues to ensure the US V2X ecosystem is secure and interoperable, according to ISS.

With the ISS MAS, CV-Pilots and ISS CMS Subscribers will be able to begin identifying vehicles for misbehavior and removing them from their networks. Device manufacturers and all ISS CMS Subscribers should contact ISS by registering to discuss how to get their devices ISS CMS-certified, enabled with the ISS-approved MAS OBU client and begin testing. Developers who are are running a DSRC and/or C-V2X AV or CV-Pilot and have potential misbehavior data they want analyzed can register with the service.

The ISS MAS extends the initial work in misbehavior detection performed by ISS, CAMP and USDOT. The ability to identify vehicles that are not sending correct V2X messages and to remove them from the connected vehicle ecosystem is an important security requirement to maintain trust in the ecosystem. The ISS MAS provides this capability on a scalable and efficient national level. As part of this, ISS will be publishing its misbehavior detection criteria, reporting format and MAS APIs for OBU and RSU vendors to use with their compliant systems.

INTEGRITY Security Services | www.ghsiss.com

 

 

Suite of Certification of Evidence Rolls for Wind River Cert RTOS

Wind River has announced the release of a full suite of automotive, avionics, and industrial safety certification evidence for the latest version of its VxWorks Cert Edition real-time operating system (RTOS). The RTOS for safety-critical applications is designed and developed to the highest achievable safety levels accepted by worldwide certification authorities.

VxWorks solutions have been used in more than 550 safety certification programs by more than 350 customers across industries. This most recent suite of certification evidence builds on Wind River’s 20-plus years of experience in safety certification software products, and demonstrates the company’s commitment to industry-leading safe, secure, and reliable solutions.

Like the RTOS itself, the commercial off-the-shelf (COTS) evidence is designed for reuse and portability with long-term cost-of-ownership benefits for safety-critical projects, including those specifically targeting compliance to the following standards:

  • Automotive: ISO 26262 Automotive Safety Integrity Level (ASIL) D backed by certificates issued by independently accredited certification authority TÜV SÜD
  • Avionics: DO-178C Design Assurance Level (DAL) A
  • Industrial: IEC 61508 Safety Integrity Level (SIL) 3 backed by certificates issued by independently accredited certification authority TÜV SÜD

In addition to VxWorks Cert Edition, the Wind River safety portfolio includes the VxWorks 653 integrated modular avionics (IMA) platform.

Wind River | www.windriver.com

Tool Revision Adds Arm Cortex-M Trace and Debug Support

Lauterbach has announced a new revision of their debug and trace probes for Cortex-M based devices. As Cortex-M processors are becoming clocked at greater and greater frequencies, the trace port clocks must also increase to keep pace and prevent loss of valuable data. To provide developers with a more future-proof solution to this perpetual cycle of increasing frequency, the new High-Speed Whisker cables are designed to work with trace clock frequencies of up to 200 MHz across trace ports ranging from 1-bit to 4-bits wide, giving a total trace port bandwidth of up to 200 MB/s.
With increased trace clock speeds comes an increased risk of signal misalignment when parallel trace pins are sampled. The High-Speed Whisker cable includes the innovative auto-focus technology that not only detects the trace port clock frequency but can also adjust the optimum sampling points of each pin to negate any alignment issues in the timing of the data signals. The points where each signal contains valid data, or data eyes, for each pin can be displayed in the TRACE32 PowerView software.

Detailed information about jitters, rising and falling edges is also displayed and users are provided with the capability of manually adjusting the sampling point of each signal. Once configured, these sampling points may be saved and recalled for future use of the tools on this target. The High-Speed Whisker cable will start shipping in January 2019 for TRACE32 µTrace and CombiProbe. Customers who purchased these units during 2018 may request a free upgrade.

Lauterbach | www.lauterbach.com

 

 

Device Silences TV Commercials

Arduino-Controlled Solution

Ever wish you could block out those annoying TV ads? Tommy describes in detail how he built a device for easily muting the audio of commercials. His project relies on three modules: a UHF radio receiver, an IR module and an Arduino Trinket board.

By Tommy Tyler

Does your blood start to boil as soon as one of those people on TV tries to sell you precious metals, a reverse mortgage, a miraculous kitchen gadget or an incredible weight reduction plan? Do you want to climb the wall the next time someone says “But wait! Order now and get a second one free . . .“? Believe it or not, there was a time long ago when TV commercials were actually entertaining. That was before commercial breaks evolved from 30 second or one-minute interruptions into strings of a half-dozen or more advertisements linked end-to-end for three to five minutes—sometimes with the exact same commercial shown twice in the same group! What is perhaps most annoying is the relentless repetition.

Historically, all the feeble attempts at TV commercial elimination have been applied to recordings on VCRs or DVRs. Anyone who watches programming that’s best enjoyed when viewed in real-time—news, weather and sports—has probably wished at one time or another for a device that can enable them to avoid commercials. They long for a device that could be inserted between their TV and the program source—whether it be cable, satellite or an OTA antenna—to instantly recognize a commercial and blank the screen, change channels or somehow make it go away. The technology for doing that does exist, but you’ll probably never find it applied to consumer products. Since funding of the entire television broadcast industry is derived from paid advertisements, any company that interferes with that would face enormous opposition and legal problems.

After many years of searching the Internet I’ve concluded it is wishful thinking to expect anyone to market a product that automatically eliminates commercials in real-time. I decided to work instead on the next-best approach I could think of: A device that makes it quick and easy to minimize the nuisance of commercials with the least amount of manual effort possible. This article describes a “Kommercial Killer (KK)” that is controlled by a small radio transmitter you carry with you so it’s easily and instantly accessible. No scrambling to find that clumsy infrared remote control and aim it at the TV when a commercial starts. Just press the personal button that’s always with you, even while remaining warm and cozy curled up under a blanket.

Kommercial Killer

The KK operates from anywhere in the home, even from another room completely out of sight of the TV and can be triggered at the slightest sound of an advertisement, political message, solicitation or perhaps even a telephone call. It works with any brand and model TV without modifications or complicated wiring connections by using the TV’s infrared remote control system. If you get a new TV, its remote control can easily teach KK a different MUTE command. Don’t worry about leaving the room with the TV muted. KK automatically restores audio after a certain amount of time. The default time is three minutes, the length of a typical commercial break, but you can easily configure this to any amount of time you prefer. And when you want to restore audio immediately—for example if you have muted non-commercial program material by mistake or if a commercial runs shorter than expected—just press your transmitter button again.

Figure 1
Schematic of the Kommercial Killer

KK is built mainly from three commercially available modules that do all the heavy lifting (Figure 1). The first module is a miniature UHF radio receiver. The second is an infrared module that can learn and mimic the TV mute signal. The third module is an Arduino Trinket board that provides commercial break timing and overall control. This article explains how to load a small program into that module without needing any special equipment or training, and even if you have absolutely no previous experience with Arduino devices.

The three modules are small and inexpensive ($7 to $10 each) and with just eight additional components KK can be built on an open perf board, strip board or enclosed in a 6-inch3 box. It is powered from the same USB Micro cable you use to load or modify the Arduino program, or from any other available USB port or 5 V charger.

UHF Receiver Module

The best UHF radio transmitters and receivers are all manufactured in China, and there are no major distributors in the U.S. So, order this item early and be prepared to wait about 20 days for delivery. After sampling many different remote controls to evaluate performance, quality, cost and shipment, I selected a product manufactured by the Shenzhen YK Remote Control Electronics Company, whose products are sold and shipped through AliExpress. Shenzhen remote controls use two types of receivers. . …

Read the full article in the May 334 issue of Circuit Cellar

After you’ve read the full article, don’t forget to go the the Article Materials Page for useful links and information.
Don’t miss out on upcoming issues of Circuit Cellar. Subscribe today!
Note: We’ve made the October 2017 issue of Circuit Cellar available as a free sample issue. In it, you’ll find a rich variety of the kinds of articles and information that exemplify a typical issue of the current magazine.

STM32 Software Brings Alexa Tech to Simple Connected Objects

The X-CUBE-AVS software package from STMicroelectronics enables Amazon’s Alexa Voice Service (AVS) to run on STM32 microcontrollers, allowing simple connected objects such as smart appliances, home-automation devices, and office products to support advanced conversational user interfaces with Cloud-based intelligence like automatic speech recognition and natural-language understanding.

As an expansion package for the STM32Cube software platform, X-CUBE-AVS contains ready-to-use libraries and open routines that accelerate porting the AVS SDK (Software Development Kit) to the microcontroller. With application samples also included, it abstracts developers from the complex software layers needed to host AVS on an embedded device. Being the first such package to cater specifically for microcontrollers, whereas AVS development usually targets more power-hungry and expensive microprocessors, X-CUBE-AVS makes Alexa technology accessible to a wider spectrum of developers and projects.
The software handles low-layer communication and connection to AVS servers, provides application-specific services, and encapsulates the AVS protocol to ease application implementation. Connection management includes a persistent-token mechanism for directly restoring connection losses without repeated user authentication. A software test harness is provided for endurance testing, which can simulate events such as network disconnection to facilitate robustness testing and validation of the user application.

X-CUBE-AVS comes with a demonstration example for the STM32F769 Discovery Kit (order code: 32F769IDISCOVERY), which shows how to connect a simple smart-speaker to AVS, leveraging the board-configuration interface included in the software. X-CUBE-AVS can be used with other STM32F7 microcontrollers, or any STM32 device with adequate CPU performance and memory to run the AVS SDK.

X-CUBE-AVS is available now to download, free of charge, from http://www.st.com/x-cube-avs

STMicroelectronics | www.st.com

Linux and Coming Full Circle

Input Voltage

–Jeff Child, Editor-in-Chief

JeffHeadShot

In terms of technology, the line between embedded computing and IT/desktop computing has always been a moving target. Certainty the computing power in small embedded devices today have vastly more compute muscle than even a server of 15 years ago. While there’s many ways to look at that phenomena, it’s interesting to look at it through the lens of Linux. The quick rise in the popularity of Linux in the 90s happened on the server/IT side pretty much simultaneously with the embrace of Linux in the embedded market.

I’ve talked before in this column about the embedded Linux start-up bubble of the late 90s. That’s when a number of start-ups emerged as “embedded Linux” companies. It was a new business model for our industry, because Linux is a free, open-source OS. As a result, these companies didn’t sell Linux, but rather provided services to help customers create and support implementations of open-source Linux. This market disruption spurred the established embedded RTOS vendors to push back. Like most embedded technology journalists back then, I loved having a conflict to cover. There were spirited debates on the “Linux vs. RTOS topic” on conference panels and in articles of time—and I enjoyed participating in both.

It’s amusing to me to remember that Wind River at the time was the most vocal anti-Linux voice of the day. Fast forward to today and there’s a double irony. Most of those embedded Linux startups are long gone. And yet, most major OS vendors offer full-blown embedded Linux support alongside their RTOS offerings. In fact, in a research report released in January by VDC Research, Wind River was named as the market leader in the global embedded software market for both its RTOS and commercial Linux segments.

According the VDC report, global unit shipments of IoT and embedded OSs, including free/non-commercial OSs, will grow to reach 11.1 billion units by 2021, driven primarily by ECU-targeted RTOS shipments in the automotive market, and free Linux installs on higher-resource systems. After accounting for systems with no OS, bare-metal OS, or an in-house developed OS, the total yearly units shipped will grow beyond 17 billion units in 2021 according to the report. VDC research findings also predict that unit growth will be driven primarily by free and low-cost operating systems such as Amazon FreeRTOS, Express Logic ThreadX and Mentor Graphics Nucleus on constrained devices, along with free, open source Linux distributions for resource-rich embedded systems.

Shifting gears, let me indulge myself by talking about some recent Circuit Cellar news—though still on the Linux theme. Circuit Cellar has formed a strategic partnership with LinuxGizmos.com. LinuxGizmos is a well-establish, trusted website that provides up-to-the-minute, detailed and insightful coverage of the latest developer- and maker-friendly, embedded oriented chips, modules, boards, small systems and IoT devices—and the software technologies that make them tick. As its name in implies, LinuxGizmos features coverage of open source, high-level operating systems including Linux and its derivatives (such as Android), as well as lower-level software platforms such as OpenWRT and FreeRTOS.

LinuxGizmos.com was founded by Rick Lehrbaum—but that’s only the latest of his accolades. I know Rick from way back when I first started writing about embedded computing in 1990. Most people in the embedded computing industry remember him as the “Father of PC/104.” Rick co-founded Ampro Computers in 1983 (now part of ADLINK), authored the PC/104 standard and founded the PC/104 Consortium in 1991, created LinuxDevices.com in 1999 and guided the formation of the Embedded Linux Consortium in 2000. In 2003, he launched LinuxGizmos.com to fill the void created when LinuxDevices was retired by Quinstreet Media.

Bringing things full circle, Rick says he’s long been a fan of Circuit Cellar, and even wrote a series of articles about PC/104 technology for it in the late 90s. I’m thrilled to be teaming up with LinuxGizmos.com and am looking forward to combing our strengths to better serve you.

This appears in the April (333) issue of Circuit Cellar magazine

Not a Circuit Cellar subscriber?  Don’t be left out! Sign up today:

Software Aids STM32 MCU System Development

STMicroelectronics has extended its STM32 software ecosystem with a Sigfox package that simplifies development and gives extra flexibility to connect Internet-of-Things (IoT) devices to long-range, low-power wireless networks. The new X-CUBE-SFOX package is ready to use with ST’s B-L072Z-LRWAN1 Discovery Kit, which is already LoRa enabled through I-CUBE-LRWAN embedded software. Developers can now work with either of these established Low-Power Wide Area Network (LPWAN) technologies on the same hardware, and create products that can use the two protocols individually or alternatively.

The Discovery Kit features the Murata CMWX1ZZABZ-091 module powered by an STM32L072 microcontroller, a sub-GHz radio transceiver SX1276 from Semtech, and is expandable via Arduino headers to add sensors or other IoT-device functions and capabilities. X-CUBE-SFOX contains a complete set of Sigfox libraries and application examples for the STM32L0, and can be ported to other microcontrollers in the STM32 family.

With over 700 STM32 variants, from ultra-low-power to high-performance lines, developers can leverage unrivaled flexibility to optimize the performance and features of IoT devices that take advantage of Sigfox services including basic connectivity, radio recognition, and GPS-free location. The software’s low memory footprint and efficient CPU utilization minimize demand for system resources, helping to lower bill-of-materials (BOM) costs and power consumption.

The X-CUBE-SFOX software can be downloaded free of charge from www.st.com/x-cube-sfox. The B-L072Z-LRWAN1 Discovery Kit is available now, priced $46.50.

STMicroelectronics | www.st.com

Circuit Cellar and LinuxGizmos.com Form Strategic Partnership

Partnership offers an expanded technical resource for embedded and IoT device developers and enthusiasts

Today Circuit Cellar is announcing a strategic partnership with LinuxGizmos.com to offer an expanded resource of information and know-how on embedded electronics technology for developers, makers, students and educators, early adopters, product strategists, and technical decision makers with a keen interest in emerging embedded and IoT technologies.

The new partnership combines Circuit Cellar’s uniquely in depth, “down-to-the-bits” technical articles with LinuxGizmos.com’s up-to-the-minute, detailed, and insightful coverage of the latest developer-  and maker-friendly, embedded oriented chips, modules, boards, small systems, and IoT devices, and the software technologies that make them tick. Additionally, as its name implies, LinuxGizmos.com’s coverage frequently highlights open source, high-level operating systems including Linux and its derivatives (e.g. Android), as well as lower-level software platforms such as OpenWRT and FreeRTOS.

Circuit Cellar is one of the electronics industry’s most highly technical information resources for professional engineers, academics, and other specialists involved in the design and development of embedded processor- and microcontroller-based systems across a broad range of applications. It gets right down to the bits and bytes and lines of code, at a level its readers revel in. Circuit Cellar is a trusted brand engaging readers every day on its website, each week with its newsletter, and each month through Circuit Cellar magazine’s print and digital formats.

LinuxGizmos.com is a free-to-use website that publishes daily news and analysis on the hardware, software, protocols, and standards used in new and innovative embedded, mobile, and Internet of Things (IoT) devices.  The site is lauded for its detailed and insightful, timely coverage of newly introduced single board computers (SBCs), computer-on-modules (COMs), system-on-chips (SoCs), and small form factor (SFF) systems, along with their software platforms.

“The synergies between LinuxGizmos and Circuit Cellar are great and I’m excited to see the benefits of this partnership passed on to our combined audience,” said Jeff Child, Editor-in-Chief, Circuit Cellar. “LinuxGizmos.com has the kind of rich, detail-oriented structure that I’m a fan of. Over the many years I’ve been following the site, I’ve relied on it as an important information resource, and its integrity has always impressed me.”

“I’ve been a fan of Circuit Cellar magazine since it was first launched, and wrote a series of articles for it in the late 90s about PC/104 embedded modules,” added Rick Lehrbaum, founder and Editor-in-Chief of LinuxGizmos.com. “I’m thrilled to see LinuxGizmos become associated with one of the computing industry’s pioneering publications.”

“I see this partnership as a perfect way to enhance both the Circuit Cellar and LinuxGizmos brands as key information platforms,” stated KC Prescott, President, KCK Media Corp. “In this era where there’s so much compelling technology innovation happening in the industry, our combined strengths will help inform and inspire embedded systems developers.”

Read Announcement on LinuxGizmos.com here:

Circuit Cellar and LinuxGizmos.com join forces

The Future of Test-First Embedded Software

The term “test-first” software development comes from the original days of extreme programming (XP). In Kent Beck’s 1999 book, Extreme Programming Explained: Embrace Change (Addison-Wesley), his direction is to create an automated test before making any changes to the code.

Nowadays, test-first development usually means test-driven development (TDD): a well-defined, continuous feedback cycle of code, test, and refactor. You write a test, write some code to make it pass, make improvements, and then repeat. Automation is key though, so you can run the tests easily at any time.

TDD is well regarded as a useful software development technique. The proponents of TDD (including myself) like the way in which the code incrementally evolves from the interface as well as the comprehensive test suite that is created. The test suite is the safety net that allows the code to be refactored freely, without worry of breaking anything. It’s a powerful tool in the battle against code rot.

To date, TDD has had greater adoption in web and application development than with embedded software. Recent advances in unit test tools however are set to make TDD more accessible for embedded development.

In 2011 James Grenning published his book, Test Driven Development for Embedded C (Pragmatic Bookshelf). Six years later, this is still the authoritative reference for embedded test-first development and the entry point to TDD for many embedded software developers. It explains how TDD works in detail for an unfamiliar audience and addresses many of the traditional concerns, like how will this work with custom hardware. Today, the book is still completely relevant, but when it was published, the state-of-the art tools were simple unit test and mocking frameworks. These frameworks require a lot of boilerplate code to run tests, and any mock objects need to be created manually.

In the rest of the software world though, unit test tools are significantly more mature. In most other languages used for web and application development, it’s easy to create and run many unit tests, as well as to create mock objects automatically.
Since 2011, the current state of TDD tools has advanced considerably with the development of the open-source tool Ceedling. It automates running of unit tests and generation of mock objects in C applications, making it a lot easier to do TDD. Today, if you want to test-drive embedded software in C, you don’t need to roll-your-own test build system or mocks.

With better tools making unit testing easier, I suspect that in the future test-first development will be more widely adopted by embedded software developers. While previously relegated to the few early adopters willing to put in the effort, with tools lowering the barrier to entry it will be easier for everyone to do TDD.
Besides the tools to make TDD easier, another driving force behind greater adoption of test-first practices will be the simple need to produce better-quality embedded software. As embedded software continues its infiltration into all kinds of devices that run our lives, we’ll need to be able to deliver software that is more reliable and more secure.

Currently, unit tests for embedded software are most popular in regulated industries—like medical or aviation—where the regulators essentially force you to have unit tests. This is one part of a strategy to prevent you from hurting or killing people with your code. The rest of the “unregulated” embedded software world should take note of this approach.

With the rise of the Internet of things (IoT), our society is increasingly dependent on embedded devices connected to the Internet. In the future, the reliability and security of the software that runs these devices is only going to become more critical. There may not be a compelling business case for it now, but customers—and perhaps new regulators—are going to increasingly demand it. Test-first software can be one strategy to help us deal with this challenge.


This article appears in Circuit Cellar 318.


Matt Chernosky wants to help you build better embedded software—test-first with TDD. With years of experience in the automotive, industrial, and medical device fields, he’s excited about improving embedded software development. Learn more from Matt about getting started with embedded TDD at electronvector.com.

Virtual Software Development for Embedded Developers

Embeddetech will launch a Kickstarter campaign on June 20 for its Virtuoso software. Virtuoso is a powerful virtual device framework intended for custom electronics designers. With it, you can virtualize embedded systems. This means that firmware application developers can drag-and-drop commonly used components (e.g., LEDs, touch screens, and keypads) or develop new components from scratch and then start developing applications. With Virtuoso, a fully functional replica of the hardware accelerates firmware development while the hardware is developed in parallel.EmbeddedTech - Virtuoso

In early 2017, Embeddetech plans to bring photo-realistic, real-time, 3-D virtualization to embedded software development using Unreal Engine, which is a powerful game engine developed by Epic Games. Embeddetech has developed a second framework which adapts Unreal Engine to Microsoft’s .NET Framework, allowing business applications to leverage the power of the modern 3-D game development workflow.

Source: Embeddetech

Imperas ARMv8 Support Advances Embedded Software Development

Imperas Software recently announced the availability of models and virtual platforms for the Cortex-A72 ARMv8 processors (in addition to the earlier models). Now the Imperas Open Virtual Platforms (OVP) processor model library comprises more than 160 models across a wide range of IP vendors. More than 40 ARM cores—including the Cortex-A, Cortex-R, and Cortex-M families—are supported.

The Imperas Cortex-A72 ARM processor models are available in single-core, multi-core, and multi-cluster configurations enabling high-performance simulations of platforms ranging from simple single cores to many core systems. Imperas also offers a model of the ARM GICv3 interrupt controller.

Also available are Extendable Platform Kits (EPKs)—which are virtual platforms of the target devices—for ARMv8 processor cores running Linux. Available on the OVP website, the EPKs enable you to run high-speed simulations of ARM-based SoCs and platforms on any suitable PC. You can extend and customize the functionality of the virtual platform. The platform and the peripheral models are open source.

Note that OVP models also work with the Imperas advanced tools for multicore software development, analysis, verification, and debugging, including M*SDK advanced software development solutions and key tools for hardware-dependent software development. The tools use the Imperas SlipStreamer patent-pending binary interception technology. SlipStreamer enables the analytical tools to operate without modification or instrumentation of the software source code.

Source: Imperas Software

Second Gen of Open Virtual Platforms APIs

Imperas recently released of the second generation of the Open Virtual Platforms (OVP) APIs for building virtual platforms, additional Fast Processor Models, new models for popular peripherals, and new Extendable Platform Kits (EPKs). Open Virtual Platforms is a website for the OVP APIs, for the OVP models and platforms, for the OVPsim simulator, and for community discussion of virtual platforms on the OVP Forum. Publicly available and not proprietary, the models and platforms are available under the Apache Open Source License.

What’s new:

  • Support in the OVP APIs for unlimited hierarchy in virtual platforms
  • Support in the OVP APIs for virtualized passing of packets between peripheral models
  • ARC EM6 model
  • SPARCv8 model (developed by Friedrich Alexander University)
  • CAN, Ethernet, and USB models
  • Altera Cyclone III Nios II Linux and Cyclone V HPS Cortex-A9MPx2 Linux EPKs
  • Freescale Kinetis Cortex-M4 MQX and Vybrid Cortex-A5 MQX EPKs
  • Xilinx MicroBlaze ML505 Linux

With the ARC, ARM, and SPARC Fast Processor Models, 150 CPU models are now available. The performance for these models under a typical load is hundreds of millions of instructions per second, with peak performance of billions of instructions per second. The library of fast processor models includes models of ARM processors from the ARMv4 through the ARMv8 architecture, a complete set of MIPS models, plus models of Altera Nios II, ARC, PowerPC, Renesas, SPARC, and Xilinx MicroBlaze cores. Models are available with both C (OVP) interface and a C++ (SystemC) interfaces.

EPKs are designed to help accelerate embedded software development, debug, and test. They are virtual platforms (simulation models), including processor models plus peripheral models necessary to boot an operating system (OS) or run bare metal applications. The platform and peripheral models included in the EPKs are open source so you can easily add new models to the platform as well as modify the existing peripheral models. The example OS and applications are also included.

OVP models work with both the OVPsim and the Imperas simulators, including the QuantumLeap parallel simulation accelerator. OVPsim is used for academic and other noncommercial users (over 1,000 university departments current subscribe to the OVP website), while the Imperas products are for commercial users. Imperas M*SDK includes the OVP model library, iGen for model development, support for heterogeneous, multiprocessor/multicore processors, a comprehensive Verification, Analysis, and Profiling (VAP) tool set, plus an advanced three-dimensional (temporal, spatial, and abstraction) debug solution, 3Debug, for heterogeneous multicore processor, peripheral, and embedded software debug. The VAP tool suite contains more than 50 tools supporting hardware-dependent software development, including OS and CPU-aware tracing (instruction, function, task, event), profiling, code coverage and memory analysis. The Imperas SlipStreamer patent-pending binary interception technology enables these analytical tools to operate without any modification or instrumentation of the software source code (i.e., the tools are completely nonintrusive).

Source: Imperas