Getting Started: Raspberry Pi Pico RP2040 with Eclipse and J-Link

In this time where many micro-controllers have 100+ weeks estimated delivery time, it makes sense to look at alternatives. So it is not a surprise that the Raspberry Pi RP2040 gets used more and more in projects. It is not only inexpensive, it is (at least for now) available which makes all the difference. The RP2040 is the first microcontroller from Raspberry Pi: a dual-core ARM Cortex-M0+ running up to 133 MHz, 264 KByte on-Chip RAM and up to 16 MByte external FLASH.

Raspberry Pi Pico with J-Link, with a NXP sensor board

It is a very versatile microcontroller, with a rich eco-system and set of tools. It can be easily used with C/C++ or MicroPython, and the Raspberry Pi Pico board only costs around $5. There are plenty of tutorials out there, for example how to use the Pico board as debug probe to debug another Pico board. While this is great, there is an easy way to use any existing J-Link and Eclipse IDE too, so this is what this article is about.

Continue reading

Are WLCSP the Solution during Silicon Shortage?

If you are in the electronics or microcontroller business: you very well know the problems with chip and silicon availability. What was supposed to last maybe for a few months starting with COVID-19 is still a problem in 2022: chips are not available or the price has skyrocket.

Cost-effective usage of NXP LPC804 with WLCSP20 Package

We at the Lucerne University are using NXP Kinetis micro controllers which seem to be affected by the silicon shortage somewhat more than any other devices? When looking that the usual sources, it was clear some are still available, but in a rather exotic WLCSP package. So the question is: can it be useful?

Continue reading

Custom ${user} with C/C++ Code Templates

The Eclipse Editor has a very cool feature named ‘Code Templates’: With such templates files are created with specific pre-filled content. For the templates, variables like ${user} for the user name can be used, see Custom C/C++ Headers with Eclipse:

Eclipse Code Template Editor
Continue reading

Choosing GNU Compiler Optimizations

Tool chains like the GNU compiler collection (gcc) have a plethora of options. The probably most important ones are the ones which tell the compiler how to optimize the code. Running out of code space, or the application is not performing well? Then have a look at the compiler optimization levels!

However, which one to select can be a difficult choice. And the result might very well depend on the application and coding style too. So I’ll give you some hints and guidance with an autonomous robot application we use at the Lucerne University for research and education.

INTRO Sumo Robot
INTRO Sumo Robot
Continue reading

Creating custom Expansion Board and Header for the MCUXpresso Pins Tool

The MCUXpresso Pins Tool is part of the NXP configuration suite which makes pin assignments, configuration and muxing easy. What I have somehow missed from one of the latest updates and releases is that it allows me now to add my own custom headers definition. Not only the tool is now aware of the ‘standard’ Arduino headers, but I can add my own headers too. This can be useful for providers of breakout boards or any kind of board which can be added to a MCU board. In my case it is very useful for projects where we design our own (breadboard-friendly) board or a custom board with an expansion board: we can design a board header and use it in other projects.

Continue reading

Tutorial: Creating and using ROM Libraries with GNU Build Tools

You might never heard about ROM Libraries, and you are probably not alone. Some might thing that this refers to the boot ROM modern MCUs have built in, which is kinda close. But the thing here is about to build your own (possibly constant) ROM library, program it to your device of choice, and then use it from the application running on the device.

So the concept is to have a (fixed, stable) part with code and data on your device, which can be used by a (possibly changing) application: Think about a stable LoRaWAN network stack in the ROM, with a changing application using it: Would that not be cool?

ROM Library Concept

This not only adds flexibility, but as well allows smaller updates, as only a part of the program has to be changed or updated.

The question is: how to create and use such a ROM Library with the normal GNU build tools?

Continue reading

Include .bin Binary Files in a GNU Linker File

Sometimes it is needed or desired just to add or link a piece of data or BLOB (Binary Large OBject) to the application. For example I have created a .bin file of my code and constant data, and I need to add it to an application using the linker file. How to do this?

added BLOB to application
Continue reading

Refilling the non-refillable Miele AutoDos Dishwasher Automatic Detergent Dispensing Disks

Did you know that modern (dish) washing machines have the ability to automatically dispense detergents? The positive side is: this can reduce the amount of detergents used. The machine will monitor the washing process, and ‘cleaner’ dishes should require less detergents.

Our new energy Miele Dishwasher came with that exact feature: the Miele AutoDos System, an automatic detergent dispensing system. The detergent is inside a rotating disk, dispensing detergents as needed, making it (hopefully) more environment-friendly:

Miele AutoDos Power Disk in Miele Dishwasher

The downside is: Miele did not make it refillable: after around 20 washing cycles, you have to replace the disk with a new one. This is not environment friendly. So I wanted to change this….

Continue reading

Installing Processor Expert into MCUXpresso IDE

With the new MCUXpresso versions out, and because it has been a while I showed how to install Processor Expert into Eclipse, here is an update how to do this.

Processor Expert in MCUXpresso IDE
Continue reading

Debugging the LPC804 on the MCU-Link Pro with an external Debug Probe

The NXP MCU-Link Pro debug probe includes a LPC804 as an additional microcontroller on the board, including its debug header.

MCU-Link Pro Debug Probe Board

The question is: how to debug the on-board extra LPC804 microcontroller with an external debug probe?

Continue reading