

MiyoCalc40
Open source and Open Hardware RPN Calculator
- Size
- 127.7 × 81.4 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 57
- Nets
- 28
- Pads
- 221
- Tracks, vias
- 343, 0
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 10 Aug 2023
- Updated
- 10 Oct 2026
Overview
MiyoCalc40 is an open-source printed circuit board by JonathanFerron, from the JonathanFerron/MiyoCalc40 repository on GitHub. It is a 2-layer board of 127.7 × 81.4 mm with 57 parts on 28 nets, routed with 343 tracks and 0 vias.
It is built around the AVR128DA28-E/SP. Its parts include 3 capacitors, 2 resistors and 1 IC.
Main components
1README
readme.mdMiyoCalc40
RPN calculator
This is a project for a trough-hole only RPN calculator with a flexible configuration. The idea is for it to be minimalist, meant as a complement to other tools that the user would typically have on hand (computer, formula cheat sheet, etc.) rather than as a replacement, and made with easy to solder through-hole components.
I would like to give credit to the work of the following individuals which has served as inspiration for this project:
- Alex Garza for work done on the Voyager form-factor RPN calculators: https://paxer.net/voyager/
- Anton Poluektov for work done on the OpenRPNCalc calculator: https://github.com/apoluekt/OpenRPNCalc
Building and flashing the firmware
Toolchain: avr-gcc + avr-libc (AVR128DA28 support built in) and avrdude 8.x. No Arduino IDE needed.
Programmer: a CH340E USB-serial adapter used as a SerialUPDI programmer (avrdude's serialupdi).
From MiyoCalc40_firmware/:
| Command | Action |
|---|---|
make | Build build/MiyoCalc40_firmware.hex |
make flash | Flash the firmware over UPDI |
make flash_fuses | Write the fuse row (first-time setup, or after changing avrducore/fuses.c) |
make help | List all targets |
The default port is /dev/ttyUSB0. To use a different one, pass PROG_PORT, e.g. make flash PROG_PORT=/dev/ttyUSB1.
Equivalent raw avrdude command:
avrdude -c serialupdi -p avr128da28 -P /dev/ttyUSB0 -U flash:w:build/MiyoCalc40_firmware.hex:iThe MiyoCalc40 PCB work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
The MiyoCalc40 Firmware is licensed under the GNU General Public License version 3: Copyright (C) 2026 Jonathan Ferron
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Parts
57| Qty | Value | Footprint | References |
|---|---|---|---|
| 13 | KEYSW | MiyoCalc footprints:SW_PUSH_6mm | SWa3, SWa4, SWd2, SWd3, SWd4, SWe1, SWe2, SWf1, SWf2, SWf4, SWg1, SWg2, SWg4 |
| 7 | M2 | MiyoCalc footprints:MountingHole | H1, H2, H3, H4, H5, H6, H7 |
| 3 | 100n | MiyoCalc footprints:C_Disc_D4.3mm_W1.9mm_P5.00mm | C1, C2, C3 |
| 1 | + | MiyoCalc footprints:SW_PUSH_6mm | SWb3 |
| 1 | - | MiyoCalc footprints:SW_PUSH_6mm | SWc3 |
| 1 | . | MiyoCalc footprints:SW_PUSH_6mm | SWi4 |
| 1 | 0 | MiyoCalc footprints:SW_PUSH_6mm | SWh4 |
| 1 | 1 | MiyoCalc footprints:SW_PUSH_6mm | SWh3 |
| 1 | 1/x | MiyoCalc footprints:SW_PUSH_6mm | SWb4 |
| 1 | 1K8 | Resistor_THT_AKL:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R1 |
| 1 | 2 | MiyoCalc footprints:SW_PUSH_6mm | SWi3 |
| 1 | 3 | MiyoCalc footprints:SW_PUSH_6mm | SWj3 |
| 1 | 330R | Resistor_THT_AKL:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R2 |
| 1 | 4 | MiyoCalc footprints:SW_PUSH_6mm | SWh2 |
| 1 | 5 | MiyoCalc footprints:SW_PUSH_6mm | SWi2 |
| 1 | 6 | MiyoCalc footprints:SW_PUSH_6mm | SWj2 |
| 1 | 7 | MiyoCalc footprints:SW_PUSH_6mm | SWh1 |
| 1 | 8 | MiyoCalc footprints:SW_PUSH_6mm | SWi1 |
| 1 | 9 | MiyoCalc footprints:SW_PUSH_6mm | SWj1 |
| 1 | AVR128DA28 | MiyoCalc footprints:DIP-28_W7.62mm_Socket | U1 |
| 1 | Battery | MiyoCalc footprints:BatteryHolder_AAA | BAT1 |
| 1 | LCD | Connector_PinSocket_2.54mm:PinSocket_1x09_P2.54mm_Vertical | LCD1 |
| 1 | SolderJumper_2_Open | MiyoCalc footprints:Reset Jumper 40 | JP1 |
| 1 | UPDI | MiyoCalc footprints:UPDI Port | UPDI1 |
| 1 | chs | MiyoCalc footprints:SW_PUSH_6mm | SWg3 |
| 1 | drop | MiyoCalc footprints:SW_PUSH_6mm | SWc1 |
| 1 | enter | MiyoCalc footprints:SW_PUSH_6mm | SWb1 |
| 1 | f | MiyoCalc footprints:SW_PUSH_6mm | SWj4 |
| 1 | rcl | MiyoCalc footprints:SW_PUSH_6mm | SWf3 |
| 1 | r↓ | MiyoCalc footprints:SW_PUSH_6mm | SWd1 |
| 1 | sto | MiyoCalc footprints:SW_PUSH_6mm | SWe3 |
| 1 | wake | MiyoCalc footprints:SW_PUSH_6mm | SWe4 |
| 1 | x↔y | MiyoCalc footprints:SW_PUSH_6mm | SWa1 |
| 1 | × | MiyoCalc footprints:SW_PUSH_6mm | SWb2 |
| 1 | ÷ | MiyoCalc footprints:SW_PUSH_6mm | SWc2 |
| 1 | ←clx | MiyoCalc footprints:SW_PUSH_6mm | SWa2 |
| 1 | √ | MiyoCalc footprints:SW_PUSH_6mm | SWc4 |
Questions
How big is the MiyoCalc40 PCB?
It measures 127.7 × 81.4 mm and has 2 copper layers, 1.6 mm thick.
What parts does the MiyoCalc40 use?
57 parts, built around the AVR128DA28-E/SP. 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 MiyoCalc40 KiCad files?
From the JonathanFerron/MiyoCalc40 repository on GitHub, at the commit this page was made from: the board is pcb/pcbcalc/miyocalc40.kicad_pcb and its schematic pcb/pcbbase/miyocalc40base.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the MiyoCalc40 design in my own project?
Its repository states no licence, so its author keeps all rights: ask JonathanFerron before reusing the design.
Similar boards
- 2 layers158.8 × 159.8 mm

- 4 layers94.1 × 59.1 mm

- 2 layers49 × 82.3 mm

- 2 layers88.9 × 79.8 mm

- 2 layers59.2 × 52.9 mm

- 2 layers100 × 70.3 mm

- 2 layers165.1 × 120.7 mm

- 2 layers

