So, essentially, what I want to accomplish is replacing *all* the internal hardware of a TI 84+, possibly also including LCD. The only thing that is a must-keep from the TI 84+ is the keyboard and form factor.

* I only own a TI 84+

Both the 84+ and 84+ SE have the same keyboard, IIRC, which I want to keep firstly due to the layout/labeling, and secondly because of the button type (which, IIRC, is not the same as the TI 83, which has softer keys with much less tactile feedback).

Regarding the keyboard, are the button contacts essentially a part of PCB? And if so, are they difficult to reproduce fairly accurately? Are the button contacts themselves the source of the keyboard's "feel" (the difference between the 83 and 84+)?

I'm currently looking at possible internals replacements, and the Raspberry Pi (A) looks like a good match. Anything with the following req's would do:

- 100+ MHz processor
- 100MB+ RAM
- 100MB+ ROM/secondary storage
- well-documented Linux support, large dev community
- GPIOs, of course

Unfortunately, the RasPi is, according to the FAQs, 21mm tall, which is frighteningly close to the slightly-less-than 1 inch thickness of the TI 84+.

The LCD is an open question. Right now, I'm wondering:

- Is the LCD size different at all between regular and SE? Measured by whether you could transplant a screen between them.
- Is the LCD hard to disconnect and resolder to GPIO pins?
- Is the LCD a bottleneck with regards to fps?
- Are there LCDs of close enough size to fit properly in the 84+ case?

* Obviously replacing the LCD offers the possibility of a much higher resolution and color screen.

After basic hardware, LCD, and keyboard, I'm looking at possible case mods, since the RasPi or analogous computers usually offer more connectivity than the 84+ case has space for. The audio port and USB should be able to fit, more or less, in the existing space, but what about ethernet and HDMI? This is not a huge priority, I'm not looking to make my calculator an all-in-one phone/calc/laptop, but I'm curious nonetheless.

And after all the hardware, of course, is software. Firstly, the internal hardware is assumably going to run Linux (a minimal distro, definitely not mainstream Ubuntu or the like). The most pressing issues are an appropriate LCD driver, USB connectivity, and keyboard input.

Second after the basic OS functionality is a TI-like environment. There are multiple ROM-based emulators out there (one is on this site!), so that would probably make the most sense, depending on relative speed. However, given a decent processor and proper LCD/keyboard drivers, it seems to me that it makes more sense to program an imitation from the ground up, since it's not that hard to compare functionality to a real TI calculator, and the catalog of functions, symbols, etc. for the 84+ is well-documented online. The graphics are comparatively simple and as far as basic functionality goes, it seems to be mostly text/symbols and respective offsets, and some fairly simple interface screens. I don't know whether something like this has been done before or if it is more difficult than it seems, but at first glance, it looks like this would be feasible and possibly quite useful for extending existing functionality.


... After all this, it may actually make more sense to simply create the case and keyboard as appropriate instead of purchasing a TI and replacing everything one-by-one -- but then again, if the LCD and buttons are more cooperative than they seem, maybe not! A lot of questions above, so I appreciate the sharing of knowledge.
Wow, your project is ambitious. Upgrading the RAM is, simply put, impossible. Now, to use a RPi as the calculator and keep TI program support, maybe. I'm not the one to know.

