Back to projects
🧮

TI-84 GPT Hack

CESP32HardwareSource

TI-84 GPT HACK

A hardware mod that gives your TI-84 calculator internet access, ChatGPT integration, and more.

Demo

built pcb

About

This project turns your dusty graphing calculator into a WiFi-enabled device capable of querying ChatGPT and downloading programs over the air.

The original concept came from ChromaLock, who made a video about it back in 2024. His repo got nuked, so I rebuilt the whole thing from scratch based on what I could piece together. Most of the code, PCB design, and implementation is my own work at this point.

Author: Andy (ChinesePrince07)

Features

How It Works

The TI-84 has a 2.5mm link port originally designed for calculator-to-calculator communication using Texas Instruments' proprietary link protocol. This mod exploits that by wiring an ESP32 microcontroller to impersonate another calculator.

When your calculator sends a variable (like a command number), the ESP32 intercepts it using the CBL2 library, which reverse-engineers TI's protocol. The ESP32 then performs the actual work (WiFi requests, API calls, etc.) and sends the results back as calculator variables (strings, numbers, or even pictures).

The TI-BASIC launcher program on your calculator provides the UI - it sends commands to the ESP32, waits for responses, and displays the results. From the calculator's perspective, it's just talking to another calculator. It has no idea there's WiFi involved.

Building One

I'm intentionally leaving out a detailed hardware tutorial. If you know enough to build one, you probably don't need step-by-step instructions. If you don't, this isn't the project to learn on. This also keeps people from easily mass-producing these to cheat on exams.

The schematic and PCB files are in the repo if you want to figure it out yourself.

Software Setup

1. ESP32 Setup

  1. Open /esp32/esp32.ino in Arduino IDE
  2. Install required libraries: TICL, CBL2, TIVar, WiFi, HTTPClient, UrlEncode, Preferences
  3. Flash the code to your ESP32
  4. No configuration files needed!

2. WiFi Configuration (Captive Portal)

  1. Power on your calculator and run the ANDYGPT program
  2. Go to Settings → SETUP to broadcast the captive portal
  3. On your phone/computer, connect to the WiFi network named "calc"
  4. A captive portal will automatically open (or navigate to 192.168.4.1)
  5. Enter your WiFi name and password
  6. Click "Save & Connect"
  7. The ESP32 will remember the settings for next time

The server is pre-configured to use my hosted instance - no need to run your own!

3. Calculator Setup

Transfer the ANDYGPT program to your calculator using Settings → Update in the launcher, or by connecting via USB.

Running Your Own Server (Optional)

By default, the ESP32 connects to my hosted server. If you want to run your own:

  1. Set up the server:

    cd server
    npm install
  2. Create server/.env and add your OpenAI API key:

    OPENAI_API_KEY=sk-your-key-here
    
  3. Run the server:

    node index.mjs
  4. Expose it with ngrok or similar:

    ngrok http 8080
  5. Change the server URL in /esp32/esp32.ino - find the SERVER define and update it to your ngrok URL.

Reconfiguring WiFi

If you need to change WiFi settings:

Connecting to Eduroam (University WiFi)

  1. Go to Settings → MORE → SETUP to open the captive portal
  2. Connect to the "calc" WiFi from your phone/computer
  3. Open 192.168.4.1 if the portal doesn't auto-open
  4. Click the Eduroam tab
  5. Enter your university email and password
  6. Click "Connect to Eduroam"

Case-Sensitive Input

The TI-84 keyboard only types uppercase letters. To enter lowercase or mixed-case text (e.g. WiFi passwords):

Using GPT

  1. From the main menu, select GPT
  2. Type your question and press ENTER
  3. Wait for the response to appear
  4. Press any key to ask another question, or CLEAR to return to the menu

The GPT mode loops so you can have a continuous conversation without navigating back to the menu each time.

Note: Use plain text for math questions (e.g., "integrate x squared from 0 to 1") rather than calculator symbols like ∫(. The TI-84's special math tokens aren't fully decoded yet.

Using Math

  1. From the main menu, select MATH
  2. Choose DERIVATIVE, INTEGRAL, DOUBLE INT, SERIES, AVG VALUE, or SOLVER
  3. Enter your function:
  4. The result appears instantly
  5. Press any key for another calculation, CLEAR to go back

Examples:

Using Physics

  1. From the main menu, select PHYSICS
  2. Choose ELASTIC or INELASTIC
  3. Enter values as: M1,V1,M2,V2 (masses and velocities)
  4. The result shows the final velocities
  5. Press any key for another calculation, CLEAR to go back

OTA Updates

Both the ESP32 firmware and the calculator launcher program can be updated over-the-air:

  1. Go to Settings → UPDATE on your calculator
  2. The ESP32 checks the server for a new version
  3. If available, it flashes the new ESP32 firmware and reboots
  4. After reboot, the updated launcher program is automatically pushed to your calculator

To check your current version and the latest available, go to Settings → VERSION.

Troubleshooting

Planned Features

Known Issues

Credits

License

GPL v3 - See LICENSE for details.