Offline

A bit of history:
A while back I made a soundchip that interfaces with the popular graphics calculator: TI84+. I dubbed it TIMID. This is a combination of TI+MIDI+SID, because this chip can relay midi messages from the calculator and it emulates a SID. Because this is not a real soundchip but an emulated one running on a microcontroller I can use excess cycles of the microcontroller for other things like general purpose I/O and reading data from a DS touchscreen (not implemented yet). This project is not finished yet. I have been working on this project for about a year and a half now. 1.5 years ago back when there was not a lot of information on interfacing hardware with the calculator I was destined to make a device that reads and sends data respectively from and to the calculator and interacts with the world. This started out as a profile essay for my highschool grew out to a fullfledged sound interface with some neat features such as a built in lookup table for musical notes and midi output.


Here is a video for those who don't like reading.
http://www.youtube.com/watch?v=R_bKXSzpjes

Features:
-Two wire interface
-Backwards compatible with TI83+
-SID emulation
-MIDI out (relays midi messages from the calculator)
-Source code written for Atmega328 can be used with most arduino compatible boards.
(I will release the full source when there is a stable version that does not destroy calculators nor audio equipment. As of right now the PWM output might damage audio equipment because of DC offset of almost 5v)

The SID library I used is (c)2007 Christoph Haberer. I changed it for my own needs though.

Offline
Matthew Joseph Payne

blowing my fucking mind, VERY cool!

Offline

Thank you. I hope other people will build this thing as well, so I can start making some games that use this soundchip for music and soundeffects. I will try to port c64 music formats to the calculator.

Offline
Nomad's Land

Welcome to cm.o, man.

In case anybody was wondering, I think this project is awesome. And as far as I recall there are several 83+/84+ owners on this site wink

Offline

Looks awesome man! Good work, if this get finished or you release a tutorial or something, I might give this a go!

Offline

Okay. At the moment I am modding my calculator with the soundchip embedded in it. Also a 5v power jack on the back of the calc so I can plug it in the wall.

Offline
Sydney, NSW

fuckin insane. gonna have to try this out sometime.

Offline

https://www.youtube.com/watch?v=nHdnzvDPiV4
In the process of installing my soundchip. It works as well as the DC jack modification. I will add some sort of GPIO port/header and close it up.

Offline
Czech republic

This is sick, great job! Can't wait for updates. I don't know how hard it is to write progs for this beast, I just remeber messing with some built in BASIC back in high school smile

edit: damn, now I need a TI! big_smile Do you have plans to share your knowledge on TI -> ATmega communication? That would save a lot of time to others (me)

Last edited by ashimoke (Mar 5, 2013 5:39 pm)

Offline
Tulsa, OK

This is the kind of stuff I can get excited about smile I have a couple 84+ silvers that I have always hesitated from touching because I need them for school and am likely to mass them up but this makes me wanna do it man

Offline

My prototype was a little external board that you can plug into the linkport. If you don't want to put anything inside your calculator you can just make that instead.

I will make sure you can use the soundchip from TI basic programs, so it's accessible for everyone and not just skilled programmers.

Offline

I added a GPIO expansion port that include:
- 2 regular I/O pins (one of them in parallel with an LED)
- 2 PWM pins (can also be used for regular I/O operations)
- 2 analog pins (also used for I2C or regular I/O)
- rx tx lines (can be used as regular I/O)
- reset
- 5v+
- gnd
I also wired up 3 additional PWM pins to the 3 remaining legs of bicolor LED's

Because of a strange crash of the atmega software I took everything out and I am gonna rewire it. I am in the process of optimizing the arduino code. I reduced the size of the code and I greatly improved the transfer speeds. When using 16Mhz mode on the TI84+ it gets a bit glitchy though. I think I should have a built in speed limit. For the purpose it's fast enough, but I wanted a fast and reliable link protocol so others can use it for their projects in the future.

Edit: I timed a 25kB transfer. It took 12 seconds, so that means the speed is about 2kB/s. That's a bitrate of 16kbit/s!!! Note that the atmega is just relaying the data to the pc via serial in my test.

Last edited by keoni29 (Mar 9, 2013 9:14 am)

Offline

I made a tutorial with code and schematics packed in a ZIP. I posted it on my website!
http://8times8.host56.com/?p=98