Skip to the content
2 layers120 × 94 mmAurelia robotics PCB, the printed circuit board in 3D

Robotics PCB designed for Eurobot used by Wolvineers.

Size
120 × 94 mm
Copper layers
2
Thickness
1.6 mm
Parts
270
Nets
245
Pads
915
Tracks, vias
2,259, 579
Pours
1,388
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
28 Oct 2024
Updated
28 Oct 2024

Overview

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.

Main components

12

README

README.md

Aurèlia power and control board for Eurobot

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.

Warning! It has problems to fix! It's just the first version.

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.

Serious errors

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.

Medium errors

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

Improvements

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

About the board

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

Power supply

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.

Power control

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

Control

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.

Motors

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.

Servos

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.

Miscellaneous outputs

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.

IO-Expander

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.

Breakout pins

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.

Physical dimensions and holes

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.

Firmware

I'll add the firmware repositories on the future and link them here.

Parts

270
QtyValueFootprintReferences
2410 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4, R5, R11, R12, R13, R14, R15, R16, R17, R18, R20, R21, R22, R23, R40, R47 +8
16100 nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC8, C10, C11, C12, C20, C22, C23, C24, C46, C47, C49, C51, C54, C55, C57, C59
12Conn_01x04_PinConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ3, J4, J5, J6, J26, J27, J28, J29, J31, J32, J33, J34
11Conn_01x03_PinConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ8, J9, J11, J12, J16, J17, J19, J20, J22, J23, J49
10Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ10, J35, J36, J37, J40, J41, J42, J43, J44, J45
81 uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2, C5, C6, C13, C14, C17, C18
810 uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC7, C9, C19, C21, C48, C50, C56, C58
820 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR30, R31, R34, R39, R55, R62, R79, R83
8750Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR26, R27, R28, R29, R35, R36, R37, R38
7Conn_01x02_PinConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ1, J2, J15, J18, J21, J24, J48
610 nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC28, C32, C34, C38, C42, C44
64,7 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2, R3, R75, R76, R78
6DNPResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR24, R25, R32, R33, R70, R71
5100 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR19, R45, R52, R67, R77
547 uFCapacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolderC25, C26, C35, C36, C52
552,5 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR61, R65, R66, R86, R87
410 nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC67, C68, C69, C70
44,7 uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC30, C31, C40, C41
447 nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC3, C4, C15, C16
4Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ13, J14, J38, J39
4DRV8873HPWPR8873:PWP24_TEXU4, U5, U7, U8
4SK54A-LTPDiode_SMD:D_SMAD1, D4, D13, D15
4TPS563300DRLRtps563300:SOT5X3-8_DRL_TEXU11, U12, U13, U14
310 uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC63, C64, C72
3100 nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC45, C75, C76
322 uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC53, C60, C61
34,7 uHHM72L-06306R8LFTR:INDPM7166X300NL1, L2, L3
36,8 uHHM72L-06306R8LFTR:INDPM7166X300NL4, L5, L6
390,9 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR42, R49, R90
3NPNPackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3
20Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR68, R73
20,1 uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC77, C78
2100Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR80, R84
2100kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR46, R54
2150060GS75000LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD6, D8
2150060RS75000LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD11, D12
2200 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR43, R50
222 uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC73, C74
223,2 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR44, R51
224,9 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR88, R91
23,3 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR9, R10
2330 pCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC65, C66
24,7 uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC62, C71
2715Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR41, R48
28,8 pFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC29, C39
2910 pFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC33, C43
2DNPCapacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolderC27, C37
2IPD090N03LGATMA1Package_TO_SOT_SMD:TO-252-2Q6, Q7
2LM5050-1Package_TO_SOT_SMD:TSOT-23-6U17, U18
2MMSZ5246B-TPDiode_SMD:D_SOD-123D14, D16
2PNPPackage_TO_SOT_SMD:SOT-23Q4, Q5
2TPS54531DDA54531:DDA8_3P1X2P4_TEXU9, U10
2mini_esp32ESP32_mini:ESP32_miniU1, U2
11,78 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR81
1107 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR89
112,1 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR69
1121 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR53
1150060BS75000LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD9
1150060YS75000LED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD10
1162 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR72
1249 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR56
131,3 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR60
138 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR74
147Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR82
168,1 kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR85
1ATL431LIPackage_TO_SOT_SMD:SOT-23U19
1BTS7006-1EPPPackage_SO:Infineon_PG-TSDSO-14-22U16
1Conn_01x02_PinConnector_AMASS:AMASS_XT60PW-M_1x02_P7.20mm_HorizontalJ47
1Conn_01x06_PinConnector_JST:JST_PH_B6B-PH-K_1x06_P2.00mm_VerticalJ7
1Conn_01x10_PinConnector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_HorizontalJ30
1HSP051-2W3YPackage_TO_SOT_SMD:SOT-323_SC-70_HandsolderingD3
1LM393DRG3Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU20
1PTVS22VS1UR,115Diode_SMD:Nexperia_CFP3_SOD-123WD2
1SMAJ18Ae3/TR13Diode_SMD:D_SMA_HandsolderingD5
1TCA6408APWRTCA6408:PW16U3
1TMP235A2DBZRTMP235:DBZ0003A-IPC_AU6
1TPS25730DREFRTPS25730D:WQFN38_REF_TEXU15
1USB_AConnector_USB:USB_A_Receptacle_GCT_USB1046J25
1USB_C_Receptacle_PowerOnly_6PUSBC_6_DEALON:USB_C_6_DEALONJ46
1ZMM3.0Diode_SMD:D_MiniMELFD7

The 267 most common of 270 parts.

Similar boards

  • 4 layers80 × 80.1 mmChassis, the printed circuit board in 3D

    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.

    75 parts3
  • 4 layers210 × 100 mm02 Power Board, the printed circuit board in 3D

    02 Power Board

    ad4363/LuX-ray-PCBs

    A repository containing KiCad schematic and pcb files for a wireless radiation detector testing interface

    115 parts1
  • 4 layersRoboRyo, the printed circuit board in 3D

    RoboRyo

    KaitoTLex/RoboRyo

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

    68 parts1MIT
  • 2 layers70 × 55 mmCapsicum, the printed circuit board in 3D

    Capsicum

    hutscape/capsicum

    🫑 Retrofit a wired doorbell to add WiFi and make it connected 🔔

    80 parts2
  • 4 layers80 × 80.1 mmChassis, the printed circuit board in 3D

    Chassis

    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.

    58 parts
  • 2 layers70 × 50 mmStorage failed, the printed circuit board in 3D

    Storage failed

    IgorCulafic/PCBSmith

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

    104 partsAGPL-3.0
  • 2 layers65 × 30 mmCANFDZeroHAT, the printed circuit board in 3D

    CANFDZeroHAT

    generationmake/CANFDZeroHAT

    Raspberry Pi HAT with Microchip MCP2518FD CAN FD controller

    32 parts27
  • 4 layers90 × 66 mmAudio, the printed circuit board in 3D

    Audio

    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:

    162 parts1

Questions

How big is the Aurelia robotics PCB PCB?

It measures 120 × 94 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Aurelia robotics PCB use?

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.

Where can I download the Aurelia robotics PCB KiCad files?

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.

Can I use the Aurelia robotics PCB design in my own project?

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