

BMC2
Robotic quadruped
- Size
- 96 × 56 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 131
- Nets
- 112
- Pads
- 453
- Tracks, vias
- 2,167, 254
- Pours
- 6
- Routed
- Yes
- KiCad
- KiCad 4
- Created
- 20 Jul 2017
- Updated
- 9 May 2018
Overview
BMC2 is an open-source printed circuit board by craftit, from the craftit/Dogbot repository on GitHub. It is a 2-layer board of 96 × 56 mm with 131 parts on 112 nets, routed with 2,167 tracks and 254 vias.
It is built around the IFX91041EJV50 and BSC016N06NS. Its parts include 44 capacitors, 34 resistors, 10 connectors, 9 diodes and 6 transistors. It belongs with the STM32 boards of this library.
Main components
2README
README.mdDogbot
DogBot is a quadruped robot developed by React AI as a platform for researching robotics, AI and more.
The Dogbot repository contains CAD designs, along with software for higher-level systems for control and operation of the React AI DogBot robot via ROS. It utilises the lower-level motor control firmware in the corresponding Firmware repository for interaction with the physical DogBot.
Installation
This code has been tested for installation and operation on Ubuntu Linux.
ROS must be installed; the code has been tested against the Kinetic release. The repository contains a catkin workspace under Software/ROS, which should be built with catkin build
You may need to install the packages ros-kinetic-rosparam-shortcuts ros-kinetic-ros-control ros-kinetic-ros-controllers
Operation via Firmware and ROS
Home the motors
The motors must be ‘homed’, i.e. know their absolute position, before they can be controlled via the ROS driver, hence they must first be controlled via the UI as described in the Firmware repo.
Note: complete the Firmware UI steps before starting the ROS components. The hardware interface node in ROS will send conflicting signals if it is operational while the UI tries to alter the motor positions.
Quick Start
To get started with ROS control, build and source the code then run dogbot_hardware.launch
cd Software/ROS
catkin build
source devel/setup.bash
roslaunch dogbot_control dogbot_hardware.launchThis launches a hardware interface node of type dogbot_control/dogbot_hw_main, which uses the ros_control package to spawn and interact with ROS controllers. This provides a framework for different controller types, as well as standardising interactions with Gazebo and RViz.
If you are controlling other equipment you may require a different launch file, such as testrig_hardware.launch
Further ROS Control
The motors can now be controlled by interacting directly with ROS topics or via ROS nodes. Further details are in the ROS directory readme file
Contributing
If you have any problems with the contents of either repository, or have a question about DogBot, please feel free to contact us
If you wish to contribute please fork the project on GitHub. More details on contributing to follow.
License
details to follow
Parts
131| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 10K | Resistors_SMD:R_0805_HandSoldering | R14, R15, R16, R17, R18, R19, R23 |
| 7 | 1k | Resistors_SMD:R_0805_HandSoldering | R1, R2, R3, R4, R5, R6, R8 |
| 6 | BSC016N06NS | Local:SON127P532X615X110-8N | Q1, Q2, Q3, Q4, Q5, Q6 |
| 4 | 0.1uF 5V | Capacitors_SMD:C_0805_HandSoldering | C15, C16, C21, C25 |
| 4 | 100R | Resistors_SMD:R_0805_HandSoldering | R11, R12, R22, R34 |
| 4 | 100nf | Capacitors_SMD:C_0805_HandSoldering | C7, C10, C11, C12 |
| 4 | 39K | Resistors_SMD:R_0805_HandSoldering | R20, R27, R29, R31 |
| 4 | 3K | Resistors_SMD:R_0805_HandSoldering | R21, R28, R30, R32 |
| 3 | 1uF 50V | Capacitors_SMD:C_1206_HandSoldering | C30, C31, C32 |
| 3 | 30pF 5V | Capacitors_SMD:C_0805_HandSoldering | C33, C34, C35 |
| 3 | R001 | Local:R_PSR400_SENSE | R24, R25, R26 |
| 2 | 0.1uf (6V min) | Capacitors_SMD:C_0805_HandSoldering | C1, C44 |
| 2 | 15pF | Capacitors_SMD:C_0805_HandSoldering | C5, C6 |
| 2 | 1nF 5V | Capacitors_SMD:C_0805_HandSoldering | C24, C26 |
| 2 | 1uf 6.3V | Capacitors_SMD:C_0805_HandSoldering | C19, C20 |
| 2 | 2.2uf | Capacitors_SMD:C_0805_HandSoldering | C3, C4 |
| 2 | 220nF 60V | Capacitors_SMD:C_1206_HandSoldering | C36, C39 |
| 2 | 220nF 6V | Capacitors_SMD:C_0805_HandSoldering | C40, C42 |
| 2 | 22R | Resistors_SMD:R_0805_HandSoldering | R9, R10 |
| 2 | 47uH | Inductors:SELF-WE-PD3S | L2, L3 |
| 2 | CAN | Pin_Headers:Pin_Header_Angled_1x04 | P2, P12 |
| 1 | 0.047uf 45v | Capacitors_SMD:C_1206_HandSoldering | C23 |
| 1 | 0.047uf 90V | Capacitors_SMD:C_1206_HandSoldering | C22 |
| 1 | 0.1uF | Capacitors_SMD:C_0805_HandSoldering | C2 |
| 1 | 10 | Resistors_SMD:R_0805_HandSoldering | R13 |
| 1 | 100nf 5V | Capacitors_SMD:C_0805_HandSoldering | C9 |
| 1 | 100uF 60V | Capacitors_SMD:c_elec_10x10.5 | C37 |
| 1 | 100uF 6V | Capacitors_SMD:c_elec_6.3x5.8 | C41 |
| 1 | 10V | Diodes_SMD:SOD-123 | D1 |
| 1 | 10k | Resistors_SMD:R_0805_HandSoldering | R7 |
| 1 | 10nf | Capacitors_SMD:C_0805_HandSoldering | C13 |
| 1 | 10uH | Resistors_SMD:R_0805_HandSoldering | L1 |
| 1 | 1nf 5V | Capacitors_SMD:C_0805_HandSoldering | C29 |
| 1 | 1uF 4V | Capacitors_SMD:C_0805_HandSoldering | C17 |
| 1 | 1uF 4V min | Capacitors_SMD:C_0805_HandSoldering | C43 |
| 1 | 1uf | Capacitors_SMD:C_0805_HandSoldering | C14 |
| 1 | 1uf 16V | Capacitors_SMD:C_1206_HandSoldering | C18 |
| 1 | 2.2uf 16V | Capacitors_SMD:C_1206_HandSoldering | C27 |
| 1 | 22k | Resistors_SMD:R_0805_HandSoldering | R33 |
| 1 | 22nF 6V | Capacitors_SMD:C_0805_HandSoldering | C38 |
| 1 | 3.6V | Diodes_SMD:SOD-123 | D8 |
| 1 | 3V3 | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W13 |
| 1 | 4.7uF 45V | Capacitors_SMD:C_1206_HandSoldering | C28 |
| 1 | 4.7uf | Capacitors_SMD:C_1206_HandSoldering | C8 |
| 1 | 5.4V | Diodes_SMD:SOD-123 | D7 |
| 1 | 50V | Diodes_SMD:SOD-123 | D6 |
| 1 | 5V | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W12 |
| 1 | 60V 2A | Diodes_SMD:SOD-123 | D4 |
| 1 | 60V 2A | Diodes_SMD:SOD-123 | D5 |
| 1 | 8MHz | Crystals:ABM3 | X1 |
| 1 | CAL | Buttons_Switches_SMD:SW_SPST_FSMSM | SW2 |
| 1 | CAN_RX | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W2 |
| 1 | CAN_TX | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W1 |
| 1 | CONN_02X05 | Local:SMT-HDR-10 | P8 |
| 1 | DATA | Pin_Headers:Pin_Header_Angled_1x05 | P3 |
| 1 | DRV8305 | QFP50P900X900X120-49N:QFP50P900X900X120-49N | U3 |
| 1 | DSUP | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W10 |
| 1 | GHA | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W7 |
| 1 | GLA | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W8 |
| 1 | GND | Connect:1pin | P10 |
| 1 | GND | Measurement_Points:Measurement_Point_Round-SMD-Pad_Big | W11 |
| 1 | GREEN LED | LEDs:LED_0805 | D2 |
| 1 | I2C | Pin_Headers:Pin_Header_Straight_1x04 | P11 |
| 1 | IFX91041EJV50 | Housings_SOIC:SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm | U4 |
| 1 | ISenseA | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W3 |
| 1 | ISenseB | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W4 |
| 1 | ISenseC | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W5 |
| 1 | Jumper_NC_Small | Resistors_SMD:R_0805_HandSoldering | JP2 |
| 1 | Jumper_NO_Small | Resistors_SMD:R_0805_HandSoldering | JP1 |
| 1 | LED | LEDs:LED_0805 | D9 |
| 1 | PB12 | Measurement_Points:Measurement_Point_Round-SMD-Pad_Small | W14 |
| 1 | PhaseA | Connect:1pin | P5 |
| 1 | PhaseB | Connect:1pin | P6 |
| 1 | PhaseC | Connect:1pin | P7 |
| 1 | RED LED | LEDs:LED_0805 | D3 |
| 1 | RESET | Buttons_Switches_SMD:SW_SPST_FSMSM | SW1 |
| 1 | STM32F205RBTx | Housings_QFP:LQFP-64_10x10mm_Pitch0.5mm | U2 |
| 1 | Sensor | Pin_Headers:Pin_Header_Angled_1x09 | P1 |
| 1 | TC2117-3.3V | TO_SOT_Packages_SMD:SOT-223 | U5 |
| 1 | THERMISTOR | Resistors_SMD:R_0805_HandSoldering | TH1 |
The 128 most common of 131 parts.
Questions
How big is the BMC2 PCB?
It measures 96 × 56 mm and has 2 copper layers, 1.6 mm thick.
What parts does the BMC2 use?
131 parts, built around the IFX91041EJV50 and BSC016N06NS. 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 BMC2 KiCad files?
From the craftit/Dogbot repository on GitHub, at the commit this page was made from: the board is Electronics/MotorController2/BMC2.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the BMC2 design in my own project?
Its repository states no licence, so its author keeps all rights: ask craftit before reusing the design.
Similar boards
- 2 layers96 × 56 mm

- 2 layers110 × 60 mm

- 6 layers160 × 136 mm

Serie
npgo22/Serie
The board itself is based around an STM32H723, the fastest microcontroller supported by Klipper at the moment.
549 parts - 4 layers130 × 90 mm

Final chain
misko/prompt2device
The separate vNext PCB skill and orchestrator package is available alongside the reference workflow below; existing projects keep their accepted toolchain until an explicit migration.
206 parts3MIT - 2 layers110 × 60 mm

- 2 layers139.1 × 107.7 mm

Lotus58 Glow 124
TweetyDaBird/Lotus-58-Classic
A split ergo linear keyboard derived from the Lily58 family
131 parts390 - 2 layers159.7 × 101.6 mm

ArduMower RaspberryPi Power Switch
Ardumower/ardumower
Develop an open source robotic lawn mower (HW+SW reference platform)
131 parts282 - 2 layers103.2 × 74.1 mm
