This is the archived source code of Team PentaCore's RoboCup Junior Soccer robot from the 2023 season. The original repository lived under the PentaCore2023 GitHub organization — this is a public fork to preserve our work, as the team no longer exists.
We were a great team. We should have won the German Championship in Kassel 2023 — but we did win the Technical Challenge, which we're still proud of.
Our robot runs on a Teensy 3.5 microcontroller using the Arduino framework, built with PlatformIO. It features:
- Omnidirectional movement with encoder-based PID control
- IR ball detection via a pixy camera
- Compass-based orientation
- Line detection to stay in bounds
- Laser-based distance sensors (VL53L1X)
- Bluetooth communication between robots
- Solenoid-powered kicker
- TFT display and LED feedback
- State machine architecture with dedicated striker and defender roles
src/
main.cpp — Entry point
action/ — Ball handling, motors, kicker, display, LEDs, Bluetooth
basic/ — State machine, ball state logic, homing, setup
sensors/ — Camera, compass, line, distance, encoders, buttons
lib/ — External libraries (BNO055, VL53L1X, Adafruit TFT, etc.)
assets/ — Renderings and media
main— Base codeRoadToKassel_Striker/RoadToKassel_Defender— Final striker & defender code for the German Championship in KasselKassel_last_chance— Last-minute adjustments at the competitionRoboCup_Vöhringen_Striker_Final— Code from the regional qualifier in Vöhringen
This repository is archived for preservation purposes. The team has disbanded, but the code is open source for anyone interested in RoboCup Junior Soccer robotics. Feel free to learn from it or use it as a starting point for your own project.
