BSP (Board Support Package) and device drivers are the heart of every embedded software project.

To start working with sensors or peripherals on your device you must have some sort of device drivers to begin with. Depending on your personal taste, coding drivers and designing hardware abstraction layers is a task that people either love or hate. Mastering the sequences of SPI or I2C information flow for example requires delicacy and mastery.


Proper unit testing is a must for any software project. To allow unit testing for a software project the R&D team must write a testable, modular code — code that can be divided into self-contained units that can be tested. On top of making the code testable, embedded software developers must make sure their code is portable. On this blog post, we are going to demonstrate an easy way to have unit testing for embedded software. We’ve combined the Jumper Virtual Lab and the popular Unity Testing Framework by Throw The Switch.

The folks at Throw The Switch are on…


While developing Jumper’s emulator, we often find ourselves digging into how things work on the actual hardware. These debug sessions often end up getting down to the assembly level. While we’re not aiming for full timing parity with the device, it’s important for us that the logical coherence of applications is preserved. That means that the order by which interrupts are executed should be identical to that of the device.

Step by step debugging suppresses interrupts


This post outlines a cookbook we used to create a monitoring system for a connected embedded system. We used it to create one that can monitor all type of devices (even those that run Bare-Metal and RTOS), and we thought it’d make sense to help others build similar systems. This cookbook could easily be used to monitor device operational data as well as your actual application data. After deploying an IoT system, you need to make sure everything is working as it should and close a feedback loop from the field. We’re about to show you how to build one…


At Jumper we’re developing tools that increase the happiness levels of embedded software developers. Our main tool to date is the Jumper Emulator. As a part of the development process we’re required to use embedded debuggers to verify that our emulator is on par with the actual hardware. Our focus is on ARM Cortex M devices. The MCUs we’re debugging are the nRF52, STM32F4 and LPC1768.

An Embedded software debugging session can get quite frustrating. After testing several options, we’re happy to provide a summary of what we learned. Let us know if we missed something! (feedback@jumper.io).

Update: thanks for…


When examining an IoT device health and performance monitoring solution to integrate with your embedded device code, we chose to focus on open source options. Our thinking is that as the developer working on the device, you’d like the ability to control the code you’re adding to the system. Another consideration is being able to use the code in case the company providing the solution decides to shut down the project (happens with big companies and startups).

One aspect of open source to watch out for is licensing. In general, all the frameworks we examined include a license you can…

Jonathan Seroussi

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store