Documenting System Architecture With AsciiDoctor

By: Steve Branam
As the adage says, a picture is worth a thousand words. Diagrams provide a high level of information abstraction. Somewhere between zero and too much is the sweet spot for the right amount of documentation for a system, balancing the needs of development, quality, cost, and effort.
Setting up Jenkins for Embedded the right way (or not at all)

By: Brandon Leiran
Embracing continuous integration (CI) practices and tools makes embedded development smoother. Jenkins isn’t always the best choice for Embedded CI, but if you follow the 3 CI principles laid out in this article, you’ll start off well!
Finding Time for Rust: 7 Simple Steps to Learn Rust

By: Nwanua Eluweze
Rust appears to be gaining steam as a solid language to solve complex and challenging problems in embedded systems. Here are a few tips that may help you learn Rust.
Hardware-in-the-loop is hard! Sometimes.

By: Ander Galisteo, Ph.D.
The concept of hardware-in-the-loop (HIL) is not new in the embedded space. The basic idea is to automate the functional tests of your device under development to verify if your implementation does what it’s supposed to do.
Using The Nordic nRF Sniffer For BLE

By: Steve Branam
The Nordic Semiconductor nRF Sniffer for BLE is a great low-cost tool for working with BLE. Once you set it up, capturing and analyzing BLE traffic is easy.
Unit Testing For Embedded Software Development

By: Steve Branam
Unit testing uses small automated tests to drive development of embedded system code. Learn best practices for Test Driven Development (TDD), including writing and implementing successful unit tests to provide fast feedback and confidence in your code.
Modern Embedded Firmware Development Practices in the Warehouse Automation Industry

This blog explores the multifaceted realm of modern embedded firmware development, as well as the innovative testing practices that help identify and mitigate bugs early in the process, leading to cost savings and more robust systems.
A Long Way From Home

Over The Air updates (OTA) takes advantage of modern connectivity for devices. Even for devices that aren’t normally connected to communication networks, it’s often possible to connect them to a computer or mobile device that is connected to the network and update them. It’s also become a common part of modern embedded development and release strategy.
10 Pillars of Modern Embedded: Pillar 5–Human Centered Project Management

Pillar 5 of the Dojo Five Modern Embedded development practices is Human-Centered Project Management: Expectations and risk management processes that value humans and their interactions as key to innovation. We […]
10 Pillars of Modern Embedded. Pillar 4: Effective Testing

Testing needs to be appropriate, effective, and evolve with the project.
That means it needs to verify the appropriate things, meeting the business goals and needs through a multifaceted testing strategy. It needs to be effective, minimizing the likelihood of bugs while minimizing the time spent on testing. It needs to evolve as the project changes and not grow uncontrollably.
Medical Devices with Machine Learning?

This guest post is a collaboration with our friends at Edge Impulse. Edge Impulse shares D5’s passion and vision for modernizing embedded solutions by empowering developers to create and optimize products via embedded development and machine learning.
10 Pillars of Modern Embedded. Pillar 2: Managed Environments

Utilizing a managed environment fosters collaboration and creates stability, reliability, consistency and success in our software development projects. It further allows us to effectively manage and maintain the software environments throughout the development life cycle.