micro-ROS / micro-ROS/micro_ros_platformio
Arduino Wire.h I2C custom transport on Pi Pico is causing a crash
- Dominant language
- Python
- Stars
- 334
- Forks
- 111
- PR merge metrics
- No merged PRs in 30d
Description
- Hardware description: Pi Pico
- RTOS: I think arduino mbed
- Version or commit hash: humble
#### Steps to reproduce the issue
I'm trying to make a custom transport for I2C using arduino's Wire library. I am able to build and flash the microros_publisher example, everything works over serial and I can see the topic and node in a docker container. However, when I replace setting the serial transport with my own, I think the pico crashes since i'm getting a flashing pattern on the pico (4 long, 4 0r 5 long). I really hope I'm missing something subtle. Also I'm not sure how I am supposed to properly use `uxr_init_custom_transport`, or if I'm supposed to use it at all, because the default serial transport doesn't. Also if this isn't the correct place to post this issue, please point me in the right direction.
here's my ini
```
env:pico]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = pico
framework = arduino
lib_deps =
https://github.com/micro-ROS/micro_ros_platformio
upload_protocol = mbed
board_microros_distro = humble
board_microros_transport = custom
```
heres the code
https://pastebin.com/5hzPiRcD
Contributor guide
Research direction
Start with the PlatformIO ini and the linked Pastebin code, focusing on how the custom transport is configured and where `uxr_init_custom_transport` is used. Reproduce the serial baseline, then the I2C transport on the Pi Pico; done means the custom transport no longer crashes the board and the micro-ROS node and topic remain visible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- arduino
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100