I'm driving #twatch by using LCD Smartie which boost the functionallity of the device.
Since today I discovered two (possible) bugs when using the program.
1. when I'm changing the contrast on the LCD Smartie program settings some garbage are appearing on the screen. :(
2. Custom characters are not appearing correctly on the screen. This limits the screen usage since lot of things can be created by utilizing custom characters.
Can somebody confim check the above?
1. adjustable contrast is not supported so the twatch wont understand the commands being sent... hence the garbage on the screen. that said, providing there's some spare pins on the PIC then theres nothing stopping you adding a digital pot and a few lines of code... it shouldn't be all that hard and would be quite a cool addition
2. I haven't actually had time to try my twatch yet but I can't see why the custom characters wouldn't show up properly. do all custom characters fail or is it just odd ones?
shouldnt need a digital pot for contrast.
Just a 5v tolerant pin and some pwm should be able to do it.
I'll double check the custom character code, I've never properly tested it other than implementing it according to spec.
Here's the command processing code:
http://code.google.com/p/dangerous-prot ... rver.c#169 (http://code.google.com/p/dangerous-prototypes-open-hardware/source/browse/trunk/%23twatch/source/twatch-v0b/LCDTCPServer.c#169)
Ignore the comment that the custom character codes doesn't do anything yet, it does:
case CUSTOM_CHARACTER: //9 parameters (character #, 8 byte bitmap)
LCD_WriteCGRAM(par[0]);//write character address
for(i=1; i<9; i++) LCD_WriteRAM(par[i]); //send 8 bitmap bytes
break; //do nothing, no special characters yet
@limbo - Here's a new firmware that explicitly exits CGRAM (character gen ram) after a character is written. I think that was the problem, LCD Smartie entered CGRAM, wrote 8 characters, and then sent text. I haven't tested because I don't have anything that uses custom characters handy, but I think it will solve the problem. If it works for you, would you please let me know.
case CUSTOM_CHARACTER: //9 parameters (character #, 8 byte bitmap)
LCD_WriteCGRAM(par[0]); //write character address
for(i=1; i<9; i++) LCD_WriteRAM(par[i]); //send 8 bitmap bytes
LCD_ExitCGRAM();
break;