Evan McNabb's Homepage
Home | Blog | About Me | Linux / Open Source Software | Photo Album | Funny Stuff | Misc Stuff

TI-83+ on Linux Howto

I found a USB TI Graphlink on clearance today at ShopCo (only $5). Although I don't use my TI-83+ calculator nearly as much as I used to (now that I've graduated), I figured I might as well give it a shot. Getting it to work was easier that I expected, but there were a few problems I ran into. The following is an overview of how I got it to work.

Machine Configuration
  1. Kernel Configuration
  2. The tiglusb kernel module needs to be loaded so TiLP (TI Link Program) can connect to the device. Most distros now appear to have this module precompiled into their standard kernels (I know FedoraCore 2 has it). Any newer kernel (2.4.27 or higher, and 2.6.6 or higher) has the driver built in. If you're running an older kernel and would like to patch it by hand, the driver can be found at: http://www.ticalc.org/archives/files/fileinfo/208/20888.html.

    If you're compiling your own kernel, the option that needs to be selected is:

    Device Drivers / USB support:
           Texas Instruments Graph Link USB (aka SilverLink) cable support
    

    Make sure to then load the kernel module: modprobe tiglusb

    One area where I had problems was trying to figure out what device node TiLP uses to access the calculator. I'm using udev and the device didn't automatically appear. I tried to configure TiLP and got this error:

    Msg: Unable to open the USB device.
    Cause: Check that you have required rights on the node and/or your driver is loaded.
    System: No such file or directory (errno = 2)

    Creating the device node by hand was the only way I could get it to work:

    mknod /dev/tiusb0 c 115 16 && chmod 666 /dev/tiusb0
  3. Installing TiLP (TI Link Program)
  4. This is the program you'll actually use to connect to your calculator to transfer data. The main webpage for the project is located at http://tilp.info/.

    You can download TiLP from the main site or install a package for your distribution. I'm not exactly sure what distros have packaged it up, but there appear to be RPMs for Mandrake and Redhat on rpm.pbone.net. Debian also seems to have it available through apt. I use Gentoo and it was simple to install:

    thor root # emerge -p tilp
    
    These are the packages that I would merge, in order:
    
    Calculating dependencies     ...done!
    [ebuild  N    ] dev-libs/libticables-3.7.7  
    [ebuild  N    ] dev-libs/libtifiles-0.5.7  
    [ebuild  N    ] dev-libs/libticalcs-4.5.1  
    [ebuild  N    ] app-sci/tilp-6.68-r2  
    

    Make sure to install any libraries that TiLP requires (sorry about being vague, but I've only installed it on Gentoo).

  5. Configuring TiLP
  6. Set TiLP to the use the right cable type, which in my case was USB (Setup -> Communication -> Cable). Also make sure to select the calculator you have (Setup -> Communication -> Calculator). Click on the Ready button to attempt to connect to the calculator. Useful debugging information is displayed on the console:

    Libticables: checking resources...
      IO_API: ok
      IO_ASM: nok (a kernel module is needed)
      IO_TIPAR: nok
      IO_TISER: nok
      IO_TIUSB: ok
      IO_LIBUSB: ok
    Done.
    Libticables: current settings...
      Link cable: SilverLink
      Port: USB port #1
      Method: automatic (kernel module)
      Timeout value: 15
      Delay value: 10
      Baud-rate: 9600
      Hardware flow control: on
      I/O address: 0x000
      Device name: /dev/tiusb0
    Libtifiles: version 0.5.7
    libticalcs: bindtextdomain to /usr/share/locale
    Libticalcs: version 4.5.1
    Libtifiles settings...
      Calc type: TI83+
    Libticalcs settings...
      Calc type: TI83+
    Initialized in GTK+ mode.
    Scanning plug-ins... Done !
    Scanning registry... Done !
    The calculator is ready.
    Calculator type: TI83+
    

    Once the link to the calculator has been established, the status will be set to Connected in the lower left hand corner of the main TiLP window. If you're connected you should be able to do a directory listing of the files on the calculator. From there on out you should be able to copy files to/from your calculator (drag and drop), do backups, upgrade the calculator's firmware, etc.

    By default it only show the files on the computer that the calculator should be able to recognize. There were several file formats that worked but weren't displayed in the default file list (Setup -> General -> Computer -> File Displaying -> All Files). Changing this helped a lot.