NumOS / NeoCalculator — Initial Devlog
What I’m building
I’m building NumOS, a free/open-source embedded calculator OS for NeoCalculator, my open-source scientific graphing calculator.
The goal is to make a real handheld calculator that students and makers can study, modify, and improve, instead of using a fully closed device. NumOS targets ESP32-S3 hardware with a 320×240 color display, physical keyboard input, calculator apps, graphing, math rendering, and eventually a custom PCB.
This Stardance project is focused on the software/firmware: the OS, UI, apps, input handling, math features, and hardware integration code.
Why I started
I started NeoCalculator / NumOS because graphing calculators are expensive, closed, and hard to modify. I wanted to build something affordable, hackable, educational, and physically real.
The project started around mid-February 2026, and I’ve been building it in my free time while still in school.
What I’ve built so far
Embedded firmware foundation
I set up the firmware for an ESP32-S3 N16R8 target using C++17, PlatformIO, Arduino, LVGL 9.x, TFT display support, PSRAM configuration, and serial debugging.
Early work included getting the project to compile and run reliably on embedded hardware, fixing display/LVGL issues, configuring flash/PSRAM correctly, and organizing the code into modules instead of one giant file.
Main launcher UI
I built the first main launcher for NumOS, shown in the screenshot above.
It is inspired by modern calculator UIs, but it is not meant to be a clone. It has an app grid, app cards/icons, keyboard focus, navigation logic, a status bar, visual styling, and basic app launching.
This is the “home screen” of the calculator OS.
App architecture
I worked on making NumOS modular. Apps like Calculation, Grapher, Equations, Settings, and future apps can each have their own code and lifecycle.
The architecture includes a central SystemApp dispatcher, individual app modules, input routing, display/UI handling, app switching, and serial control for development.
Math and calculator features
I started building the math side of NumOS: expression parsing, calculator input, natural display / math rendering experiments, graphing work, equation solving experiments, and early CAS / symbolic math experiments.
Some parts are stable and others are still experimental, but the long-term goal is serious calculator functionality on embedded hardware.
Hardware integration
Because NumOS is meant for a real calculator, I also worked on display integration, LVGL flushing, keyboard matrix planning, serial keyboard control, and hardware abstraction.
Serial input is useful because I can control the calculator from a PC before the final physical keyboard exists.
Recent updates
Since the project existed before June 1, my recent work has focused on:
- improving the NumOS firmware architecture
- refining the LVGL launcher UI
- preparing the software for the upcoming custom PCB
- documenting hardware/software requirements
- reviewing display, keyboard, USB-C, battery, and power requirements
- making the project clearer as an open-source calculator OS
Current status
NumOS is still a work in progress, but it already has an embedded firmware structure, a main launcher UI, LVGL interface work, calculator app experiments, math/parser/CAS experiments, hardware integration planning, and a path toward custom PCB hardware.
Next steps
Next I want to improve the launcher, stabilize the calculation app, improve graphing, clean up documentation, prepare a better demo, and test NumOS on the first real NeoCalculator PCB prototypes.
This is still early, but it is already much more than an idea: I’m trying to turn NumOS into a real, hackable calculator operating system.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.