Web-enabled lcd messageboard (ENC28J60)

The beginning

Some day my brother brought me this LCD (LM038) he found in an old parts drawer and also showed me this tutorial.
Since I never played around with LCD displays, I thought I'd give it a try on my Arduino.

Everything was dead-simple except for the wiring I made entirely from scavenged parts (FDD ribbon cable and telephone wiring I collected during childhood).
After 3 hours preparing the wiring and 5 minutes copy-pasting and uploading sketch the thing worked like a charm, using the 4 data pins mode (I don't like dealing with lots of wire).

What now?

Well. It worked so easily (thanks to the tutorial)  that I've missed all the fun. So I decided to do something extra, like updating the text over my home network.
Unpacked a cheap ethernet shield (Unofficial) that came from Chinaland few months ago, tested the example sketches, tried to make  some changes to the code and started wondering why it had to be so complicated.
After some research I found out the reason. The crappy shield based on ENC28J60 demands your sketch doing the "TCP-thing" which eats almost all your Arduino's SRAM and your brains while you're trying to figure out how the example works (if you dislike pointers as much as me).
I was lucky enough to land on this page showing how to simply output a variable to the browser, which happened to be my major issue. I don't feel so bad about it because the author had just the same problem.

The result

I cleaned some of the unnecessary code, added output to lcd (had to choose pins that weren't used by the shield), allowed the input of strings rather than just predefined numbers and wrote my own url-decoding code (may still have some bugs).

Now my Arduino-based messageboard shows this simple webpage with a text input which does what it looks like. Maybe later I write some script to run on my PC to show random information like weather forecast on it or twitter updates, whatever.

I haven't yet decided if that's exactly useful, but at least now there's a way of bringing life to the crappy ENC28J60 board you regret buying , just in case that happens.

Source-code attached below. The etherShield library you may download from here (nuelectronics) but it's attached below anyway.

Sergio Lingnau,
Aug 17, 2011, 4:44 PM
Sergio Lingnau,
Aug 17, 2011, 4:49 PM