A couple weeks ago I pulled my trusty SilverLink cable out of its drawer for some experiments, and to my horror found that it had apparently gone into some kind of failure mode I'd never heard of -- it was enumerating as a "TUSB3410 Boot Device" (VID 0x0451, PID 0x3410) instead of a "TI-GRAPH LINK USB" (VID 0x0451, PID 0xE001). In the process of trying to find an example of how to fix this, I found there basically wasn't any, so I figured I'd document my process in case anyone else ends up needing it.

Before I do that, though, I'd like to preface that I tried to follow TI's suggested troubleshooting steps here and here but they got me nowhere. It's possible it'd work on an x64 version of Windows (I'm personally a little suspicious; if anyone wants to try it for science, let me know!), but I only have Linux boxes and a single 32-bit Pentium 4 machine running XP. When I tried with XP, I found that none of the files were in the right place, silvrlnk.inf was apparently just missing, and there wasn't any way I could get the driver to install onto the device. So I had to take a slightly more arcane route.

Recovering the SilverLink
  1. Download and install the TUSB3x10 EEPROM Burner. This is a Windows-only program, but to my knowledge will work on basically any Windows machine from XP on -- so long as it's got USB ports. No clue if it'll work in a VM. (You'll probably also want to consult its user's manual.)
  2. Download the SilverLink firmware. I got it from here (thank you queueRAM!) and compiled it from their de-compilation. It's just a standard 'make' to build. The output file you're looking for is called "ti_graph_link_silver.eep".
  3. Delete the file named "ti_graph_link_silver.bin" and rename "ti_graph_link_silver.eep" to "ti_graph_link_silver.bin".
  4. Open the TUSB3x10 EEPROM Burner, click on the options dropdown and click "Show the 'Program Full Binary Image' button". (Check page 7 of the manual if you're unsure how to do this).
  5. Select the entry under "Computer" labeled "TUSB3410 EEPROM Burner Instance (1.00)".
  6. Set EEPROM size to "64Kb".
  7. Set "File Path" to point to "ti_graph_link_silver.bin". (This is the renamed .eep)
  8. Now you're ready to re-flash the firmware (you can ignore every other setting). Click the "Program Full Binary Image" button (yellow triangle with the exclamation point) and proceed with the write.
  9. Unplug and re-plug your cable, and it should show up as a SilverLink again!

Why This Happens

The SilverLink cable (revision B, at least) is based on an off-the-shelf TI microcontroller called the TUSB3410. That microcontroller's default boot process involves checking for an I2C EEPROM that contains program code to execute. If can find an EEPROM and its contents are properly formatted, it'll copy that code into internal RAM and start executing it. If it can't find the EEPROM, or its contents aren't properly formatted, it'll fall back to looking for boot code over USB. Thus: "TUSB3410 Boot Device". Your cable has, in essence, forgotten who it is and needs you tell it.

Still no clue why or how the corruption happens in the first place, though. Hardware failure seems like the most likely explanation, but like I've said my cable seems to still be working fine several weeks later. Maybe it's a really slow hardware failure. I dunno. If anything changes, I'll be sure to add an update.

Further Troubleshooting

SilverLink Stops Enumerating After Flash

If your SilverLink stops showing up at all after flashing the firmware, this might be because you pressed "Program" instead of "Program Full Binary Image". Your SilverLink has been tricked into a state where it thinks the EEPROM contains valid code, but that code is all garbage so it's sorta bricked. Fortunately, there is a way to get it back into "Boot Device" mode -- we just need to either corrupt the EEPROM, or convince the TUSB3410 that the EEPROM is corrupt. I've managed to do this, but I'm NOT an electrical engineer -- or even all that informed about basic EE concepts -- so I'd love some feedback from an actual expert.

Okay, here's the procedure:
  1. Unplug the SilverLink if you haven't already.
  2. Disassemble the SilverLink (it's just one T6 torx screw under the sticker and a bunch of plastic snaps) and remove the circuit board.
  3. Grab a jumper wire and short the Vss (bottom rightmost) and SDA (top rightmost) or SCL (top, one in from rightmost) pins together while at the same time plugging the USB connector into your computer.
  4. Repeat until it enumerates again. If you're lucky, this should only take a couple tries at most.

Again, I have no idea how reliable or safe this procedure might be -- perform at your own risk! All I know is that it worked for me the once.

I Don't See "TUSB3410 EEPROM Burner Instance (1.00)" in the EEPROM Burner

You'll need to reinstall the TUSB3410 driver. Check page 16 of the manual and go through those steps.
Thanks for posting this, the instructions are well written out and those other links are extremely useful documentation.

With the I/O based calculators getting harder to find and acquire documentation will be more and more valuable for those who want to use them.
Indeed, this is a valuable piece of documentation Smile
This failure mode of a SilverLink had already been reported by at least one user before you.
Thanks for sharing this! I think five or ten years ago I discovered one of my SilverLinks had succumbed to EEPROM amnesia, and I assume that once soldered into the device, there was no way to repair it. I hope I discover that I still have it, so I can bring it back from the brink.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement