MCUXpresso Eclipse IDE Mouse Tips & Tricks

In a modern development workflow both command-line and a graphical user interface has its place. On the GUI side, Eclipse is famous that it offers many different ways to accomplish something which is great. But sometimes I continue to use an old habit or way because I have missed that there is a newer and better way, and the MCUXpresso Eclipse IDE is no exception to that. In this article I show a few ways how to use the mouse even more productive.

Project Settings

Project Settings

Continue reading

Advertisements

Tutorial: MCUXpresso SDK with Linux, Part 3: RAM and XiP Code on i.MX RT1064

In my previous articles I have used the command line on Linux to build and debug NXP MCUXpresso SDK applications. In this article I’m running code on NXP i.MX RT1064 in RAM or FLASH.

i.MXRT1064 board with LPC845-BRK as debug probe

i.MXRT1064 board with LPC845-BRK as debug probe

Continue reading

Internal and External Debug Options for the NXP LPC55S69-EVK Board

The LPC55S69-EVK board comes on-board debug probe. The board includes the LPC4322JET100 device which acts like NXP LPC-Link2 debug probe:

LPC4322JET100 on LPC55S69-EVK

LPC4322JET100 on LPC55S69-EVK

But it is easily possible to use the board with an external debug probe or re-program the onboard one as a SEGGER J-Link debug probe.

Continue reading

Building a Raspberry Pi UPS and Serial Login Console with tinyK22 (NXP K22FN512)

There are different ways to ruin a Linux system. For the Raspberry Pi which uses a micro SD card as the storage device by default, it comes with two challenges:

  1. Excessive writes to the SD card can wear it out
  2. Sudden power failure during a SD card write can corrupt the file system

For problem one I do I have a mitigation strategy (see “Log2Ram: Extending SD Card Lifetime for Raspberry Pi LoRaWAN Gateway“). Problem two can occur by user error (“you shall not turn it off without a sudo poweroff!”) or with the event of a power outage or black out. So for that problem I wanted to build a UPS for the Raspberry Pi.

Raspberry Pi with UPS System and tinyK22

Raspberry Pi with UPS System and tinyK22

Continue reading

First Steps with the LPC55S69-EVK (Dual-Core ARM Cortex-M33 with Trustzone)

For the long Easter weekend I have organized a new toy: the NXP LPC55S69-EVK board: a dual ARM Cortex-M33 running at 100 MHz with ARM TrustZone:

LPC55S69 Microcontroller

LPC55S69 Microcontroller

Continue reading

Tutorial: MCUXpresso SDK with Linux, Part 2: Commandline Debugging with GDB

In “Tutorial: MCUXpresso SDK with Linux, Part 1: Installation and Build with Maked” I used cmake and make to build the SDK application. In this part I’m going to use the command line gdb to debug the application on the board.

Cross-Debugging with GDB

Cross-Debugging with GDB

Continue reading

Tutorial: MCUXpresso SDK with Linux, Part 1: Installation and Build with Make

I admit: my work laptop machine is running a Windows 10 OS by default. But this does not prevent me running Linux in a Virtual Machine (VM). Each host platform has its benefits, and I don’t feel biased to one or the other, but I have started using Ubuntu more and more, simply because I have worked more on Embedded Linux projects. While I have used mostly Windows with Eclipse for NXP LPC, Kinetis and i.MX platforms in the past, I started using Ubuntu too from last year with the NXP MCUXpresso SDK. I did not find much documentation about this on the web, so I thought it might be a good idea to write a tutorial about it. So here we go…

Building NXP MCUXpresso SDK on Linux Ubuntu

Continue reading

Tutorial: RAK813 LoRaWAN+BLE+GPS Sensor Node with Eclipse IDE

In the IoT world, it is all about security, connectivity and low power. LoRaWAN with the Things Network is able to connect devices over several kilometers, and I’m running my gateway for it already (see “Contributing an IoT LoRaWAN Raspberry Pi RAK831 Gateway to The Things Network“). This tutorial is about building a BLE+LoRaWAN+GPS sensor node with GNU tools and Eclipse:

LoRa+BLE with RAK813 and LPC845

LoRa+BLE with RAK813 and LPC845

Continue reading

Contributing an IoT LoRaWAN Raspberry Pi RAK831 Gateway to The Things Network

LoRa and LoRaWAN is getting the de-facto wireless IoT network in my area. No surprise that traditional telecom providers like Swisscom trying to monetize the ‘Internet of Things’ area. Luckily there is an open and free alternative: https://www.thethingsnetwork.org/. Volunteers, enthusiasts and members in the different TTN communities build gateways and offer free LoRaWAN network access. I wanted to contribute to that grassroots movement with building my gateway, providing LoRaWAN access to my neighborhood.

LoRaWAN TheThingsNetwork Gateway

