

BeaverworksGit
hello.
- Size
- 43.2 × 17.8 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 9
- Nets
- 67
- Pads
- 77
- Tracks, vias
- 0, 0
- Routed
- Not yet
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 21 Jul 2026
- Updated
- 14 Aug 2026
Overview
BeaverworksGit is an open-source printed circuit board by AyaanZ1, from the AyaanZ1/beaverworksGit repository on GitHub. It is a 2-layer board of 43.2 × 17.8 mm with 9 parts on 67 nets.
It is built around the DHT11, L298N and MPU-6050. Its parts include 3 ICs and 2 connectors.
Main components
3DHT11
SIP-4-20℃~+60℃ 1mA 3.3V~5.5V 5%RH~95%RH ±2℃ ±5%RH SIP-4 Temperature and Humidity Sensor ROHSAosong ElecTemperature And Humidity SensorL298N
Multiwatt-15-25℃~+130℃ 2 2A 4.5V~7V Bipolar Driver Overcurrent Protection、Over temperature protection Yes Multiwatt-15 Stepper Motor Driver ROHSHGSEMIStepper Motor DriverMPU-6050
QFN-24-EP(4x4)-40℃~+85℃ 16bit 1KB 2.375V~3.46V 5uA Accelerometer Gyroscope I2C X,Y,Z X,Y,Z ±16g ±2000dps QFN-24-EP(4x4) Accelerometers ROHSTDK InvenSenseAccelerometers
README
README.mdbeaverworksGit
A maze-navigating robot built around an Arduino Mega 2560, combining custom PCB design (KiCad) with firmware for grid-based autonomous navigation, sensor logging, and ESP32-CAM video streaming.
Overview
The robot drives through a 5x5 grid maze along a pre-defined path, correcting its heading with an IMU (gyro yaw tracking) instead of relying on open-loop timing alone. At each cell it pauses to read temperature, humidity, and distance-to-obstacle, then reports the data back over serial. A light sensor and buzzer provide simple flashlight/alarm behavior along the way, and a separate ESP32-CAM module streams live video.
Repository Structure
.
├── beaverworksGit.kicad_pro/.kicad_sch/.kicad_pcb # KiCad project (schematic + PCB layout)
├── fp-lib-table # KiCad footprint library table
├── hardware/ # Hardware design files
│ ├── beaverworksGit.kicad_* # (duplicate/working copy of the KiCad project)
│ ├── Arduino Mega 2560 Rev3 A000067/ # Arduino Mega 3D model + footprint
│ ├── Arduino_MountingHole.pretty/ # Mounting hole footprints
│ ├── HC-SR04 Model by SparkFun/ # Ultrasonic sensor 3D model + footprint
│ └── esp32-wrover-kicad-master/ # ESP32-WROVER KiCad library (third-party)
├── software/ # Firmware / companion scripts
│ ├── IMU Navigation/
│ │ ├── ObstacleAvoidance.ino # Standalone obstacle-avoidance sketch
│ │ ├── Calibration/calibration.ino # IMU/gyro calibration routine
│ │ └── Yaw Tracking/mpu6050_copy_*/ # MPU6050 yaw-tracking test sketch
│ ├── ESP32_Camera/ # ESP32-CAM web server + streaming
│ │ ├── CameraWebServer.ino # Main camera sketch (based on Espressif's CameraWebServer example)
│ │ ├── app_httpd.cpp / camera_pins.h / ... # Supporting camera server code
│ │ ├── wifi_secrets.example.h # Template for Wi-Fi credentials (copy to wifi_secrets.h)
│ │ ├── record_video.py / stream_test.py # Python helpers for grabbing/testing the video stream
│ │ └── python/ # Additional Python utilities
│ └── Sensors_Code/ # (sensor test code)
├── main.cpp # Main robot firmware: timed turns/drives, no gyro
├── navigatio.cpp # Main robot firmware: gyro-corrected turns/drives (MPU6050)
└── platformio.ini # PlatformIO project config (Arduino Mega target)Hardware
- MCU: Arduino Mega 2560 Rev3
- IMU: Adafruit MPU6050 (gyro-based yaw tracking)
- Distance sensing: HC-SR04 ultrasonic sensor
- Environmental sensing: DHT11 temperature/humidity sensor
- Other I/O: LDR (light sensor), sound sensor, buzzer, status LED
- Drive: Dual DC motors via an H-bridge driver (enable + direction pins per side)
- Camera: Separate ESP32-CAM module for live video streaming
- PCB: Custom board designed in KiCad (see
beaverworksGit.kicad_pro/hardware/)
Firmware
There are two versions of the main navigation firmware:
| File | Description |
|---|---|
main.cpp | Drives a fixed sequence of grid moves using timed turns and timed straight-line driving (open-loop, no IMU feedback). |
navigatio.cpp | Same grid path, but uses the MPU6050 gyro to track yaw in real time and correct heading while turning and driving (closed-loop). |
Both firmware versions:
- Follow a hard-coded
path[]array ofNORTH/EAST/SOUTH/WESTmoves through a 5x5 grid. - Stop at each cell to read temperature, humidity, and ultrasonic distance, and report them over serial.
- Continuously monitor light and sound sensors to trigger an LED "flashlight" and buzzer alert.
- Stop and idle once the path is complete.
Building with PlatformIO
The project is set up for PlatformIO targeting the Arduino Mega:
# Build
pio run
# Upload to the board
pio run -t upload
# Open the serial monitor (9600 baud)
pio device monitorDependencies (declared in platformio.ini):
adafruit/Adafruit MPU6050adafruit/Adafruit Unified Sensoradafruit/DHT sensor library
Note: only one of
main.cpp/navigatio.cppshould be treated as the activesrc/main.cppfor a given build — move/copy whichever version you want to flash into PlatformIO'ssrc/directory (or updateplatformio.ini'sbuild_src_filteraccordingly).
ESP32-CAM streaming
software/ESP32_Camera/CameraWebServer.ino is based on the standard Espressif
CameraWebServer example, adapted with local board/pin config. To use it:
- Copy
wifi_secrets.example.htowifi_secrets.hand fill in your Wi-Fi SSID and password. - Flash
CameraWebServer.inoto an ESP32-CAM board via the Arduino IDE (select the correct board and partition scheme — seepartitions.csv). - Use
stream_test.pyorrecord_video.pyto test/capture the resulting MJPEG stream from a computer on the same network.
IMU navigation experiments
software/IMU Navigation/ contains standalone sketches used during
development:
Calibration/calibration.ino— computes gyro bias for the MPU6050.Yaw Tracking/mpu6050_copy_*/— isolated yaw-tracking test.ObstacleAvoidance.ino— simple reactive obstacle-avoidance behavior.
Hardware Design (KiCad)
Open beaverworksGit.kicad_pro in KiCad to view or
edit the schematic (.kicad_sch) and PCB layout (.kicad_pcb). Third-party
footprints/3D models used in the design are vendored under hardware/
(Arduino Mega, HC-SR04, ESP32-WROVER, mounting holes).
Status
This is a work-in-progress class/competition project (Beaverworks). Firmware
constants such as MS_PER_INCH, MS_PER_90_TURN, drive speeds, and the
maze path[] are tuned for a specific physical maze layout and will need
recalibrating for a different course or robot chassis.
Parts
9| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole_65mil | Arduino_MountingHole:MountingHole_65mil | MH1, MH2, MH3, MH4 |
| 1 | Analog | Connector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_Vertical | J1 |
| 1 | DHT11 | Sensor:Aosong_DHT11_5.5x12.0_P2.54mm | U2 |
| 1 | Digital | Connector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_Vertical | J2 |
| 1 | L298N | Package_TO_SOT_THT:TO-220-15_P2.54x5.08mm_StaggerOdd_Lead4.58mm_Vertical | U5 |
| 1 | MPU-6050 | Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mm | U1 |
Questions
How big is the BeaverworksGit PCB?
It measures 43.2 × 17.8 mm and has 2 copper layers, 1.6 mm thick.
What parts does the BeaverworksGit use?
9 parts, built around the DHT11, L298N and MPU-6050. 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 BeaverworksGit KiCad files?
From the AyaanZ1/beaverworksGit repository on GitHub, at the commit this page was made from: the board is .history/beaverworksGit.kicad_pcb and its schematic .history/beaverworksGit.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the BeaverworksGit design in my own project?
Its repository states no licence, so its author keeps all rights: ask AyaanZ1 before reusing the design.
More from AyaanZ1/beaverworksGit
1- 2 layers43.2 × 17.8 mm

