Overview

Rosserial interface based on USB VCP for STM32F103C8, ported from from stm32F4 rosserial UART repo - https://github.com/johnsonzzd/rosserial_stm32_NucleoF411

stm32_front.jpg ros_terminal.png

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.

stm32_back.jpg

  • Connect JTAG pins on the STM32F103C8 to Nucleo board or st-link

stm32_debugger.jpg

  • 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

Wiki: STM32_rosserial_VCP (last edited 2018-10-19 16:04:52 by ItamarEliakim)