

Ava carrier
Built by Aalind Tiwari, with AI-assisted CAD and development.
- Size
- 60 × 40 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 18
- Nets
- 23
- Pads
- 60
- Tracks, vias
- 61, 0
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 5 Oct 2026
- Updated
- 18 Oct 2026
Overview
Ava carrier is an open-source printed circuit board by AalindOg, from the AalindOg/AVA-Robot- repository on GitHub. It is a 2-layer board of 60 × 40 mm with 18 parts on 23 nets, routed with 61 tracks and 0 vias.
Its parts include 5 connectors, 3 ICs, 2 resistors, 2 diodes and 1 switch. It belongs with the ESP32 boards of this library.
README
README.mdAVA — an AI companion with a physical body
A wheeled robot project for Half Life by Hack Club.
Built by Aalind Tiwari, with AI-assisted CAD and development.
Explore the CAD · Download STEP · View STL · Development journal

Actual renders of the current model. Not photographs of a fabricated robot.
What I’m building
AVA is a mobile AI companion: a screen for expression and interaction, cameras and microphones for sensing, speakers for responses, and a wheeled body. The longer-term goal is to connect that body to Hermes Agent, with a small controller handling the hardware interface and a computer handling higher-level processing.
This repository brings together three parts of that project: the exterior CAD, the carrier-board design, and the firmware/server prototypes. They are at different stages. The integrated, moving robot is not finished.
Current milestone: a new body from the original references
The earlier STL attempt did not match the intended robot. Instead of polishing the wrong shape, this version was rebuilt from the original purple robot images and the surviving video views. The older meshes are not imported by the new model.
The design keeps the features that made the reference worth building:
- A closed, rounded head with a broad teal screen and thick bezel.
- Circular side grilles, flat antenna tabs and a low roof-mounted sensor housing.
- A curved torso with a narrower upper section, rounded lower body and dark panel trim.
- Two large treaded wheels with swept-spoke hubs.
- A small central twin-wheel caster, short side pods and a circular chest detail.

Reference and reconstruction side by side. Fine seams, hidden surfaces and small hardware details are still approximate.
[!IMPORTANT] This is an exterior design prototype, not a print-ready robot kit. The STL files are real geometry exports, but the dimensions are image-based assumptions. Motor mounts, electronics packaging, joints, tolerances and print orientations still need engineering and physical tests. Do not print the complete assembly expecting a working robot.
Get the files
| File | Use it for |
|---|---|
| Full STEP assembly | Import named, coloured solid components into FreeCAD, Fusion or Onshape. |
| Full STL assembly | Inspect the complete geometry; this is a multi-component assembly, not one fused print. |
| Individual STL components | Inspect or modify separate shell sections, wheels, trim and other components. |
| Coloured GLB model | Open in a compatible 3D viewer. Uses metres and +Y up. |
| CadQuery source | Edit the construction and regenerate the geometry. |
| Design notes | Read the assumptions, interpretation choices and verification scope. |
| Printing status | See what must be resolved before a physical prototype. |
For everything, use GitHub’s Code → Download ZIP, or clone this repository. STEP/STL use millimetres. STEP contains editable solids; the procedural construction lives in the Python source, not a native CAD feature-history tree.
What has actually been checked
The current CAD export contains 38 component instances. They include visual stand-ins for screens, sensors and axles—not 38 fabrication-ready parts.
| Check | Recorded result | Evidence |
|---|---|---|
| Solid geometry | All 38 component instances valid, with positive volume | Geometry report |
| Component clashes | No intersections above the 0.5 mm³ reporting threshold; no check errors | Pairwise check |
| STL quality | Every individual STL is watertight, consistently wound, finite and positive-volume | Mesh report |
| STEP round trip | Re-imported successfully; solid count and volume comparison passed | Round-trip result |
| Viewer export | GLB re-imported with all 38 components | Viewer check |
| Visual review | Front and angled views compared with the approved images | Comparison sheet |
The assumed exterior envelope is approximately 232 × 147 × 394 mm (width × depth × height). Head width was set to 190 mm as a scaling choice, not a measurement from a physical robot.
These checks establish coherent files. They do not establish strength, stability, printability, electronics fit or successful motion.
What changed during this iteration
- Closed the head rather than reproducing the rejected open-top shape.
- Refined the lower-body curve, screen opening, wheel scale, antenna angle and sensor placement against the references.
- Replaced side-pod geometry that produced non-watertight STL exports.
- Fixed a shell-splitting operation that returned an empty result despite reporting valid topology.
- Used matching numerical integration tolerances when comparing STEP export/import volumes.
The useful outcome is not just a better render: the source, exported solids and validation reports are all here to inspect.
Carrier board and electronics
The existing v1 carrier-board design is retained alongside the new CAD. It includes a battery input and power switching, a buck-module connection, a TB6612FNG motor-driver module socket, a XIAO ESP32-S3 Sense socket, motor connectors and an I²C expansion connector.

