Skip to content

Itamare4/ROS_stm32f1_rosserial_USB_VCP

Repository files navigation

ROS_stm32f1_rosserial_USB_VCP

Brief

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

Changelog

  • 0.3 - Upgrade HAL to v1.6.1
    Update to custom VID/PID from pid.codes open-source USB PID program

  • 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.

USB VID/PID

The USB VID/PID - 1209/FEFE is allocated through the pid.codes open-source USB PID program.

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) -
   	1st terminal. roscore
	2nd terminal. rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0
	3rd terminal. rostopic list 、 rostopic echo /version

Notice: Baudrate on VCP protocol is determine by the host(MCU), no need to set it as parameter on rosrun...

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.

About

Itamar Eliakim
M.Sc Robotics Engineer, Tel Aviv, Israel
Email - Itamare@gmail.com