Skip to the content
PCBKitNew board
2 layers36 × 16 mmDocking connector, the printed circuit board in 3D

Docking connector

RIVeR-Lab/BOOST3

Multi-Agent Mission Concept for Battery Optimized Onsite Swapping Technology (BOOST)

Size
36 × 16 mm
Copper layers
2
Thickness
1.6 mm
Parts
7
Nets
5
Pads
19
Tracks, vias
18, 0
Pours
2
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
6 Oct 2023
Updated
22 Jun 2025

Overview

Docking connector is an open-source printed circuit board by RIVeR-Lab, from the RIVeR-Lab/BOOST repository on GitHub, published under the MIT licence. It is a 2-layer board of 36 × 16 mm with 7 parts on 5 nets, routed with 18 tracks and 0 vias.

Its parts include 2 connectors and 1 resistor.

README

electrical/kicad/Minibot_V1/README.md

Autonomous Navigation & Docking for Distributed Robots

  • Aka Swarm Crawler
  • Aka BOOST: Battery Optimized On-site Swapping Technology
  • Making swarms crawl

Where Software Is

/hubbot_software/

  • The software running on the NVidia Jetson Nano on the HubBot
  • Includes the main ROS2 node running on the HubBot in hubbot_software\ros2_ws\src\py_hubbot_main_controller_node\py_hubbot_main_controller_node

/minibot_hubbot_firmware/charge_controller_firmware/

  • Code running on the Arduino Nano on the HubBot that controls the LEDs and reads battery module continuity and voltage and sends to Jetson Nano over UART.

/minibot_hubbot_firmware/firmwarePioCube/

  • Code running on the STM32F466RE NUCLEO on our Custom PCB.
  • This board is identical on the 2x minibots and on the hubbot.
  • Controls IMU, GPS, motor control, encoders, battery voltage.

/shared/

  • Data shared on the ROS network between HubBot and Minibots

/software/

  • All SLAM and NAV software running on MiniBot for autonomous Docking

Running Things

HubBot Software

  • Run main ROS2 HubBot node:

    ./hubbot_software\start_hubbot_processes.sh

HubBot Firmware

  • Load Firmware onto Charge Controller Arduino Nano.
    • Load this sketch onto the Arduino
    • minibot_hubbot_firmware\charge_controller_firmware\monitor_RGB
  • Load firmware onto STM32F446
    • Load the latest firmware onto the NUCLEO found here:
      • minibot_hubbot_firmware\firmwarePioCube\firmware_releases\hubbot

MiniBot Firmware

  • Load the latest firmware for the respective MiniBot onto its STM32F446RE
    • minibot_hubbot_firmware\firmwarePioCube\firmware_releases

David Useful Commands

ros2 topic pub /chatter std_msgs/String "data: Hello ROS Developers"

ros2 topic pub /hub_stat std_msgs/Int32 "data: 4"

rosserial with ROS1
To find the USB Port and get Nucleo board USB into WSL
To give user permission to /dev/ttyUSBx, ttyACMx, and ttySx devices
  • These devices are in the dialout group, so add your user to that group

    $ sudo adduser myusername dialout

Getting Data into ROS1 from MCU
  • http://wiki.ros.org/rosserial_arduino/Tutorials/Hello%20World
  • run roscore in one terminal
    • wsl> roscore
  • Run serial_node.py in another terminal
    • wsl> rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=57600
    • This will get all topics from the MCU.
  • Should now see the topic in ROS1 in another terminal
    • wsl> rostopic list
    • Can echo with wsl> rostopic echo
Using ros1_bridge
  • https://github.com/ros2/ros1_bridge
  • Start ROS1 core wsl> roscore
    • If not done already.
  • Need to source both ROS1 and then ROS2 setup.bash's
  • wsl> ros2 run ros1_bridge dynamic_bridge --bridge-all-topics
    • This will bring in all topics from ROS1 to ROS2 and all topics from ROS2 to ROS1.
teleop twist keyboard
ROSSerial TroubleShooting
[ERROR] [1677681154.605087]: Unable to sync with device; possible link problem or link software version mismatch such as hydro rosserial_python with groovy Arduino
  • Make sure Baud rates are matching
  • Make sure that LOGGING is off on the nucleo so that ONLY ROSserial stuff is is sent out over the serial port connected to the Jetson.
If serial isn't getting to jetson, but is getting to laptop
  • Make sure that the power configuration is correct on the NUCLEO board.
  • i.e. since we are using the STLink as a serial to USB adapter, the STLINK must be powered when the MCU is booted.
  • Make sure that we are powering USB through NUCLEO from the jetson.
    • And if we are using external 5v to power NUCLEO that the correct jumpers are set.

For running ROSserial and ros1_bridge

source ros1 roscore rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=57600

source ros2 source ros1 ros2 run ros1_bridge dynamic_bridge --bridge-all-topics

Parts

7
QtyValueFootprintReferences
4, , ,
1436500612swarm_crawler_pcb.PcbLib:CON_436500612J1
15413swarm_crawler_pcb.PcbLib:5413J2
1Res3Miscellaneous Devices.IntLib:J1-0603R1

Questions

How big is the Docking connector PCB?

It measures 36 × 16 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Docking connector use?

7 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Docking connector KiCad files?

From the RIVeR-Lab/BOOST repository on GitHub, at the commit this page was made from: the board is electrical/kicad/docking_connector/docking_connector.kicad_pcb and its schematic electrical/kicad/Minibot_V1/Connectors.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Docking connector design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from RIVeR-Lab/BOOST

2
  • 6 layers80 × 98 mmMinibot V1, the printed circuit board in 3D

    Minibot V1

    RIVeR-Lab/BOOST

    Multi-Agent Mission Concept for Battery Optimized Onsite Swapping Technology (BOOST)

    101 parts3MIT
  • 2 layers44 × 22 mmBatt swap, the printed circuit board in 3D

    Batt swap

    RIVeR-Lab/BOOST

    Multi-Agent Mission Concept for Battery Optimized Onsite Swapping Technology (BOOST)

    16 parts3MIT

Similar boards

  • 2 layersEncoder, the printed circuit board in 3D

    Encoder

    byrantech/laptop

    anyon_e, a highly integrated, high end, open source laptop. Attempt the impossible.

    7 parts4.3kMIT
  • 2 layers40 × 20 mmSensor smd, the printed circuit board in 3D

    Sensor smd

    scottbez1/splitflap

    DIY split-flap display

    7 parts4.2k
  • 2 layers19.8 × 30 mmZ limit, the printed circuit board in 3D

    Z limit

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    7 parts3.7k
  • 2 layers35.6 × 58.2 mmDisplay Carrier, the printed circuit board in 3D

    Display Carrier

    AxxAxx/AxxSolder

    STM32 Based soldering station for JBC cartridges, 9-24 VDC and USB-PD power

    7 parts1.7kGPL-3.0
  • 2 layers20.3 × 16.3 mmMap MPX, the printed circuit board in 3D

    Map MPX

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    7 parts1.2k
  • 2 layers26 × 44 mmCompact carrier board, the printed circuit board in 3D

    Compact carrier board

    jamro/tiny-engineer

    A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.

    7 parts1.1k
  • 2 layers26.4 × 53.8 mmAtari pickup, the printed circuit board in 3D

    Atari pickup

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    7 parts1kGPL-3.0
  • 2 layersRj45 breakout, the printed circuit board in 3D

    Rj45 breakout

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    7 parts990GPL-3.0