Do people enjoy wasting 300$ on a bulky convoluted system, that only works for special “Teacher Edition” calculators, and is several years out of date; E.G. the TI-Presenter? [Benryves] certainly does not. So instead of purchasing a TI-Presenter, he made his own TV out system for the TI brand of calculators by using an ATmega168, a few passive components, and some clever code. The only draw backs being: you save 280$, it fits in your pocket, and it works for almost any TI calculator. Bias aside, the system does actually have a few caveats compared to the commercial edition, but the pros far outweigh the cons.
19 thoughts on “TV Out For TI Calculators Using The Link Port”
Leave a Reply
Please be kind and respectful to help make the comments section excellent. (Comment Policy)
Just curious, how is it showing on a VGA monitor? Does that monitor have NTSC in? I realy need to read the whole thing probly
Neat hack. I’d like to think that a footpedal or some other remote pushbutton could make the screenshot capturing a bit more tolerable.
Cool, I have a version of brickout for my TI, that makes it a game system!
OOps, I didn’t read this well, only a capture. I shouldn’t jump to conclusions like that, I got excited.
why doesnt he just use the free PC calculator from Graphcalc.com? its in full color and has much better resolution, for free!
Couldn’t he have built it to capture and display the screenshot automatically? If it could do like 2x/second it wouldn’t be that much worse than displaying it in realtime like with the TI presenter.
Thank you for the feature! The regular TI-84+ series calculators can be used with the TI-Presenter by connecting an adaptor to the USB port, but as I only have a TI-83+ I thought I’d have a go at constructing a low-tech version on the cheap.
@Michael: I don’t own a dedicated TV, so either use a VGA box or a video capture card.
Hm.. So he takes a screenshot on the calculator then sends that tv… The same thing that the TI link and free software from TI allows you to do from the computer anyways???
Granted it’s still sorta cool as it is a hardware reduction and doesn’t require all the extra stuff that comes with a full blown computer, but seriously when I bought my TI-83+ it came with the requisite cable, and where to download the free software to do all this…
@Winnar: When the calculator is transmitting the screenshot over the link port it isn’t responding to keypresses, so you’d limit yourself to being able to press two keys per second unfortunately. TI’s official offerings tap into the LCD driver hardware, bypassing the need for OS involvement.
For those saying that this could be done more conveniently with a PC, then yes, it certainly could. This was not intended to be a serious project; I saw BrandonW’s video demonstrating TI’s device, and I thought it would be an interesting weekend project to try to replicate something similar allowing for hardware limitations. It also gave me a chance to experiment with NTSC, as I’d only ever dealt with PAL before.
so the system is restricted to calculators with screen resolutions 96×64 and below… glancing through the code, in video.c — there is an initialized variable (video_buffer[768]) which holds screen pixel data ( [96*64]/8 = 768). The RAM on an ATmega168 is 1kB — ti-89’s have a screen resolution of 164×100, which would take a video_buffer[2000] — is this all that’s restricting this system from being used on calculators with larger resolutions, like the TI-89? an ATmega328 has 2kB of RAM, which i don’t think would be sufficient, but a simple port to an ATmega644 which has 4kB of ram, or use an external 23k256 to store that buffer… looks like it’d be exceptionally simple with 8-bit values.
so lets get to it
Note: Please don’t link to XKCD. If I have free time, and I click to that page, I will waste hours reading comics.
@iklln6: Don’t forget that you also need to output video at that resolution. Generating PAL/NTSC signals with an AVR has it’s limitations.
The HackVision post from about a week ago also contains the PAL/NTSC driver. But you can generate VGA signals from an AVR as Jody Taffey pointed out there: http://avga.prometheus4.com/index.php?p=6-0
@iklln6: It’d also be a good idea to use the chip’s SPI hardware to clock out the pixel data rather than the current hard-coded delay loop nonsense (which works but is inelegant, to say the least). ;-)
Unfortunately, the ATmega168 is the beefiest microcontroller available from my usual supplier. I’ve used a dsPIC33FJ128GP802 in another project to drive a display at 320×240 (it has 16KB RAM) but that’s from a supplier that has minimum order requirements, higher prices and more expensive shipping.
Nice Work :)
does the framebuffer in the AVR ram really need 8 bytes per pixel?, i think you could cheat and get 8 pixels per byte and save alot of ram, though it complicates drawing some more
@mike: It’s 1 bit per pixel (8 pixels per byte), so for a 96×64 pixel screen image that’s (96*64)/8=768 bytes, which fits in the 1KB RAM of an ATmega168 nicely.
Nice, BUT why not just use Virtual TI? Then the students will be able to see which buttons you push.
@Ben Ryves: that guy, he’s quite clever, right? But how about the size of program?
Haha one of my HS math teachers actually put the TI on the overhead projector… this is a really cool hack