arduino / arduino/ArduinoCore-arc32

Jira 906 Device locks up using CurieIMU

Open
#495 15 comments 1 reaction 0 assignees View on GitHub
bug
Dominant language
C
Stars
330
Forks
281
PR merge metrics
No merged PRs in 30d

Description

While testing the new 2.0.0/2.0.1 corelibs I have encountered a bug using the Curie IMU module. With the 101 in peripheral mode, if a BLE characteristic is written to from an external central device while using the IMU, the device will occasionally lock up requiring a reset.

I put together a simple test case by modifying the led example sketch to read from the IMU periodically. You can use the included ledtest.js node script to communicate with the Arduino.

[led.ino](https://gist.github.com/khanning/13b144c7acfdcf5dbd268a5fd0084ec3)
[ledtest.js](https://gist.github.com/khanning/fdac3f7a1b25a8b289641fc89dbbb1c2)

To test:
1. Upload the led.ino to the Arduino 101 using either 2.0.0 or 2.0.1 corelibs
2. Run `npm install noble` in the same directory as the ledtest.js file
3. Execute `node ledtest.js` and wait for the device to lockup

Please let me know if you require any additional information.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the linked led.ino sketch and ledtest.js script, then reproduce the lockup on an Arduino 101 with corelibs 2.0.0 or 2.0.1 using the listed npm and node commands. Trace the interaction between periodic IMU reads and BLE characteristic writes; done means the device no longer locks up during the reproduction test.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, javascript, node.js
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.