NEW YORK & PARIS, March 26, 2019 – AdaCore today announced the winners of its third annual Make with Ada programming competition for embedded projects. Make with Ada aims to show how the Ada and SPARK language technologies can significantly improve code quality for modern embedded systems without requiring a steep learning curve for developers unfamiliar with these languages. Prizes are awarded to the projects that best meet the overall criteria of software dependability, openness, collaborativeness, and inventiveness.
This year the 1st place prize of $5,000 was awarded to Guillermo Alberto Perez Guillen, a communications and electronics engineer from Mexico, for his PID Light Meter Controller. The goal of the project was to develop a system to measure and control the amount of light that a lamp emits. The project used an STM32F407 Discovery Kit board to run the PID control software, written in Ada. Additional hardware included an NXP Rapid IoT Prototyping Kit for the on-board light sensor, used to calibrate the system, a MOSFET to control the PID power output to the light source (which is beyond the target board’s power handling range), and a light-sensitive resistor used to provide a voltage signal input to the PID controller on the target board.
The 2nd place prize of $2,000, and the Student Prize (an Analog Discovery 2 Pro Bundle), went to Samira Peiris, an electrical and electronic engineering undergraduate from Sri Lanka. His project was an Ada Modbus Analyzer. MODBUS is an open communication protocol for industrial electronic devices. The objective of the project was to create a lightweight, handheld MODBUS-RTU Master device that could easily be used in the field for data logging, troubleshooting and configuring MODBUS enabled devices. The project used a STM32 development board, the GNAT toolchain to develop the code, and a SSD1306 128 x 64 OLED display. In addition to the software, a printed-circuit board was created by hand, and an enclosure was created with a 3-D printer to hold everything.
The 3rd place prize of $1,000 was awarded to Angel Gonzalez and Adrian Martinez from Laboratorio Gluón in Spain for their Low-Cost ECG Pathology Detection with Deep Neural Networks project. The goal was to create a cost-effective prototype device that can detect different heart pathologies. The first part of the project was to obtain and amplify the voltage signals of an electrocardiograph (ECG) so they can be read by a STM32 microcontroller. Once the data is digital, the microcontroller sends it to a Raspberry Pi 3, where the neural network, written in Ada, extracts the parameters and generates a result. The resulting data is then output to a small LCD screen for human analysis and preliminary diagnosis.
“Once again the Make with Ada contest elicited some awesome submissions,” said judge Jack Ganssle of The Ganssle Group. “It was really hard to pick winners, but congratulations to all who entered. The results showed that even with little experience in Ada, teams built complex devices, even implementing a neural network, all on inexpensive microcontrollers.”
“It was an honor to judge these entries, and I was amazed at the quality of the submissions,” said Rich Nass, EVP of Embedded Computing Design. “The selection process was difficult, as so many of them can easily be turned into marketable (and profitable) products.”
“The number of high quality submissions made picking three winners extremely difficult,” said Patrick Rogers, AdaCore Senior Technical Staff. “There were certainly more than three in that category. I was particularly astounded by the degree of difficulty some attempted and the excellent results they achieved, both in the documentation as well as the hardware and software developed.”
The Make with Ada competition ran from October 16, 2018, through February 15, 2019, and attracted a total of 32 submissions. Each entrant was required to design and implement an embedded software project, using Ada and/or SPARK as the principal language technologies. Entrants needed to demonstrate that their system met its requirements and was developed using sound software engineering practices.
Five embedded systems experts served as this year’s competition judges:
- Jack Ganssle, Principal Consultant at The Ganssle Group,
- Rich Nass, Executive Vice-President, Brand Director, Embedded and IoT Franchises, OpenSystems Media,
- Jonas Attertun, Embedded Software Engineer and Winner of the 2017 Make with Ada competition,
- Stéphane Carrez, Senior Software Engineer, Twinlife, and Winner of the 2016 Make with Ada competition, and
- Patrick Rogers, Senior Technical Staff, AdaCore.
The Make with Ada competition is part of an overall AdaCore initiative to foster the growth of Ada and SPARK for developing embedded systems and more generally for developing “software that matters”. Other elements of this initiative include free resources available to students, free software developers and hobbyists, or those who just want to learn more about Ada. These resources include:
- A new interactive Ada and SPARK learning platform (learn.adacore.com)
- Base material, including slides, at the GitHub repository (github.com/adacore)
- Several course videos available on YouTube, and
- A cost-free version of the GNAT toolchain (GNAT community)
- The GNAT Academic Program (GAP), a program to encourage the use of Ada and SPARK in academia
Information about next year’s Make with Ada competition will be available during Q2 2019 at http://www.makewithada.org/.
About Ada and SPARK
Ada is a modern, internationally standardized programming language with a long and successful track record in the development of high-reliability embedded systems. Its strong typing and compile-time checking help catch errors early, when they are easiest and least expensive to correct. The most recent version of the Ada standard, Ada 2012, supports contract-based programming (pre- and postconditions for subprograms), which in effect embeds the software’s low-level requirements as checkable assertions in the source code. In critical systems where testing alone might not provide sufficient confidence, the SPARK subset of Ada supports mathematics-based assurance that relevant program properties are met (for example, the absence of run-time errors such as buffer overflow). SPARK can be introduced incrementally into a project, and contracts can be verified either statically (by the SPARK proof engine) or dynamically (with run-time checks).
Founded in 1994, AdaCore supplies software development and verification tools for mission-critical, safety-critical and security-critical systems. Four flagship products highlight the company’s offerings:
- The GNAT Pro development environment for Ada, a complete toolset for designing, implementing, and managing applications that demand high reliability and maintainability,
- The CodePeer advanced static analysis tool, an automatic Ada code reviewer and validator that can detect and eliminate errors both during development and retrospectively on existing software,
- The SPARK Pro verification environment, a toolset based on formal methods and oriented toward high-assurance systems, and
- The QGen model-based development tool suite for safety-critical control systems, providing a qualifiable and customizable code generator and static verifier for Simulink® and Stateflow® models, and a model-level debugger.
Over the years customers have used AdaCore products to field and maintain a wide range of critical applications in domains such as commercial avionics, automotive, railway, space, military systems, air traffic management/control, medical devices, and financial services. AdaCore has an extensive and growing worldwide customer base; see www.adacore.com/industries/ for further information.
AdaCore products are open source and come with expert online support provided by the developers themselves. The company has North American headquarters in New York and European headquarters in Paris. www.adacore.com/