# Expandable Programmable Graphing Calculator v1.0 [![C](https://img.shields.io/badge/C-00599C?logo=c&logoColor=white)](#) ![](https://img.shields.io/badge/platform-ESP32-blue) ![](https://img.shields.io/badge/status-active-success) ## Introduction & Motivation An open-source, expandable graphing calculator, built from the ground up. It is based on the ESP32 microcontroller. The source code is free software, it and the schematics have been released under the GPLv3 license. My motivation for creating this calculator is for the goal of creating accessible, reliable education tools. Building a complete calculator -- hardware, firmware, UI, and interpreter, allowed me to apply everything I learned over the years into a single project. I focused on clarity, repairability, and extensibility so that the device can evolve based on the user's desire. ## 🚀 It aims to offer: - A repairable alternative to commercial calculators that is less expensive and is truly yours in every way; your ability only limits customizability. - An accessible platform to learn electronics, programming and mathematics - A custom, lightning fast modular mathematical expression interpreter with many built-in functions - A modern and responsive UI built using LVGL - 2D graphing - An experience that is designed to be fully expandable and customizable ## 🛠 Hardware The calculator is based on the ESP32 microcontroller, it features a TFT ILI9341 Display and 54 buttons dedicated to various functions. 4AAA batteries power all electronics. ## 📦 Repository Overview [main/](main) => Source code that includes the interpreter and the UI\ [components/](components) => Contains LVGL and drivers\ [fonts/](fonts) => Contains fonts used in the UI\ [hardware/](hardware) => Contains schematics and designs\ [docs/](docs) => Documentation and pictures ## 📜 Instructions Assembly and firmware installation instructions can be found [here](docs/hardware.md). ## 🎥 Emulator There exists also an emulator to allow users to have a look at the calculator before building it. Instructions to install the PC Emulator can be found in the pc-simulator branch, otherwise a web simulator is available [here](https://ramez-hammad.github.io) ## 📸 Gallery Some screenshots from the calculator.
Figure 1: The menu in the simulator
Figure 2: Default screen in the simulator
Figure 3: Variable definition menu
Figure 4: Graph of sin(x)
Figure 5: Graphs of sin(x), cos(x), tan(x)
Figure 6: The function toolbox
Figure 7: Sample expression with evaluation
Figure 8: Demonstrating implicit multiplication
Figure 9: Angle measure menu
Figure 10: Ans variable showcase
Figure 11: Syntax error pop-up
Figure 12: Invalid input pop-up