KermMartian wrote:
Ivoah wrote:
Yay progress! Boo problems Sad What other interface modes does the breakout support? I've got an LCD hooked up to my Pi with SPI and it runs just fine, especially for emulating a calculator.
My previous LCD, controlled by an ILI9341, was broken out on a board that only provided an SPI interface, whereas this one provides a 16-bit RGB interface. I remain slightly hopeful that I might uncover SPI commands that will allow me to specify an SPI data mode. Is anyone familiar with a minicom-like application for talking to SPI devices, hopefully with the ability to set a clock speed? I guess I'd also have to be able to poke other GPIOs.
My tool of choice for prodding at things over SPI would be a Bus Pirate, but I don't think it'll do you any good in this case.
Will the TI-87 emulate the TI-76.Fr, TI-82 Stats.Fr and TI-82 Advanced? The TI-76.Fr was only released in France and has fewer features than the TI-73 and TI-83, but has some features that the TI-73 lacks, in addition to being in French. The TI-82 Stats.Fr is a French version of the TI-83 ROM and the TI-82 Advanced is a locked-down version of the TI-84 Plus Silver Edition (no 3rd-party ASM/App support)
DJ_O wrote:
Will the TI-87 emulate the TI-76.Fr, TI-82 Stats.Fr and TI-82 Advanced? The TI-76.Fr was only released in France and has fewer features than the TI-73 and TI-83, but has some features that the TI-73 lacks, in addition to being in French. The TI-82 Stats.Fr is a French version of the TI-83 ROM and the TI-82 Advanced is a locked-down version of the TI-84 Plus Silver Edition (no 3rd-party ASM/App support)


Kerm has said that he plans to use jsTIfied for the emulation, so it will support whatever jsTIfied does.
Ivoah wrote:
Kerm has said that he plans to use jsTIfied for the emulation, so it will support whatever jsTIfied does.
Actually, he said that he will use jsTIfied if it's fast enough, but otherwise, use TILEm.
Bumpity doo da. With the release of the Raspberry Pi Zero, do you think you might pick this project back up and finish it? I remember you were having issues with the odroid.
I have two Pi Zeros now, but I think I would still prefer to use the ODroid for this, including because it has a built-in battery management IC that the Pi Zero lacks. My biggest problem was actually that I couldn't find an LCD of the proper size and resolution that had an interface compatible with the Pi. I'm still working on it, but I appreciate the reminder to put it a little higher on my TODO list.
KermMartian wrote:
I have two Pi Zeros now, but I think I would still prefer to use the ODroid for this, including because it has a built-in battery management IC that the Pi Zero lacks. My biggest problem was actually that I couldn't find an LCD of the proper size and resolution that had an interface compatible with the Pi. I'm still working on it, but I appreciate the reminder to put it a little higher on my TODO list.

I'm glad to hear this project isn't dead! Have you looked into something like Adafruit's PiTFT? They have all the necessary kernel modules already baked into the latest Raspbian release.
KermMartian wrote:
I have two Pi Zeros now, but I think I would still prefer to use the ODroid for this, including because it has a built-in battery management IC that the Pi Zero lacks. My biggest problem was actually that I couldn't find an LCD of the proper size and resolution that had an interface compatible with the Pi. I'm still working on it, but I appreciate the reminder to put it a little higher on my TODO list.

I have just scored an exact replacement LCD for my calculator project from a Polish company I ordered from in the past.
Only "downside" is that I have to remove the backlight. The screen is 128x64, monochrome. This is intentional. For your calculator this would be rather inadequate I guess.
Well It's Been a long time, do you mind doing an update please as tifreak8x and I are interested in this.
Tifreak8x actually brought this up in stream a couple minutes ago and was wondering about it.
KermMartian wrote:
*bump* I did a bunch of work on this tonight, trying to get my ODroid-W to talk to this nice 400x240-pixel screen. Unfortunately, in reading the datasheet, it appears that four pins, IFSEL0 and BS0-2, are necessary to set the interface mode (ie, 8 or 16 bit parallel or serial, GRAM or constant DMA). I cannot find where, if any, these pins are broken out on the board, and I haven't the faintest clue which pins are which on the flexible PCB connecting the LCD and the breakout PCB. If I can find some mechanical drawings and schematics of the board, I may be in better shape. Unfortunately, if I can't find a good solution, I might have to switch to a different LCD, especially since I'm going to need to do a fair bit of driver work to get the HX8352C working with FBTFT, as far as I can tell.
Picking up where I left off June 11, 2015, three and a half years and many significant life milestones ago...

