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
6
Nets
28
Pads
34
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 6 parts on 28 nets.

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

6
QtyValueFootprintReferences
4MountingHole_65milArduino_MountingHole:MountingHole_65milMH1, MH2, MH3, MH4
1AnalogConnector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_VerticalJ1
1DigitalConnector_PinHeader_2.54mm:PinHeader_1x15_P2.54mm_VerticalJ2

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?

6 parts. 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 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.

    9 parts

Similar boards

  • 2 layers18.5 × 11.1 mmSwitch, the printed circuit board in 3D

    Switch

    byrantech/laptop

    anyon_e, a highly integrated, high end, open source laptop. Attempt the impossible.

    6 parts4.3kMIT
  • 2 layers14.6 × 33 mmBrain board SD Card 1, the printed circuit board in 3D

    Brain board SD Card 1

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    6 parts1.2k
  • 2 layers9 × 9 mmDpoint, the printed circuit board in 3D

    Dpoint

    Jcparkyn/dpoint

    Open-source digital stylus using camera tracking and inertial measurements

    6 parts1.1kMIT
  • 2 layers51.5 × 16.6 mmMicroswitchXY Endstop, the printed circuit board in 3D

    MicroswitchXY Endstop

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    6 parts1.1kGPL-3.0
  • 2 layers21.9 × 76.7 mmAmiga External, the printed circuit board in 3D

    Amiga External

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    6 parts1kGPL-3.0
  • 2 layers88.9 × 50.8 mmBusinesscard, the printed circuit board in 3D

    Businesscard

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    6 parts915
  • 2 layers20.3 × 15.2 mmL0 RGB led, the printed circuit board in 3D

    L0 RGB led

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    6 parts546MIT
  • 2 layers9 × 3.6 mmOpticalEncoder, the printed circuit board in 3D

    OpticalEncoder

    adamb314/ServoProject

    Getting the most out of your hobby servo

    6 parts545