

calculator made using super ancient PIC μController.
- Size
- 125 × 185 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 114
- Nets
- 154
- Pads
- 464
- Tracks, vias
- 589, 27
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 13 Dec 2024
- Updated
- 19 Oct 2026
Overview
Proj is an open-source printed circuit board by kpzip, from the kpzip/PICalculator repository on GitHub, published under the EPL-2.0 licence. It is a 2-layer board of 125 × 185 mm with 114 parts on 154 nets, routed with 589 tracks and 27 vias.
It is built around the 74HC238D and BAS70-02L-TP. Its parts include 46 diodes, 44 switches, 9 capacitors, 4 resistors and 4 ICs. It belongs with the STM32 and PIC boards of this library.
Main components
2README
README.mdAward Winning PICalculator
calculator made using super ancient PIC μController.
Past customers have said:
"Fairly risky project that will depend a lot on the development environment. Not clear why 74HC138 will help read the buttons (could probably use SR for same purpose). need to check what exists in terms of development environment "This group chose the hardware as they "wanted a challenge". They are definitely one of the smarter groups in my section so I don't have much doubt that they will get it done.
If you guys do think the hardware is more complex than neccesary, I'm sure they'd be okay with changing out the parts list." "Are these people really experienced or did they find this project online? If the former, will all group members be able to contribute?
PIC16C74 likely does not have Arduino support. "ARM Cortex M4" is vague and any bare chip will likely only come in an SMD package. Both need a special programmer and special compiler setups. Would need to make a custom PCB or buy a dev board.
Why not just do everything in the M4 since it's vastly more powerful than the PIC?" Looks like a very challenging project. I am not sure if all group members can contribute if they decide to go with this idea. I think one or two group members are pretty advanced. I feel like it would be hard to provide help to them since most mentors dont have experience with this microcontroller and it requires a different development environment. Fairly sophisticated, were having issues with some operations outputting the wrong values"
Parts
114| Qty | Value | Footprint | References |
|---|---|---|---|
| 42 | BAS7002 | Diode_SMD:D_SOD-523 | D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +26 |
| 5 | 100nF | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C3, C4, C5, C6, C7 |
| 4 | 470Ω | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R2, R3, R4 |
| 2 | 2032 | Parts:BAT_BAT-HLD-001-THM | B1, B2 |
| 2 | 22pF | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | C1, C2 |
| 2 | Reset | Button_Switch_THT:SW_PUSH_6mm | SW1, SW44 |
| 1 | (/) | Button_Switch_THT:SW_PUSH_6mm | SW26 |
| 1 | + | Button_Switch_THT:SW_PUSH_6mm | SW30 |
| 1 | +/- | Button_Switch_THT:SW_PUSH_6mm | SW5 |
| 1 | - | Button_Switch_THT:SW_PUSH_6mm | SW24 |
| 1 | ./, | Button_Switch_THT:SW_PUSH_6mm | SW3 |
| 1 | / | Button_Switch_THT:SW_PUSH_6mm | SW12 |
| 1 | 0 | Button_Switch_THT:SW_PUSH_6mm | SW4 |
| 1 | 1 | Button_Switch_THT:SW_PUSH_6mm | SW21 |
| 1 | 10kΩ | Potentiometer_SMD:Potentiometer_Bourns_TC33X_Vertical | RV1 |
| 1 | 10µF | Capacitor_THT:CP_Radial_D6.3mm_P2.50mm | C9 |
| 1 | 10µH | Inductor_SMD:L_0805_2012Metric_Pad1.05x1.20mm_HandSolder | L1 |
| 1 | 1µF | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C8 |
| 1 | 2 | Button_Switch_THT:SW_PUSH_6mm | SW22 |
| 1 | 20MHz | Crystal:Crystal_HC49-U_Vertical | Y1 |
| 1 | 2nd | Button_Switch_THT:SW_PUSH_6mm | SW31 |
| 1 | 2nd | LED_THT:LED_D5.0mm | D43 |
| 1 | 3 | Button_Switch_THT:SW_PUSH_6mm | SW23 |
| 1 | 4 | Button_Switch_THT:SW_PUSH_6mm | SW15 |
| 1 | 5 | Button_Switch_THT:SW_PUSH_6mm | SW16 |
| 1 | 6 | Button_Switch_THT:SW_PUSH_6mm | SW17 |
| 1 | 7 | Button_Switch_THT:SW_PUSH_6mm | SW9 |
| 1 | 74HC238 | Package_DIP:DIP-16_W7.62mm_Socket_LongPads | U3 |
| 1 | 8 | Button_Switch_THT:SW_PUSH_6mm | SW10 |
| 1 | 9 | Button_Switch_THT:SW_PUSH_6mm | SW11 |
| 1 | Alpha | Button_Switch_THT:SW_PUSH_6mm | SW25 |
| 1 | Alpha | LED_THT:LED_D5.0mm | D44 |
| 1 | Clear | Button_Switch_THT:SW_PUSH_6mm | SW14 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1 |
| 1 | Constants | Button_Switch_THT:SW_PUSH_6mm | SW19 |
| 1 | Cos(x)/Cos-1(x) | Button_Switch_THT:SW_PUSH_6mm | SW28 |
| 1 | Deg | LED_THT:LED_D5.0mm | D45 |
| 1 | Deg/Rad | Button_Switch_THT:SW_PUSH_6mm | SW13 |
| 1 | Del | Button_Switch_THT:SW_PUSH_6mm | SW20 |
| 1 | Down | Button_Switch_THT:SW_PUSH_6mm | SW42 |
| 1 | ERM12864-7 | Parts:ERM12864-7 | DS1 |
| 1 | Graph | Button_Switch_THT:SW_PUSH_6mm | SW37 |
| 1 | LTC3525-5 | Package_TO_SOT_SMD:SOT-363_SC-70-6 | U4 |
| 1 | Left | Button_Switch_THT:SW_PUSH_6mm | SW39 |
| 1 | PIC16C74 | Package_DIP:DIP-40_W15.24mm_Socket_LongPads | U1 |
| 1 | Power | Button_Switch_THT:SW_Slide-03_Wuerth-WS-SLTV_10x2.5x6.4_P2.54mm | SW43 |
| 1 | Programs | Button_Switch_THT:SW_PUSH_6mm | SW38 |
| 1 | Rad | LED_THT:LED_D5.0mm | D46 |
| 1 | Right | Button_Switch_THT:SW_PUSH_6mm | SW41 |
| 1 | STM32F401RCTx | Package_QFP:LQFP-64_10x10mm_P0.5mm | U2 |
| 1 | Sci/Norm | Button_Switch_THT:SW_PUSH_6mm | SW7 |
| 1 | Sin(x)/Sin-1(x) | Button_Switch_THT:SW_PUSH_6mm | SW27 |
| 1 | Solve/= | Button_Switch_THT:SW_PUSH_6mm | SW6 |
| 1 | Tan(x)/Tan-1(x) | Button_Switch_THT:SW_PUSH_6mm | SW29 |
| 1 | Up | Button_Switch_THT:SW_PUSH_6mm | SW40 |
| 1 | X | Button_Switch_THT:SW_PUSH_6mm | SW18 |
| 1 | X/Matrix | Button_Switch_THT:SW_PUSH_6mm | SW8 |
| 1 | Y/Stats | Button_Switch_THT:SW_PUSH_6mm | SW2 |
| 1 | e^x/10^x | Button_Switch_THT:SW_PUSH_6mm | SW36 |
| 1 | log(x)/ln(x) | Button_Switch_THT:SW_PUSH_6mm | SW35 |
| 1 | x^2/√x | Button_Switch_THT:SW_PUSH_6mm | SW34 |
| 1 | x^y/y√x | Button_Switch_THT:SW_PUSH_6mm | SW33 |
| 1 | Γ(x) | Button_Switch_THT:SW_PUSH_6mm | SW32 |
Questions
How big is the Proj PCB?
It measures 125 × 185 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Proj use?
114 parts, built around the 74HC238D and BAS70-02L-TP. 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 Proj KiCad files?
From the kpzip/PICalculator repository on GitHub, at the commit this page was made from: the board is pcb/1.0/proj.kicad_pcb and its schematic pcb/1.0/proj.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Proj design in my own project?
Its repository publishes it under the EPL-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
More from kpzip/PICalculator
2- 2 layers125 × 185 mm