The LCD on the two models are the same size, whether they're the same hardware and connections I don't know. The only issue I see, is getting TI-OS to (legally) see all the new hardware without just making your own OS to recognize and run TI programs.
epicwisdom wrote:
Regarding the keyboard, are the button contacts essentially a part of PCB? And if so, are they difficult to reproduce fairly accurately? Are the button contacts themselves the source of the keyboard's "feel" (the difference between the 83 and 84+)?
The calculator is constructed on (mostly.. we'll get to the rest later) a single board, with most of the electronics on the back, and the button contacts on the front.
Physically, it's a dome switch keyboard. The "feel" comes from the membrane. It's not particularly difficult to reproduce the land pattern to build your own keyboard controller with the existing membrane and keys (since those parts would be prohibitively expensive to make yourself), though a PCB of that size in prototype quantities would be rather expensive.

Quote:
The LCD is an open question. Right now, I'm wondering:

- Is the LCD size different at all between regular and SE? Measured by whether you could transplant a screen between them.
- Is the LCD hard to disconnect and resolder to GPIO pins?

Decide for yourself, via Datamath:

A bit small, but doable with a steady hand and good iron.

Quote:
- Is the LCD a bottleneck with regards to fps?

Yes. Most high-performance systems use memory-mapped displays, whereas the LCD controller here has its own internal VRAM. Due to fundamental timing limitations, you can't expect to get more than about 30 fps out o fit.

Quote:
And after all the hardware, of course, is software. Firstly, the internal hardware is assumably going to run Linux (a minimal distro, definitely not mainstream Ubuntu or the like). The most pressing issues are an appropriate LCD driver, USB connectivity, and keyboard input.
USB is just a hardware concern (get things connected in a working fashion), so that's no issue. Keyboard input would be best handled with a small microcontroller as keyboard controller, scanning the keyboard matrix on its own and reporting events back. The LCD driver is the hard part. You could conceivably write a framebuffer driver that bit-bangs over GPIO to drive the T6A04, but I'd prefer to simply write a userspace library to use that display. Requires that software be specifically written for it, but much simpler.

Quote:
... After all this, it may actually make more sense to simply create the case and keyboard as appropriate instead of purchasing a TI and replacing everything one-by-one
Probably. Space is very tight in there unless you're putting new bits in that are of a similar class (microcontrollers, that is), and the requisite interfacing is similarly difficult unless you're working at a deeply embedded level.

Not to mention the power requirements. I don't know any numbers offhand, but I believe the power consumption of a Pi is several Watts at a minimum.
As far as USB goes, I think that I was (incorrectly) talking about using the built-in micro USB port, which of course won't happen if the PCB is being replaced with e.g. a RasPi.

In more detail about the LCD, do you know which exact model is found in the 84+ (since you referenced the model of the driver)? Knowing the exact dimensions would be helpful. That picture of the LCD driver doesn't have anything for scale, and while it's possible to use the whole calculator as a scale, that seems a bit too approximate.

Given the ~30 fps limit, a replacement would probably be best. Out of curiosity, are LCDs of this size (about 2.8" diagonal) typically power-hungry?

As far as space goes, as I mentioned, the RasPi has a height of 21mm, which is uncomfortably close to my quick measurement of the 84+'s depth. However, length and width aren't really a problem in the form factor of the 84+.

Power requirements for the model B are admittedly high, 700 mA * 5V... 3.5 W draw. However, the A version only requires 300 mA * 5V; 1.5W. Eneloop XX batteries hold their charge for quite a while, and have a capacity of ~2500 mAh. 4 of those at 1.5V, and the model A runs for about 8-9 hours continuously.

edit: AA batteries are probably too large, being ~6mm longer and ~4mm wider than AAA batteries as used in the 84+, and the AAA Eneloop XX's are only ~900 mAh. A case mod might be necessary here.
The 30 FPS, shouldn't that be 60 fps (refresh rate is 60Hz, varying) because of greyscale libraries on the z80?

Is that 1.5W on the Pi the peak draw? Can't the CPU be downclocked in order to reduce the power consumption?
epicwisdom wrote:
In more detail about the LCD, do you know which exact model is found in the 84+ (since you referenced the model of the driver)? Knowing the exact dimensions would be helpful. That picture of the LCD driver doesn't have anything for scale, and while it's possible to use the whole calculator as a scale, that seems a bit too approximate.
It's a fairly generic display. You're best off simply measuring the space to fit into and seeing if you can find anything that fits if you're looking to replace it.
Again from Datamath, here's the whole back of the board for scale on the LCD driver:


Quote:
Given the ~30 fps limit, a replacement would probably be best. Out of curiosity, are LCDs of this size (about 2.8" diagonal) typically power-hungry?
Backlight is usually the number one power draw on a display. If you get a reflective display (such as the stock one on the calculator), power draw shouldn't be an issue. If you've got a backlight, then it's a different story.

Ahelper wrote:
The 30 FPS, shouldn't that be 60 fps (refresh rate is 60Hz, varying) because of greyscale libraries on the z80?
Maybe; that was simply an offhand estimate. Though you do bring up that you can't expect good quality at such high framerates unless you're specifically doing greyscale since the panel's response time is so low.
epicwisdom wrote:
In more detail about the LCD, do you know which exact model is found in the 84+ (since you referenced the model of the driver)? Knowing the exact dimensions would be helpful. That picture of the LCD driver doesn't have anything for scale, and while it's possible to use the whole calculator as a scale, that seems a bit too approximate.
To my knowledge, none of us has found the precise LCD that TI uses. However, if you were to modify the TI-84 Plus C Silver Edition, you'd already have a 320x240 color LCD to manipulate.

Quote:
Given the ~30 fps limit, a replacement would probably be best. Out of curiosity, are LCDs of this size (about 2.8" diagonal) typically power-hungry?
Black and white and passive, no. Color with a backlight, very.
KermMartian wrote:
epicwisdom wrote:
In more detail about the LCD, do you know which exact model is found in the 84+ (since you referenced the model of the driver)? Knowing the exact dimensions would be helpful. That picture of the LCD driver doesn't have anything for scale, and while it's possible to use the whole calculator as a scale, that seems a bit too approximate.
To my knowledge, none of us has found the precise LCD that TI uses. However, if you were to modify the TI-84 Plus C Silver Edition, you'd already have a 320x240 color LCD to manipulate.


That would bring a number of other issues up, though.

- Is the driver different?
- Is there still an fps bottleneck?
- Power consumption? (specifically w.r.t. the LCD)

And, of course, price. A used 84+, even an SE, can be found for under $75. One would be hard-pressed to find an 84+ C for under $130.

So would this really be a significant advantage over purchasing a color LCD?
  
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