Uncannier Software

It's not enough to just be uncanny

CR2032 Lithium Battery Charge Level Measurement

/

The CR2032 3V lithium button cell battery is commonly used in small electronic devices, and especially BLE IoT devices. In this article I explain the complications associated with estimating the remaining charge level (“state of charge”) of this battery, and recommend a simple strategy for reasonably accurate measurement. I demonstrate this strategy in the Uncannier …

Automated Software Versioning – Continuous Integration & Thunderboard

/

In this article I put my Three Laws of Software Versioning into practice. I show how to setup automated software versioning for an embedded firmware project. I use the Uncannier Thunderboard projects, and CircleCI continuous integration, as an example. Strategy Let’s get straight to the point. To automate software versioning you need a way to …

Unit Testing of Embedded Firmware – Part 5 – Continuous Integration (CircleCI)

/

Don’t be sad, but this is the final episode of a series that started here: https://uncannier.com/unit-testing-of-embedded-firmware-part-1-software-confucius/ This article is all easy and all gravy: supporting Test Driven Development (TDD) by getting embedded firmware unit tests running on a continuous integration server. As per the rest of this series, the Uncannier Thunderboard projects will be the …

Unit Testing of Embedded Firmware – Part 4 – Code Coverage with Gcov & LCOV

/

This article is part 4 of a series. Return to part 1 here: https://uncannier.com/unit-testing-of-embedded-firmware-part-1-software-confucius/ When unit testing, it’s helpful to have some way to measure how much of your code is being tested. In this article I’ll show how to use Gcov and LCOV to produce code coverage reports for embedded firmware that is unit …

Unit Testing of Embedded Firmware – Part 3 – x86 Running & Debugging (in Simplicity Studio AKA Eclipse)

/

This article is part 3 of a series. Return to part 1 here: https://uncannier.com/unit-testing-of-embedded-firmware-part-1-software-confucius/ In the last article (https://uncannier.com/unit-testing-of-embedded-firmware-part-2-x86-build-cpputest-simplicity-studio-thunderboard/), I created an x86 build of the Uncannier Thunderboard embedded firmware and unit tests. In this article, I’ll cover how to execute the unit tests on-host, thus allowing Test Driven Development (TDD) to be performed on-host. …

Unit Testing of Embedded Firmware – Part 2 – x86 Build (CppUTest, Simplicity Studio & Thunderboard)

/

This article is part 2 of a series. Read part 1 here: https://uncannier.com/unit-testing-of-embedded-firmware-part-1-software-confucius/ In this article I’ll cover the hardest part: getting the firmware building on-host with an x86 toolchain. The goal is to perform Test Driven Development (TDD) and unit testing, on-host, not on-target. First we’ll setup the tools, then we’ll do the code. …

Unit Testing of Embedded Firmware – Part 1 – Software Confucius

/

This article is the first of a five-part series covering how to setup up a unit test harness on an embedded software project. For the purposes of example, I’ll use the CppUTest harness, building within Silicon Labs’ Simplicity Studio (a YACE – Yet Another Customized Eclipse). This setup will be used to unit test components …

Continuous Integration of Embedded Software in the Cloud – Docker, Simplicity Studio & CircleCI

/

In this article, I’ll show you how to create a Docker image for Continuous Integration of embedded software projects. I’ll use Silicon Labs Simplicity Studio and Circle CI as an example. However the basic principle could be applied to many embedded software tools and many CI tools. Embedded Complication In recent years there’s been a …

Thunderboard Sense 2 – Over The Air (OTA) Upgrades

/

Like the Thunderboard React, the Thunderboard Sense 2 doesn’t support Over The Air (OTA) Device Firmware Upgrade (DFU) out of the box. This article describes how to modify the stock Thunderboard Sense 2 firmware to enable OTA DFU. This article references my previous post, Thunderboard React – Over The Air (OTA) Upgrades, and concentrates on …