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

Synthesizes audio waveforms based on user interaction with touchscreen of STM32F7-DISCO board

Supports user settings for waveform, envelope attack, decay, sustain, release settings, filter, and frequency difference between left and right output channels

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

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 the example programs on an STM32F7 Discovery board.

Link to mbed binary: here.


Hypertext Notepad

* Hypertext notepad for Win32 and Wine
* Browser-like interface
* Reporting and cross-referencing features.
* Use to study complex webs of information and think about interconnected systems.

Cellular Calculator

* Cellular Calculator for Win32 and Wine
* Calculates networks of formulae
* Performs dynamic simulations
* Solves systems of equations.
* Builtin script language
* Browser-like interface including a hypertext notepad

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.