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)

Jenkins CI

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!

Hardware-in-the-loop is hard! Sometimes.

HIL Raspberry Pi

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

Unit Testing Keyboard

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.

A Long Way From Home

A finger moves toward the word update on a artistic depiction of technology

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 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.