

MK2090 PERI order
A powerful RPN calculator, programmable in BASIC
- Size
- 100 × 100 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 50
- Nets
- 49
- Pads
- 161
- Tracks, vias
- 469, 11
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 15 Oct 2019
- Updated
- 9 Dec 2020
Overview
MK2090 PERI order is an open-source printed circuit board by ptravnik, from the ptravnik/Retro_CALC repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 100 × 100 mm with 50 parts on 49 nets, routed with 469 tracks and 11 vias.
It is built around the TLP3544(F) and DS3231S#. Its parts include 16 connectors, 14 resistors, 5 switches, 3 ICs and 2 diodes. It belongs with the AVR (ATmega, ATtiny) and NXP (LPC, Kinetis, i.MX RT) boards of this library.
Main components
2README
README.mdRetro_CALC
The ultimate goal is to build a powerful RPN calculator, programmable in BASIC-like language
The FIRST mockup version:
- Arduino MEGA 2560
- Arduino MEGA SRAM shield (my PCB is modified for 56k RAM instead of 32 in the original version)
- Arduino SD card reader; this version is for Uno, but runs on Mega with pins 10-13 using Soft SPI
- Piezo speaker on line 9
- Hardware keyboard on lines A0-A4
- LCD screen 128x64 pixels on SPI
This code development is abandoned.
The SECOND mockup version:
- ESP32 Dev Module
- Micro SD card reader on VSPI 5, 18, 19, 23
- Hardware keyboard on lines 25-27 and 32, 33; pin 34 is used for power switch
- LCD screen 128x64 pixels on HSPI 12-15
- Arduino Micro Pro 3.3V, 8 MHz as a "keyboard/mouse injector"
The code is fully ported and tested on the ESP-32 platform. Final version of Keyboard PCB (KBD-2090) has been tested.
The THIRD mockup version:
- ESP32 Dev Module
- Micro SD card reader on VSPI 5, 18, 19, 23
- Hardware keyboard on lines 25-27 and 32, 33; pin 34 is used for power switch
- TFT screen 480x320 pixels on HSPI 12-15
- 2xLiPo batteries (4000 mAh), charger and power management
- Real-Time Clock based on DS3231 chip
- Arduino Micro Pro 3.3V, 8 MHz as a "peripheral controller"
This mockup is under development. Both BW LCD and Color TFT are likely to be supported.
Build Instructions
To build for Arduino Mega 2560
- Tested on Arduino IDE 1.18.10.
- Install 3 libraries: U8g2 for the LCD, SD2, and HWKbd for the keyboard. Alternatively just copy the same into the Arduino libraries folder (will not install the examples).
- Copy the source, RetroRPN_Arduino, to any convenient folder and open with Arduino IDE.
- Select the board as Arduino Mega or Mega 2560, processor ATMega 2560, compile and upload as usual.
To build for ESP32 Dev Board
- Tested on Arduino IDE 1.18.10. and 1.18.12 (VSCode IDE also can be used if Arduino IDE is installed).
- Install 2 libraries: U8g2 for the LCD and HWKbd for the keyboard. Alternatively just copy the same into the Arduino libraries folder (will not install the examples).
- Copy the source, RetroRPN_ESP32, to any convenient folder and open with Arduino IDE.
- Validate which version of hardware keyboard is connected: the production layout uses different h file as the buttons' position is different from the early mock-up.
- Select the board as ESP32 Dev Module, compile and upload as usual. Dev module requires you to hold BOOT down for security reasons; on my module (v 1) this pin is not exposed, so must be done with the button on the module itself. Your board may have this on GPIO 00 pin - wiring to an external button is recommended.
To build the Keyboard Injector or Peripheral Controller:
- Tested only with cheap Chinese clones of Sparkfun Pro Micro on Arduino IDE 1.18.10 and 1.18.12.
- Carefully follow the install instructions from Sparkfun
- Download the [code from github](https://github.com/ptravnik/Retro_CALC/tree/master/Keyboard_Injector_Micro or https://github.com/ptravnik/Retro_CALC/tree/master/MK2090_Peripheral_Controller)
- Select the board as Sparkfun Pro Micro and the processor as ATMega 32U4 3.3V, 8MHz or ATMega 5.0V 16MHz version (depending on the one you have); CAUTION "Leonardo" may work for 5V / 16 MHz boards, but will surely brick a 3.3V version!
- Select the board's port
- Upload to board (shorting Reset to Ground may be required after the interface says "Uploading...")
Automated testing
- Place the content of testing folder into the root of the SD card.
- Insert the SD into the calculator and cycle power button.
- Upon the calculator wake-up (or new firmware install from the IDE + reboot), issue command RUN via Serial Monitor.
Parts
50| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 11K | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R10, R11, R12, R13, R14 |
| 5 | VAL** | keyboard_parts:HOLE_M3 | HOLE_M3, HOLE_M3, HOLE_M3, HOLE_M3, HOLE_M3 |
| 4 | 15k | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R4, R5, R6, R9 |
| 3 | 4.7M | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R2, R7, R8 |
| 2 | GND | Pin_Headers:Pin_Header_Straight_1x01_Pitch2.54mm | J6, J12 |
| 1 | +Raw | Pin_Headers:Pin_Header_Straight_1x01_Pitch2.54mm | J1 |
| 1 | -Raw | Pin_Headers:Pin_Header_Straight_1x01_Pitch2.54mm | J2 |
| 1 | 03962a (NEG) | Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm | J4 |
| 1 | 03962a (POS) | Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm | J3 |
| 1 | 1.1k | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R3 |
| 1 | 1N4004 | Diodes_THT:D_T-1_P10.16mm_Horizontal | D2 |
| 1 | 1N5819 | Diodes_THT:D_T-1_P5.08mm_Horizontal | D1 |
| 1 | 2N7000 | TO_SOT_Packages_THT:TO-92_Molded_Narrow_Oval | Q1 |
| 1 | 3296 IN | Pin_Headers:Pin_Header_Straight_1x01_Pitch2.54mm | J5 |
| 1 | 3296 OUT | Pin_Headers:Pin_Header_Straight_1x01_Pitch2.54mm | J11 |
| 1 | 4023 | Housings_DIP:DIP-14_W7.62mm | U2 |
| 1 | 470* | Resistors_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R1 |
| 1 | A | keebs:Mx_Alps_100 | SW3 |
| 1 | Bat - | Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm | J15 |
| 1 | Bat+ | Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm | J14 |
| 1 | DS3231 | Pin_Headers:Pin_Header_Straight_1x06_Pitch2.54mm | J10 |
| 1 | E | keebs:Mx_Alps_100 | SW2 |
| 1 | Ext | Pin_Headers:Pin_Header_Straight_1x05_Pitch2.54mm | J16 |
| 1 | Ext Power | Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm | J13 |
| 1 | Keyboard | Pin_Headers:Pin_Header_Straight_1x08_Pitch2.54mm | J8 |
| 1 | L | keebs:Mx_Alps_100 | SW4 |
| 1 | MK2090 PROC | Pin_Headers:Pin_Header_Angled_1x10_Pitch2.54mm | J7 |
| 1 | ProMicro | Housings_DIP:DIP-24_W15.24mm | U3 |
| 1 | RTC | Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mm | J9 |
| 1 | Reset | Buttons_Switches_THT:SW_PUSH_6mm | SW1 |
| 1 | Spec | keebs:Mx_Alps_100 | SW5 |
| 1 | TLP3544 | Housings_DIP:DIP-6_W7.62mm | U1 |
The 46 most common of 50 parts.
Similar boards
- 4 layers68.6 × 53.3 mm

- 2 layers398.2 × 398.2 mm

LargeWordClock LargeKickstarter
PCBench/PCBench
resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…
1,591 parts21MIT - 2 layers147.3 × 95.3 mm

Nixie proj conflict-20171112-163801
dm2lct/tlnixie
PCB files for the Turmlabor nixie clock 2.0
117 parts11GPL-3.0 - 2 layers167 × 52 mm

In-2-nixie
mistic100/Nixie-Clock-IN2
Check out my other projects: - Nixie Clock IN14 - Nixie Clock IN12 - IV-27 VFD Clock
34 parts10 - 2 layers200 × 66 mm

- 2 layers83.5 × 45 mm

Arducon
OpenARDF/Arducon
A transmitter controller for Amateur Radio Direction Finding (ARDF). Based on the Arduino Pro Mini.
114 parts7MIT - 2 layers32.5 × 24 mm

- 2 layers90 × 55 mm

Questions
How big is the MK2090 PERI order PCB?
It measures 100 × 100 mm and has 2 copper layers, 1.6 mm thick.
What parts does the MK2090 PERI order use?
50 parts, built around the TLP3544(F) and DS3231S#. 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 MK2090 PERI order KiCad files?
From the ptravnik/Retro_CALC repository on GitHub, at the commit this page was made from: the board is MK2090_Peripheral_Controller/KiCAD/MK2090_PERI_order.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the MK2090 PERI order design in my own project?
Its repository publishes it under the GPL-3.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).