Skip to the content
PCBKitNew board
2 layers43.2 × 17.8 mmBeaverworksGit, the printed circuit board in 3D

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

3

README

README.md

beaverworksGit

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

text
.
├── 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:

FileDescription
main.cppDrives a fixed sequence of grid moves using timed turns and timed straight-line driving (open-loop, no IMU feedback).
navigatio.cppSame 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:

  1. Follow a hard-coded path[] array of NORTH/EAST/SOUTH/WEST moves through a 5x5 grid.
  2. Stop at each cell to read temperature, humidity, and ultrasonic distance, and report them over serial.
  3. Continuously monitor light and sound sensors to trigger an LED "flashlight" and buzzer alert.
  4. Stop and idle once the path is complete.

Building with PlatformIO

The project is set up for PlatformIO targeting the Arduino Mega:

bash
# Build
pio run

# Upload to the board
pio run -t upload

# Open the serial monitor (9600 baud)
pio device monitor

Dependencies (declared in platformio.ini):

  • adafruit/Adafruit MPU6050
  • adafruit/Adafruit Unified Sensor
  • adafruit/DHT sensor library

Note: only one of main.cpp / navigatio.cpp should be treated as the active src/main.cpp for a given build — move/copy whichever version you want to flash into PlatformIO's src/ directory (or update platformio.ini's build_src_filter accordingly).

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:

  1. Copy wifi_secrets.example.h to wifi_secrets.h and fill in your Wi-Fi SSID and password.
  2. Flash CameraWebServer.ino to an ESP32-CAM board via the Arduino IDE (select the correct board and partition scheme — see partitions.csv).
  3. Use stream_test.py or record_video.py to 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
QtyValueFootprintReferences
4MountingHole_65milArduino_MountingHole:MountingHole_65milMH1, MH2, MH3, MH4
1AnalogConnector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_VerticalJ1
1DHT11Sensor:Aosong_DHT11_5.5x12.0_P2.54mmU2
1DigitalConnector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_VerticalJ2
1L298NPackage_TO_SOT_THT:TO-220-15_P2.54x5.08mm_StaggerOdd_Lead4.58mm_VerticalU5
1MPU-6050Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mmU1

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 mmBeaverworksGit, the printed circuit board in 3D

    BeaverworksGit

    AyaanZ1/beaverworksGit

    hello.

    6 parts

Similar boards

  • 2 layers115 × 104.5 mmVigil platform, the printed circuit board in 3D

    Vigil platform

    hub-mayank/vigil-platform

    VIGIL — Vigilant Infrastructure Guardian Intelligence Layer

    19 parts
  • 2 layers99.5 × 99.5 mmSchematicKiCadProyect, the printed circuit board in 3D

    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 layersPlan, the printed circuit board in 3D

    Plan

    runariel/Fuzzy_Car

    Planing to make a self driving car by Arduino

    67 parts1
  • 4 layers53.3 × 59.6 mmProject-04-Predictive Maintenance system PCB, the printed circuit board in 3D

    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 mmGoyala Fang PCB, the printed circuit board in 3D

    Goyala Fang PCB

    prasannan-robots/Goyala_Fang

    13 parts
  • 2 layers90 × 65.5 mmNew SBR, the printed circuit board in 3D

    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 mmMotor monitor pcb, the printed circuit board in 3D

    Motor monitor pcb

    shanalaufer/motor-monitor

    AI-powered motor fault detection system

    11 parts
  • 4 layers132.5 × 105 mmHEXCORE PCB Design v0, the printed circuit board in 3D

    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