SD cards, as some microcontroller fans will know, can be interfaced in a GPIO-friendly way through SPI.

The Touchpad uses two GPIO pins for an I2C interface to the calculator. Those pins have to run through the keypad connector regardless of whether you have a touchpad in. Therefore, they are present on an 84+ Pad, which also has an abundance of buttons that are unused, which I believe might be usable as input pins, since they have direct memory addressing.

An example of hooking up an SD card to a microcontroller host:

Here's the datasheet that's from

Power and ground are easy enough.
DI hooks to a GPIO Pin
DO hooks to a nonexistent, but mapped key
Clock hooks to a GPIO pin (or maybe something else, but this is easier)
CS ties to ground, to ensure SPI mode is enabled. (This might need to be altered, not sure)

From there, we could base the code off of one of the many open-source examples, such as the arduino SD Library, and what do you know, you have an ndless-based SD Card backup, sort of like the old Expander mods, but capable of up to 32 GB! (PYes, it supports SDHC, not sure about SDXC tho Razz)

The best part is, all of these pins are exposed without opening the calculator's case!

What do you think?

Edit: There are two reasons the CX can't be used:

It always uses the Touchpad
Its keypad isn't removable.

Besides, they have way more space, so it's much less of an issue anyways.
I think that this could definitely be done. If the Nspire works on 3.3V signalling, then all is well, otherwise you'll need level shifting.
Right. Unfortunately, the keypad's pinouts are not documented, so I'll have to start with that. Man, I wish they'd had the connector facing the other direction! it would make this so much easier.

Edit: so, now I have a modified ribbon cable hooked to the pad connector. I'll post a pic soon. I really like how it turned out!

Edit2: Here's some pics!

I found, so far, that the pin layout is as follows:

I'll add more as I find them.

Pin 1 (As labeled on the PCB) is ground, or possibly used as an ID pin to determine the pad. I'm not sure since I only have the one pad's connector hooked on.
Looks great! Is the keypad still functional with that soldered on?
yeah, but occasionally the connector doesn't quite contact, and knocks out the row with clear on it. Razz
So, now I've got a good deal of the pinout of that connector.

1 - Ground
2 - Held High (Could be GPIO, could be Vcc, could be a fixed signal pin)
3 - Held High, turns to square wave when you press and hold any 10* key EXCEPT On (?) as well as down and Graph
4 - some form of square wave (my scope is crap, so I can't tell much. It can't actually sync to the wave. It IS a tube-based one, so I'm not surprised)
5 - Held High, turns to square wave when you press and hold any 9* key as well as left and trace
6 - Square Wave
7 - Held High turns to square wave when you press and hold any 8* key as well as right, zoom
8 - Square Wave
9 - Held High turns to square wave when you press and hold any 7* key as well as up, window
10 - Square Wave
11 - Held High turns to square wave when you press and hold any 6* key
12 - Square Wave
13 - Held High, turns to square wave when you press and hold any 5* key
14 - Square Wave
15 - Held High, turns to square wave when you press and hold any 4* key
16 - Square Wave
17 - Held High, turns to square wave when you press and hold Alpha, X-Var, Stat or Del
18 - Square Wave
19 - Held High
20 - Held High
21 - Held Low
22 - Held Low
23 - Held High, Link port wire
24 - Square Wave
25 - Held High, Link port wire
26 - Held High
27 - Held Low
28 - Held Low
29 - Held Low
30 - Held Low

1 and 30 are marked on the PCB, so no worries there :p
The even-numbered lines are likely "scanned", hence why you see a square wave. I bet the duty cycle is somewhere around 10% to 20%?
Yeah, you're probably right, that would make sense.

I'm glad to see the link port is bare I/O, personally, since that means it's likely to be very simple to interface to from C or Asm, if you know how. I'm also planning on trying it in a CAS touch so I can see the remainder in a situation where they're actually used.
As you can see on the TI-Nspire development board, there is an SD card reader:


But it's located in a totally different block than the keypad connector.

Of course, it's not included on handhelds, but the required pins should still be there... probably in the J01 and/or J04 connectors.
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