arduino / arduino/ArduinoCore-arc32

BLE valueLength() on a peripheral is always returning 64

Open
#575 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
330
Forks
281
PR merge metrics
No merged PRs in 30d

Description

With long writes from a device to the 101: I noticed that valueLength is always returning 64. It is necessary to get the correct length of data to keep from reading garbage at the end. I haven't seen any crashing though. I will attach the peripheral sketch used. I was using nRF connect to send text "0123456789". Ellisys shows "0123456789" in the traces.

This is the output from the serial terminal of the peripheral sketch that is reading the 10 characters sent from the phone.
value length: 64

value: 0123456789K?õßm÷çõðë·–PñßÿüÿŸˆhÓ

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the peripheral sketch mentioned in the report and reproduce the long write using nRF Connect, checking the BLE valueLength() path and serial output. Done means a 10-character write reports length 10 and does not include trailing garbage.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.