

CoRoSoN Package Draft
Draft version to the official CoRoSoN-Kit.
- Size
- 80 × 80 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 56
- Nets
- 64
- Pads
- 219
- Tracks, vias
- 484, 58
- Pours
- 9
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 23 Feb 2025
- Updated
- 25 Jun 2025
Overview
CoRoSoN Package Draft is an open-source printed circuit board by ItzJannis, from the ItzJannis/CoRoSoN-Package_Draft repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 80 × 80 mm with 56 parts on 64 nets, routed with 484 tracks and 58 vias.
It is built around the BTN8982TAAUMA1, LM1117IMPX-3.3/NOPB-HXY and XT30UPB-F. Its parts include 18 resistors, 11 ICs, 7 capacitors, 6 connectors and 2 diodes. It belongs with the ESP32 boards of this library.
Main components
3BTN8982TAAUMA1
TO-263-7-40℃~+150℃ 55A 55A 8V~18V Half-Bridge MOSFET Over Current Protection、Short Circuit Protection、Overtemperature protection (OTP) TO-263-7 Gate Drivers ROHSInfineon TechnologiesGate DriversLM1117IMPX-3.3/NOPB-HXY
SOT-223-20℃~+85℃ 1.3V@(800mA) 15V 2mA 3.3V 800mA Fixed Thermal Shutdown SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSHXY MOSFETVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsXT30UPB-F
--、Aviation model plug 0.65mΩ 15A DC 500V Female Gold Plated PA Yellow - Power connector / plug connector ROHSAMASSPlug
README
README.mdCoRoSoN-Package Draft
Co|mponents for
Ro|bocupJunior
So|ccer
N|ewcomers
Project: CoRoSoN-Kit
Competition: RoboCup
Author: BohleBots
Description
This project offers a draft version to the official CoRoSoN-Kit to provide the fundamental building blocks for a fully functional robot participating in the Soccer Junior division of the RoboCup.
The purpose is to allow for an newcomer friendly entry to the competition by wrapping the essential functions with easy to use APIs. Board designs are designed to be rebuild easily and affordable.
Feel free to reach out to us for questions, feedback, suggestions or constructive critism!
See you in the competition!
Disclaimer
The software and the hardware designs are developed to the best of our knowledge to serve the intented purpose, but may still contain faults. Our software and hardware are provided "as is" and do not provide any warranty. The risk of using it and all neccessary servicing, repair and correction as well as their cost is with you.
Makefile
Using the Arduino IDE or arduino-cli requires all source for a .ino sketch to be inside the sketch folder or inside the libaries directory of the Arduino installation.
Therefore source files inside Software/Shared or Software/Peripheral, that are not located directly next to a .ino sketch, cause problems.
To allow for easy compatibility of this project with Arduino the Makefile was created.
It automates the generation of valid Arduino sketch folders, such that they can be opened in the Arduino IDE or used with arduino-cli.
The Makefile does not require all source files to be inside the sketch folder, but it requires SketchName.ino to be located inside Software/SketchName/.
Run make inside the home directory of this repo to see all the options.
Software
Requirements
Shared
Software that is not build for a specific board but is shared across different board's software.
CoRoSoN_Util
Providing usefull utility definitions for error handling, initializing data and better debugging.
The enum ERROR_CODE provides bitflags for uniform error handling while DEBUG_PRINT(Variable), DEBUG_ERRORS(Errors) and DEBUG_BLOCK(Message, NumMillis) provide easier debugging via the serial connection and the MIN(X,Y), MAX(X,Y), ABS(X), ARRAY_LENGTH(Arr), ZEROMEM(Obj) provide function-like macros to handle data without tedious reimplementation of often used functionalities.
CoRoSoN_I2C
Providing a simpler, more beginner friendly interface to work with the I2C bus system used in this project.
I2C_Init(), I2C_TestConnection(), I2C_Write() and I2C_ReadBlocking() provide all the functionality a newcomer robot for the competition needs.
Attention:
I2C_ReadBlocking() waits for the answers and is therefore blocking the execution of the program.
Make sure that NumBytes equals the length of the passed byte array!
CoRoSoN_Vector
Providing class Vector to easily compute vectorial calculations with functions and operator overloading.
CoRoSoN_Config
This file defines the hardware configuration (namely the pins) for the software.
Main
Software that is supposed to be used on the mainboard.
CoRoSoN_Main
The definitions of enum COLOR, enum SIDE, enum I2C_ADD_BTNLED_MODULE, enum MOTOR and enum DIRECTION are used to firstly make software better readable for newcomers and secondly somehow restrict inputs to reduce buggy behavior due to occasionally wrong inputs.
CoRoSoN_Init(), CoRoSoN_SetLEDColor(), CoRoSoN_ButtonIsPressed() and CoRoSoN_SetMotor() provide a beginner friendly API to setting the mainboard up in the setup() of an arduino program as well as reading and writing the mainboards pins.
Peripheral
Software that is supposed to be used on the mainboard to make use of the peripheral devices.
CoRoSoN_Eeprom
Providing an interface to the ESP32's eeprom which is easy to use.
The eeprom is very usefull to save backup data about the current program state (i.e. the robot is enabled to drive) in case of a shutdown or a reset for whatever reason.
The struct EEPROM_DATA can be filled with whatever you want to read / write from the eeprom.
EEPROM_Init(), EEPROM_Read() and EEPROM_Write() provide an easy interface that only deals with instances of EEPROM_DATA.
CoRoSoN_Pixy
Providing class Pixy with its Update(), GoalSeen(), OwnGoalSeen(), GoalDirection() and OwnGoalDirection() to make use of the Pixy camera for locating the two goals on the playing field.
In CoRoSoN_Pixy.h set PIXY_VERSION to 1 or 2 according to the version of the Pixy cam in use.
For the directions: <0 represents left, >0 represents right
CoRoSoN_IR-Ring
Providing class IRRing with its Update(), BallSeen(), BallDirection() and BallDistance() to make use of the infrared sensor ring with the firmware running on it (also provided).
For the directions: <0 represents left, >0 represents right, 0 represents front, -32 represents no ball seen
For the distance: 1...32 represents closest...furthest, 0 represents no ball seen
IR
Software that is supposed to be used on the infrared sensor ring.
Firmware_IR-Ring
Providing the firmware that is designed to be loaded onto the infrared sensor ring and making it ready to be used in a plug-and-play manner. \
Software Process / Algorithm
- Read all physical signals
- Remove minimum value from all sensor values (ensuring at least one is 0)
- Use exponential moving average (EMA) for each sensor - the lower
EMA_ALPHA_PERCENTAGE, the more the values are smoothed - Gaussian blur on each sensors value with its 2 neighbouring values -
BLUR_ORIGINAL_VALUE_WEIGHT_PERCENTAGEdefines the weight the middle sensor gets - Exaggerate differences by squaring percentage of maximum value for each sensor
- Expand values to higher resolution by using cubic interpolation
- Giving the sensors close to the last output direction a boost of up to 5% of their current value, to reduce fluctuations
- Find highest value
- Exaggerate differences by squaring percentage of maximum value for each sensor
- Vector addition around highest value for more precise direction -
VECTOR_ADDITION_SENSOR_COUNTdefines the number of vectors involved - Determine distance by numeric integration
- Compute final direction and distance with running median -
RUNNING_MEDIAN_DIRECTION_LENGTHandRUNNING_MEDIAN_DISTANCE_LENGTHdefine the history length for the running medians
Hardware
Main
Contains the KiCad project of the Main PCB.
IR-Ring
Contains the KiCad project of the IR-Ring PCB.
3D_Prints
Contains all the 3D printable designs as .stl files.
CasterBall
Spherical third ground contact point to prevent the robot from falling over due to having only 2 wheels.
Chassis_Base
The base part of the chassis fitting together with the top plate.
Chassis_TopPlate
The main plate enclosing the chassis, also including part of the machanism to hold the battery pack.
Dribbler_Enclosure
Holds the dribbling unit (motor and rotating silicone shell).
Dribbler_Enclosure_EndCap
The end cap to close the enclosure of the dribbling unit.
Dribbler_Mounting
Add-On to the top plate to mount the dribbling unit and support the IR-Ring up on top.
Dribbler_Mounting_short
Shorter version of Dribbler_Mounting.stl in terms of height.
Dribbler_SiliconeRoller
Rotating shell of the dribbling unit, supposed to be covered with silicone.
IR-Ring_Cover
Covers the IR-Ring PCB to reduce external ambient noise for the sensors.
IR-Ring_Cover_Counterpart
Counterpart for the IR-Ring cover such that it is properly fixated.
Main_Frame
Mounting frame for the Main PCB.
Motor_Mounting
Mounting for the 2 motors that move the robot.
Pixy_Mounting
Mounting frame for pixy camera.
WheelCoupling_Direct
Coupling adapter to connect the rotating shell to the motor axis.
WheelCoupling_Insert
Coupling adapter to connect the wheels to the motor axis.
Parts
56| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | SMD-10K | BohleBots:R0603 | R2, R3, R5, R6, R7, R10, R15 |
| 6 | SMD-220R | BohleBots:R0603 | R9, R11, R12, R13, R16, R17 |
| 4 | MountingHole | BohleBots:MountingHole_4.3mm_M4 | H5, H6, H7, H8 |
| 4 | Pinhead_01x02_horizontal | BohleBots:HDR-TH_2P-P2.54-H-M-W10.4 | J1, J2, J3, J4 |
| 3 | SMD-220uF_50V | BohleBots:CAP-SMD_BD10.0-L10.3-W10.3-LS11.3-FD | C1, C8, C10 |
| 2 | LM1117IMPX-3_3_NOPB | BohleBots:SOT-223_L6.5-W3.5-P2.30-LS7.0-BR | U3, U11 |
| 2 | LOGO | BohleBots:logo | G***, G*** |
| 2 | Pfostenstecker_6_2x3 | BohleBots:HDR-TH_6P-P2.54-V-F-R2-C3-S2.54-4 | U5, U6 |
| 2 | Pinhead_1x02H | BohleBots:HDR-TH_2P-P2.54-H-M-W10.4 | U10, U12 |
| 2 | SMD-100nF | BohleBots:C0603 | C4, C9 |
| 2 | SMD-10k | BohleBots:R0603 | R14, R18 |
| 1 | 1k | BohleBots:R0603 | R23 |
| 1 | BTN8982TAAUMA1 | BohleBots:TO-263-7_L10.2-W10.4-P1.27-LS14.4-TL | U8 |
| 1 | Conn_02x04_Row_Letter_First | BohleBots:HDR-TH_8P-P2.54-H-M-R2-C4-S2.54 | J5 |
| 1 | ESP32-WROOM 30-pin dev board | BohleBots:MODULE_ESP32_DEVKIT_V1 | U9 |
| 1 | LOGO | BohleBots:github | G*** |
| 1 | Mot1 | BohleBots:SO-12_L6.4-W7.5-P1.00-LS10.3-BL-EP | IFX1 |
| 1 | Mot2 | BohleBots:SO-12_L6.4-W7.5-P1.00-LS10.3-BL-EP | IFX2 |
| 1 | Mot3 | BohleBots:SO-12_L6.4-W7.5-P1.00-LS10.3-BL-EP | IFX3 |
| 1 | Mot4 | BohleBots:SO-12_L6.4-W7.5-P1.00-LS10.3-BL-EP | IFX4 |
| 1 | Pfostenstecker_10_2x5 | BohleBots:HDR-TH_10P-P2.54-V-F-R2-C5-S2.54-5 | U7 |
| 1 | Pinhead_1x03V | BohleBots:HDR-TH_3P-P2.54-V-M-1 | H1 |
| 1 | RVT1A221M0605-C72494 | BohleBots:CAP-SMD_BD10.0-L10.3-W10.3-LS11.3-FD | C5 |
| 1 | SMD-100R | BohleBots:R0603 | R8 |
| 1 | SMD-220uF | BohleBots:CAP-SMD_BD10.0-L10.3-W10.3-LS11.3-FD | C6 |
| 1 | Switch | BohleBots:SW-TH_MT-0-103-A101-M200-RS | U2 |
| 1 | XT30UPB-F | BohleBots:CONN-TH_XT30UPB-F | CN1 |
| 1 | XT30_horizontal | BohleBots:CONN-TH_XT30PW-M | U4 |
| 1 | led1 | BohleBots:LED-SMD_6P-L5.0-W5.0-TL_TC5050RGBF08 | LED2 |
| 1 | led2 | BohleBots:LED-SMD_6P-L5.0-W5.0-TL_TC5050RGBF08 | LED3 |
| 1 | ~ | BohleBots:R785K | R78K1 |
More from ItzJannis/CoRoSoN-Package_Draft
1- 2 layers47 × 20.6 mm

