This is the question thread for Raspberry Pi meets TI-84+

I'm currently working on a Raspberry Pi with a touchscreen lcd (as I killed the original 84+ LCD as it has such a a small connector (@Kerm you haven't a spare 83+ lcd laying around?)), normal rechargeable batteries that I boost to USB (the pcb includes a charger chip for charching them and a booster one), and I'm trying to write a linux Kernel module input driver for my keypad matrix

I successfully figured out the keypad matrix, but I really screwed it up by cutting the board to small and accidentially dropping solder onto one pad (i sucked it up and the pad connecting to the next column died in the solder sucker :/)
Well. Today I contacted (as I'm still at school) the person, who lends the calculators to the students and asked him for a broken 84+, which was given to me for free! But it *sadly* still works. Should I kill it or do you think that I could be able to get the pad back).

Pictures are here:



Ok don't mind that stuff above. I ruined multiple partially or completly working calculators, trying to get it working. I recently resumed the project and bought me a Raspberry Pi A+ instead of the way bigger model B+ I had earlier. Then I drilled out the battery department, as it will run from a phone battery anyways. It will have USB host and audio + analog video out, a charging port, but no hdmi.

I'm not sure about the screen. I have the choice between an original TI-83+ LCD (attached to a partially working TI-83+, that would then be detached) or a TFT, which's width is a little to small. Note that the TFT has a builtin touchscreen and is already fully supported, and has kernel modules to download. But it needs more wiring, doesn't look authentic, consumes more power and needs way more signal cables to work (parallel), increasing the size dramatically.

My biggest worries are still about the size, as there's little to no space for the Pi + LCD + Keypad matrix.
Also the keypad matrix is a lot of work and needs a proper linux kernel driver, that needs to be written.
It doesn't look like there are any bridges, you should be fine. The button may have a different feel but it should work. You could also try using solder wick to clean up the pad.
The main problem is, when I probe with my multimeteter, it shows, that there's a connection on that pad :/
Don't kill it! As SpaceCat said, try using a solder wick, they are awesome.
Looks like I've to buy some solder wick...
You can also use thick copper wire coated in flux in a pinch.
-I'll try that definitively!-
I found solder wick to be to expensive, so I threw the board away and started another one.
You said, that you have a clue for the pinout.
I would be happy to hear it.

My LCD is from a TI-83+ (1999)
LCD Driver IC is T6A04A
Yes, I have long been delaying posting my notes on the pinout of the mainboard-to-LCD connector on the TI-83+ calculators, which have the nice wider spacing. Numbering the leftmost connector as 1, the first narrow pad as 3, and the last narrow pad on the right as 17:

1: +V
2: GND
3: unknown (LCD driver enable? Chip enable?)
4: NC
5: NC
6-8: D/I (data/instruction) toggle, W/R select, STB or RST
9-16: 8-bit-wide data bus
17: NC

Pins 3, 6, 7, and 8 are the most unclear at this point. it seems likely that they represent four of the five lines mentioned above.
Thanks. I will continue my project now.
Muessigb wrote:
Thanks. I will continiue my project now.
Please let me know if you succeed in figuring out the remainder of those lines, and I'll do my best to work on it when I get a chance as well.
I think 3 is reset. As I checked the datasheet and probed the pin with the multimeter.
And 8 should be CE.
This is the code and pinout I'm working on.
It's both (except for the pins w/o the ?) not correct or working.

[ VCC ] [ GND ] [EN?/CE?][DI?][WR?][RST?/CE?][DB7][DB6][DB5][DB4][DB3][DB2][DB1][DB0][NC?/RST?/EN?]

[+5V], [GND], [A0], [13], [12], [11], [10], [8], [7], [6], [5], [4], [3], [2], [A1]

Also note that pin 9 on my Arduino is broken and I'm to lazy to go to my parts collection and bootload an atmega328p (i've some atmegas w/o bootloader laying around). I have an ISP and I built a programming board for attiny84, atmega1280p; but not for the 328p.

//#define DB0 2
#define DB1 3
#define DB2 4
#define DB3 5
#define DB4 6
#define DB5 7
#define DB6 8
#define DB7 10

#define DB0 10
 #define DB1 8
 #define DB2 7
 #define DB3 6
 #define DB4 5
 #define DB5 4
 #define DB6 3
 #define DB7 2

