Does anyone know what exactly is required to get a USB keyboard to allow input to a TI-84+ SE?

I assume that USB8X will be in the list of things required, and a certain type of cable, and more software, but I haven't found a good resource explaining what exactly is required.

I'd like to try this out. Thanks for any help.
Actually it's pretty simple. You just need a USB A to mini USB adapter. This video should work for you
https://youtube.com/watch?v=3Y5lU_HSwBQ

Edit: I forgot keyboard support wasn't implemented until much later OS versions.
TheLastMillennial wrote:
Actually it's pretty simple. You just need a USB A to mini USB adapter. This video should work for you


That is a different calculator from what I am asking about.

I am asking for info on how to connect a USB keyboard to a TI-84+ Silver Edition and have it be able to type as an input.
As I already said in SAX, there is no program that would allow you to use a keyboard anywhere in the OS, although it would be possible with the right hooks. usb8x is a usb driver that can be used both in z80 and in TI-BASIC, so if you want to make a text editor with it, TI-BASIC should suffice.

As for hardware, you want a "male mini A to (regular-sized) female A" adapter. A lot of male mini B ones will also work because they are B-shaped but tell the calculator that they're A. The search term to use is "OTG". (If you manage to find a "female mini B to female A" adapter you can combine that with the male mini A to male mini B linking cable that should have come with your calc.)
fghsgh wrote:
As I already said in SAX, there is no program that would allow you to use a keyboard anywhere in the OS, although it would be possible with the right hooks. usb8x is a usb driver that can be used both in z80 and in TI-BASIC, so if you want to make a text editor with it, TI-BASIC should suffice.

As for hardware, you want a "male mini A to (regular-sized) female A" adapter. A lot of male mini B ones will also work because they are B-shaped but tell the calculator that they're A. The search term to use is "OTG". (If you manage to find a "female mini B to female A" adapter you can combine that with the male mini A to male mini B linking cable that should have come with your calc.)


Did the TI Keyboard allow typing input to the Calculator? Does anyone know what signals it sent, or if they can be recreated with a USB or PS/2 Keyboard?
Yes, the functionality of the TI keyboard could be recreated with a combination of a USB or PS/2 keyboard and some sort of microcontroller (e.g. an Arduino) speaking the TI link protocol, e.g. with ArTICL. To my knowledge, no one has done this. However, benryves made the Emerson PS/2 drivers, which let the monochrome calculators speak PS/2 directly.
KermMartian wrote:
Yes, the functionality of the TI keyboard could be recreated with a combination of a USB or PS/2 keyboard and some sort of microcontroller (e.g. an Arduino) speaking the TI link protocol, e.g. with ArTICL. To my knowledge, no one has done this. However, benryves made the Emerson PS/2 drivers, which let the monochrome calculators speak PS/2 directly.


That is interesting. Did the TI Keyboard have some software that allowed it to input to the calculator?

Is there a description of the signals that were expected from the keyboard to the calculator? Something like ASCII in 9600bps Serial hopefully Very Happy?
Reading around, it seems that TI Keyboard users had to download a new OS (or install from CD), does anyone know if there were special OS's for keyboard support on calculators, or was that just to make sure the OS was up to date?

