An RPN Graphing Calculator

Similar projects worth following

What if the TI-83:

  • Was RPN
  • Kept up with advancements in semiconductors and displays

While not looking to make the whole thing a touchscreen, we can expect a color display with a modern microcontroller. The design should be modular enough to plop in entirely different microcontroller dev boards, and make your own firmware.


Button matrix PCB

Portable Network Graphics (PNG) - 65.92 kB - 12/28/2021 at 15:24


  • ESP32 Modules

    Timm Murray01/13/2022 at 01:51 0 comments

    Received the first version of the PCB, did some tests with the ESP32.

    I'm finding that the ESP32-WROOM modules simply don't have enough pins to do this. The button matrix is 10x5, and then there's a power button (separated because it can be used to wake the ESP32 from sleep), LCD interface, touch interface, and SD card interface. It'd be nice to have a few extra pins that can be broken out for the user to do with as they please.


    • Use a GPIO expander chip. Adds cost and complexity. Many are out of stock.
    • Use a separate microcontroller, like an ATtiny48, as a GPIO expander. Adds cost and complexity, but actually cheaper than many GPIO expanders. Is actually in stock, though not in the package sizes I would prefer
    • Jump up to the WROVER module. I was planning to use a module rather than a whole ESP32 dev board in the long run, since it's cheaper, but I was hoping to do the initial prototyping without.

    I'll probably make the jump to the WROVER now and put up with extra soldering. I'll have to source a USB-UART bridge, which is a whole other set of parts to deal with. Hopefully, I'm not taking on too much at once.

  • Power

    Timm Murray01/05/2022 at 02:09 0 comments

    Power converters are boring, but important. The lipo battery needs to be safely charged, and then its output regulated to 3.3V. The regulator needs to have acceptable ripple, but also good transient response (sudden jumps in output).

    To make the prototype easy, I'm starting with an Adafruit PowerBoost 1000 Charger.  It won't be economical and size efficient to stick with that in the final version, though, so I'm designing a power board based on the same chips (TPS61091 regulator, MCP73871 charge controller):

    This is split out of the main design so it can be tested as a prototype of its own.

    On another subject, received the PCBs for the prototype button matrix. It came faster than the batteries and LCD screen, oddly enough.

  • Base PCB Ready

    Timm Murray12/28/2021 at 15:08 0 comments

    Created the button matrix PCB, with connections for the ESP32, an Adafruit PowerBoost 500, and an LCD/SD card combo board. Ordered all the parts for a prototype.

    It should come out roughly the same size as a TI-83. The prototype will be thicker, since it'll be mounted on pin headers. I plan to keep the ESP32 as a separate dev board, but soldered in place. That might be with male pins, or I might try soldering directly to the surface of the button matrix PCB. Surface mounting will be harder to solder by hand, but gives more options in placement since the througholes have to place around the buttons.

    Speaking of which, the current placement means the ESP32's USB port is off center. There's just no way to do it without changing the button locations while also being able to mount the boards together.

    Adafruit doesn't have the PowerBoost 500 in stock at the moment, so I ordered the 1000. The pinout looks like it isn't quite the same, so I'll have to use jumpers for the prototypes.

    The other problem is that the PowerBoost board has its own USB for charging. It doesn't pass through the USB data pins directly. It could be done with a y-splitter cable, but as it is, there would be two ports. One for programming (on the ESP32 dev board) and one for charging (PowerBoost). That's not ideal, but fine for a prototype.

    The second version would likely integrate the lipo pass through charging directly on the main PCB, rather than having a daughter board. Could integrate an ESP32 module, as well, but I think it would over complicate the design.

    Prototype parts for three boards come out to around $60 each. Add a dollar or two for the filament costs on a 3d printed shell. Using EEVblog's rule of thumb of retailing for 2.5 * costs, that would come out to $150. There should be some significant savings to be found yet, of course.

    Edit: the location of the directional buttons is also reversed so that it's more in line with a Game Boy (D-pad on the left). Maybe people will want to use it as retro-style handheld, I dunno.

View all 3 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates