GLCD Graphing Advice Wanted

Thread Starter


Joined Jan 18, 2008

We had a great Spring and warm weather until the end of October in Cleveland. That means I haven't played with hardware or done any coding for 7 months. I got a lot of "farm" projects done, including getting lots of roots out of the middle tank of my septic system in late October. Talk about doing the dirty work...nothing works like your gloved hands of coure. No lunch breaks, either. ;)

Getting back in the saddle has taken 3 weeks. I left the project with some decent graphing functions and a direction in which to progress. That meant adding a FIFO buffer, because the GLCD I am using cannot be read by a serial interface and "scrolling." This post is an update.

Scrolling in the X-axis requires resetting the columns of the GLCD; scrolling in Y-axis only means redrawing and adding a numerical offset to the data. What I show in the attached videos is scrolling in the X-axis with an increment of 40. In actual use, each data increment (roast temperature) is 1 minute, so I plan to scroll every 10 minutes. Y-axis is planned to scroll in 10°F increments. For simulation, I used a generator to produce a slope of 0.5. The graphing area is about 64 x 64 bits of a 132x 64 bit GLCD. The total line is 156 bits (data points) but it goes off screen at the top. The FIFO buffer is just 64 bytes mapped to the linear RAM area of a PIC16F1829. It can easily be increased, but after discussing with my target audience (aka daughters) , they see no need to review the roasting process for a whole day.

The first video shows the scroll without erasing between redraws. The second scroll erases the data on the graph, but not he axes, between draws. I Have not done accurate timing for the erasure. Drawing a full line is about 1.12 ms (8966 Tcy) with PIC at 32 MHz (8 MHz instruction cycle). Based on the time to ease a full screen of 2.48 ms, the graph area is about half that, so about 2.4 ms per scroll. Of course a 1-pixel scroll takes as long as a 40-pixel scroll with this device.

1) How do those times compare to what you usually see?
2) I will definitely consider changing to a GLCD with a serial interface than can be read. Any suggestions?


My apologies for the fuzzy images. I am working with a relatively antiquated camera. It's so "automated" that it will not hold a focus. Sorry about the zipped files. Cannot attach MP4.

EDIT: I did insert some 2-second delays so things can be seen.


Last edited: