Sony Spresense - Failed to get info off device - Can't write KX126 CNTL2 register

Hello!
We are trying to acquire accelerometer readings from the Sony Spresense board and we are met with the following errors:

When using edge-impulse-daemon:

$ edge-impulse-daemon
Edge Impulse serial daemon v1.15.1
Endpoints:
    Websocket: wss://remote-mgmt.edgeimpulse.com
    API:       https://studio.edgeimpulse.com/v1
    Ingestion: https://ingestion.edgeimpulse.com

[SER] Connecting to /dev/ttyUSB0
[SER] Serial is connected, trying to read config...
[SER] Failed to get info off device Timeout when waiting for >  (timeout: 5000) onConnected
[SER] Serial is connected, trying to read config...
[SER] Retrieved configuration
[SER] Device is running AT command version 1.7.0
? To which project do you want to connect this device? Zalmotek / test123

And the board succesfully connects to the platform, but when acquiring accelerometer data we are prompted with the following error:

SF

When using edge-impulse-data-forwarder:

$ edge-impulse-data-forwarder
Edge Impulse data forwarder v1.15.1
Endpoints:
    Websocket: wss://remote-mgmt.edgeimpulse.com
    API:       https://studio.edgeimpulse.com/v1
    Ingestion: https://ingestion.edgeimpulse.com

[SER] Connecting to /dev/ttyUSB0
[SER] Serial is connected (2a:7b:32:d9:bc:61:e8:11:84:12:64:b5:5b:fe:f1:39)
[WS ] Connecting to wss://remote-mgmt.edgeimpulse.com
[WS ] Connected to wss://remote-mgmt.edgeimpulse.com

? To which project do you want to connect this device? Zalmotek / test123
[SER] Detecting data frequency...
[SER] Failed to get information off device ERR: Can't write KX126 CNTL2 register

When using AT commands:

$ edge-impulse-run-impulse --raw
Edge Impulse impulse runner v1.15.1
[SER] Connecting to /dev/ttyUSB0
[SER] Connected to /dev/ttyUSB0
ERR: Can't write KX126 CNTL2 register
Accelerometer (KX126) missing or not working correctly
Hello from Edge Impulse Device SDK.
Compiled on Mar 24 2022 09:16:37
Loaded configuration
Type AT+HELP to see a list of commands.
>

The board was flashed with the firmware downloaded from Sony's Spresense - Edge Impulse Documentation and flashed using a Python 3.7 venv.
Any clue on why this is happening? Thank you.

Hi @mihnea.stoica27,

Which accelerometer shield are you using?

We’ve used this shield to add an accelerometer to the Spresense board: https://www.chip1stop.com/USA/en/view/dispDetail/DispDetail?partId=ROHM-0170579&cid=c1s_sony_spresense_SPRESENSE-SENSOR-EVK-701

I only have it connected to an Extension board, i presumed it had a built-in accelerometer.
Thanks for the input.

@mihnea.stoica27 The Sony Spresense Extension Board does not have an IMU, aka, an accelerometer. Thus, the Firmware could not find Kx126 accelerometer. Also, the Edge Impulse Studio incorrectly declares you can use the Built-In IMU when you have a Spresense MCU connected via the Edge Impulse daemon.

The Sony Spresense Extension Board does have:

  • 3.5 mm headphone jack
  • MicroSD card mount
  • Extra USB port
  • Multiple microphone pins (You must wire in your own analog or digital mics.)
  • Arduino UNO compatible Shield headers.
  • There are other features on this Extension Board but you must add and/or remove surface mount parts (not exactly hobbiest friendly).

@Arjan The Sony Spresese Edge Impulse Firmware currently works with the Kx126 IMU. The Firmware also has some support for the Kx122 but isn’t fully hooked up. I got the Kx224 working with the Firmware.

1 Like