Skip to main content

Roadmap

Milestone: Core foundation (v0.1 -- v0.4) -- complete

  • Math engine: Q31.32 fixed-point with CORDIC, Taylor, Newton-Raphson
  • Lexer: expression string to typed token stream (max 32 tokens)
  • Parser: recursive-descent PEMDAS with implicit multiplication, flat-arena AST (max 64 nodes)
  • Evaluator: full operator/function dispatch, sum/int loop aggregates
  • Complex numbers: arithmetic + all transcendental functions
  • Variable storage: Ans + 26 registers A-Z, copy-on-read for loop shadowing
  • Statistical distributions: log-gamma, log-factorial, binomial, Poisson, chi-squared CDF
  • Boot layer: vector table, .bss/.data init, Reset handler
  • HAL: UART, I2C, GPIO, clock, OLED driver (SSD0303)
  • Runtime: event loop, state machine, ANSI escape sequence parser
  • UI: 5x7 bitmap font, formula renderer, Sigma/Integral glyphs
  • nthroot with proper domain checking
  • natural_log range reduction fix for sub-ppm accuracy
  • Trailing-zero stripping in formatted output
  • Case-sensitive identifiers: e is Euler's constant, E is register E
  • sto(value, var) -- store value into register A-Z
  • Degrees mode (Ctrl+D toggle) with angle conversion rules
  • Scrollable results on 96x16 OLED
  • Cursor-based input editing
  • Host-side unit test suite (255 tests)
  • CI pipeline: host-side tests on every PR
  • Dedicated documentation site (Docusaurus, GitHub Pages)
  • Memory optimisation: Flash 87% to 77%, stack headroom 40 B
  • zero-unsafe rule enforced in math/runtime/ui

Short-term

Testing infrastructure

  • Test-vector generator script (Python Decimal for exact reference values)
  • CI: firmware build check on every PR
  • Property-based tests for arithmetic roundtrips
  • Coverage reporting

Math engine hardening

  • Fractional display mode (1/3 instead of 0.333333)
  • Overflow detection in more paths (especially complex mul/div)
  • Configurable output precision (3-9 decimal places)
  • floor/ceil/round functions for user expressions

Developer experience

  • .vscode/ configuration in repository
  • cargo run wrapper that starts QEMU automatically
  • GDB init script for quick debugging setup
  • Release build CI artifact

Medium-term

Port to modern hardware

The math engine and runtime are already hardware-independent. Candidate targets:

TargetCoreFlashRAMPrice
RP2040 (Pi Pico)Cortex-M0+2 MB264 KB$4
STM32F411Cortex-M4F512 KB128 KB$8
STM32G431Cortex-M4F128 KB32 KB$5
ESP32-C3RISC-V4 MB400 KB$3
ATSAMD51Cortex-M4F512 KB192 KB$10

For each port: rewrite hal/, update boot.rs + link.x. Zero numcore/ changes.

Reference hardware design

  • Open-source KiCad PCB (mechanical keyswitches, OLED, USB-C)
  • 3D-printable enclosure
  • BOM targeting $20-30
  • Cherry MX / Kailh Choc switch support
  • Battery charging circuit (LiPo)

Graphing mode

  • Function plotting on OLED
  • Pan/zoom with register-based viewport
  • Multiple simultaneous plots (up to 3)
  • Table of values
  • Dynamic y-axis scaling

Matrix operations

  • Matrix type (fixed-size buffer, max 4x4)
  • Addition, multiplication, transpose
  • Determinant, inverse
  • Solve linear systems (2x2, 3x3)

Standalone math crate

  • Extract math/ as numcore-math on crates.io
  • Platform-agnostic (std and no_std)
  • Python/JS bindings for cross-validation

Long-term

Advanced calculator modes

  • Scientific mode: unit conversions, physical constants
  • Programming mode: HEX/DEC/OCT/BIN, bitwise ops
  • Statistics mode: data entry, linear regression
  • CAS basics: symbolic differentiation/integration, simplification

Hardware milestones

  • CE/FCC-certified reference design
  • USB virtual serial port with firmware updates
  • SPI flash for persistent storage across reboots
  • Low-power mode for battery operation

Ecosystem

  • Curriculum alignment (IB, A-level, AP, SAT)
  • Open source textbook companion
  • Web-based WASM simulator
  • Community port catalogue
  • Internationalisation (i18n)

Community

  • Contribution guide for new function requests
  • Community port catalogue
  • Web-based WASM simulator
  • Internationalisation (i18n)
  • SPI flash image builder

Non-goals

  • Touchscreen UI -- hurts battery life, increases BOM cost, reduces tactility
  • Full CAS like Mathematica -- calculator-grade scope only; no symbolic heavy lifting
  • Proprietary lock-in -- open-source hardware (CERN-OHL-S license)
  • Mobile app -- this is a dedicated hardware project
  • Wireless exam cheating vectors -- no Wi-Fi/BT in exam modes
  • Multi-line expression input -- single-line with cursor editing is sufficient for calculator scope
  • Graphical function plotting on host -- target is embedded OLED only