STM Nucleo + Sparkfun XM125 integration with Waste Level Application

I’ve been trying to prototype a waste level measurement system using Acconeer’s A121 waste level example. I managed to get it all working with the SparkFun Qwiic XM125 board and the Python Exploration Tool but i want to try and move away from the Exploration Tool and be able to retrieve to retrieve just the data and not rely on the tool itself. But im running into some issues flashing and using the waste level application.

I used the Acconeer XM125 SDK and STM32CubeIDE to build a firmware image (based on the waste level example), then flashed it to the SparkFun XM125 via STM32CubeProgrammer in bootloader mode (BOOT + RESET). Programming completed successfully according to STM32CubeProgrammer (file download complete at 0x08000000). However, after resetting the board and opening PuTTY on the XM125’s USB‑UART COM port (tested at both 115200 and 921600 baud, 8‑E‑1, no flow control), I never saw any debug output or waste‑level data — just a silent serial line. So the firmware appears to flash, but I get no visible UART output in PuTTY, and I’m not sure if:

  • the logs are going to a different UART than the CH340 USB‑UART,

  • the example is not compatible with the SparkFun carrier as‑is, or

  • I’m missing a board‑specific configuration step to route printf to the USB‑UART.

Other additional questions:

Is it possible to flash the Acconeer waste level example application onto the SparkFun XM125 board and then integrate that board with an STM32 Nucleo-F401RE as a host controller?

Can the SparkFun XM125 run the waste level C application directly on the XM125’s onboard MCU? If yes, can the Nucleo-F401RE then communicate with it over I2C/UART and retrieve the level results, rather than using the Exploration Tool?

Or will i need the XE121 Eval board from Acconeer itself?

If I stay with the SparkFun XM125, are there any known board-specific limitations compared with the Acconeer XE125/XM125 reference hardware when flashing and running Acconeer example applications?

Thanks!

Is it possible to flash the Acconeer waste level example application onto the SparkFun XM125 board and then integrate that board with an STM32 Nucleo-F401RE as a host controller?
It should be fine, it doesn’t matter much which MCU as long as it has compatible comms/baud

Can the SparkFun XM125 run the waste level C application directly on the XM125’s onboard MCU? If yes, can the Nucleo-F401RE then communicate with it over I2C/UART and retrieve the level results, rather than using the Exploration Tool?
It should as long as it fits (check the size vs memory); you might need to edit their example a bit though if they routed the default serial strangely (might need to adjust baud/pins)

Or will i need the XE121 Eval board from Acconeer itself?
I don’t think this is needed

If I stay with the SparkFun XM125, are there any known board-specific limitations compared with the Acconeer XE125/XM125 reference hardware when flashing and running Acconeer example applications?*
Not really…users have used python with host controllers and whatnot as well

This is a bit of a shot in the dark, but have you tried 8N1 @ 115200 (no flow)?

You could also try routing to the “debug UART” RX and TX pins broken out on the board (in case the waste example routes the serial to that path, I’d try both the above and this at both 115200 and 921600 8n1)