CodeWalrus

Development => Calculators => Calculator News, Coding, Help & Talk => Topic started by: p2 on August 17, 2016, 10:23:42 am

Title: Multiple External Keyboards
Post by: p2 on August 17, 2016, 10:23:42 am
As some of you may know, TI produces external keyboards for their calculators:
https://www.amazon.com/Texas-Instruments-Keyboard-Graphing-Calculators/dp/B00007K7JE/s=electronics
They're pretty cool since they're connected using the simple 2.5mm audio plug.
My idea was using multiple of these keyboards at the same time for multiplayer purposes, using audio splitters
(Like using little adapter (2.5mm->3.5mm), a 3.5mm Audio Split and another adapter (3.5->2.5mm)

[KB]--[2.5->3.5]--.
                   >[Audiosplit]--[3.5->2.5]--[Calc]
[KB]--[2.5->3.5]--'

Has anyone of you ever tried this out and did it work? :) And could I (theoretically) use an unlimited number of keyboards? :D
Aaaand... Does Axe properly work with them...? >.<
Title: Re: Multiple External Keyboards
Post by: DarkestEx on August 17, 2016, 11:18:43 am
I would assume yes, if the keyboard has a serial interface that fits the IO port.
But, there is no driver so you need to make head and tails out of the serial data received.
The audio splitter approach is not going to work though. You would need to design an external interface PCB to do so.
If you need help with that, feel free to ask me!
Title: Re: Multiple External Keyboards
Post by: p2 on August 18, 2016, 08:11:23 am
I once had one of these eyboard (but only one) but I cant find it anymore... >.< looking for it since days, hope I'm gonna find it again :/
The keyboard was connectd using the I/O port and I could use it to type on the calculator (worked without any further drivers)
But I'm not sure if it's gonna work with axe since I never tried it...

And about the audio split:
doesnt the audio splitt just split the signal in two, or (the other way around) combines two sources?
Where exactly is the problem about it?
Thx for your help :)
Title: Re: Multiple External Keyboards
Post by: DarkestEx on August 18, 2016, 08:20:57 am
Quote from: p2 on August 18, 2016, 08:11:23 am
I once had one of these eyboard (but only one) but I cant find it anymore... >.< looking for it since days, hope I'm gonna find it again :/
The keyboard was connectd using the I/O port and I could use it to type on the calculator (worked without any further drivers)
But I'm not sure if it's gonna work with axe since I never tried it...

And about the audio split:
doesnt the audio splitt just split the signal in two, or (the other way around) combines two sources?
Where exactly is the problem about it?
Thx for your help :)