I've had one, then two Raspberry Pi Zero Ws for a while, but I couldn't seem to find a way to connect to their Raspbian-flashed selves, because I couldn't figure out what IP address (if any) they had on my home WiFi network, and my USB-to-RS232 adapter also yielded nothing substantive. This evening, with a little back-and-forth with geekboy1011, I succeeded in getting one to connect to my phone's WiFi network, SSHing in, setting a new password, additional WiFi credentials, and an always-on SSH server. I also pulled out that same 2.6", 240x400, 16-bit parallel HX8352-C-powered LCD, and did some idle eBaying, AliExpressing, and datasheet searching. It does seem that the interface select pins are not easily accessible on this board, and since it's discontinued and I'd like others to be able to replicate my work, I'm pondering something like an ILI9326-powered LCD that definitely could support both SPI and 8-bit parallel modes. It appears that I may have up to 28 GPIO pins available to me, so assuming that the LCD takes something like 11 (= 8 data + R/W + backlight) pins, that should leave plenty for things like the keyboard matrix (which, depending on how intelligently I do it, could be up to 8 rows + 8 columns = 16 GPIO, as few as 3 + 3 = 6 GPIO with muxing/demuxing, or potentially just 2, with I2C muxing and demuxing), a UART for debugging, a link port (?!?!) and any other peripherals.

More to come, if I find the time and inclination.
KermMartian wrote:
[...]It appears that I may have up to 28 GPIO pins available to me, so assuming that the LCD takes something like 11 (= 8 data + R/W + backlight) pins, that should leave plenty for things like the keyboard matrix (which, depending on how intelligently I do it, could be up to 8 rows + 8 columns = 16 GPIO, as few as 3 + 3 = 6 GPIO with muxing/demuxing, or potentially just 2, with I2C muxing and demuxing), a UART for debugging, a link port (?!?!) and any other peripherals.

More to come, if I find the time and inclination.


I would suggest doing the matrix in a separate microcontroller. The Pi Zero is incredibly slow and matrixing will eat up signficant CPU time. If you use a Teensy or similar uC, you can simulate an USB keyboard.
Good idea, thank you. That does indeed sound like the most flexible solution, as much as I like the idea of the keypad being more tightly integrated.
*bump* So, I received my LCDs from China, and I set to work doing some testing. Notably, the description says that it supports 8-bit and 16-bit transfer modes, and the ILI9326 certainly supports 8-bit, 9-bit, 16-bit, and 18-bit i80 transfers, but there didn't seem to be an exposed pin to switch between 8-bit and 16-bit mode. I'm making the educated guess that pin 1 on the LCD, marked "NC" in the one blurry diagram the Aliexpress seller page provides, is actually the ID0 pin for the ILI9326, especially given its order among the pins and the fact that it does indeed appear to be connected.