LoRaWAN TheThingsNetwork Gateway

Continue reading

MCUXpresso IDE V10.3.1 available

On Friday a new release of the Eclipse Oxygen based NXP MCUXpresso IDE V10.3.1 has been made available. The IDE supports MacOS, Linux and Windows 32/64-bit and will be 64-bit only going forward.

MCUXpresso 10.3.1 About Information

MCUXpresso 10.3.1 About Information

Continue reading

Different Ways of Software Configuration

Most of the time software needs some way to configure things: depending on the settings, the software will do different things. For example the software running on the microcontroller on top of the Raspberry might have the OLED LCD available or not:

Raspberry Pi and tinK22 with OLED LCD

Raspberry Pi and tinyK22 (NXP Kinetis K22FN512) with OLED LCD

How can I deal with this in my application code? Continue reading

Tutorial: Changing ARM Cortex Core or Microcontroller in Eclipse CDT Projects

Sometimes I start a project with an ARM microcontroller, and in the middle of the project I find out that it was a wrong choice at the beginning and I need to switch the microcontroller derivative or even the used ARM core. With little knowledge of the project structure and the files needed, such a switch is not the easiest thing, but definitely possible.

switching cores

switching cores

Continue reading

Tutorial: Blinky with the NXP LPC845-BRK Board

The NXP LPC845-BRK board is a sub-$6 breadboard friendly development board with an ARM Cortex-M0+ on it. This tutorial is about developing a ‘blinky’ on it using MCUXpresso.

Binky on NXP LPC845-BRK Board

Binky on NXP LPC845-BRK Board

Continue reading

Unboxing the NXP LPC845-BRK Board

I really love tiny and bread board friendly boards, especially if they are very affordable and can be use with Eclipse based tools. So I was excited to see the NXP LPC845-BRK board to be available at Mouser, so I ended up ordering multiple boards right away. Why multiple? Because they only cost CHF 5.95 (around $6)!

NXP LPC845-BRK Board

NXP LPC845-BRK Board

Continue reading

Tutorial: HD44780 Display Driver with NXP MCUXpresso SDK

In the age of high-resolution graphical LCDs using a character display might look like a bit anachronistic. But these displays provide a lot of value for me as they are robust, available in different shapes and number of lines. And such a character display can be a better solution for an industrial application.

hd44780 display with NXP FRDM-KW41Z Board

hd44780 display with NXP FRDM-KW41Z Board

Continue reading

GDB All-Stop and Non-Stop Mode with LinkServer

GDB supports a mode which allows the GDB debug client to read memory while the target is running. This allows features like ‘live variables’: that way I can see the variables refreshed and changing over time without halting the target. Another functionality which comes with that feature is to check stopped threads or to see all threads in the system.

multiple freertos threads in debug view

multiple FreeRTOS threads in debug view

Continue reading

Driver for VL53L0X Time-Of-Flight (ToF) Sensor and NXP K20DX128

I’m using the VL6180X ToF (Time-of-Flight) sensors successfully in different projects. The VL6180X is great, but only can measure distances up to 20 cm and in ‘extended mode’ up to 60 cm. For a project I need to go beyond that, so the logical choice is the VL53L0X which measures between 30 cm and 100 cm or up to 200 cm. For this project I’m using the VL53L0X breakout board from Adafruit, but similar products are available e.g. from Pololu.

NXP K20dx128 with adafruit vl53l0x tof sensor

NXP K20dx128 with Adafruit VL53LOx tof sensor

Continue reading

Regaining Debug Access to NXP i.MX RT1064-EVK executing WFI

Working with low power modes can be challenging. It can severely affect debugging capabilities of a microprocessor or microcontroller. I ported a FreeRTOS application using the Tickless Idle Mode to the NXP i.MX RT1064 board, and all of a sudden, the board was unresponsive to any debugger connection. Luckily the board was not really bricked, but it took me while to find a way to recover it. So for when you end up in a situation with a ‘bricked’ i.MX RT1064 board, this article might be helpful for you to recover it.

i.MX RT1064-EVK Board

i.MX RT1064-EVK Board

Continue reading

Using Camera Modules with NXP i.MX RT10xx EVK

In “First Steps with the NXP i.MX RT1064-EVK Board” I mentioned that the board kit came with a camera module, but it was unclear to me which module was included in the kit. I know it now: it is the ON Semiconductor MT9M114 :-).

Image from the MT9M114

Image from the MT9M114

Continue reading

Tutorial: Git with Eclipse

There are things which are game changer in the world of software development: one such event was when I started using a VCS (Version Control System): it changed for me how I keep and store my projects and settings. It even changed the way how I deal with non-software related items like documents or other valuable things: I started storing them in to a VCS too.

EGit with Eclipse

EGit with Eclipse

Continue reading