
Claculator Keypad
Robert-Mones/Claculator
A reverse Polish notation calculator with added features such as comparisons, branching, and custom recursive operators taken from the Clac project from the 15-122 course at Carnegie Mellon University.

A reverse Polish notation calculator with added features such as comparisons, branching, and custom recursive operators taken from the Clac project from the 15-122 course at Carnegie Mellon University. The project is built around a 6502 microprocessor with a custom architecture to reduce CPU load by making peripherals operate asyncronously.
Clock Addon is an open-source printed circuit board by Robert-Mones, from the Robert-Mones/Claculator repository on GitHub. It is a 6-layer board of 16.5 × 21.6 mm with 7 parts on 9 nets, routed with 31 tracks and 0 vias.
It is built around the NE555P. Its parts include 2 capacitors, 2 resistors, 1 IC, 1 diode and 1 connector. It belongs with the lEDs and displays boards of this library.
A reverse Polish notation calculator with added features such as comparisons, branching, and custom recursive operators taken from the Clac project from the 15-122 course at Carnegie Mellon University. The project is built around a 65C02 microprocessor with a custom architecture to reduce CPU load by making memory-mapped peripherals operate asynchronously. All logic and board design was done in KiCAD. All 3D modeling was done in Autodesk Fusion.
Fully assembled Claculator

The seven-segment display board supports nine numeric displays, each with eight digits. It contains an SRAM chip which interfaces to the rest of the computer as a memory-mapped peripheral. When selected, the address and data bus is connected to the computer to be written to (but not read from) transparently. When the memory is not selected, a counter with a selectable clock source loops through each of the seventy-two digits, reads the corresponding byte from memory, and drives the corresponding digit using one bit for each segement (seven for the numeric part, one for the decimal point) with an array of P- and N-channel MOSFETs.
The front of the display, showing eight numeric displays

The back of the display, showing the logic and driver chips

The keypad input board supports up to sixteen rows (5 are implemented), each with eight buttons. It detects rising edges of each button (equivalent to KeyDown events) with hardware RC debouncing and writes this information to a hardware FIFO buffer which is interfaced directly to the address and data bus of the system and can be configured to send an interrupt on new information in the buffer. It also has a header and location for a seven-segment display (not populated in these photos) as the ninth display that is driven from the display board.
The front of the keypad, showing five groups of eight keys

The back of the keypad, showing the logic chips and hot-swappable key sockets

The chassis for the Claculator was manufactured by SendCutSend out of 1/8"-thick 304 stainless steel (except for the keypad plate which must be 0.06" thick to fit the keys). It has hinges at the top back to open the Claculator from the front to enable demonstrations and debugging more easily. It is very heavy (8lbs of sheet metal) and was very expensive but it's worth it for the bit.
Model of the assembled Claculator

I am currently working on some tests building up to a 32-bit integer mode to develop the RPN behavior and a feature-complete Clac implementation. After this, I will write a software 32-bit floating point implementation to support decimal arithmetic and comparisons. All of the code for this project will be written in 65C02 assembly.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | C | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | C1, C2 |
| 2 | R | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R1, R2 |
| 1 | Conn_01x06_Pin | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J2 |
| 1 | D_Zener | Diode_THT:D_A-405_P7.62mm_Horizontal | D1 |
| 1 | NE555P | Package_DIP:DIP-8_W7.62mm | U1 |
It measures 16.5 × 21.6 mm and has 6 copper layers, 1.6 mm thick.
7 parts, built around the NE555P. 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.
From the Robert-Mones/Claculator repository on GitHub, at the commit this page was made from: the board is Clock_Addon/Clock_Addon.kicad_pcb and its schematic Claculator_Display/Claculator_Display.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Robert-Mones before reusing the design.

Robert-Mones/Claculator
A reverse Polish notation calculator with added features such as comparisons, branching, and custom recursive operators taken from the Clac project from the 15-122 course at Carnegie Mellon University.

Robert-Mones/Claculator
A reverse Polish notation calculator with added features such as comparisons, branching, and custom recursive operators taken from the Clac project from the 15-122 course at Carnegie Mellon University.

Robert-Mones/Claculator
A reverse Polish notation calculator with added features such as comparisons, branching, and custom recursive operators taken from the Clac project from the 15-122 course at Carnegie Mellon University.

baldengineer/bit-preserve
Project for capturing vintage, classic, aka old computer schematics in KiCad.

The-Invent0r/8-bit-Computer-PCB
These are the KiCAD files for my 8-Bit Computer.

DarcyJProjects/touchtone555
An open-source DIY, NE555-based analogue synthesizer - play notes with a stylus



benjiaomodular/SynthCard
I designed this project with the help of PCBWay. You can get a copy of these cards through the PCBWay Shared Projects page.

fortinsylvain/MyCpu
Home brew CPU Hardware with 1-bit ALU implementation using 74LSxx, a micro-code and assembler coded in C#.

hackup/C128Diag
Replica of the Commodore C128 Diagnostic Test cartridge Assy No. 325093-01.