Dojo Five Blog

Sharing our insights about modern embedded development

Featured Post

Jenkins CI

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!

Read More...

Recent Posts

Laptop with some code on screen

Trusting the Docker Images Your Code is Built On

July 24, 2020

We’ve written before about the benefits of using Docker in your development environments. You don’t have to write every image yourself, though! There are many existing images on DockerHub and elsewhere that can get you quickly up and running. But unless you enjoy terrifying your IT department, please don’t run off and use any and…

Locked chain on a fence

Protect Your Security Keys Using git-secret

July 22, 2020

Development teams, especially those working remotely or spread across different company locations can run into a problem when they need to store sensitive files for the team to use but placing them inside the project repo poses risks. One common scenario with embedded devices is public/private key pairs used for encryption schemes. A simple command-line…

Library shelves full of books

nRF52 DFU and the Missing Service Changed Indication

July 20, 2020

Firmware is Easy Even when using Nordic’s pre-packaged SDK files for adding DFU (Device Firmware Update) capabilities, things can get tricky. We learned this as we added buttonless DFU to a customer project that used the nRF52832. Using SDK5 v15.3.0 we had successfully given our device buttonless DFU ability when not bonded to a mobile…

Person in front of many code and terminal windows

IAR: Now on Linux!

July 17, 2020

We have worked with several clients to build medical devices. And for that class of embedded system, our clients’ go-to compiler is IAR. Until now, the IAR compiler only ran on Windows. Until now. The fine people at IAR Systems have recently announced that they have released build tools to run on Linux. And they…

Dry land

The CLI’s Essential ‘Verbose’ Option

July 15, 2020

For those creating their own CLI tool If you have played around with any command line interface tools, such as Particle CLI or Git UI, you’ll notice that they oftentimes will have a verbose or -v option with their commands. This allows you to change log levels within the program, outputting as little or as…

Futuristic development graphic

Controlled Development Environments

July 13, 2020

Docker is a great solution for controlled development environments. One of the great things about Docker is specifying an entire environment. You create a list that includes the OS, along with all of the tools, accessories, scripts, and whatever else you want to appear in that image. Docker in turn goes and collects all of…

Circuits from a data sheet

Debugging Step 1 – Check the Datasheet

July 10, 2020

When setting up something like a new sensor for a project feature, it’s become typical for engineers to grab a development kit for their ease of setup and the speed at which developers can get up and running. The usual approach involves a quick breadboard job to connect the dev kit to the existing hardware,…

Light trails near a phone booth

Best Practices for IIoT Firmware

July 6, 2020

Connected sensors are becoming increasingly ubiquitous across all sectors, and industrial and scientific products are no different. This category is becoming known as the industrial internet of things, or IIoT. When designing an IIoT device, engineers must consider a range of criteria that may not apply to other product categories. Industrial products are expected to…

Code in an IDE

How to Prevent Your Python Script From Getting Culture Shock in Different OS’s

July 6, 2020

After hours of focusing, you finally finish writing a Python script for your project. It works perfectly on your computer and you pushed the changes to your favorite source control provider. The next thing you know, your teammate’s complaining that the script does not work on their computer because they are running on a different…

Time Peake Spacewalk outside ISS

How much is that medical device going to cost!?!??!

July 1, 2020

Creating a proof of concept device is cheap. Creating a device to be submitted through the regulatory path is not, even when it’s the exact same device. The regulatory path is expensive. Hardware-in-the-Loop Testing Setup at Dojo Five (Source) There are two ways you can develop a device. The first method, which most industries use…

Shell scripting

In A NutSHELL: Uses in CI/CD and Docker

June 29, 2020

What is shell? What is bash? Shell is a program for the user to interact with an operating system. The terminal window on Linux or macOS has the shell which lets the user interact with the operating system by using commands such as ls, cd, mkdir, etc. Bash also known as Bourne Again Shell is…

A finger point turning into weird futuristic circuitry symbols

Why does embedded development use ancient practices and how do we safely modernize it?

June 25, 2020

Web development tools can be integrated into embedded development to modernize your workflow. Mature web development tools can be integrated into an embedded development process to take advantage of features like automated testing, hardware in the loop, Continuous Integration (CI), and Continuous Deployment (CD). Embedded development of the past: before web development Embedded development predates…

Old school computers larger than refrigerators

DMA Controllers: the Underutilized Workforce

June 22, 2020

Direct Memory Access (DMA) controllers can vastly improve performance on resource-limited systems, a very common attribute of many embedded systems. As demands of embedded systems are growing all the time, the developers’ ongoing task is to find ways of getting the most performance out of the system. The good news is that as embedded processors…

Docker whale in all its glory

Docker: An ideal development environment

June 18, 2020

Docker is a revolutionary tool that provides speed and repeatability for you and your embedded team. While traditionally used in non-firmware environments, there is enormous potential to improve the development efforts of firmware projects. The Problem A few decades ago, you could submit your work as a batch job to a common environment, shared by…

Abstract roped points

How to manage WebHooks through Code

June 17, 2020

While simple at first, webhooks can become a hassle if you have products that use a good number of them and you have to keep them up to date. Here at Dojo Five, we found that having a YAML file with the needed information was a great way to give a little automation to this…

Notebook with Lets Get Started written inside

First Experiences with Python Virtual Environments

June 15, 2020

Getting Going As a Python project quickly begins to develop, we found that using python’s virtual environments might be a useful feature to implement. Not as nature-y as it may sound or that the above picture suggests… Being a bit of a Python newbie myself, I needed to do a bit of research about what…

Embedded.fm logo

PODCAST – Talking Community on Embedded.fm

June 12, 2020

Another member of the Dojo Five team recently joined the embedded.fm podcast! Bailey Steinfadt shared her maker roots, introduced Robbie the Rude Robot, and discussed how her collection of hobbies has lead to her being on a winding road through a 501(c)3 she may have founded and her exciting career at Dojo Five! Check out…

Office with lots of seating!

Collaboration

June 11, 2020

“The Dojo Five Office Experience” I took this picture at the end of a workday shortly before we stopped working at the office. Why? Because this view puts a grin on my face. You’ll notice that each desk has two seats, the developer’s seat and the visitor’s seat, sitting side by side. The visitor’s seat…

Rust logo

Using Rust Packages in a C Project on Nordic Devices

June 5, 2020

This example shows how to call a function from a Rust package from C on a NRF52840-DK. Why would you want to use Rust? Rust is a pretty cool new programming language that aims to make fast, safer executables. There has been a strong effort to get Rust working well on embedded devices, and it’s…

Can You Power the City exhibit

Creating interactive experiences for kids while teaching them about energy use through museum exhibits

March 20, 2020

Adam Wolf talks about creating interactive experiences for kids while teaching them about energy use through museum exhibits on his latest embedded.fm episode