The technical Keyboard manual (https://www.cemetech.net/downloads/files/2043/x2141) states that "A special implementation of the D-Bus protocol enables the keyboard to send key scan codes."

Then the User Manual states:

"After you connect the TI Keyboard to your handheld device, you can use
either the handheld’s keypad or the keyboard for data entry. The keyboard can
only be used with applications (such as the NoteFolio App) or operating
systems that support it so that the device is able to recognize input from the
keyboard.

Is there an ISO of that CD around? If I can get my hands on a working OS, then I might try to utilise D-Bus communications to give it a try with a keyboard and arduino.
I found this video on youtube: https://www.youtube.com/watch?v=hVHS62gIW9M

It shows the TI-84, an Orion talking device, and TI-Keyboard. The user is typing into the keyboard and the text is appearing on the calculation screen as well as the programming screen.

I had assumed that the OS of the TI-84 didn't allow the TI-Keyboard to input to calc OS, only to the Notefolio program.

Is this a stock TI-84 and OS, or how is the keyboard working on it? Is it something to do with the Orion?
The keyboard works throughout the OS by using the silent remote control routines (i.e., as easily provided by ArTICL, and is documented here: http://merthsoft.com/linkguide/ti83+/remote.html).
Sorry, I am obviously quite new to these calculators.

Does that mean that there is a PC program, that can allow keyboard input into one of the supported calculators?

fghsgh Mentioned above "As I already said in SAX, there is no program that would allow you to use a keyboard anywhere in the OS".

Is it then possible or not to use a TI-Keyboard to input to a TI-84?

I know you have mentioned ArTICL before KermMartian. If I had a Keyboard input method to an Arduino then out to a TI calculator, then I could use ArTICL to output to a TI calc in the way that the calculator expects?
No problem, everyone has to start somewhere! Smile In theory a PC program could provide "fake" key input into one of the supported calculators, but the more immediate use case is that the TI keyboard communicates with the calculator using that remote control protocol to send keypresses over the I/O (DBUS) port. The distinction that I believe fghsgh is making is that there's no program available that would make a regular keyboard (non-TI-Keyboard) in the TI-OS on these older calculators, although one could be written. It is entirely possible to use a TI-Keyboard to input to a TI-84 Plus family calculator. And yes, you could use an Arduino as an intermediary to convert USB HID or PS/2 into those remote control packets for the calculator, or could program almost any microcontroller to do the same, as the TI link protocol isn't too complex.
For posterity, it looks like I was incorrect about the TI-Keyboard speaking the remote control keypress protocol. As noted my matalog, archived technical information on the keyboard indicates that it speaks a special variant of the DBUS protocol and emits raw key-up/key-down events, whereas the remote control protocol contains explicit keycodes as discussed in the Link Guide. For example, for a capital A, the TI-Keyboard would send 0x53 (shift), 0x04 (A), 0x00 (break/no key), while the remote control protocol just uses 0x9A for a capital A and incidentally the two-byte sequence 0xFC, 0xE2 (kExtendEcho2, kLa) for a lowercase A.
Can you remember what the remote keypress protocol byte sending timing protocol is, for example is it a serial stream 9600 baud?

Is that what you used to communicate in ArTICL?

So, to send an uppercase M, do we send 23 87 A6 00 in a serial stream at 9600?
It's not serial or anything related to RS232 at all. It's TI's DBUS protocol, and is indeed what ArTICL implements.
The TI link protocol does not use standard UART or anything like that, and it does not run at a set speed. The receiver has to acknowledge each bit one-by-one before the next bit can be sent. ArTICL probably toggles between INPUT_PULLUP and OUTPUT+LOW to pull the line either high or low (also take care of voltage mismatches). See http://merthsoft.com/linkguide/hardware.html for more details, but the gist is:
Quote:
The link port normally operates in a half-duplex mode where a bit is sent by activating the corresponding line ("ring" or "tip") and the receiver acknowledges by activating the other line. The sender now releases its line and finally the receiver releases the acknowledge.
An "error" condition (="abort") is signalled by activating both lines at the same time for ~250us. Moreover, the DBus protocol specifies a maximum bit time of 2 seconds else link time-out will occur.

Thus, each bit is made of two voltage changes on each two different wires. The order of the first two voltage impulses determines whether the bit is high (1) or low (0). A logical '0' is represented by changing the red wire first, wheras a logical '1' is represented by changing the white wire first. A sequence of eight bit transfers constitutes one byte, least significant bit sent first. The protocol does not allow for a distinction of byte boundaries.
The 83+ has hardware acceleration for receiving bytes (called the "link assist"), 83+SE and 84+ have a link assist for sending bytes as well. See WikiTI for documentation on those.

Also, it does actually make sense to have a protocol like this: not all of the calcs that use this protocol had a reliable timer, and could run at wildly different clock speeds. This way we can guarantee that every bit is transferred perfectly.
  
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