Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
O

OpenRPNCalc

> 编程语言
Open source

Open-source and open-hardware scientific RPN calculator

395 stars0 likes0 views
WebsiteGitHub

About

Open-source and open-hardware scientific RPN calculator

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

  • Schematics and parts of the PCBs and the list of electronic components and other parts with links to datasheets
  • PCB design: images of the PCB layers and their functions
  • Case and keyboard assembly: photos of the insides of the calculator, assembly instructions
  • Firmware: code structure and flashing instructions

Emulator

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

Issues· 14 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言