TV Demonstrator

This easy-to-build electronic device allows you to take a screenshot of your calculator display and show it on an NTSC or PAL television set.

TV Demonstrator showing the STAT PLOT settings on a monitor.

Unlike the TI-Presenter™ this does not require a special calculator or a USB adaptor; it uses the 2.5mm link port. The chief disadvantage of this method is that it does not automatically mirror what is shown on the calculator's display on the television; you need to press a button to manually capture the calculator's display.

The TV Demonstrator will only work in situations where the calculator allows you to capture a screenshot via the link port. It will therefore work in most places within the calculator's operating system, but will not work when the calculator is busy or otherwise not responding to screenshot requests. If in doubt, try using the screenshot function within your calculator linking software of choice to determine when it will work and when it won't.

Inside the TV Demonstrator.

Click and drag on the above image to see a 360° view of the insides of the TV Demonstrator.

Supported calculators

The TV Demonstrator can be used with the TI-82, TI-83 and TI-83+. It should work with the TI-84+ and may work with the TI-73, but I have not been able to test these calculators.

To configure the device you will need to use a TI-83+ or TI-84+.

Due to the limited RAM on the microcontroller the TV Demonstrator will not support calculators with a resolution higher than 96×64 pixels.

Parts list

You will also need a regulated +5V power supply. An LM7805 would work well in conjuction with an external power-supply unit or a 9V battery, or you could use a computer's USB port.


Please consult the ATmega168 datasheet for more information. The following schematic does not include the 5V power supply.

TV Demonstrator schematic

The resistor values given for the DAC (450Ω/900Ω) are ideal, but the values in parentheses (470Ω/1K) work well in practice and are much easier to get hold of.


The firmware, documentation and schematic for the project can be downloaded in a zip archive.

Precompiled firmware is available in the file TVDemonstrator.hex. You will need to send this to the ATmega168. You will also need to configure the ATmega168's fuses to use an external crystal oscillator and to not divide the clock by 8.

Suitable avrdude command-line arguments are as follows:

avrdude -p atmega168 -U flash:w:TVDemonstrator.hex:i
avrdude -p atmega168 -U lfuse:w:0xff:m -U hfuse:w:0xdf:m -U efuse:w:0x01:m

Alternatively, the Makefile can be used if you have AVR development tools installed:

make flash
make fuses


Connect the TV Demonstrator to the television and its power supply, then switch it on. A picture should be displayed on the television.

Now connect the calculator to the TV Demonstrator and press the trigger button. The device should take a screenshot of the calculator display and show it on the TV screen. The activity LED will be illuminated during the data transfer.


The device can be configured using a TI-83+ or TI-84+. Configuration is performed by sending real variables to the calculator either via the LINK menu or the Send() command.

MSets the video mode (60 for NTSC, 50 for PAL).
XSets the display X offset (larger values move the display right).
YSets the display Y offset (larger values move the display down).

As an example, the following will set the device into the PAL mode when typed into the calculator's home screen:


You can retrieve the current configuration using Get() or GetCalc(). For example, the following will nudge the display right every time you press ENTER once typed into the home screen:


The configuration is automatically saved. The NTSC and PAL modes have their own set of X and Y variables.

To reset the device to the original configuration, disconnect power to the device, hold the trigger button and then reconnect power. If you hold the trigger button for a couple of seconds the configuration should be reset.

The TV Demonstrator in an enclosure.