AdaCore announced the winners of its fifth annual Make with Ada programming competition for embedded projects. The contest ran from July 31, 2020, through January 31, 2021, and attracted 173 participants from all over the world.
The competition’s goal is to design and implement an embedded software project where Ada and/or SPARK are the principal language technologies. Entrants need to demonstrate that their system meets its requirements and is developed using sound software engineering practices. Projects are judged based on project logs. Prizes are awarded to those projects that best meet the overall criteria of software dependability, openness, collaborativeness, inventiveness, and “buzz factor” for the technology community in general.
“After finding out about the existence of Ada firmware for the Crazyflie 2.0 nano drone, I started testing it and was able to understand the core functionalities within a couple of weeks…I plan to continue my drone firmware implementations with Ada and make them open source for everyone who has the passion.”
This year, the 1st place prize of $2,000 goes to Tharindu Suraj Liyanage, Founder, and CEO of UAV-based startup SRQ Robotics, for his Autonomous Crazyflie with ToF Sensors. The Crazyflie drone has multiple sensors that make it fly, but none can identify obstacles or the actual distance from the ground. The project’s goals were to integrate Time of Flight sensors within the existing Ada/SPARK drone firmware from AdaCore and implement autonomous features such as altitude holding.
“I have been implementing custom firmware for drones for the past five years,” said Mr. Liyanage. “After finding out about the existence of Ada firmware for the Crazyflie 2.0 nano drone, I started testing it and was able to understand the core functionalities within a couple of weeks. The simplicity of the Ada firmware allowed me to implement my own functions, and the available Ada libraries enabled me to integrate different types of sensors within the drone. I plan to continue my drone firmware implementations with Ada and make them open source for everyone who has the passion.”
The Student Prize of $1,000 was awarded to Ahmed Hamdy, an MSc. Computer & Systems Engineering student at Universiti Teknologi Malaysia in Kuala Lumpur, Malaysia, for his Ada Accelerometer Driver + Stable Nerve Game. He used the Ada language to write an accelerometer driver for LSM303AGR on a BBC:MicroBit v1.5, then used that driver to make a small game that challenges the player to keep the MicroBit in an almost flat position where acceleration along X and Y axes is close to zero.
Ten Finalists also received $600 each. Notable submissions include:
- Digital Blood Pressure Monitor
- Gas Leakage Monitor & Ventilation System for Confined Space
- Smart Entry Gate with Radar and ADA
- City Pollution Monitoring Device (CPMD)
“This year’s crop of Make with Ada projects included outstanding contributions that took advantage of Ada’s unique capabilities to help programmers deliver high-quality software,” said Bill Wong, co-judge and Senior Technology Editor at Electronic Design. “Projects touched upon almost every aspect of embedded applications, including drone software, showing that Ada and SPARK are applicable everywhere.”
“This year’s crop of Make with Ada projects included outstanding contributions that took advantage of Ada’s unique capabilities to help programmers deliver high-quality software”
“We were pleased to see more student submissions this year,” said Fabien Chouteau, AdaCore Software Engineer and author of the Make with Ada blog post series. “So many life skills can be learned from these types of competitions. We hope that early exposure to Ada and SPARK’s sound software engineering principles will provide all of our entrants with foundational skills that they can use throughout their professional careers.”
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, hobbyists, or those who just want to learn more about Ada. These resources include:
- An 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
Follow @adaprogrammers on Twitter for information about future Ada and SPARK programming competitions.
About Ada and SPARK
Ada is a modern, internationally standardized programming language with a long and successful track record in developing 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).