VS Code: MCUXpresso Installer

VS Code is managing its extensions (see VS Code: MCUXpresso Extension). But to make it usable for embedded development, you need more tools: compiler, linker, debugger, libraries, build system, debug probe support, …

For the experts, this is not a big deal: you know where to get them, and you install them, as shown with another tutorial. But for a class full of students or newcomers to VS Code, this can be a a time consuming and daunting task.

To make the installation easier, NXP has released a ‘dependency checker and installer’ along with their VS Code extension, which makes the setup much easier and simpler.

MCUXpresso Installer
Continue reading

VS Code: Telemetry-free VSCodium

“There is no such thing as a free lunch.”

https://en.wikipedia.org/wiki/No_such_thing_as_a_free_lunch

And this applies to VS Code and many of its extensions. You agree to the licensing conditions, and you pay with your data.

VS Code source code is MIT licensed, but the binaries you can download and install have telemetry built in: you are giving Microsoft your usage data in return for using VS Code.

If you are concerned about this, and looking for free and libre open source binaries of VS Code, then have a look at MIT-Licensed VSCodium.

https://vscodium.com
Continue reading

VS Code: Getting Started, literally

This is another article in my series about Visual Studio Code. After having it installed (see VS Code: IDE Installation), this one is about starting the IDE

I can start the IDE from the shortcut (if created during the installation) or by typing code in console/command prompt shell (e.g. Windows PowerShell). To be able to use the code command requires VS Code to be present in the PATH.

Starting VS Code
Continue reading

VS Code: Uninstall completely

Nothing has to last forever, and VS Code might not be the right thing for everyone. VS Code can go overboard with all the extensions and things it had proposed to install. Up to a point that one needs to get re-started again. Or because you tasted VS Code, but you did not like it.

That’s OK, you can uninstall it, after you have installed it (see VS Code: IDE Installation). The catch is: the uninstall does not a full removal, as settings and extensions do not get removed.

This article shows how to fully uninstall VS Code.

Continue reading

RS-485 with NXP LPC55S69

I’m using the RS-485 field bus in many of my projects: it is very reliable and robust, and easy to implement. And with ModBus there is standardized protocol used in building automation or industrial control applications. For example I’m using the protocol to communicate between battery systems and an EV Charger.

NXP LPC55S69-EVK with RS-485

In this article I show you with an example, how the NXP LPC55S69 can be used with RS-485.

Continue reading

Data Converter for MCUXpresso Energy Measurement Data

The combination of the NXP MCUXpresso IDE with the NXP MCU-Link Pro debug probe implements a nifty power and energy measurement tool (see New “MCU-Link Pro”: Debug Probe with Energy Measurement). The eclipse based IDE provides a dedicated view to inspect the data collected. It can export and import data, but it is in a binary format. In this article I present a way to export and then convert the data into .csv or any other format for processing or visualizing it in different ways.

Exporting data to gnuplot and csvplot

Using an open source command line tool, the binary data gets converted into a csv format, which then can be consumed by many tools, e.g. gnuplot.

Continue reading

LinkServer Scripting, and how to Recover MCUs with a Script

The MCU-Link is an inexpensive CMSIS-DAP debug probe from NXP. It can be used as a GDB server debug probe, and as such it includes scripting support. This scripting can be very useful in some cases where the MCU cannot be accessed by a normal debug session. This happens for example if students are not pay attention what binary they flash to which device, causing an MCU to potentially get ‘bricked’.

NXP MCU-Link debug probe connected to Sumo Robot
Continue reading

GNU Linker Wizardry: Wrapping printf() with Timestamps

If one is using a dedicated logger module like the McuLog, then you don’t have to worry or care about timestamp support. But if your application is using normal printf() calls for for logging purpose, you will face issues to adding timestamps to it. You might consider to change all prinft() calls. This might be a lot of work, or not possible in all cases if you cannot change the source code.

But there is a really cool feature of the GNU linker to solve that problem. It allows to ‘wrap’ around any symbol or function, including the ones in the standard library. That way I can add my mode to the printf() code as a wrapper, for example adding a timestamp for every call.

In the example below you can see this in action:

printf() calls with added timestamps

In this article I’ll show how you can wrap any function with custom code.

Continue reading