devlog — open source $25 graphing calculator
I did the through hole and SMD solder kits and both worked first try! I'm also adding a gpio breakoutt o conect sesnors to and log data. Today blog is short I am tierd.
Another big software day, with some hardware redesign. But more importantly I setup my new soldering station and everything is working and ready to go. Unfortuetley the practice kit I orderd got delayed to come tommorow so that kinda sucks but oh well. Should only cost ~$50 or so to make the next version which will be awesome. I orderd the new screen today as well.
I have worked a ton today on on the software, adding a full cas, and flushing out the apps plus planning on new features to add! It's going pretty well but the codebase and memory issues are piling up fast so that's not great. I need to finish getting the new CAS working tommorow and then I'll move on to flushing out all the other apps.
Side note: I also worked on a cool little github about me page so that was a fun side quest, and I even 75% packed for college!
Other side note: I will be elarning to solder, I got an iron and practice boards and everything.
I have installed freecad. I finished the next pcb... it looks insanley good I am very excited. But I also want to make a case for it and make keep caps, all 3d printed. So i Installed freecad and am working on that currently. I'm making other upgrades such as faster charging, smalled lcd footprint, better buttons, overall better layed out, improved button matrix, and a few other small things.
I finished the case model and am trying to find button covers. I also added a new speaker to the PCB for game noises. I'm upgrading a few things which I've added in the readme.
As I continue to work on the software and perfect everything, I am also redesigining a hoppfully final verison of the pb to put in a case and actually use. I'm uping the charging form 500mah to 1500mah, considering adding the esp32-s31, refining the screen and butotn layout and overall size.
The PCB finally arrived! After an hour or two of changing around some software, praying for it to work, it came to life. The screen turned on, the buttons all worked. I am still working through some software bugs but even the abttery charges and holds power for the board, everything is fully functional on the hardware side. After I finish up perfecting the software, I will move to designing the next and hoppfully final verison of the PCB and then make a 3d printed case for it. If you're reading this then I thank you for coming along this journey with me.
I got sent awesome pictures of the PCB after it was assembled, it looks great and I think the battery connector is backwards but oh well. It's about to ship and I am extreamly excited.
I also used this tool graphifiy so codex can have some sort of brain type thing? Not sure how it works but it looks pretty cool!
I've done a lot mroe work on my simulation software, adding components and features, fixing things, and it's turning out greay. I am super excited to share it to github as another repo that contributed to this project!
I am also extreamly excited for the pcb, it should come in aorund 2 weeks I think?
I've been working on a esp32 esp-idf online simulator because I could't find any that were actually good. I want to use it to simulate this whole project but I'm not sure if it'll 100% work so we'll have to see. I also worked a bit on a markdown text editor which I am writing this in!
I worked a bit on refactoring software for a better power save mode, saving high scores and settings, adding in the game menu, splitting tasks beetween cores, and also updating readmes for all of these! More firmware work will be done in the meantime while waiting for the PCB.
It has been orderd! The final cost came out to ~$110 from PCBWay after their generous donation. It should take around 2-3 weeks for it to come but hoppfully sooner rather than later. Still not sure if it'll work but, I'll order a multimeter and battery in the meantime I think. I'm also still working on getting mairo up and running so I am very excited for that.
They said yes! I had to add my shipping details but as of right now they are going to contribute $80! I am very excited. I am also preparing myself for the fact that it may not work... but we'll see! I've also started a homelab project in the meantime.
I've worked over the past few days to add some new games! For when studnets get bored of course. I added Tetris, Snake, Breakout, and even Super Mario which dosn't fully work yet but we're getting there. These games will open into a menu and it'll be awesome.
My PCB files also got accepeted and reviewd on PCBWay and they even agreed to sponcer some of it! They are going to get back to me about how much they will pay but i hope it's a decent amount. I also hope the PCB will work... but we'll see!
I also plan to split math and drawing operations beetween two cores for the sake of speed and why not use two if they are there. However in power save mdoe only one core will be used and the other turned off.
I ended up making this PCB design in EasyEDA because well, it was easier
but I've been looking into Kikad more and I definitly will be using it
in the future. It just seems more proffesional and more widley used so
whatever my next project is, it'll be that. It may be tricky to switch
but better late than never.
I've also been talking to PCBWay about a possible sponsoreship more and
making a whole page for the project and sending them a ton of info so,
we'll see how that goes.
I also still have the end goal of making it cost $25 per board total.
I'm thinking a solderd on screen will be cheaper, but other than that I
think just ordering in bulk will help make it cheaper and ordering stuff
from China probobly.
I've been checking prices in a few spots and it's definitly too expensive to order myself. Around 150 for 5 boards and 1 assembled board. So I emailed PCBWAY's sponership program and signed up for this thing called stardance, we'll see how much money they'll give me but, I really hope I can order it because it would be so cool to see this actually work. Will update on how that goes but I'm not exteramly hopeful.
It's been a while but we're back. I've been working just nothing too crazy to talk about. I havn't touched the firmware in ages and actually pivoted to another project where I made a 64x64 RGB LED pannel that I could draw to from anywhere in the world, which deffintily took some time. But other than that I've been going through design after design for the PCB (and learning many things...). I wen't into this thinking it would be easy and take no time at all but that was not the case. So after 3 months of screwing around and countless headaches, I am proud to say that the first version of the pcb is ready to order! Will it work? I have no idea. But it passes DRC so... and no for some reason the PCB reddit won't help me so I'm just going to free ball it. I think it'll be ~$60 which is more than the $25 goal but I think it's ok because it's a prototype. Anyway, will update on how that goes. I deffinitly need to udpate the PCB readme still oops.
I'm back! I've been doing a lot of work on the pcb schematic and just testing random things in the software. I'm getting closer to being able to actually order the pcb. I've posted on Reddit and Discord to get reviewd and sent it to a friend as well (so I don't waste a bunch of money lmao).
Wow what a day... it started off with me accidently deleting all of the configurations and esp-idf while trying to make a setup.sh file. So for the last 5 hours I fought my way to getting everything back and after so much terminal torment here we are. I now have many backups and everything is back up and rolling.
Still waiting to hear back about that pcb, may post on reddit or something.
Actually finished and rounted a pcb and sent it of to a friend of a friend who works in pcb design for his job. The software should be ready to go and hoppfully when I drop $100 or more on this they actually flash and boot up... but we'll see what happens. Many many hours worked on this project, beetween the 12k+ lines of code and many hours elarning how to design a pcb, but deffinitly worth it if this works out. I'm also ordering a battery and a multimeter for the pcbs. Next steps would be to refine the software and pcb design and also have the screen solderd on and make a case for it but that's way in the future. This was an awesome learning experiance so far and I hope it continues to be.
Finished designing a really good looking V3 for the pcb and may order it aafter checking losts of things. The software is basiccly done I think so ready to flash when the board actually comes. Spent many hours on the pcb and it looks really great. I decided ot go with software insetad of hardware off because it seems much simpler.
Also ordering a bettery and multimeter for future testing.
So I connected it to the scren and uh nothing happend... but that's just because VCC needed 3v3 not 5v so that fixed pretty quick. But then everything was a mess... the screen was backwards, pixels were missing and I dont have the tools to make a button matrix. But after many hours I fixed the screen, even made the touch work, and made a simulated button matrix using the Serial in.
So the best thing currently working is doom.... but it works great!
Update, things are going swimingly. Apps are working, ui looks great, making a ton of progress. I'll start desiging the final verison of the first pcb most likley which is very exciting. Python scripts still dont work but we'll get there lmao.
We ran out of GPT5.5 tokens :(
Set up free claude code using an Nvidia model yay
A ton of work done today, definitly a lot to go but very proud of the progress, on pace to order trhe pcb somtime next week hoppfully.
Im going back to school tommorow night and will be able to test the code I've writin but I'm very nervous it wont work. It all builds and flashes and works in concept but I'm sure some challenges will arise when I actually wire up the components.
I also did some work on tiny-python to add better error handling that tells you where the error is, line and charecter. I also amde a github repo just for tiny python because it seems impressive enough even tho I wrote it mostly with ai.
Started work on v3 pcb with a lot of changes, actual screen and battery, exposed gpio pins and a more accurate. button matrix. Also switching to easyeda instead of kikad. I also installed autodesk fusion for when I need to design the case. I'm tryig to finish this in the next 3 ish weeks before I go to summer camp for the rest of the summer.
Since I only have accsess to the board I've been brainstorming and preparing to connect it to the screen when I get back to school cuz I'm currenlty in bsoton with my family. I'm also getting ready to finalize a test pcb design to get made but I want to make sure the code all works first.
Adding a lot of actual features and making the buttons do things too but only in code until I can get back to school to actually test on the hardware.
After realizing how much boiler plate I had to write, I gooled and found out raylib, a C graphics library actually works in esp-idf so that was great news. I got that working and I want to wire up the button matrix to start testing the caclulator.
On another note I made the esp32 act like a storage device when plugged into a computer so you can now upload files (python files is the main reaosn) and I had GPT 5.5 write a mini python interpreter so we'll see if that works when I upload it.
Big day today... Ignore the title of the post i actually disabled Raylib because it was stopping the esp32 from booting so we raw dogging it for now. Also it shows up as a flashdrive type thiong when you plug it in now and you can upload files but mostl python scrips. The python interpreter which I've called tiny-python is nearly done with practicly everything able to be added so thats awesome.
Wow I did a lot today, basicly everything I can do without wiring up a button matrix and lcd is done ( I need to implement all the features but uhhhh). When I get back home I'll make a button matrix, wire the screen, and start to actually develope the application for the calculator. I also made a v2 design of the button layout.
I put doom on it but don't tell anyone, alpha + 2nd will run it.
I've now got 3 buttons wired up and the LCD and code that lets me draw a colored square based off the button i press so that's pretty cool. Embeded programing with esp-idf is way harder than I imagined but we're getting though it. Going to keep playing around with it.
All the parts came and work great so I started actually learning how to code this thing, so far only turning on and off gpio pins but hey i got the LCD screen to light up so that's a win in my books. Going to continue to play aorund with it for the next few days. Also got some buttons wierd up which is cool.
Since the parts have no been deliverd yet, I started working on a first pcb design based off the figma design I made yesterday in a new folder called hardware. This is my first time making a PCB so I can only imagine some things are off. It was preety fun though. I'm excited to get to working on the physical hardwarre but it still hasn't come so trying to do what I can in the meantime.
Parts still waiting to arrive... my dorm package prossessing sucks.
Ok so the PCB I made sucks and I could't even finish wireing it but it was a good first go.
Made a second version of the PCB and honestly it's not much better but im bored so.
ESP-IDF is now fully setup to build and flash blinky utilizing the
onboard led on the esp32 model I purchased. To build
idf.py build and to flash I belive it's
idf.py flash, but only time will tell. I also finsihed and
uploaded the first iteration of the button layout to docs/designs which
was made using Figma.
Parts will arrive tommrow so testing and the code base will start to form.
A TI-84 costs $130 and runs a Z80 from 1976 (even the neweer mdoels are slower than they should be for this price). OpenCalc is the same thing for $25 — ESP32-S3, color LCD, USB-C, computer emulation, and MicroPython scripting built in. It's quite frankly ridiculous to be expected to spend $130 on a calculator with a processor that's older than most people using it.
Everything open source. This log tracks the build from scratch.
Today I made a planning document, started this blog, orderd a board, screen, some buttons and some wires, and setup the enviorment I'll be using, ESP-IDF. Everything ready to start just waiting on physical componets now.
MIT · github