Ada and Spark on ARM Cortex-M – A Tutorial with Arduino and Nucleo Examples

Ada crashes the Arduino party: cheers, nitpicks, and a rant at ARM's missing pieces

TLDR: A new tutorial shows how to run safer Ada/SPARK code on Arduino/Nucleo boards using ARM Cortex‑M chips, with code and scheduler examples. Commenters split between nostalgia, hardware nitpicks, anger at ARM for not publishing specs for “M,” and claims Cortex‑M is stagnating—raising big questions about embedded safety and performance.

Ada—the “old but gold” language known for safety—just jumped onto tiny boards with a hands-on tutorial for ARM Cortex‑M microcontrollers using Arduino and Nucleo. There’s sample code, a Very Simple Scheduler, and even chapters on interrupts and mixing Ada with C/C++. The community showed up with pom‑poms, pitchforks, and a measuring tape.

On the hype side, nostalgic devs are vibing hard. One commenter basically rolled out a red carpet for “classic languages,” thrilled to see Ada doing real work on small hardware. Others went full hall monitor: someone jumped in to clarify that Nucleo isn’t one board but a family of boards—yes, the M33 flavor exists—because facts matter. And then came the drama.

The top spice? A takedown of ARM’s playbook: while ARM’s made fancy, machine-readable specs for their bigger “A” chips, commenters complain they didn’t do the same for the “M” chips used here—torpedoing formal verification nerds who want to prove their code rock-solid. Another hot take slammed the entire Cortex‑M scene as stuck in the past, wishing for laptop-tier goodies like vector math engines and PCIe. Cue the meme: “feels like programming on an 8086.”

Net result: A practical Ada/SPARK tutorial code that’s both a love letter to safety and a lightning rod for gripes about ARM’s priorities and Cortex‑M’s future.

Key Points

  • The tutorial teaches embedded programming on ARM Cortex‑M using Ada and SPARK.
  • Examples are provided for Arduino and Nucleo development boards.
  • Accompanying source code is available as ada-on-cortex.zip.
  • Bonus material includes a “Very Simple Scheduler” example.
  • An online book covers Linking/Booting, Finite State Machines (Parts 1–3), Interrupts, Hello World, and Mixing Ada with C/C++.

Hottest takes

"awesome ... extremely frustrating" — addaon
"nucleo is a series of form factors" — Neywiny
"like programming on 8086 today" — varispeed
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.