The following open source programs and spreadsheets are all my own work and are provided free of charge with no support or warranty.


SES Include File Manager

SES Include File Manager screenshot
Download from GitHub

A simple helper application for use with Segger Embedded Studio when working with the Nordic Semiconductor SDK.
The application checks which paths exist and allows you to remove those that don't, allows a search by filename to show which folder they are in, and allows conversion between relative and absolute paths for the include folders.
(It does not search your SDK folder for include files to automatically add them to the include paths.)

Instructions and Source Code

BLE UUID Generator

BLE UUID Generator screenshot
Download from GitHub

Generates UUID for custom services and characteristics in Nordic SDK format. Guaranteed not to clash with the BT SIG reserved range.

Instructions and Source Code

Source Format For Web

Source Format For Web screenshot
Download from GitHub

A utility to format source code to HTML for use with Publii

Instructions and Source Code


Siglent To FeelElec CSV screenshot
Download files from GitHub

Converter for CSV files from Siglent Digital Oscilloscopes to list of samples format used by FeelElec FY6900 (and similar) Arbitrary Waveform Generator.

Instructions and Source Code


MS Test passing minunit results of 1 test
Download from GitHub

A template, blank project set up for unit tests using both MS Test and minunit test frameworks for host-based and target-based testing of C functions and files. Whilst MS Tests are written in C++, this only involves using Assert::AreEqual so it can be done with no knowledge of C++.

TestFormatter App

Test Formatter
Instruction, Source Code and executables

This utility converts between different formats for unit tests: MSTest and minunit. It uses a simple text substitution method rather than a code parser so you need to be aware of the limitations and check the results, but it can still save a lot of time when converting many tests.


These probably require Microsoft Excel specifically rather than Google Sheets, LibreOffice Calc or any other compatible spreadsheet but they do not contain macros.

Sampling digital pulses

Sampling datastream tolerance.xlsx
Sampling datastream screenshot 1 Sampling datastream screenshot 2

Calculation of sampling point timing tolerance on a digital waveform. See Sampling a Pulse Stream Mid Bit When the Clock Frequency Varies

CRC Calculations

CRC conversion.xlsx
CRC Conversion screenshot

Conversion to and from Normal to Koopman format of the hex representation of CRC polynomials. See Clearing Up CRC Terminology and Representations of Polynomials

CRC Comparison.xlsx
CRC Comparison screenshot

Comparison of all known CRC polynomials from 3 to 32 bits at Hamming Distances of 3 to 20. See You Are Probably Using A Sub-Optimal CRC

CRC Error calcs Pud.xlsx
CRC Error Calcs Pud screenshot 1 CRC Error Calcs Pud screenshot 2

Calculates probabilty of undetected errors in message with a CRC. See Choosing an Optimal CRC Polynomial