I can't work in axe because axe doesn't use the io drivers that the os does. You would need to write your own driver in axe to drive the keyboard.
About the cable, the individual keyboards are not individually addressable and I really do not suggesting trying two.
CBL is not a good protocol and it will certainly not work for you. Your chances are quite bad there I fear.
I don't have one of these keyboards but I am 99.9 percent sure it can't work unfortunately :(
Title: Re: Multiple External Keyboards
Post by: p2 on August 18, 2016, 08:28:49 am
I already expected it wouldnt be possible to distinguish the two keyboards, so I only thought about maybe using arrow keys on the first one and W,A,S,D on the second keyboard or something ^^
But Axe not supporting these IO drivers could really be a problem... :( :(
would I need to "fix" this using some fance software (that's most likely not written yet) or also some extra hardware...?
Title: Re: Multiple External Keyboards
Post by: DarkestEx on August 18, 2016, 08:35:42 am
Quote from: p2 on August 18, 2016, 08:28:49 am
I already expected it wouldnt be possible to distinguish the two keyboards, so I only thought about maybe using arrow keys on the first one and W,A,S,D on the second keyboard or something ^^
But Axe not supporting these IO drivers could really be a problem... :( :(
would I need to "fix" this using some fance software (that's most likely not written yet) or also some extra hardware...?

Yes, some clever assembly axiom will certainly allow you to make it work. Or you go for an Arduino (Uno, ...) which will be extremely easy and would allow you multiple distinguishable keyboards. This would be a converter that takes the CBL2 data from the individual keyboards and feeds them into my Arduino / Axe protocol engine that I already developed.
I do have made an axe library if you then need that.
Title: Re: Multiple External Keyboards
Post by: p2 on August 18, 2016, 08:40:48 am
how much work would it be, given I never worked with C/C++ before and never touched an arduino either...? >.<
Title: Re: Multiple External Keyboards
Post by: DarkestEx on August 18, 2016, 08:44:37 am
Quote from: p2 on August 18, 2016, 08:40:48 am
how much work would it be, given I never worked with C/C++ before and never touched an arduino either...? >.<

Not terribly much. The axe side is done (my driver there works fine) and the sending driver on the duino site works well too. Only the connection to the keyboard and it's protocol would be tricky, but I am sure this is doable (though idk if you alone can do that and i dont have one of these keyboards unfortunately) but i have had the equipment to make it work if I had one.
Title: Re: Multiple External Keyboards
Post by: p2 on August 18, 2016, 08:56:43 am
so we need the following:
- Software on the TI: Axe driver for Arduino DONE
- Connection TI to Arduino DONE
- Software on the Arduino: Driver for the TI DONE
- Software on the Arduino: Driver to work with the keyboard NOPE
- Connection Arduino to Keyboard(s) NOPE
Allright. So we need samples of what signal is sent pressing each key on the Keyboard, right? :)

Littel strange idea: Would it be able to extend that "project" to create an Arduino (with USB, PS/2 and 2.5mm audio input) that would make almost every keyboard work on the TI (except thus with special drivers)? :)
Title: Re: Multiple External Keyboards
Post by: DarkestEx on August 18, 2016, 09:02:09 am
Quote from: p2 on August 18, 2016, 08:56:43 am
so we need the following:
- Software on the TI: Axe driver for Arduino DONE
- Connection TI to Arduino DONE
- Software on the Arduino: Driver for the TI DONE
- Software on the Arduino: Driver to work with the keyboard NOPE
- Connection Arduino to Keyboard(s) NOPE
Allright. So we need samples of what signal is sent pressing each key on the Keyboard, right? :)

Littel strange idea: Would it be able to extend that "project" to create an Arduino (with USB, PS/2 and 2.5mm audio input) that would make almost every keyboard work on the TI (except thus with special drivers)? :)

Yes, that would absolutely work :)
Also, I will need samples, yes. Oscilloscope or logic analyser ones, but i might be able to build you an arduino sketch that does that for you and you can then send me the output.
Title: Re: Multiple External Keyboards
Post by: p2 on August 18, 2016, 09:06:34 am
That woould be great :D
So I'm gonna buy an Arduino, put your software on it, somehow connect it to the keyboard and then send you the results back? :)
*btw... wich arduino would I have to buy? :) http://world.arduino.org/en/
Title: Re: Multiple External Keyboards
Post by: DarkestEx on August 18, 2016, 09:11:59 am
Quote from: p2 on August 18, 2016, 09:06:34 am
That woould be great :D
So I'm gonna buy an Arduino, put your software on it, somehow connect it to the keyboard and then send you the results back? :)
*btw... wich arduino would I have to buy? :) http://world.arduino.org/en/

I would say the Uno would work fine.
If you want to support Arduino, buy it on the website
If you can't spend too much money, buy an "arduino compatible" clone from Amazon / eBay. They cost less then half and work equally well.
I would also suggest buying jumper wires to connect the Arduino to external devices like your keyboards and the calculator, etc. These jumpers should just be 1 or 2 euros/dollars for 50 of them.

