8000 GitHub - apoluekt/OpenRPNCalc: Open-source and open-hardware scientific RPN calculator
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

apoluekt/OpenRPNCalc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Open-source and open-hardware scientific RPN calculator

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0