Embedded Software

eBooks, Tools, Apps, Blog, Developer

Examples, Tips, Tricks and Code


How To Develop Embedded Software
A Case Study

* Shows processes, tools, and methods used by professional developers to complete an embedded software project.
* Derived from the author's 25 years developing embedded systems for major U.S. corporations.
* Case study, with source code and documentation, of digital Theremin for mbed LPC1768 (Cortex-M3)

GPS Tracker Project for Cortex-M3 ARM

Text requests for tracking from your smart phone. Receive texted position reports from the tracker on your smart phone.

Complete requirements, architecture, design, development tool description, and source code of GPS tracker software for STM32F103 processor, and off-the-shelf circuit boards

XY Theremin for STM32F7-DISCO board

Plays notes based on user interaction with touchscreen of STM32F7-DISCO board. Lets users set waveform, envelope parameters attack, decay, sustain, and release, and binaural beat frequency between left and right channels

Includes complete requirements, architecture, design, development tool description, source code, and verification tests

Link to mbed binary: here.

Runtime Patterns for Embedded Systems

ARM Cortex-M source code for run time patterns, including reset loop, state machines, event handlers, message pumps, fibers, and combinations. Touchscreen interacts with example patterns on an STM32F7 Discovery board.

Visual Studio Code project folders allow building and debugging example patterns from macOS, Windows, or Linux.

Link to mbed binary: here.

Cross-Platform Cortex-M Development

With Visual Studio Code

Shows steps necessary to use Visual Studio Code to develop programs for ARM Cortex-M embedded systems on macOS, Linux, and Windows

Includes VSCode project folder with complete digital source code and VSCode configurations for macOS, Linux, and Windows builds of the program "XY Theremin for STM32F7-DISCO board"

iPhone Apps

Binaural Virtual
Analog Synthesizer


* Virtual Analog Synth for iPhone and iPad
* Five octave, scrollable, standard and Janko keyboards
* Preset dictionary for favorite sounds
* Text (303) 517 6502 for queries and support
* See blog for more info

Hypertext Notepad and Connection Mapping Tool


* This simple tool helps you map the connections between people, things, and ideas.
* Text (303) 517 6502 for queries and support
A user manual can be seen at Using NoteWeb. Also see blog for related info.

Programmable Math Assistant


A programmable math assistant that fits in the palm of your hand.
Text (303) 517 6502 for queries and support.
A user manual can be seen at Using MathWeb. Also see blog for related info.


Blah blah blah...


* Observations, Opinion, and Suggestions related to embedded software development and other things


David Clifton

Over 30 years experience developing real-time, embedded software for startups and industry-leading corporations in medical devices, instrumentaion, communications, and robotics.