AFAICT, our collective experience with SilverLinks is that they seldom break... especially in the odd way yours did Smile
So I really think that you shouldn't worry too much about buying a new SilverLink.
I second what Lionel says, However I made the code public and forgot to link it here!

https://bitbucket.org/Geekboy1011/silverlinkclone

If memory serves correctly. It kinda works but not 100% so yeah good luck!
Thank you, sir, and sorry for bothering you.

(Also, in regards to buying a new silverlink, this method turned out to be cheaper - Leonardo clones were on sale, and I could use the jack from my dead silverlink, so the homemade one was only $10, compared to the $20 for a real one)
roryyamm wrote:
Thank you, sir, and sorry for bothering you.

(Also, in regards to buying a new silverlink, this method turned out to be cheaper - Leonardo clones were on sale, and I could use the jack from my dead silverlink, so the homemade one was only $10, compared to the $20 for a real one)


This currently doesn't do everything and has major bugs! I suggest saving up a for a silverlink as well. Also my leonardo is broken so sadly there is no support Sad
Somewhat amusingly, this project itself needed to be rescued from the smoking wreckage of Bitbucket's support for hg repositories so I've rehosted it on GitLab:
https://gitlab.com/taricorp/silverlinkclone

While other people have also built similar tools, this remains the only one I'm aware of that acts like a silverlink instead of a serial link cable.
Tari wrote:
Somewhat amusingly, this project itself needed to be rescued from the smoking wreckage of Bitbucket's support for hg repositories so I've rehosted it on GitLab:
https://gitlab.com/taricorp/silverlinkclone

While other people have also built similar tools, this remains the only one I'm aware of that acts like a silverlink instead of a serial link cable.


Well that is sad...I have it backed up somewhere....I think. Thank you for putting that back online Tari.

That said I got some RPI Picos in the mail a few weeks ago and finally have gotten to playing with them...
The hope is to turn them into a silverlink as a "getting to know the pico" project.

below is the result of a

Code:
send({0
which matches the notes of KermM and CVSoft here

Currently we have a mostly functional RX from the calculator routine working in python. Some shenanigans need to be addressed but its moving along wellish...lets see if motivation remains Very Happy
Its no where near ready yet...
However the repository now has a working "grey" serial link code and a fully functional Tx/Rx routine set...documentation not yet generated. Some changes are wanted to be made before I actually turn it into a usable Micropython library. Its coming along quite well Very Happy

https://github.com/geekbozu/PicoSilverlink

Also thanks to Tari and DrDnar for being themselves it no longer needs diodes....I just wanted to be lazy ok Sad

Max speed I seem to be able to get are 2.5kBytes/second before I start running into timing issues....what was the fastest a silverlink would go?


Another update....
It works reliably with TiLP....Ti-Connect just BSODs

There is a large amount of immaturity in the TinyUSB stack the rp2040 uses it seems...it is seemingly not properly handling endpoint close/clear, And configuration change requests....

Time will tell whats going to happen there.
C project
https://github.com/geekbozu/PicoSilverLink

Python Project
https://github.com/geekbozu/PicoGreylink
Awesome stuff! Perhaps you can raise an issue with the rp team?
tr1p1ea wrote:
Awesome stuff! Perhaps you can raise an issue with the rp team?

Sadly its more like the independent developer who they decided to use as their products reference usb stack....
needless to say working on it!
geekboy1011 asked me to post because he thought I had something to add, even if I don't have much of anything working yet. This feels like a "me too!" sort of post.

A bit of time ago, I got a Raspberry Pi Pico from geekboy1011 and we sorta decided to work on our own link software for the calc as a way to get to know the Pico. It was mostly playing around with the Programmable IO (PIO) blocks on the device because it's shiny, fast, and supposed to relieve the already absurdly overpowered device of any further work the rest of the system had to do. It's pretty much link assist, but for the Pico.

Geekboy1011 and I have been bouncing ideas and code between the two of us, keeping us motivated to move forward with our own projects and whatnot. Our initial goal of coding a sort of link-assist is pretty much already done, but my own end goal for this is a little more... nebulous? Feature-creepy? I don't know.

I've been going back and forth between the idea of getting the Pico to present itself to a connected PC as an MTP device so a PC user could do things like drag & drop files to and from a connected calculator, and the idea of using the PIO state machines to connect to more than one calculator in a sort of router-style setup. I hadn't thought too hard about how the latter idea will manifest, but I was thinking of extending the preexisting packet protocol to send command specific to the implementation on the Pico (e.g. get all connected devices, send variable data to a particular connected device, broadcast a variable send). Not entirely sure where I want to go with this.

So far, I'd been able to (semi-reliably) communicate to my 84+SE but some random errors were popping up. Receiving variables from the calculator that were manually sent worked. Sending a silent directory request worked. Silently requesting a variable worked. Silently sending a variable... did not. After sending the VAR packet, I got half an ACK packet... then nothing. Nothing no matter what I did with the logic Then I tried to use code that geekboy1011 gave me to emulate a graylink, but that ended up with mysterious failures when I tried to use TiLP. Then geekboy1011 told me about this little thing and told me that the problems that we were experiencing was because of line levels and how what we were doing should've fried our RPI boards but... something something ESD protection diode something something more guesses. yeah. That put a bit of a damper on things.

Still. With what I learned, I started rewriting what I had to hopefully have some sort of multi-device support rather than the hackjob I had. So that's where I am. All I've got is busted code and geekboy1011 showed me a screenshot of a 3.0KB/s app transfer from the calc to his PC using TiLP. I need to step up my game. And salvage some MOS-FETs and diodes from someplace so I can maybe continue experimenting with additional peace of mind plus an assurance that perhaps it'll work this time
GOOD NEWS....
Ti apparently likes to hard code Endpoint functions in their usb drivers. Which causes me a headache.
No more BSoD's....all that needed to be done was to flip the two endpoints...so now endpoint 1 is in and 2 is out... and everyone is happy.

Still having some transfer issues, I think that is just how I am handling byte level communication still. Need to make some better buffering setups instead of what is currently being done.
Oh fun Smile
As a matter of fact, libticables used to hard-code endpoints as well - fixed by 0305f9d149f1c7d14b53e2f502b8eacefb4bf449 in 2010 - but AFAICT, the worst that happened when the Nspire 2.x OS series came out was that the communication didn't work. Boo BSoD.
Nifty glad to see that has been changed, However that would explain why it was mostly working in TiLP but crashing Ti-Connect Hah!

Yeah quite the weird bug to diagnose, What tipped me off is I was logging ALL USB activity on the MCU and testing on a separate computer expecting crashes. I would open Ti-Connect ...and it would generate no data at all. Not even a control packet. So that led me down the rabbit hole of making my descriptor match 1:1 theirs. Even endpoint order. The rest there is history.
  
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 2 of 2
» 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