DEMO: APA102 RGB LED control via UCANS32K146 with PX4-Autopilot

Introduction

This tutorial explains how to operate 3-LED APA102 RGB board via UCANS32K146 over SPI.

Items Needed

  • An APA102 based RGB LED board

  • UCANS32K146 or UCANS32K1SIC

  • Jumper wires

  • STEMMA QT / Qwiic JST SH 4-pin Cable

  • Segger J-Link debugger

APA102 LED Board

Connections

The input connector of 3-LED APA102 board has 4 wired connections: SDI, CKI, PWR, GND. To connect the LED board to the UCAN board, refer the configuration of 'stemma qt / qwiic jst sh cable'. The connections would be as follows:

Network

All the LEDs in the board are daisy chained together. Note: These boards can also be daisy chained from one board to the next. From the software point of view these are just considered one long string of LEDs daisy chained together.

Software Procedure

Note: You may refer the steps for building and flashing PX4 on this gitbook link.

Software Setup

git clone -b UCANS32K146 https://github.com/NXPHoverGames/PX4-Autopilot.git --recursive
cd PX4-Autopilot

Change the value of 'NUM_LEDS' in '/platforms/nuttx/NuttX/apps/examples/apa102/apa102_main.c' to the number of LEDs in your APA102 board. For our case, it will be '3'.

Building PX4

make nxp_ucans32k146_canbootloader
  // output: build/nxp_ucans32k146_canbootloader/nxp_ucans32k146_canbootloader.bin
make nxp_ucans32k146
  // output: build/nxp_ucans32k146_default/deploy/34.bin

After compilation is done, the new firmware is available under: build/nxp_ucans32k146_default/deploy/34.bin

Flashing PX4

Flash the firmware and bootloader, if the board already doesn't have one, using 'jlink.exe'.

You may flash the attached files (configured for a 3-LED APA102 board), to skip the above steps.

connect
// specify the following:
  // device: s32k146;
  // target interface: s (which stands for swd);
  // interface speed: 1000 khz (recommended);
loadbin <path to nxp_ucans32k146.bin> 0x0
loadbin <path to 34.bin> 0x6000
// quit jlink tools by typing 'q'.

Operating the LEDs

Connect your board and access to the terminal using MobaXterm, minicom,...

Type the following command:

apa102

Last updated