SMD Cut Tape Organization with Transparent Containers

For many of my PCB projects I’m using cut-tape SMD components. So far I have used to keep the components in the little bags as shipped by Mouser and others.

But keeping all the components in bags for multiple projects is not ideal: it takes a lot of time to go through the inventory. What I wanted is an easy and simple storage system at least for the ‘common’ parts used in multiple projects.

Organizing SMD Cut Tapes
Continue reading

Customizable DIY RFID Business Card and Badge Holder with Victorinox Swiss Army Knife Tools

In case you are looking for an unusual business card, company badge or event badge holder, then this article is for you: A DIY RFID badge and business card with bling-bling addressable RGB LEDs to impress your customer, clients, friends at work or at a conference, packed with electronics. Plus it includes 10 original tools from Victorinox, the manufacturer of the Swiss Army Knife.

Complete Badge and Business Card Solution
Continue reading

Low-Power Optimization Techniques for ARM Cortex-M Microcontrollers

Europe is currently facing an ‘Energy Crisis,’ and ‘Sustainability’ is a popular topic among companies. However, embedded engineers go beyond talking—they take action and make tangible changes in the world. With the increasing use of electronic devices, minimizing their energy and power consumption is crucial. Optimizing systems for deep low power or deep low energy is a challenging task. Nonetheless, as I will demonstrate in this article, it is possible to reduce energy consumption by a factor of 100 or more. This article provides a brief overview of the foundational concepts and then applies them step-by-step to an ARM Cortex microcontroller.

Measuring on-board LPC804 with MCU-Link Pro
Continue reading

Building Eclipse Projects with custom external Shell Scripts

Eclipse includes many ways to build a project. One of it is the built-in builder which makes it super easy. And for more complex building needs I can use an external make (see Tutorial: Makefile Projects with Eclipse) or cmake or combination of multiple ways (see Building a Triumvirate: From Eclipse CDT to CMake, CMD and Visual Studio Code).

There is yet another use case how to easily tweak the build process in Eclipse: using a script file in the project to be used as the ‘compiler’:

External Build Script

That way I can do all kind of custom steps (analysis, re-formatting, static checkers, …) for each file compiled.

Continue reading

CMSIS-DAP Debug Probe for Robots and Pixhawk with KiCAD

Need to debug your robot or drone? In a HSLU university research project I’m using a Pixhawk and PX4 based drone hardware. Pixhawk and PX4 is an open standard for drone hardware and firmware and runs with NuttX RTOS. It is mainly used for drones, but is very capable for any other kind of mobile robots.

With the Pixhawk 6x-RT there is a powerful flight controller, using the NXP i.MX RT1176 dual-core processor. While this and other controller hardware do offer a hardware debug probe, it is not a simple task as there are different pin-outs and connectors, making debugging a mess with different cables and adapters. To simplify this, I have now a unified debug CMSIS-DAP debug probe using the NXP LPC55S69 as processor, with all the different headers and UART adapters included: the MCU-Link-MR (Mobule Robots) debug probe.

MCU-Link-MR (v0.1)

Continue reading

NXP MCU-Link for Rust with probe-rs

The Rust programming language is making its way into the embedded world, and getting more and more popular and not only at the Lucerne University. With Rust, the probe-rs is one of the popular debug choices, as it nicely comes with cargo. On the hardware side, the NXP MCU-Link is $15 debug probe hardware I use for many targets. Why not using the MCU-Link with probe-rs and Rust?

MCU-Link Board Top Side
MCU-Link Board Top Side
Continue reading

How to make sure no floating point code is used

Float and double data types area a bad choice for embedded applications. At least in most applications, and can or should be avoided, even with hardware FPU support present.

But how can I be sure that no floating point operations are used?

wrapping float and double runtime routines

This article describes how to configure the GNU toolchain, so that no float or double operations are used, with the example of ARM Cortex-M. What I do? ‘Poisoning’ (!!!) the source code, force the gcc compiler to use software floating point operations and then catch them with the GNU linker :-).

Continue reading

Binary, do you use Hard-Float or Soft-Float?

Many cost-sensitive ARM Cortex-M devices like the M0+ do not have a hardware floating point unit, and some like the M4 only has an optional single-precision floating point unit (FPU). As outlined in “Be aware: Floating Point Operations on ARM Cortex-M4F“, using floating point operations without a hardware unit can be costly.

Looking at the disassembly for sure will tell you if the hardware is handling the float or double operation or not:

Disassembly showing runtime routines

But who wants check the all the disassembly? With the GNU tools there is an easier way: readelf.

Continue reading

‘Experience Energy’ at the Verkehrshaus: The ‘House of Energy’ Construction Kit

The ‘Verkehrshaus der Schweiz‘, the ‘Swiss Museum of Transport’ is Switzerland’s most popular museum.

In April 2023, it opened up a new building and the ‘Experience Energy!’ exhibition. For the opening event we created a unique construction kit to explore energy: from harvesting to storing and up to distributing and using energy.

“House of Energy” at the Swiss Museum of Transport in Lucerne
Continue reading

Power Measurement with INA260 Sensor

For a research project and demonstrator at HSLU university I have to measure voltage a DC voltage and current. For this I’m planning to use the Texas Instrument Texas Instruments INA260, so I had to quickly develop a software driver for it.

TI INA260 Power Sensor Breakout Board
Continue reading