Kstuck

Member Since: November 18, 2012

Country: United States

  • I'm not a programmer I just tinker with Arduino so I'm just documenting what I got to work and what I couldn't get to work.

    The hookup guide spends more time explaining how to change firmware than anything else. The hookup guide is somewhat useful but it's pretty much what it says a hookup guide. Use the demo code to figure out how to write your program.

    I used the library supplied by Sparkfun along with the softwareserial library on an Arduino Mega 2560 and an Arduino Uno.

    For me the vu meter example didn't do anything for me as I could never figure out the code. Far more code for the vu meter than I needed just to figure out how to get this display to work. For an advanced programmer it would probably have helped but for a less than novice programmer it was no help. A more simple example would be preferred.

    Display works but you have to give it time to work so add delays in after every command to the display. 1 - 2 seconds seems to be about right for most commands. I tried different baud rates and all seem to work but all need delays after sending the commands to the display.

    I was not able to verify the setHome() function works but it doesn't seem necessary as you can send the curser anywhere you want with setx() and sety().

    I never could get clearScreen() to work correctly but I used eraseBlock(0,0,128,64). Give it a 2 - 3 second delay after the command to get the screen cleared. It was odd that the demo program used clearScreen() extensively and it worked but I wasn't able to get it to work with any code I wrote. Likely a programming issue on my side and no fault of the display or firmware.

    After uploading new code to the Arduino I found some strange things happening on the LCD. After I uploaded the code I would give it a chance to run and it usually seemed like it wouldn't work or would write charectors in the wrong place. Then I started manually resetting the Arduino with the reset button on the board after an upload of new code and the display would reflect the new version that was uploaded.

    Also ran into something with the serial buffer that it wouldn't print the last character you send it. Then when you send it the next string it would start with the last character of the previous string and drop the last character of the string you just sent it. I saw mention of this somewhere in some documentation that I found during a search but I couldn't find it again once I realized what was happening. This lead to clearing the serial buffer in the setup routine of my program before the display needs to do anything.

    Don't forget to initialize an instance of softwareserial with the correct pins and setup the baud for softwareserial in the setup portion of your sketch.

    The only way I was able to send decimal numbers to this display was to send the integer part of the number (left of the decimal) with printNum() then take the decimal part of the number and change it to an integer and round it to the decimal precision you are looking for and use printNum() to send it to a different place on the screen past the decimal. Print the number in 2 parts using printNum() to two different places on the screen so it looks like a number with a decimal but is actually two integers separated by a decimal. There is probably a better way to do this I just didn't figure it out.

    Overall the display seems to work it's just very slow so if your project can tolerate slowing down the loop with delays to print to the LCD display you are good to go.

No public wish lists :(