I’m making progress with the new ‘Billion Light‘ modules (aka V2): the new design is more modular and easier to build and assemble and still looks awesome with the moving lights and clock hands:
Tag Archives: MCUXpresso
From C to C++: Converting Eclipse C Projects
Creating a new project with Eclipse for a microcontroller these days is fairly easy, and I have the choice if I want to start the project with C or C++:
Still the embedded microcontroller world is dominated by C and not C++. So while it is easy to start with a C++ project, most vendor provided example or tutorial project are C projects. So how can I transform such project to C++?
How to use Eclipse CDT Environment Variables in C/C++ Code
When using a logging framework it is useful to use the current file name or line number. The ANSI C/C++ standard defines the __LINE__ and __FILE_ preprocessor macros for this.
But what about the project name, if it is a release or debug build, the microcontroller used or other things like the operating system which was used to build the binary?
This (and even more) can be easily provided by Eclipse to the C/C++ application being built with CDT.
How to get Data off an Embedded System: FatFS with USB MSD Host and FreeRTOS Direct Task Notification
This is a follow-up article of my earlier project presented in “FatFS, MinIni, Shell and FreeRTOS for the NXP K22FN512“. I wanted to extend it with a USB MSD (memory stick) device: The USB storage device gets automatically mounted, and depending on a configuration (.ini) file on the memory device I can perform various actions, for example automatically copy data from the SD card to the USB device. For example the system logs data, and to get the data I insert the memory stick, it copies the data on it and automatically unmounts it, and I can remove the memory stick.
Disabling NMI (Non Maskable Interrupt) Pin
The NMI is a special interrupt on ARM Cortex-M architecture: as the name indicates, it cannot be ‘masked’ by the usual ‘disable interrupts’ flags (PRIMASK, BASEPRI), similar to the Reset signal.
Dealing with the reset signal is kind of obvious, and most designs and boards have it routed to a reset button or similar. The NMI is less obvious if you don’t pay attention to it: most ARM-Cortex implementations and boards have the NMI signal routed to a pin and are ‘hiding’ it in the schematics behind a normal GPIO pin or port: if you don’t pay attention to the NMI functionality, the board might not work as intended.
Behind the Canvas: Making of “60 Billion Lights”
As promised I’m going to share more details about the “60 Billion Lights” project. It is about a project to build a piece of electronics behind a 100×50 cm canvas to show animations or to display information like temperature, humidity, weather, time or just any arbitrary text.
McuLog: Logging Framework for small Embedded Microcontroller Systems
An essential tool especially developing larger applications or distributed firmware is to use logging. This article presents an open source logging framework I’m using. It is small and easy to use and can log to a console, to a file on the host or even to a file on an embedded file system as FatFS.
Tutorial: Adding FreeRTOS to where there is no FreeRTOS
FreeRTOS is pretty much everywhere because it is so simple and universal, and it runs from the smallest to the biggest systems. But it still might be that for the microcontroller device you have selected there is no example or SDK support for it from your vendor of choice. In that case: no problem: I show how you could easily add FreeRTOS plus many more goodies to it.
“60 Billion Lights”: 2400 RGB LEDs and 120 Stepper Motors hiding behind Canvas Art
It is one thing to create something ‘cool’ or technically interesting. But it is a completely different story to convince your girlfriend, partner, wife, family (or whatever you can name it) to hang something on a wall in our house or office. Then it is not about technology: it is more about design and art. So here is my attempt to solve that challenge:
FreeRTOS Task Runtime Statistics for NXP i.MX RT1064
FreeRTOS has many cool features, and one is that it can report the CPU percentage spent in each task. The downside is that to get this kind of information some extra work is needed. In this article I show how to do this for the NXP i.MX1064.