My first order of business was trying to solder some leads to the LCD to control it. I connected to "NC" (let's just call it ID0 for now), IOVCC, VCC, GND, RD, WR, CS, RS (or DC if you prefer), DB0-DB7, and LEDA and LEDK1-4. I used 30AWG wire, gently tacked onto the 0.8mm-spaced (0.5mm x 2.0mm) pads.



My first test with the Raspberry Pi Zero W and fbtft yielded only an all-white, uninitialized screen. For future reference, my command (encoding information including my GPIO mapping) is currently thus:


Code:
sudo modprobe fbtft_device custom name=fb_ili9325 buswidth=8 gpios=cs:2,dc:3,wr:4,reset:17,db00:27,db01:22,db02:10,db03:9,db04:11,db05:5,db06:6,db07:13 width=240 height=400




Further troubleshooting showed that my connections all seemed correct, non-crossing, and low-resistance. I noticed, however, that i80 8-bit mode for the ILI9326 requires using bits 9-16 (which I believe are my LCD module's DB8-DB15). I therefore gently separated out the header I had already attached to DB0-DB7, and added a header for DB8-DB15. Unfortunately, I still have no joy. I noticed that it looks like some of the fine copper connections have hairline fractures in them, presumably from the mechanical stress of the wires attached, so I may (1) try to solder across the gaps, or (2) just grab one of these and use it with the other LCD from my Aliexpress order.

Dang, I don't have a lot of experience with LCD's - and even then, only via SPI - I found the documentation from Chinese suppliers to be cryptic at best.

That being said, I do recommend testing with one of those breakout boards - The LCD's I were using had an 0.4mm pitch lol.

One thing I did manage to get was the correct data sheet and initialisation sequence from the supplier - as getting things working with a Pi required a custom init sequence in my case. Did they supply any such documentation?

Out of curisoity is there a reason why you didn't go for an LCD with an SPI interface? Though it is an absolute mine-field trying to find an appropriate LCD in such situations.
tr1p1ea wrote:
Dang, I don't have a lot of experience with LCD's - and even then, only via SPI - I found the documentation from Chinese suppliers to be cryptic at best.

That being said, I do recommend testing with one of those breakout boards - The LCD's I were using had an 0.4mm pitch 0x5.
Yeah, I think that's going to make my life notably easier.

Quote:
One thing I did manage to get was the correct data sheet and initialisation sequence from the supplier - as getting things working with a Pi required a custom init sequence in my case. Did they supply any such documentation?
No, the Aliexpress seller didn't seem to have it, and no amount of scouring the internet using every method I could think of yielded success. At least I know it has an ILI9326, which eliminates a lot of the guesswork.

Quote:
Out of curisoity is there a reason why you didn't go for an LCD with an SPI interface? Though it is an absolute mine-field trying to find an appropriate LCD in such situations.
Two reasons: I wanted a 2.6" widescreen-aspect LCD to roughly fit the TI-83+/SE case's display aperture, which didn't give me a lot of choices, and I wanted to get a better framerate than SPI can support for pushing this many pixels. Smile
Kerm!

I sent the seller a message stating that I needed to see the datasheet and any code they had for this display - and they sent me this! http://tr1p1ea.net/files/downloads/ILI9326_tft030.7z

It has the init sequence in there, which might be of help!
Oh wow, thanks for doing that, tr1p1ea! That might indeed solve my problems: I'll give it a try once I have the breakout board to eliminate mechanical failure from the possible causes of the blank white screen.
*bump* Thanks in part to tr1p1ea's acquisition of those datasheets, and sitting down with the LCD that I'm fairly sure now has fractured contacts on the FPC, a strong lamp, and my phone's camera on high magnification (I can't find my microscope!), I have more information. I believe that this LCD is semi-permanently set to 16-bit parallel mode, but that I have the ability to switch it to 8-bit mode. A bit of background, mentioned elsewhere in this thread: the ILI9326 has 3 pins that configure the transfer mode, IM0/ID, IM1, and IM2. More on that in a second. First, just for fun, I examined what actually goes across the glass to the ILI9326 from the FPC; notable are four very tightly packed groups, appearing near the left of this image, that actually appear as four single broad dark-gray traces. Those are some control pins, DB1-8, DB10-17, and then more control pins.



That final grouping led me to believe that the IM0-2 pins might actually be broken out to the FPC, not just hard-set to low or high on the glass. I therefore sat down with the FPC and traced out the likely IM0/IM1/IM2 pins:



Currently IM0 is GND (0), IM1 is IOVCC (1), and IM2 appears to be connected across a passive that I assume is a 0-ohm resistor to GND (0). 010 is the i80 16-bit interface. Happily, the i80 8-bit interface is 011, and it looks like there's a set of pads right there that would let me move the passive and put IOVCC on IM2. My next step is going to be steeling myself for some extremely tiny soldering (that passive appears to be 1005 or smaller) and move that passive over.
Glad to see you working on hardware projects again.
Good luck getting the lcd working Smile
Wow good investigating, fingers crossed on the micro-soldering ... a pity that it has come to this however!
  
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 4 of 5
» All times are GMT - 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