Skip to the content
2 layers49.8 × 63 mmPiHat, the printed circuit board in 3D

UI for PCB smart exposure table

Size
49.8 × 63 mm
Copper layers
2
Thickness
1.6 mm
Parts
15
Nets
45
Pads
89
Tracks, vias
140, 2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
26 Mar 2021
Updated
12 Apr 2025

Overview

PiHat is an open-source printed circuit board by joelkoz, from the joelkoz/QwicktracePCB repository on GitHub, published under the MIT licence. It is a 2-layer board of 49.8 × 63 mm with 15 parts on 45 nets, routed with 140 tracks and 2 vias.

It is built around the BD139. Its parts include 9 connectors, 3 resistors, 1 IC, 1 diode and 1 transistor.

Main components

1

README

README.md

Qwicktrace Logo

Qwicktrace Pro PCB

Qwicktrace PCB is the software component of the QwickFab PCB open source desktop circuit board fabrication system. The system dramatically reduces the time and skill required to make top quality single and double sided circuit boards for prototyping and one off use. Using QwickFab PCB, making a PCB is as simple as uploading your Gerber files to the Pro controller, selecting the process you wish to use to create the board, and then following the on-screen step by step instructions.

Overview

The QwickFab desktop fabrication system consists of three major hardware components and one optional one: Qwicktrace components

  1. The Qwicktrace Pro Controller is small control device with touchscreen and joystick powered by a Raspberry Pi 4 and the software found in this repository. It is comprised of a software stack and UI for controlling the other two hardware components below. The Controller can run either of the two other components individually, or together as a complete desktop PCB fabrication system.

  2. The Qwicktrace Exposure Table is a small device for quickly exposing photosensitive copper boards to ultraviolet light masked using a process called "Masked Stereolithography" (MSLA). The all new design of this exposure system adds an amber LED "safe light" for illuminating the mask for end user board positioning that is invisible to the photosenstive board.

  3. The Qwickmill mini CNC is a small desktop CNC machine designed specifically for working with small printed circuit boards. It can quickly drill the holes needed by through hole components on boards processed with the Exposure table. It can also mill an entire PCB on blank copper boards using special ingraving bits. This is handy if your board is simple enough as to not need the better resolution of the exposure table, or if you are on a budget and would prefer not to spend the extra money on photosensitive boards. Finally, the Qwickmill can be used to cut board stock down to smaller sizes.

  4. The QwickEtch Etching tank is a small container that can be used to quickly etch boards exposed with the Exposure table using a minimal mount of equipment. While any type of container can be used, the QwickEtch tank has an air pump powered agitator in in, removing the need for you to manually rock the etching tank.

The software on the Pro Controller (source code found on this repo) handles the more challenging aspects of making a PCB, such as aligning the drilling with the traces made on the exposure table, or positioning the opposite side of a board on a double sided PCB.

While the above hardware components make for a convenient set of tools, many Makers already have existing equipment they'd like to use in place of a QwickFab component. You are free to mix and match any or all of the components that you wish. You could in theory build NONE of the hardware components and simply run the Qwicktrace software on an old laptop or pre-existing Raspberry Pi build. The Qwickmill is built upon the open source standard Grbl controller. If you already own a CNC machines that uses Grbl, you can use that instead. It is easy to create a cable that connects from the Pro Controller to any CNC machine, such a 3018 or 1610. If you are on a budget, you can sometimes source a kit for one of these machines for less money than the individual parts for building the Qwickmill.

Software features

  • Creates PCB trace masks directly from Gerber files in SVG for MSLA exposure and/or in g-code for isolation milling
  • Software deskewing of traces and drill holes makes combining MSLA, milling, and/or double sided boards quick and easy.
  • Software autoleveling ensures isolation milling traces are cut to perfect depth
  • Drill/mill features works with any Grbl compatible CNC controller
  • UI designed for small 3.5" touchscreen
  • Supports joystick input via ADS1115 for easy jogging of CNC machine and alignment of drill holes
  • Turns Raspberry Pi into a remote access server and controller for Grbl CNC machines

Select process Position board

DIY construction of a QwickFab system

Qwicktrace components

