Large Font for 16x2 Displays

I stumbled across this topic here, but wanted to 'tweak' the look of some of the letters. The original code was really hard to edit, so I started from scratch and wrote up this little sketch+library.

The down-side appears to be with these HD44780 Blue/White displays refresh rate. Any scroll rate faster than about 500ms (per screenfull) leaves traces/shadows like crazy. However, I'm fairly inexperienced with Arduino's and LCDs, so maybe my code isn't as efficient as it could be.

Any tips for making my code faster or otherwise limiting the appearance of traces/shadows?

Here's a link to my post on the adafruit forum too.

r4z0r7o3:
The down-side appears to be with these HD44780 Blue/White displays refresh rate. Any scroll rate faster than about 500ms (per screenfull) leaves traces/shadows like crazy.

These are passive matrix displays, you don't get fast switching without active matrix (a.k.a. TFT)

Why not trying this library?

Doc,
There does not seem to be any code in the repository: Google Code Archive - Long-term storage for Google Code Project Hosting.
I also tried a git clone and got an empty repository.
There are download images but the code does not appear
to be in the repository.

--- bill

As Mark says the problem is with the display technology not the code. If your code were able to make it scroll faster then the display problem would be worse.

Yeah, I couldn't access any code either. I also wanted sub-character scrolling, not just one at a time, but one column at a time. Besides, I needed the programming practice anyway and am comfortable with github.

The other thing I wanted, was to be able to just pass an ASCII string into a function and let it do it's thing. See scrollString() near the end of BigWords.h at https://github.com/cevich/sketchbook/tree/BigWords/BigWords

I took a quick video of what this looks like @ 500ms update (per screenful):

Though I noticed something interesting, if I set it less than 500ms, it looks the same! So there's certainly some gross inefficiencies here. I suspect it has to do with rendering directly onto the screen one character at a time :frowning:

Grumpy_Mike:
As Mark says the problem is with the display technology not the code. If your code were able to make it scroll faster then the display problem would be worse.

Out of curiosity, would a VFD or OLED display not show this artefact so much?

Thinking about it, yeah, I agree. If I make the code faster, it'll probably just look worse. Though for my own edification, what would be the best optimization strategy here?

Could putLCDChar() render into an off-screen buffer during "wait" cycles. Then print the entire buffer when my interval elapses in scrollString()?

The only other strategy I know of is "the long way", instrument each function to track and print an average execution speed. Then rework each function starting with the slowest one. I'm a Linux guy, where strace and ltrace will do function-timing for you.

Are there any handy debugging libraries or similar tools for Arduino which can do this?

would a VFD or OLED display not show this artefact so much?

Correct they would not show this because they have a much faster switch time.

bperrybap:
Doc,
There does not seem to be any code in the repository: Google Code Archive - Long-term storage for Google Code Project Hosting.
I also tried a git clone and got an empty repository.
There are download images but the code does not appear
to be in the repository.

--- bill

Might be a glitch. Here is the download:

http://code.google.com/p/phi-big-font/downloads/detail?name=phi_big_font%2020120322.zip&can=2&q=#makechanges

liudr:
Might be a glitch. Here is the download:

Google Code Archive - Long-term storage for Google Code Project Hosting.

Yes I saw the zip download images.
But it looks like there is not any code in the actual git repository.

--- bill

bperrybap:

liudr:
Might be a glitch. Here is the download:

Google Code Archive - Long-term storage for Google Code Project Hosting.

Yes I saw the zip download images.
But it looks like there is not any code in the actual git repository.

--- bill

I am new to git repository. Still learning about it. Any quick tutorial you know of?