Compiled firmware from main branch bricks device?

Hi folks,

I followed the instructions to compile the firmware in PlatformIO with no changes to the source code, but the resulting binary causes the device to lock up. After upload, it doesn’t show up as a USB device, and neither the LED nor any of the buttons do anything. Uploading the default pre-compiled firmware.hex from the project src folder restores functionality.

Is the code on the main branch missing something that would cause it to freeze?

Here’s the resulting PlatformIO output when compiling:

 *  Executing task: platformio debug 

Processing teensy40 (platform: teensy; board: teensy40; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/teensy/teensy40.html
PLATFORM: Teensy (5.0.0) > Teensy 4.0
HARDWARE: IMXRT1062 600MHz, 512KB RAM, 1.94MB Flash
DEBUG: Current (jlink) External (jlink)
PACKAGES: 
 - framework-arduinoteensy @ 1.159.0 (1.59) 
 - tool-teensy @ 1.159.0 (1.59) 
 - toolchain-gccarmnoneeabi-teensy @ 1.110301.0 (11.3.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 100 compatible libraries
Scanning dependencies...
Dependency Graph
|-- AT42QT @ 0.6.0
|-- Audio @ 1.3
|-- LittleFS @ 1.0.0
|-- SPI @ 1.0
|-- Wire @ 1.0
|-- button_matrix
|-- debouncer
|-- harp
|-- potentiometer
|-- Hx_plateReverb
|-- SD @ 2.0.0
|-- SerialFlash
Building in debug mode
Compiling .pio/build/teensy40/src/main.cpp.o
Linking .pio/build/teensy40/firmware.elf
Checking size .pio/build/teensy40/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
Calculating size .pio/build/teensy40/firmware.elf
Building .pio/build/teensy40/firmware.hex
teensy_size: Memory Usage on Teensy 4.0:
teensy_size:   FLASH: code:173260, data:33964, headers:8836   free for files:1815556
teensy_size:    RAM1: variables:88000, code:167644, padding:28964   free for local variables:239680
teensy_size:    RAM2: variables:462176  free for malloc/new:62112
=========================================================================================== [SUCCESS] Took 2.02 seconds ===========================================================================================
 *  Terminal will be reused by tasks, press any key to close it.

Cheers–and loving the device btw! Really fabulous job.

1 Like

Hi there!
If there was anything missing, I’m sure it would not compile.

Two things that strike me:

  • It says building in debug mode. Maybe you should be in release mode for it to work?
  • Your package versions are different than mine. If that’s the cause of the break, I would need to indicate it in the platformio.ini. It does not seem likely that there would be breaking change in minor versions like that.
    • PACKAGES:
      • framework-arduinoteensy @ 1.156.0 (1.56)
      • tool-teensy @ 1.155.0 (1.55)
      • toolchain-gccarmnoneeabi @ 1.50401.190816 (5.4.1)

Whoop–it looks like I just don’t know how to compile code in VSCode. Everything works as expected now that I’m clicking the right button (checkmark at the bottom, not the “play” button at the top). Thanks for tipping me in the right direction!