//if arduino pin 13 is on vcc screen is completely black; when on gnd screen is completely white
#define EN  A0
#define CE  11
#define DI  13
#define RW  12
//#define RST A0

// A=11 B=12 C=13
// try: 11,12,13 11,13,12 12,11,13 12,13,11 13,11,12 13,12,11

#define COMMAND 0
#define DATA 1

 DB[0-7] (2-10)
 RST / CE (11)
 WR (12)
 DI (13)
 EN / CE (14)

void setup()
  // put your setup code here, to run once:
  //pinMode(DB0, OUTPUT);
  pinMode(DB1, OUTPUT);
  pinMode(DB2, OUTPUT);
  pinMode(DB3, OUTPUT);
  pinMode(DB4, OUTPUT);
  pinMode(DB5, OUTPUT);
  pinMode(DB6, OUTPUT);
  pinMode(DB7, OUTPUT);

  pinMode(EN, OUTPUT);
  pinMode(CE, OUTPUT);
  pinMode(DI, OUTPUT);
  pinMode(RW, OUTPUT);
  //pinMode(RST, OUTPUT);

  digitalWrite(EN, LOW);
  digitalWrite(RW, LOW);
  digitalWrite(DI, LOW);
  digitalWrite(CE, LOW);

  digitalWrite(RST, LOW);
   digitalWrite(RST, HIGH);

  //init 8bit mode
  sout(COMMAND, 0, 0, 0, 0, 0, 0, 0, 1);
  //enable lcd
  sout(COMMAND, 0, 0, 0, 0, 0, 0, 1, 1);
  //  delay(5000);
  sout(COMMAND, 1, 1, 1, 1, 1, 1, 1, 1);
  //counter mode
  sout(COMMAND, 0, 0, 0, 0, 0, 1, 0, 1);
  //set column to 1
  sout(COMMAND, 0, 1, 0, 0, 0, 0, 0, 0);
  //set row to 1
  sout(COMMAND, 1, 0, 0, 0, 0, 0, 0, 0);
  for (int i = 0; i < 5; i++)
    //write something
    sout(DATA, 1, 1, 1, 1, 1, 1, 1, 1);

void loop()
  // put your main code here, to run repeatedly:


void sout(boolean di, boolean b7, boolean b6, boolean b5, boolean b4, boolean b3, boolean b2, boolean b1, boolean b0) {
  digitalWrite(DI, di);
  //digitalWrite(DB0, b0);
  digitalWrite(DB1, b1);
  digitalWrite(DB2, b2);
  digitalWrite(DB3, b3);
  digitalWrite(DB4, b4);
  digitalWrite(DB5, b5);
  digitalWrite(DB6, b6);
  digitalWrite(DB7, b7);
  digitalWrite(CE, HIGH);
  digitalWrite(CE, LOW);
  digitalWrite(DI, LOW);
Well now neither the display nor the power works.
The Raspberry always browns out.

Here's circuit:


_____  ______
+  -     -  +
[]  []     []  []
[]  []     []  []
-  +     +  -
__ __   __ __
 |    |     |    |
 |    ----    |
 |       |       -----------
 -[3v > 5v Booster]   |
 |        |             |           |
 |   [Raspberry Pi]      |
 |                                  |
What is the maximum output of the booster circuit? What chip is the booster built around, if any?
The booster is was a complete product from a company called revolt. It says that it should be able to charge smartphones etc. I'll look if i can find it on the web.
Max. Output: 500mA
This product isn't sold anymore. I just had it laying around and as I never used it tried to turn it into something more useful.


Here's the video:
Muessigb wrote:
Here's the video:
Hmm, interesting. I wouldn't be surprised if the Pi requires a maximum current during boot that those batteries simply can't provide, especially since the tradeoff of a voltage booster is that even more current is required from the lower-voltage source. Specifically, even in an ideal boost circuit with 100% efficiency and no loss, which doesn't exist:
I'd be shocked if the batteries could supply that much current.

Unrelated: check out this product, which seems like an interesting cross between ePaper and an LCD. The 96x96-pixel dimensions are awkward for this project, but maybe there's a more rectangular model that would suit your purposes, since you were looking for an ePaper/eInk solution.

Here's the pinout:
STD (Standby input)
I bought I powerbank that I will take apart and use for the project:
Ok. I decided to threw the LCD away abd stick with the TFT.
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 3
» 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