Similar boards
- 2 layers115 × 104.5 mm

Vigil platform
hub-mayank/vigil-platform
VIGIL — Vigilant Infrastructure Guardian Intelligence Layer
19 parts - 2 layers99.5 × 99.5 mm

SchematicKiCadProyect
dduarteCE/Robot-vacuum
Embedded Linux robotic vacuum system built with Yocto on Raspberry Pi 4, featuring autonomous navigation, audio playback, and remote control through a web interface.
42 parts1MIT - 2 layers

- 4 layers53.3 × 59.6 mm

Project-04-Predictive Maintenance system PCB
Darshan7052006/PCB-Design-Projects
Collection of PCB designs created using KiCad. Includes power supplies, embedded systems, sensor boards, and hardware projects with schematics, PCB layouts, manufacturing files, and documentation.
32 parts - 2 layers120 × 110.5 mm

- 2 layers90 × 65.5 mm

New SBR
Robbie-2055/Self-Balancing-Robot-STM32-
A two-wheeled self-balancing inverted pendulum robot built using an STM32 microcontroller. The robot utilizes an MPU6050 Inertial Measurement Unit (IMU) to sense its orientation, processes this data through a PID loop…
60 parts - 2 layers100 × 80 mm

- 4 layers132.5 × 105 mm

HEXCORE PCB Design v0
JoshCrouch/HEXCORE
HEXCORE is a Hexapod-type robot that includes both a custom remote as well as vision system making use of 2.4GHz RF and WiFi respectively.
160 parts3