Similar boards
- 2 layers184.8 × 128.4 mm

- 2 layers80 × 100 mm

- 4 layers70 × 50 mm

Mjpower ss
mjbots/power_dist
This repository contains hardware and firmware for the mjbots powerdist and mjpower-ss boards. Both provide pre-charge, over-current limiting and connector fanout.
35 parts15Apache-2.0 - 2 layers132.5 × 105.7 mm

- 2 layers72.8 × 38 mm

- 4 layers191.5 × 121.8 mm

Foxhunt1
gx1400/kicad_foxhunt_batterytest
Custom amateur radio fox hunt (hidden transmitter) controller, aimed at being a flexible, dynamic platform for a wide range of fox-hunt formats — not just a fixed single-mode beacon.
260 parts - 4 layers140 × 85 mm

Sapling test board
jyelewis/sapling-cpu
A from-scratch 8-bit computer: motherboard PBC, verilog cpu, operating system, and programs
33 parts - 2 layers18 × 52 mm

Xt30-distribution
vsreality/power-distribution-board-xt30
Power distribution board with XT30 connectors
7 parts
Questions
How big is the CoRoSoN Package Draft PCB?
It measures 80 × 80 mm and has 2 copper layers, 1.6 mm thick.
What parts does the CoRoSoN Package Draft use?
56 parts, built around the BTN8982TAAUMA1, LM1117IMPX-3.3/NOPB-HXY and XT30UPB-F. 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 CoRoSoN Package Draft KiCad files?
From the ItzJannis/CoRoSoN-Package_Draft repository on GitHub, at the commit this page was made from: the board is Hardware/Main/Main.kicad_pcb and its schematic Hardware/IR-Ring/IR-Ring.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the CoRoSoN Package Draft design in my own project?
Its repository publishes it under the GPL-3.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).