The carrier board and the new enclosure have not been physically integrated or fit-tested. The board files and fabrication exports are design artifacts, not evidence that a board was manufactured or powered successfully. Check component ratings and footprints before ordering or connecting a battery.
The CAD component inventory is separate from the electronics BOM: it lists visual model instances, not parts to purchase.
Software direction
The repository also retains:
firmware/— PlatformIO/Arduino sources for the ESP32-S3 sensing and bridge work.server/— Python audio-receiver, transcription, dashboard and intelligence experiments.
The intended division is simple: the controller handles device I/O; the computer handles processing and agent behaviour. These are prototype sources, not proof of a working end-to-end robot. Their runtime and physical integration were not revalidated as part of this CAD update.
Rebuild the CAD
Tested with Python 3.12 and CadQuery 2.8.0. From the repository root on Linux/macOS:
cd cad/reference-rebuild
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
# Generate parts, assembly and geometry checks
.venv/bin/python cad/build_robot.py
# Check all meshes, re-import STEP and export GLB
.venv/bin/python cad/validate_meshes.py
# Render the actual exported geometry and compare with references
.venv/bin/python cad/render_robot.py
.venv/bin/python cad/compare.pyThe model is editable procedural CAD, not a fully constrained configurator. Major dimensional changes also require checking the inner shell, openings and neighbouring components. Rerun the checks after edits. More details: CAD README.
Next steps toward a physical robot
- Select and measure the actual display, motors, battery and controller boards.
- Add motor mounts, bearings, electronics mounts and battery retention.
- Design shell fasteners and access to the hardware inside.
- Resolve the caster mount, swivel clearance and wheel-to-shaft interfaces.
- Check wiring paths, ventilation and battery/power safety.
- Slice individual parts and print fit-test pieces before a full enclosure.
- Assemble, test movement and connect the hardware to the software stack.
Half Life journal and credits
The development journal and funding tracker are mirrored from Half Life. Those files are managed by the platform; this update leaves them unchanged. The CAD rebuild is documented here and in design notes, rather than inventing hours or modifying past entries.
AI assistance is part of this work. Aalind selected the reference design, rejected the earlier model and directed the rebuild. Ava/Hermes assisted with procedural CAD generation, debugging, validation, rendering and documentation. This repository does not claim the generated work was completed unaided, that it has already been accepted for a particular week, or that the physical robot has been built.
The source images are kept separately in references so readers can distinguish the design references from the new model renders. Provenance notes describe the surviving source copies; their original author/license is not independently established here.
Repository map
cad/reference-rebuild/
├── cad/ # Build, render, compare, validate and package scripts
├── exports/ # STEP, STL, GLB, inventory and validation reports
│ └── parts/ # Individual component-instance STLs
├── images/ # Current renders and reference comparison
├── references/ # Source reference views, kept distinct from outputs
├── DESIGN-NOTES.md
└── PRINTING.md
hardware/ # Existing carrier schematic, PCB and fabrication exports
firmware/ # Existing microcontroller prototypes
server/ # Existing Python prototypes
bom.csv # Carrier-board parts list
BOM.md # Half Life-managed funding tracker
JOURNAL.md # Half Life-managed devlogLicense and reference assets
The project’s existing MIT declaration applies to its original code and design contributions. Supplied reference images are not being relicensed by this update; their provenance and usage rights should be checked before reuse outside this project.
Parts
18| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | M3 | MOUNT_M3 | M1, M2, M3, M4 |
| 1 | 1k | R1_SOCKET | R1 |
| 1 | 1k | R2_SOCKET | R2 |
| 1 | Buck 5V/5A Module | U1_SOCKET | U1 |
| 1 | I2C Expansion | J4_SOCKET | J4 |
| 1 | LED +5V | D1_SOCKET | D1 |
| 1 | LED VBAT | D2_SOCKET | D2 |
| 1 | LiPo 2S In (JST-PH) | J1_SOCKET | J1 |
| 1 | Motor A (JST-PH) | J2_SOCKET | J2 |
| 1 | Motor B (JST-PH) | J3_SOCKET | J3 |
| 1 | Polyfuse 5A | F1_SOCKET | F1 |
| 1 | Power Switch | SW1_SOCKET | SW1 |
| 1 | SBC 5V Feed (JST-VH) | J5_SOCKET | J5 |
| 1 | TB6612FNG Motor Driver | U2_SOCKET | U2 |
| 1 | XIAO ESP32-S3 Sense | U3_SOCKET | U3 |
Questions
How big is the Ava carrier PCB?
It measures 60 × 40 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Ava carrier use?
18 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 Ava carrier KiCad files?
From the AalindOg/AVA-Robot- repository on GitHub, at the commit this page was made from: the board is hardware/ava-carrier.kicad_pcb and its schematic hardware/ava-carrier.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Ava carrier design in my own project?
Its repository states no licence, so its author keeps all rights: ask AalindOg before reusing the design.
Similar boards
- 2 layers27.9 × 16.5 mm

- 2 layers42.7 × 13.7 mm

Stm32-mini12864
VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group
18 parts1.1kGPL-3.0 - 2 layers41.2 × 46.6 mm

- 2 layers44 × 51.3 mm

4272MAVcoder R4
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
18 parts915 - 2 layers28.3 × 14.3 mm

Tap Photosensor PCB
VoronDesign/Voron-Tap
Tap is a nozzle-based z-probe for the V2 and Trident printer designs. The entire toolhead moves to trigger an optical switch. Tap offers many advantages:
18 parts716GPL-3.0 - 2 layers20.3 × 15.2 mm

L0 stepper driver
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.
18 parts546MIT - 2 layers

- 2 layers42.5 × 28.8 mm

C5VRX JACK DIY V2
Twotoz/C5VRX
Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS
18 parts515GPL-3.0