- 2 layers125 × 185 mm

Similar boards
- 2 layers82 × 134 mm

Pcb badge
john0312/hitcon-pcb-badge
execute fw/merge.py to merge STM32CubeIDE generated main.c with user code in main.cc into main.cc.
258 parts47BSD-3-Clause - 2 layers182.6 × 130.9 mm

Blackmacro base
KipJM/blackmacro-hardware
An open source, smaller, more configurable, and more capabable video editing keyboard based on the raspberry Pi Pico 2W.
189 parts29CERN-OHL-W-2.0 - 4 layers102 × 102 mm

- 4 layers189.4 × 59.1 mm

- 2 layers235 × 176.5 mm

Cpu
Edgeworth/memepu
cmake -DUSEAFL=yes -DCMAKEBUILDTYPE=Release $PFX/verymeme AFLSKIPCPUFREQ=yes AFLPRELOAD=/usr/local/lib/afl/libdislocator.so \ afl-fuzz -m 1024M -i $PFX/verymeme/testdata/memelang/parsing -o memelangfuzz \ -x…
286 parts9GPL-3.0 - 2 layers166 × 70 mm

Prototype
SteveCooling/MidiKeys
Will be a complete board with decoders for multiplexed sampling of analog sources and up to 61-key keybeds
75 parts8MIT - 4 layers238.8 × 236.2 mm

- 2 layers

Display and comms
LeHack/SPSP
Particulate matter pollution monitoring system (:poland: System Pomiaru Stężenia Pyłu w powietrzu)
27 parts3