OpenRPNCalc

Public

@apoluekt

Download board files

Files for version 1. Pick what you came for.

KiCad projectAll 154 files, ready to open in KiCad7.2 MB
For fabricationGerbers, drill, pick-and-place and BOMGerbers and drill zip261 KBGerbers and drill zip: BackPanel19 KBGerbers and drill zip: EnterPad16 KBGerbers and drill zip: EnterStab18 KBGerbers and drill zip: Frame23 KBGerbers and drill zip: FrontPanel22 KBGerbers and drill zip: FrontPanel_labelled60 KBGerbers and drill zip: FrontPanel_labelled_hp4880 KBGerbers and drill zip: KeyTops13 KBGerbers and drill zip: KeyTops_labelled47 KBGerbers and drill zip: KeyTops_labelled_hp4846 KBGerbers and drill zip: KeyTops_production60 KBGerbers and drill zip: KeyTops_production_hp4858 KBGerbers and drill zip: LargePad15 KBGerbers and drill zip: SmallPad15 KBGerbers and drill zip: Spacer1_assembly21 KBGerbers and drill zip: Spacer1_production24 KBGerbers and drill zip: Spacer2_assembly17 KBGerbers and drill zip: Spacer2_production19 KBGerbers and drill zip: Spacer3_assembly17 KBGerbers and drill zip: Spacer3_production18 KBPick and place (CSV)11 KBPick and place (CSV): BackPanel35 BPick and place (CSV): EnterPad35 BPick and place (CSV): EnterStab35 BPick and place (CSV): Frame35 BPick and place (CSV): FrontPanel35 BPick and place (CSV): FrontPanel_labelled35 BPick and place (CSV): FrontPanel_labelled_hp4835 BPick and place (CSV): KeyTops35 BPick and place (CSV): KeyTops_labelled35 BPick and place (CSV): KeyTops_labelled_hp4835 BPick and place (CSV): KeyTops_production35 BPick and place (CSV): KeyTops_production_hp4835 BPick and place (CSV): LargePad35 BPick and place (CSV): SmallPad35 BPick and place (CSV): Spacer1_assembly35 BPick and place (CSV): Spacer1_production35 BPick and place (CSV): Spacer2_assembly35 BPick and place (CSV): Spacer2_production35 BPick and place (CSV): Spacer3_assembly35 BPick and place (CSV): Spacer3_production35 BBOM CSV14 KB
Schematic PDFEvery sheet, to read or print315 KB
Browse all files

Share OpenRPNCalc

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading…

README

OpenRPNCalc

Open-source and open-hardware scientific RPN calculator

Introduction

OpenRPNCalc is a scientific calculator based on the STM32 microcontroller. Its source code, schematics, and PCB design files are released under an open license. The goal is to develop a hardware platform with the following features:

  • Reproducible without special tools, using only boards produced by PCB prototyping services
  • A customizable keyboard to accommodate specific needs (such as RPN or algebraic logic, custom functions)
  • Low power consumption and long battery life
  • A high-quality, compact and sturdy enclosure

The hardware is inspired by the SwissMicros calculators, but is designed from scratch. The calculator features:

  • Reverse Polish notation with a large stack (up to 100 elements)
  • Double-precision arithmetic
  • "Standard" scientific calculator functions (trigonometric, logarithms, exponentiation, square root and power)
  • Error function (erf) and its inverse (erfinv), Gamma and log(Gamma) functions, combinations and permutations, p-values for Poisson, Gaussian, and chi-squared distributions
  • Fixed, scientific (SCI) and engineering (ENG) display modes (including SI prefixes in ENG mode), with adjustable precision from 3 to 10 digits
  • Calculations with uncertainties using error propagation (UNCERT mode) - a feature rarely found in software calculators and almost unheard of in hardware calculators
  • Formulas from relativistic kinematics (centre-of-mass two-body decay momentum, conversion between angle and pseudorapidity, beta and gamma factors)
  • Statistical functions: mean (or weighted mean in UNCERT mode), RMS, chi-squared of a series of values (only in UNCERT mode).
  • 100 memory registers
  • Power consumption: 0.6mA running at 16MHz, 16 uA in standby mode with the LCD on, and 5 uA with the LCD off.
  • Optional HP48 keyboard files, with the aim to run DB48x (this is still very much WIP)

Hardware overview

The calculator is built around a low-power 32-bit ARM microcontroller, the STM32U385. The display is a Sharp memory LCD module, the LS027B7DH01 (400x240 pixel monochrome). The keyboard uses light-touch tactile switches, specifically the Panasonic EVPBT1C4A000 (50g actuation force). All electronics are powered by a 3V lithium battery (CR2032), which should be sufficient for several years of operation.

The enclosure is designed as a stack of multiple PCBs. The front and back panels are aluminium PCBs with a white solder mask and black silkscreen. The keys are also made of PCB, with labels printed as silkscreen. All components are kept together with six M2 standoffs and twelve flat-head screws. The enclosure dimensions are 139 x 73 x 8 mm.

Repository contents

  • Code: STM32 firmware developed using STM32Cube IDE
  • Hardware: Schematic and PCB design files for KiCad, PCB production files
  • Doc: Documentation and images
  • Emulator: Online emulator files to be deployed to github-pages or other web hosting

Documentation

Emulator

Online emulator, based on the original calculator firmware extended with Emscripten and Raylib

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.