And yes, I would write you a program that collects the data I need to analyze, you connect the keyboard to the Arduino, start data aquisition and send me the output data.
Title: Re: Multiple External Keyboards
Post by: p2 on August 18, 2016, 09:26:26 am
http://world.arduino.org/en/arduino-uno-rev3.html
http://world.arduino.org/en/arduino-uno-pro.html
http://world.arduino.org/en/arduino-uno-smd-rev3.html
which one should it be? :) They're all not too expenive as long as I dont need more than one ^^
And would an Arduino Nano work, too? :)
Absolutely excited and looking forward to working on this project  :w00t:
Title: Re: Multiple External Keyboards
Post by: DarkestEx on August 18, 2016, 09:39:03 am
Quote from: p2 on August 18, 2016, 09:26:26 am
http://world.arduino.org/en/arduino-uno-rev3.html
http://world.arduino.org/en/arduino-uno-pro.html
http://world.arduino.org/en/arduino-uno-smd-rev3.html
which one should it be? :) They're all not too expenive as long as I dont need more than one ^^
And would an Arduino Nano work, too? :)
Absolutely excited and looking forward to working on this project  :w00t:

I am sure it will be quite fun :D
So, I would suggest the first one (rev3) but if you plan adding wifi to your calc in some other project, go for the pro one.
Title: Re: Multiple External Keyboards
Post by: p2 on August 18, 2016, 09:42:02 am
O.o wasnt there this program to enter IRCs with a TI? So let's add external keyboards and WIFI so I can walk around while chating...?
That escalated quickly... >.>

Would it make a difference for you which one I bought? :)
Title: Re: Multiple External Keyboards
Post by: DarkestEx on August 18, 2016, 09:51:20 am
Quote from: p2 on August 18, 2016, 09:42:02 am
O.o wasnt there this program to enter IRCs with a TI? So let's add external keyboards and WIFI so I can walk around while chating...?
That escalated quickly... >.>

Would it make a difference for you which one I bought? :)

If you buy this one you can make the calculator connect to wifi and the internet one day:
http://world.arduino.org/en/arduino-uno-pro.html
This one features a 160 MHz 32 bit CPU as a wifi processor.
With a little soldering (maybe just plugging in a wire) we could use it for sampling the measurement data.

The alternative to the above one is this awesome litte friend:
http://www.86duino.com/?p=68
It is similarly priced and runs at 400 MHz, can do ethernet, usb, and sooooo much more :)
I love this thing :)

If you want to save money and not plan to do that,
buy this one:
http://world.arduino.org/en/arduino-uno-rev3.html

I have all the above devices so I can follow along :)
Title: Re: Multiple External Keyboards
Post by: p2 on August 18, 2016, 10:12:12 am
So using the Arduino Uno Wifi it would take some extra work to get it running but the Arduino uno rev3 wouldnt need that?
Then I should probably buy the Rev3 for this project :)
If it's a success I can still buy the wifi version later ^^
Title: Re: Multiple External Keyboards
Post by: DarkestEx on August 18, 2016, 10:14:46 am
Quote from: p2 on August 18, 2016, 10:12:12 am
So using the Arduino Uno Wifi it would take some extra work to get it running but the Arduino uno rev3 wouldnt need that?
Then I should probably buy the Rev3 for this project :)
If it's a success I can still buy the wifi version later ^^

No, the wifi version does just add features. It uses the same cpu as the rev3 but also contains a secondary fast CPU.
There is no extra work to be done, but this one would allow about roughly 10 times faster data aquisition than the bare rev3. Both will work.
Title: Re: Multiple External Keyboards
Post by: p2 on August 18, 2016, 10:20:00 am
xD okey then I just misunderstood you ^^
In this case I'm gonna buy the WIFI version :) Will order it today ^^
Title: Re: Multiple External Keyboards
Post by: p2 on August 29, 2016, 08:18:45 pm
The ideas born in this topic were pit into a project called WalrusLink which can be found here now: TheWalrus Link Project (https://codewalr.us/index.php?topic=1545.msg43573;topicseen#new)
Title: Re: Multiple External Keyboards
Post by: DJ Omnimaga on September 02, 2016, 05:23:36 am
I really hope this project comes to fruition. :)