The Qwickfab Pro system is made from parts printed with your 3D printer as well as easy to obtain off the shelf parts. The STL files for this project can be found here in this repo in the hardware/*/stl directories. A complete bill of materials can be found in the docs directory.

Build instructions with project discussion is located on the project's Hackaday Project Page

To install the software on the Raspberry Pi, see the file Setting up Raspberry Pi, also in docs

Development

The Qwicktrace user interface on the Pro Controller is a touchscreen app written in NodeJS/Javascript and built with the Electron framework. This UI is layered on top of a software stack comprised of many great open source software packages. These include:

  1. Tracespace Gerber processing library for Javascript
  2. pcb2gcode Gerber to GCode utility for milling isolation traces
  3. CNCjs Web interface and Grbl server for CNC machine control
  4. EventEmitter2 Advanced event handling for NodeJS

For additional technical information on the Qwicktrace software architecture, see the docs directory


Do you find my work useful?

Buy Me A Coffee

Parts

15
QtyValueFootprintReferences
11K8Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1
11N4001Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD1
11kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR3
120KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2
1AMZ_3A_MODjkoz_custom:Amazon_3A_Power_ModuleU1
1BD139Package_TO_SOT_THT:TO-126-3_VerticalQ1
1BuzzerConnector_PinHeader_2.54mm:PinHeader_2x01_P2.54mm_VerticalJ9
1CNCConnector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ5
1FanConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ4
1HDMI boardConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ3
1IDC16Connector_IDC:IDC-Header_2x08_P2.54mm_VerticalJ6
1PowerConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ2
1Pro PowerConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ8
1Raspberry_Pi_2_3pcb_etcher:PinSocket_2x20_P2.54mm_BacksideMountJ1
1UVPanelConnector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_VerticalJ7

More from joelkoz/QwicktracePCB

2
  • 4 layers49.8 × 63 mmPiHatPro, the printed circuit board in 3D

    PiHatPro

    joelkoz/QwicktracePCB

    UI for PCB smart exposure table

    11 parts16MIT
  • 2 layers50 × 35 mmExposure control, the printed circuit board in 3D

    Exposure control

    joelkoz/QwicktracePCB

    UI for PCB smart exposure table

    10 parts16MIT

Similar boards

  • 2 layersESP32Anglerfish, the printed circuit board in 3D

    ESP32Anglerfish

    Matchboxscope/Matchboxscope

    ESP32-based mini microscope for fluidic device observation

    7 parts103
  • 2 layers100 × 100 mmAmply, the printed circuit board in 3D

    Amply

    T76-org/amply

    A $10 desktop Bluetooth amplifier you'll love

    67 parts14GPL-3.0
  • 2 layers84.5 × 82.6 mmClassab amp, the printed circuit board in 3D

    Classab amp

    prydin/classab-amp-mosfet

    MOSFET-based 50W Class AB amplifier

    67 parts9
  • 2 layers100 × 79 mmPower board, the printed circuit board in 3D

    Power board

    Dominik-Workshop/dw3005t

    Linear power supply, with digital control

    23 parts8GPL-3.0
  • 2 layers95.9 × 112.6 mmLab supply, the printed circuit board in 3D

    Lab supply

    prydin/lab-supply

    Linear 0-30V, 2A lab supply

    90 parts8
  • 2 layers40 × 99 mmOutput mixer, the printed circuit board in 3D

    Output mixer

    mohoyt/output_mixer

    Simple 4 channel Eurorack output mixer

    114 parts7CERN-OHL-S-2.0
  • 2 layers135.8 × 56.1 mmPower board, the printed circuit board in 3D

    Power board

    xtarke/automated_buggy

    This shield connects microcontroller (MSP-EXP430FR2355) pins to the car's power board. Go to Power Board for more hardware information.

    87 parts5GPL-3.0
  • 2 layers230.1 × 118.5 mmPOWER 0-50, the printed circuit board in 3D

    POWER 0-50

    Aleksei327/STM32G474-Precision-Lab-Power-Supply

    Precision 0–50 V programmable laboratory PSU with 1 mV/1 mA setting steps, hybrid synchronous-buck + linear regulation, STM32G474 control, INA228 metering, and layered hardware protection.

    207 parts4

Questions

How big is the PiHat PCB?

It measures 49.8 × 63 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PiHat use?

15 parts, built around the BD139. 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 PiHat KiCad files?

From the joelkoz/QwicktracePCB repository on GitHub, at the commit this page was made from: the board is hardware/qwicktrace-original/kicad/PiHat.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the PiHat 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).