The calculator is based on a low-power 32-bit ARM microcontroller STM32L476 running at 16 MHz, which is more than sufficient for the purpose. The display is the famous Sharp memory LCD module LS027B7DH01 (400x240 pixel monochrome). The keyboard uses light-touch tactile switches Panasonic EVQP0N02B (50g actuation force). All electronics runs off the 3V lithium battery (CR2032) which should be sufficient to provide power for several years of operation.
In the present design, the front panel and keys are made of PCB with labels printed as silkscreen. The rest of the enclosure is 3D printed. All the parts are kept together with six M2 standoffs and 12 flat-head screws. The size of the enclosure is 139x72x9 mm.
Currently, the calculator features:
- Reverse Polish notation with 4-element stack.
- Double-precision arithmetics.
- "Standard" scientific calculator functions (trigonometric, logarithms, exponentiation, square root and power).
- Error function (erf) and its inverse (erfinv), gamma function and its log, number of combinations and permutations, and several special functions related to probability and high-energy physics
- 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 (UNCERT mode). Something that I've never seen in any of the hardware calculators, and very rarely is present in the software ones.
- Low power consumption (~15 uA in standby mode with LCD display on, 1.5 uA with LCD off).
I'm so happy this is coming back to life! Some thoughts/comments/questions:
1. (Ab)using PCB silkscreens to generate key labels is brilliant! Also gives users the option to use other PCB colors for customize looks (I'm rooting for black). How do you plan to attach the (PCB) labels to the buttons?
2. You might want to consider swapping the 220 uF tantalum cap for 2-3 regular ceramic capacitors (https://jlcpcb.com/partdetail/15681-CL31A107MQHNNNE/C15008). They are slightly cheaper, and JLCPCB has those as basic parts, so there is no feeding fee. This can shave ~$5 from an economic 5-board PCBA order. Yes, you use a bit more PCB space, but you avoid rare earth metals...
3. This MCU and display are well supported in Rust, my favorite language (https://github.com/stm32-rs/stm32l4xx-hal, https://crates.io/crates/sharp-memory-display). I'm looking forward to try to try it on your cool calculator!
4. You might want to consider a protective layer of laser-cut acrylic. I use it on my designs (for instance https://www.amazon.com/dp/B0CYHGFRJS) and protects well the display while giving it a polished look. It is also cheap and easy to source.
Thank you for sharing with the world!