Open-source and open-hardware scientific RPN calculator

Overview

OpenRPNCalc

Open-source and open-hardware scientific RPN calculator

Introduction

OpenRPNCalc is a scientific calculator based on STM32 microcontroller. Its source code, schematics and 3D-printed case design files are released under open license.

The hardware is inspired by the SwissMicros DM42 calculator (which itself mimics the famous HP-42), but designed from scratch. Firmware-wise, however, there is no intention to simulate programmable HP series. Currently, the calulator features:

  • Reverse Polish notation with 4-element stack.
  • Double-precision arithmetics.
  • "Standard" scientific calculator functions (trigonometric, logarighms, exponentiation, square root and power).
  • Error function (erf) and its inverse (erfinv), Gamma and log(Gamma) functions, number of combinations and permutations.
  • Fixed, scientific (SCI) and engineering (ENG) display modes (including SI prefixes in ENG mode), variable 3-10 digits precision.
  • Calculations with uncertainties using error-propagation formulas (UNCERT mode). Something that I've never seen in any of the hardware calculators, and very rarely is present in the software ones.
  • Formulas from relativistic kinematics (center-of-mass two-body decay momentum, conversion between angle and pseudorapidity, beta and gamma factors).
  • Low power consumption (40-50 uA in standby mode with LCD display on).

Hardware overview

The calculator is based on low-power 32-bit ARM microcontroller STM32L476 running at 8 MHz. The display is Sharp memory LCD module LS027B7DH01 (400x240 pixel monochrome). Keyboard uses light-touch tactile switches Panasonic EVQQ2B01W (50g actuation force). All electronics runs off the 3V lithium battery (CR2032) that should be sufficient to provide power for around one year of operation.

The case and keyboard is made of four 3D printed parts (top and bottom parts of the case, keypad and switch spacer). The two parts of the case are held together by simple snap fit joints, no screws are needed.

Contents of the repository

  • Code: STM32 firmware created with STM32Cube IDE
  • Hardware/Schematic: Schematic (calc.sch) and PCB layout (calc.kicad_pcb) for KiCAD, Gerber files for PCB production.
  • Hardware/Case: 3D models for the enclosure and keypad in OpenSCAD (OpenRPNCalc.scad ), STL files for 3D printing, python script and PDF file for printed keyboard sticker.
  • Doc: Documentation and images.

Documentation

You might also like...
Simple BMI Calculator application written in C++

BMI-Calculator Description Simple BMI Calculator application written in C++ Getting Started Authors Minyoung An @minyoung_an Version History 0.1 Initi

Calculator that suffers from floating point precision

calc A calculator that suffers from floating precision. This calculator suffers from floating point precision and isn't much more than a fun project.

Simple BMI Calculator
Simple BMI Calculator

BMI Calculator. Screenshots Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Plus42 : An Enhanced HP-42S Calculator Simulator

------------------------------------------------------------------------------- Plus42 is an advanced scientific programmable calculator app. It simul

This is an upgrade to the initial TerminalOS source, supporting real hardware other than just QEMU, using GRUB as a bootloader instead of the crappy one i wrote

Terminal OS Author: Maheswaran Date: 20th Nov 2021 PROGRESS Multiboot compilance achieved VGA driver from complete with print_hex, print_dec, printf f

A customizable hardware prefetching framework using online reinforcement learning as described in the MICRO 2021 paper by Bera and Kanellopoulos et al.
A customizable hardware prefetching framework using online reinforcement learning as described in the MICRO 2021 paper by Bera and Kanellopoulos et al.

A Customizable Hardware Prefetching Framework Using Online Reinforcement Learning Table of Contents What is Pythia? About the Framework Prerequisites

Universal fix for Google SafetyNet on Android devices with hardware attestation and unlocked bootloaders.

Universal SafetyNet Fix This is a universal fix for SafetyNet on devices with hardware-backed attestation and unlocked bootloaders (or custom verified

Open Source Cheat for Apex Legends, designed for ease of use. Made to understand reversing of Apex Legends and respawn's modified source engine as well as their Easy Anti Cheat Implementation.
Open Source Cheat for Apex Legends, designed for ease of use. Made to understand reversing of Apex Legends and respawn's modified source engine as well as their Easy Anti Cheat Implementation.

Apex-Legends-SDK Open Source Cheat for Apex Legends, designed for ease of use. Made to understand reversing of Apex Legends and respawn's modified sou

Sourcetrail - free and open-source interactive source explorer
Sourcetrail - free and open-source interactive source explorer

Sourcetrail Important Note: This project was archived by the original autors and maintainers of Sourcetrail by the end of 2021. If you want to know mo

Comments
  • Best calculator ever!

    Best calculator ever!

    Thanks for sharing this awesome project to the community. I always dreamed with a calculator with the power of an Casio FX 991 but with the size of 80's Casio pocket models (which includes a plastic wallet and fit in the shirt pocket).

    This project open the eyes for me: small size and simple electronics, ultra low power consumption (can be powered by solar cell) and very powerful.

    I have some questions for you: How do you produce the PCB including soldering components? How can I purchase all components?

    opened by BasilioPV 0
Owner
Anton Poluektov
Physicist
Anton Poluektov
A fully-functional open source and open hardware mechanical USB computer keyboard with only three keys!

threeboard threeboard is a fully-functional open source and open hardware mechanical USB computer keyboard with only three keys. It supports multiple

Conor Taylor 98 Dec 9, 2022
Scientific color conversion library written in C.

Description: ------------ CML stands for "Color Machine Library" and is designed to be a C library for color conversions. The master is not working

null 2 Nov 8, 2022
Open source hardware design and software for OpenPodcar.

OpenPodcar Open Source Hardware Design and Software for OpenPodcar. OpenPodcar_obstacle_avoidance_INB_Atrium.mov Table of Contents I. General Info II.

null 10 Jul 8, 2022
Calculator to determine unrealized gains or losses in % and $ form.

Personal-Project-G-L-Calculator in C++ Ryan Ramirez - [email protected] - UNLV Student Calculator to calculate unrealized gains or losses in % a

Ryan Ramirez 1 Oct 19, 2021
Improved Fractions Calculator using structures, user input parsing, and dynamic operator switching

Improved Fractions Calculator Program Structure: Main File: Runs fnctions from various header files. IO.h Header file containing IO functions, Interfa

Colin McCormack 1 Dec 5, 2021
This calculator attempts to bridge the gap between qualitative and quantitative data in societal interactions

This calculator attempts to bridge the gap between qualitative and quantitative data in societal interactions. This will help you determine how long you should take before replying to a message from a friend/acquaintance. Use these calculations at your own risk.

Ethan Bores 1 Jan 20, 2022
Calculator that I Love O' so very much

cilo Calculator that I Love O' so very much Why C? Honestly? I enjoy programming in C and the high performance is always a bonus. The lower level of C

Timeo Sam Pochin 22 Sep 15, 2022
Use fx-9860 series calculator as a keyboard for computer.

fxKeyboard Use fx-9860 series calculator as a keyboard for computer. WARNING: THIS TOOL MAY DAMAGE YOUR CALCULATOR OR COMPUTER. ALWAYS FOLLOW THE DOC

Myth 10 Mar 1, 2022
It is a basic calculator created by me in Pure C++

Basic-Calculator It is a basic calculator created by me in C++ If you find any bug then let me know How to use: 1. Enter first value it ask 2. Enter s

ryan 2 Dec 21, 2021
Create a calculator of any kind in any language, create a pr.

calculators Create a calculator of any kind in any language, create a pr. Create a calculator of any type using the programming language of your choic

Akshay Gautam 2 Oct 21, 2022