Overview
Rosserial interface based on USB VCP for STM32F103C8, ported from from stm32F4 rosserial UART repo - https://github.com/johnsonzzd/rosserial_stm32_NucleoF411
Changelog
- 0.2 - Fixed ROS error on topic id..,python node processed only the second topic due to fast data transmission, that's why it only worked with one publisher/subscriber, added HAL_Delay on the first handshake between rosnode and MCU(node_handle.h)
- 0.1 - JTAG Debug on board works, only works with one publisher / subscriber. ERROR - "Tried to publish before configured, topic id 105" on publisher and subscriber together, will be fixed on next version.
HOW-TO
- Remove R10, and solder 1.5K pull-up resistor between PA12 and 3.3v.
- Connect JTAG pins on the STM32F103C8 to Nucleo board or st-link
- Burn the firmware using systemworkbench AC6, Cubemx version - 4.25.1 HAL Version - F1 v1.6.1
- Debug works thanks to currect .cfg file, publish to topic from ROS side, and check the results on the MCU debugger side
- run the following commands (from the original git by johnsonzzd) -
Notice: Baudrate on VCP protocol is determine by the host(MCU), no need to set it as parameter on rosrun...
1st terminal. roscore 2nd terminal. rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 3rd terminal. rostopic list 、 rostopic echo /version
It is better to generate you own ros_lib on your system to get all your messeages, do the following -
cd <sketchbook>/libraries rm -rf ros_lib rosrun rosserial_arduino make_libraries.py .
and copy ros_lib to the systemworkbench project folder.
TODO
- Add dapboot bootloader with webDFU support