
Chassis
ut-ras/robomaster_hardware
Welcome! Please read the Wiki page for information on how to set up your computer and an overview of the projects in this repository.

Robotics PCB designed for Eurobot used by Wolvineers.
Aurelia robotics PCB is an open-source printed circuit board by DanielCusi, from the DanielCusi/MoonJelly-robotics-PCB repository on GitHub, published under the CERN-OHL-W-2.0 licence. It is a 2-layer board of 120 × 94 mm with 270 parts on 245 nets, routed with 2,259 tracks and 579 vias.
It is built around the DRV8873HPWPRQ1, TPS54531DDA and BTS7006-1EPP, with the LM393DRG3, TPS25730DREFR and SK54A-LTP among its other parts. Its parts include 91 resistors, 78 capacitors, 49 connectors, 20 ICs and 16 diodes. It belongs with the robots and motor control and power boards and the ESP32 boards of this library.
This repository contains the power and control board used by Wolvineers in Eurobot. This board handles the power input from a battery or USB-PD, converting it for powering all the robot elements; hosts the microcontrollers for the real time control, and has lots of connectors to power and control all the electronics.
Clone using recursive to also include the ESP-mini repository.
This board is just the first version, and has problems to solve so, if you want to build one, I recommend to fix the most important ones before.
I'll try to fix them as soon as I can, but I can't specify any date. If you fix an error, please contact me and I'll add it.
These are the most important errors, that affect functionality. These should be solved ASAP.
USB PD not working. If the PD IC is added, the board starts powering up and down cyclically. My guess is that it is a problem with the 3,3 V vin, that shouldn't be connected to the board 3,3 V, or with the ideal diodes. I'll try to make a standalone PCB to test it. If desired, the chip and its components could be removed for now.
When disabling power to the actuators, it disables the USB power but not half of the servos. This can be easily solved by checking the enable inputs, and removing the EM_BTN input from the USB buck and adding it to the servo buck.
The gpio expander interrupt pull-up is connected to its supply voltage. Thus, setting the expander to 5 V sets the interrupt pin to 5 V, and it may damage the GPIO if it can't handle 5 V. Connecting it to 3,3 V or adding a voltage selector would solve it.
The motor driver mode selection resistors have their names wrong in the PCB silkscreen. Just change them.
The encoder names in the schematic are wrong. Each motor is a letter, and for each the inputs and outputs are numbered. But it is inverted for the encoder, just an old mistake not fixed.
The BJT transistor footprint pinout doesn't exist. It should be changed with the standard one, so change the simulation symbol with the standard ones.
VBat reading is not x24.9, but x25.9. Either change resistor values, or change the annotation.
The battery switch BTS7006 has a tiny ground plane, it should be added one on its bottom and connect it to the PAD. If not added, the IC could get too hot, specially in hot environments and with high power demand.
LEDs have different brightness, although I tried to set different resistor values to avoid this. They should be checked.
Add pull-down to emergency button input to avoid floating state.
Add pin headers to the LED outputs for external indication. This is difficult to do with the limited space, but doable with the following improvement.
Use USB-C instead of USB-A for the output. This would reduce both costs and space used in the board.
Change the servo pin-out with the standard one. It was done on an older board like this to prevent direct connection without using JST, which may be kept for laziness and may get disconnected in a critical moment. This doesn't make sense with the 2 mm JST which avoid it, and it's just confusing.
Add input capacitor to the temperature sensor, and output filter. It would improve performance, both from sensor, and the noisy ESP ADC. Check the TMP235 datasheet.
Briefly describe what each ESP does in silkscreen (1 motors 2 servos and sensors) to avoid confusions.
Find out why TPS563300 encoders sometimes fail. It seems mostly to fail after being soldered, and not in the long term, but maybe they need ESD protection.
Improve silkscreen pinout description. It was a bit rushed, so it can be improved.
Add filters for the USB-C to avoid current spikes that might turn it off.
Add a connection between ESP32 UARTs for comunication, selectable via jumpers with male headers.
Add 100 nF capacitor on the bottom of the ADC connector.
Set 0,0 at the corner, for some reason I didn't.
Translate to English. It's a lot of work, so I might leave it in Catalan.
This board has been designed for Eurobot, for the main robot, and is an improvement from last year board.
It was designed for easy repair, as all component's pads can be accessed by a soldering iron (except USB-C PD IC) for easy replacement. Also, all connectors have good grip to avoid disconnections. And, finally, it is designed for robots, having all necessary connectors and power built in, without being too expensive (~50€ if building just one).
The board is mainly powered by a battery, which can be disconnected with an input, the power switch; and also disconnects if voltage drops too much. It is designed for a 4 cells lithium battery, but as long as it supplies more than 12 V, and less than 20, it should be fine. 5 cells would work, but it would had higher consumption because of the ESD diode, but the bucks can work with 28 V.
It can also be powered by a USB-C with power delivery or PD. But, as it may ask to much current, it is mostly for testing while batteries are charging or when using low power motors.
In order to charge the battery, an external charger must be used, as it would add too much complexity and cost to this board.
Battery power can be switched using the switch input in the 2 pin connector. Short it to allow the power flow, or leave it open to stop it. It doesn't affect the USB-C input, and if voltage is too low (about 9,8 V) it disconnects completely (11,4 V to restore), though your mileage may vary from the BTS7006 high variance. Already at 11,7 V the motor bucks disconnect, so don't go at the limit.
There is also an emergency button input, that should be used with a normally closed button. When connected to 3,3 V, all power is active, but at GND it disconnects the actuators, only leaving the 3,3 V and USB output power actives. (For now, leaving it floating doesn't disable it, it has to be fixed.)
This board can control everything itself, although an external computer like raspberry pi may be used for more processing power, which can be powered with the USB.
There are two sockets for the microcontrollers. They are designed for ESP32-mini - check the repository in libraries directory -, but another microcontroller can be used if a board with the same dimensions and pinout is made.
As we are using a raspberry pi, they don't communicate between each other and the raspberry pi is the one who sends the orders. If the connection is desired, wireless connection can be used, or UART. Although the second one is not available for now, it can be done with jumper cables, just pay attention when programming.
The motors are driven by a h-bridge, that allows them to be driven in both directions. They can go up to 10 A peak, so they shouldn't get too hot.
They are supplied by 12 V through a buck, so they always perform the same no matter the main supply voltage. For each two motors (1-2 and 3-4) there is a 5 A buck, so take it into account if they might use all the power.
The encoder inputs may be push-pull, open collector or whatever. The connector supplies 5 V or 3,3 V depending on a jumper position. Just be careful with the first encoder, the second input needs to be high when powering up when using ESP mini board.
There can be up to 8 servos at the same time, even more if some other outputs are misused. Each 4 servos (1-4 and 5-8) have a 3 A 5 V buck, but it is shared with other outputs, so try not to run it at the limit.
There are some outputs on the south of the PCB:
LED: a 5 V output with a signal pin, for WS2812B led strips or other one wire strips.
VENT: fan outputs, they can handle more current as they use a BJT transistor instead of a GPIO directly, the current depends on the transistor but it is about 200 mA. They are a 5 V pin and an open collector output. They were designed for cooling fans, but they aren't necessary.
LIDAR: a connector for a simple LIDAR. If there is no budget for a LIDAR, or USB ones can't be used, this LIDAR connector can be used for a DIY solution. With a 5 V motor and encoder to control a small motor, and a time of flight sensor module, a DIY lidar can be used. The sensor may be connected to I2C.
ALM: power, just power outputs for whatever use is desired, just be careful not to use too much power.
ADC: Two pins for ADC inputs. The maximum ADC input for a ESP32 is 3 V, not 5 V.
I2C: Connectors to attach I2C slaves. All I2C works at 3,3 V, although it can be changed if the board pull-ups aren't used and the GPIO expander IC is removed.
The IO-expander is based on TCA6408A IC, it uses I2C for communication and has 8 GPIOs. Each of these GPIOs can be used as inputs or outputs, and the inputs have a shared interruption to avoid polling. All of them must be configured at 5 or 3,3 V with a header.
The IC was chosen due to its variable voltage and its register simplicity, although it can't configure internal pull-ups nor pull-downs. There are external ones, which can be chosen with jumpers.
The last connector is a pin header, preferably 90 degrees, that can be used for testing. It privides access to 4 servo pins (although may be used as GPIOs), and I2C. It also has 3,3 V and 5 V output.
The board is 120 * 94 mm, and has three M3 holes for mounting. These are, from bottom left (x,y), at (8, 18) mm, (55 , 88) mm, and (114, 89) mm. The height depends on the microcontroller used, if using male-female pins it will be higher than using male pins. Also, take into account that the bottom pins of THT components take space.
I'll add the firmware repositories on the future and link them here.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 24 | 10 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R4, R5, R11, R12, R13, R14, R15, R16, R17, R18, R20, R21, R22, R23, R40, R47 +8 |
| 16 | 100 nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C8, C10, C11, C12, C20, C22, C23, C24, C46, C47, C49, C51, C54, C55, C57, C59 |
| 12 | Conn_01x04_Pin | Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_Vertical | J3, J4, J5, J6, J26, J27, J28, J29, J31, J32, J33, J34 |
| 11 | Conn_01x03_Pin | Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_Vertical | J8, J9, J11, J12, J16, J17, J19, J20, J22, J23, J49 |
| 10 | Conn_01x03_Pin | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J10, J35, J36, J37, J40, J41, J42, J43, J44, J45 |
| 8 | 1 uF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C1, C2, C5, C6, C13, C14, C17, C18 |
| 8 | 10 uF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C7, C9, C19, C21, C48, C50, C56, C58 |
| 8 | 20 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R30, R31, R34, R39, R55, R62, R79, R83 |
| 8 | 750 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R26, R27, R28, R29, R35, R36, R37, R38 |
| 7 | Conn_01x02_Pin | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | J1, J2, J15, J18, J21, J24, J48 |
| 6 | 10 nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C28, C32, C34, C38, C42, C44 |
| 6 | 4,7 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R2, R3, R75, R76, R78 |
| 6 | DNP | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R24, R25, R32, R33, R70, R71 |
| 5 | 100 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R19, R45, R52, R67, R77 |
| 5 | 47 uF | Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder | C25, C26, C35, C36, C52 |
| 5 | 52,5 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R61, R65, R66, R86, R87 |
| 4 | 10 n | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C67, C68, C69, C70 |
| 4 | 4,7 uF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C30, C31, C40, C41 |
| 4 | 47 nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C3, C4, C15, C16 |
| 4 | Conn_01x02_Pin | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J13, J14, J38, J39 |
| 4 | DRV8873HPWPR | 8873:PWP24_TEX | U4, U5, U7, U8 |
| 4 | SK54A-LTP | Diode_SMD:D_SMA | D1, D4, D13, D15 |
| 4 | TPS563300DRLR | tps563300:SOT5X3-8_DRL_TEX | U11, U12, U13, U14 |
| 3 | 10 u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C63, C64, C72 |
| 3 | 100 n | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C45, C75, C76 |
| 3 | 22 uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C53, C60, C61 |
| 3 | 4,7 uH | HM72L-06306R8LFTR:INDPM7166X300N | L1, L2, L3 |
| 3 | 6,8 uH | HM72L-06306R8LFTR:INDPM7166X300N | L4, L5, L6 |
| 3 | 90,9 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R42, R49, R90 |
| 3 | NPN | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3 |
| 2 | 0 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R68, R73 |
| 2 | 0,1 u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C77, C78 |
| 2 | 100 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R80, R84 |
| 2 | 100k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R46, R54 |
| 2 | 150060GS75000 | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D6, D8 |
| 2 | 150060RS75000 | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D11, D12 |
| 2 | 200 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R43, R50 |
| 2 | 22 u | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C73, C74 |
| 2 | 23,2 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R44, R51 |
| 2 | 24,9 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R88, R91 |
| 2 | 3,3 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R9, R10 |
| 2 | 330 p | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C65, C66 |
| 2 | 4,7 u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C62, C71 |
| 2 | 715 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R41, R48 |
| 2 | 8,8 pF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C29, C39 |
| 2 | 910 pF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C33, C43 |
| 2 | DNP | Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder | C27, C37 |
| 2 | IPD090N03LGATMA1 | Package_TO_SOT_SMD:TO-252-2 | Q6, Q7 |
| 2 | LM5050-1 | Package_TO_SOT_SMD:TSOT-23-6 | U17, U18 |
| 2 | MMSZ5246B-TP | Diode_SMD:D_SOD-123 | D14, D16 |
| 2 | PNP | Package_TO_SOT_SMD:SOT-23 | Q4, Q5 |
| 2 | TPS54531DDA | 54531:DDA8_3P1X2P4_TEX | U9, U10 |
| 2 | mini_esp32 | ESP32_mini:ESP32_mini | U1, U2 |
| 1 | 1,78 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R81 |
| 1 | 107 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R89 |
| 1 | 12,1 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R69 |
| 1 | 121 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R53 |
| 1 | 150060BS75000 | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D9 |
| 1 | 150060YS75000 | LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolder | D10 |
| 1 | 162 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R72 |
| 1 | 249 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R56 |
| 1 | 31,3 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R60 |
| 1 | 38 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R74 |
| 1 | 47 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R82 |
| 1 | 68,1 k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R85 |
| 1 | ATL431LI | Package_TO_SOT_SMD:SOT-23 | U19 |
| 1 | BTS7006-1EPP | Package_SO:Infineon_PG-TSDSO-14-22 | U16 |
| 1 | Conn_01x02_Pin | Connector_AMASS:AMASS_XT60PW-M_1x02_P7.20mm_Horizontal | J47 |
| 1 | Conn_01x06_Pin | Connector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_Vertical | J7 |
| 1 | Conn_01x10_Pin | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Horizontal | J30 |
| 1 | HSP051-2W3Y | Package_TO_SOT_SMD:SOT-323_SC-70_Handsoldering | D3 |
| 1 | LM393DRG3 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U20 |
| 1 | PTVS22VS1UR,115 | Diode_SMD:Nexperia_CFP3_SOD-123W | D2 |
| 1 | SMAJ18Ae3/TR13 | Diode_SMD:D_SMA_Handsoldering | D5 |
| 1 | TCA6408APWR | TCA6408:PW16 | U3 |
| 1 | TMP235A2DBZR | TMP235:DBZ0003A-IPC_A | U6 |
| 1 | TPS25730DREFR | TPS25730D:WQFN38_REF_TEX | U15 |
| 1 | USB_A | Connector_USB:USB_A_Receptacle_GCT_USB1046 | J25 |
| 1 | USB_C_Receptacle_PowerOnly_6P | USBC_6_DEALON:USB_C_6_DEALON | J46 |
| 1 | ZMM3.0 | Diode_SMD:D_MiniMELF | D7 |
The 267 most common of 270 parts.

ut-ras/robomaster_hardware
Welcome! Please read the Wiki page for information on how to set up your computer and an overview of the projects in this repository.

ad4363/LuX-ray-PCBs
A repository containing KiCad schematic and pcb files for a wireless radiation detector testing interface

KaitoTLex/RoboRyo
This is team1280's replacement for the Robo Rio for more redundant and less annoying controls.


ut-ras/rm_electrical-chassis
This project contains the chassis board, which routes power and CAN to the wheels from the PMM and the Dev Board, respectively. Also, a buck converter that drives the 19V power needed for the CV board.

IgorCulafic/PCBSmith
Open-source PCB design tools: KiCad workflows, automatic routing, design review and laser fabrication. Working toward plain-language circuit-to-board design.

generationmake/CANFDZeroHAT
Raspberry Pi HAT with Microchip MCP2518FD CAN FD controller

AndreasNielsen4000/Group-7-IoT-Project
The project is a wireless speaker system that can play music from a Bluetooth or WiFi source. The system consists of four main parts with subcomponents:
It measures 120 × 94 mm and has 2 copper layers, 1.6 mm thick.
270 parts, built around the DRV8873HPWPRQ1, TPS54531DDA, BTS7006-1EPP and LM393DRG3. 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.
From the DanielCusi/MoonJelly-robotics-PCB repository on GitHub, at the commit this page was made from: the board is Aurelia-robotics-PCB.kicad_pcb and its schematic Alimentacio.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-W-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).