The first two posts in this series covered:
This post digs deeper into the Requirements, Architecture, and Tooling that we’ll use to implement the firmware.
The basic requirements document is embedded here (generated using asciidoctor-pdf):
The basic architecture document is embedded here:
This section captures the list of tools used to get things done. It is important for projects to document this, perhaps even in abridged detail.
Tooling information can also be archived as a PDF to track tooling changes throughout the project lifetime. I won’t be doing it here, but archival is especially important during projects that demand proper lifecycle documentation, such as anything following a safety-critical development process.
Aside from the nRF51-DK, nRF52-DK, and nRF52840 Dongle development kits, the following tools are needed:
Soldering iron with fine tip (a $10 special from eBay or AliExpress will do just fine, this is mine)
0.1" / 2.54mm pin headers
The super tall 0.1" pin headers are especially useful for signal tapping using the logic analyzer! All of that tasty metal to clamp onto.
0.05" / 1.27mm Serial Wire Debug 10-pin header (like these)
A steady hand and relatively good vision🤞🤓
To get started, only two main pieces of software are needed:
Arm provides prebuilt compiler toolchains that support all of the released Cortex-M microcontrollers.
The open-source tools receive updates on a rolling basis, following the upstream GNU release cycle. Releases are generally quite up-to-date, including support for recent C++ language features.
SEGGER builds a solid integrated development environment that supports the GNU Compiler Collection tools, with code completion and the expected bells and whistles.
Once we have a handle on these three pieces of documentation, we can start to look into the firmware implementation.