

CustomPCB
Automate tree ring gathering!
- Size
- 80 × 45.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 20
- Nets
- 50
- Pads
- 91
- Tracks, vias
- 82, 0
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 19 Dec 2023
- Updated
- 9 Jun 2025
Overview
CustomPCB is an open-source printed circuit board by UAA-Robo, from the UAA-Robo/tree-ring repository on GitHub, published under the MIT licence. It is a 2-layer board of 80 × 45.7 mm with 20 parts on 50 nets, routed with 82 tracks and 0 vias.
It belongs with the AVR (ATmega, ATtiny) boards of this library.
README
README.mdTree Ring Imaging Machine (TRIM)
⚠️ Notice: This project is no longer actively maintained.
For an actively supported alternative, please see FORGE — a low-cost, open-source imaging system built with off-the-shelf hardware. FORGE is designed to replace TRIM with improved support, extensibility, and easier hardware sourcing.
Documentation can be viewed at uaa-robo.github.io/tree-ring and in the docs folder.
This code controls the Amscope camera (our model is the MU500 and MU1000).
The following files are taken from the SDK provided by AmScope here when you select your camera and model:
- amcam.py - this file provides an API for the camera. For more information about the API, see API.pdf.
- simplest.py - this file provides a simple example that opens the camera and grabs frames from the camera, though it does not display these frames.
- qt.py - this file provides an example that grabs frames from the camera and renders them in a GUI.
- libamacam.dylib - needed for mac
- win/ - contains drivers and dlls needed for windows
We created the following files:
- camera.py - Interfaces with images from the amcam or the webcam if no amcam is present.
- gui.py - Displays a gui that the user can use to run the automation script. Displays camera feed.
- automationScript.py - Script that rotates the motor to shift the platform and trigger the camera to take pctures.
Setup & Running
For setup, run python -m pip install -r requirements.txt to install the python requirements needed.
To execute this program run python gui.py in this directory.
Bundle program into an executable for Windows
To compile this program, double-click on the build.bat script. An executable will be generated
in the dist folder.
Note: When building the program in "windowed" mode or "noconsole", Windows thinks its a virus. Building it with the console window attached when running prevents that from happening.
Parts
20| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | TestPoint | TestPoint:TestPoint_Pad_1.5x1.5mm | 12v_N_1, D2, D11, D12, D13 |
| 4 | MountingHole_2.7mm_M2.5 | MountingHole:MountingHole_2.7mm_M2.5 | M2.5, M2.5, M2.5, M2.5 |
| 2 | Conn_01x04_Socket | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | Motor_1, Motor_2 |
| 2 | Pololu_Breakout_A4988 | Module:Pololu_Breakout-16_15.2x20.3mm | TMC2088_1, TMC2088_2 |
| 1 | Arduino_Nano_v3.x | Module:Arduino_Nano | Arduino_1 |
| 1 | Barrel_Jack_MountingPin | Connector_BarrelJack:BarrelJack_Horizontal | DC_12V_1 |
| 1 | C 100 | Capacitor_THT:CP_Radial_D8.0mm_P5.00mm | 100uF_C1 |
| 1 | Conn_01x01_Socket | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J2 |
| 1 | Fan_3pin | Connector:FanPinHeader_1x03_P2.54mm_Vertical | Fan_Header_1 |
| 1 | Limit 1x1 Pin | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J1 |
| 1 | Screw_Terminal_01x02 | TerminalBlock:TerminalBlock_bornier-2_P5.08mm | Pwr_Switch_1 |
Questions
How big is the CustomPCB PCB?
It measures 80 × 45.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the CustomPCB use?
20 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 CustomPCB KiCad files?
From the UAA-Robo/tree-ring repository on GitHub, at the commit this page was made from: the board is PCB_files/CustomPCB.kicad_pcb and its schematic PCB_files/CustomPCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the CustomPCB design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers66.9 × 74.5 mm

- 2 layers86.4 × 64.8 mm

- 2 layers36.2 × 26.8 mm

Esp32 minimal
atopile/atopile
Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in hardware; starting with electronics ⚡️
20 parts4kMIT - 2 layers108.1 × 393.8 mm

Sweep compact ble
davidphilipbarr/Sweep
Sweep - a small promicro based keyboard inspired by the Ferris.
20 parts2.1k - 2 layers26 × 15.9 mm

TPS54340 Buck Regulator
rusefi/rusefi
rusefi - GPL internal combustion engine control unit
20 parts1.2k - 2 layers67.6 × 30.5 mm

Rgb to hdmi
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
20 parts1kGPL-3.0 - 2 layers44.3 × 28.7 mm

Lin bus adapter esp32
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
20 parts915 - 2 layers89.5 × 61.6 mm

FreeDeck TH 2020-02
FreeYourStream/freedeck-hardware
all the stuff you need to build your own FreeDeck
20 parts772