I got my hands on a couple of dirt-cheap ($50/ea) old 200x16 and 160x24 Lightlink displays.
I`m planning on mounting these boards in our office to display google analytics summary and track our web-site's continuous integration system (TeamCity)
The vendor that sold these displays 'guaranteed that they turn on' - but had no information regarding the controlling board / interface / protocol etc. etc.
Just finished a quick Slack/NodeJS process that`ll update the LED sign with slack messages.
What it does is just listen to incoming messages to the @ledbot user, clear the display (/led/clear) and send the new message to the display (/led/print)
I managed to get my first version of the board working using a PIC24GB002.
For this board, PIC was communicating directly with the AT commands of the ESP (sending AT's and parsing response). the 3 end-points i created were :
/led/clear
/led/print?text=<TEXT>
/led/set-color?color=RED|GREEN|ORANGE
The problems with this board are
Writing and parsing AT commands on the PIC cost me with precious CPU cycles, which in turn caused the display to flicker every time i sent a command to the ESP over the network. The PIC had a 16mhz oscillator connected to it but even with 16mhz the screen was still flickering ever once in a while when i typed a new message
PIC24GB002 didnt have enough IO pins to support the 160x24 display (3 IOs for each row + 4 shared across rows = 13 IOs pins needed)
Iv'e decided that for the next test board i will -
Use a larger PIC - PIC24FJGA006 which have more than enough pins to support the larger 160x24 display
Remove the parsing and REST request processing from the PIC and move it to the ESP
as a 'bonus' - i`m gonna to replace the old 16mhz oscillator with a new 20mhz one - which will hopefully eliminate the flickering completely
I`ve downloaded a number of letter codes designed for LED matrix displays and started playing with each to see which one look best. ended up going with an array of 250 standard 6x8 characters. each character is an array of 8 integers - each integer represent a row of pixels and each bit represent a pixel.
Example - "A" : (112,136,136,136,248,136,136,0)
112 = -ooo---
136 = o---o---
136 = o---o---
136 = o---o---
248 = ooooo---
136 = o---o---
136 = o---o---
0 = --------
Full list of characters supported by display -
After wiring up the letter codes, i managed to get my first TEST going :
I took a part one of the display boards (10x[4x8] blocks) and wired it up to PIC24FJ64GB002, then created a simple loop that`ll call the shift register on the block and attempt to display a message on it
The idea was to check my connection and pin-probing