Harnessing Rust's Typesystem for Reliable State Machines in Embedded Systems

State machines have an image of being cumbersome and tricky to debug. But this doesn't have to be the case! In this post we show how we use them and why the Rust language makes this so reliable and painless to use.

Continue reading

How KiCad helps us design prototypes quickly

For efficient PCB assembly, it’s important to clearly document which component goes where. Traditionally this is done on the silk screen, but we have a different workflow...

Continue reading

How to ruin your solid ground plane

As a PCB designer, the so-called 'ground plane' is your best friend. It makes layout easier, improves EMC performance, and as a bonus you get increased signal integrity. But be carefull to keep the ground plane intact...

Continue reading

Bootstrapping support for the STM32WLE with the Embedded Rust ecosystem

Normally how you test a new board is by flashing a blinky program on it and check whether the LED is blinking. But we don't have a known working blinky binary for this microcontroller, nor do we have a method to flash that imaginary binary. That will be the challenge to tackle for this article.

Continue reading

Surface mount assembly: It's all about the paste

At Jitter, we regularly do in-house PCB assembly for small prototype runs. This is a manual process, involving very tiny components, tweezers, and a lot of patience. Some components are smaller than 1x1mm, or have hundreds of pins at a 0.5mm pitch. How do we succesfully solder these tiny parts?

Continue reading

Think in current loops - the key to reliable PCB layout

When I got started in PCB design, layout seemed like the easy part. The CAD software enforces the schematics, so you just need to puzzle everything together until all connections are made. Right?

Continue reading

AWS IoT with Ultra Low Power Embedded Systems

AWS IoT facilitates connecting your internet-of-things things to all the other Amazon web services. This makes it easy to build a scalable backend for your IoT project. AWS IoT seems to be built with always-on, Alexa-like devices in mind. But what if you cannot add a Raspberry Pi to your sensor Thing? What if you don't have hundreds of kbytes of flash and RAM to spare?

Continue reading

ADXL355 Embedded-hal driver crate

A Rust driver crate for the ADXL355 digital accelerometer. This driver accepts an embedded-hal SPI interface and a GPIO OutputPin. It implements the Accelerometer Trait so you can easily obtain both raw sensor data and scaled-to-Standard-gravity sensor data.

Continue reading

Measuring space-time behaviours of piano keys with Rust

Piano technology is a discipline that studies piano mechanisms and their interaction with the pianist. To investigate interactions between piano keys and pianists, we have installed an array of sensors in an experimental keyboard.

Continue reading

MicroSD performance on memory-constrained devices

MicroSD cards. They are used in phones, cameras and all kinds of devices. A no-brainer to add some extra storage capacity to your project. They are advertised by their average read/write speed in MB/s. But there is a metric that is at least as important for certain applications: latency…


Continue reading