New SerLCD...It's an Arduino with a screen?

After perusing the videos, docs, and GitHub repo, it looks like the new SerLCD fixes all the things I disliked about other LCD products. Instead of a clunky backpack with a single I/O interface, it’s got UART, I2C, and SPI, and it’s a single board, which will enable slimmer gadgets and enclosures. Also, since it’s an AVR, and is programmable, it’s much more than a peripheral. Though it seems light on I/O pins, it’s got plenty of communication options for adding peripherals to it. Add a BME280, for example, and you have a digital weather readout for basically no effort at all.

I’ve concluded that the new SerLCD is one of my very favorite gadgets. Good work!

…and here’s a shot of it in action, querying the sensor and displaying the values.

which arduino board do you select in the board manager to develop code for the 328P on the display?

Thanks in advance

Sparkfun’s boards.txt contains the definition for SerLCD. The use an ISP device or even use another Arduino as an ISP to program the SerLCD.

https://github.com/sparkfun/Arduino_Boa … boards.txt

that’s what I thought but the hook up guide calls out selecting Sparkfun serLCD V2 and I can’t find any board with that identification to select. Also, do you know if a schematic is available? I’d like to connect any unused pins to do other things.

thanks

To add the Sparkfun boards, you simply add a URL in your Arduino preferences.

https://learn.sparkfun.com/tutorials/in … rd-manager

I couldn’t find a schematic either. I was hoping that the interrupt pins were broken out.

The firmware is available, which solves many mysteries. https://github.com/sparkfun/OpenLCD

Have fun!

I have the sparkfun AVR boards installed, come to find out the hookup guide is wrong and Sparkfun updated it after I requested more info. the board selected in the Arduino IDE should be “SparkFun SerLCD”

Now that I know I’m selecting the correct board in the IDE, I still can’t upload new firmware. I am testing using code from their github reference, without modification, and it compiles but I can’t get the code to upload. All 10 attempts from AVRdude fail (verbose programming on). I do notice that the black squares on the LCD display will sequentially appear during programming attempts so I know something is happening.

I am using a Sparkfun FTDI board (FT232 breakout) connecting RX/TX/DTR/CTS/3.3V and I have even connected the 3.3V pin on the LCD to an external power supply. All failed the same way.

Any suggestions would be appreciated.

Thanks,

Dan

Hi, just tried to upload the firmware to a LCD-14072.

Mine was loaded with an old version of the firmware and I also wanted to get rid of the Blackight display text everytime the RGB blacklight is adjusted.

The backlight is going to be the Error/Success (Red/Greed) indicator

Same thing, codded UART serial adapte, running off external 3.3V, common grounds no upload. But I can connect at 9600bps and issue commands

Anything on the firmware upload method, or schematic to it Identify the ICSP pins of the 328

Thanks

Clayton

After adding the json file to the boards manager in Arduino 1.8.5, the only connection I made in order to upload was to the 6-pin FTDI end of the SerLCD, just as you see in the photo in my second post. I’m just using a random FTDI I had laying around. No need for external 3.3V supply at all in my case.

Hi Clayton,

I have four of the displays but can only update 1 of the 4. I am using the same FTDI HW and firmware but for whatever reason only one of the displays allow a firmware update. I am in the process of debugging to try and find out why three fail during the upload using the arduino IDE. I have verified that the DTR reset is functioning as intended to pulse a reset to the atmel IC and I have verified that the FTDI board is sending data at 115200. All four of my boards work at 9600 to use the existing firmware loaded from SF. I’m kind of at a loss at the moment trying to think of anything to try next.

I even edited the board.txt file to alter the 115200 upload speed that avrdude uses to try a little slower or faster comm speed in the event there was some clock mismatch at higher speeds but nothing seems to work on the boards that aren’t cooperating.

If I find anything out, I’ll post here.

Rgds,

Dan

for further update, I also can’t upload code using a AVRISP. I identified the MISO, MOSI, CLK and R pins by ringing them out with a DMM to the ATMEL pins directly. The MISO is SDO on the serLCD pcb, the MOSI is SDI and SCK is SCk. The R pin is also used as the reset. I have been using an external supply to power the display with 3.3V since the AVRISP supplies 5 V.

I have not been able to burn bootloader or upload code so far on 7 out of 8 of the displays I have. I’m not sure why one of the displays works while 7 don’t even though the application loaded in the displays from SF function normally.

I can’t get any reply using AVRDUDE, not even the device signature.

I have been able to burn the bootloader to a different 328P based Arduino I have so the bootloader code fuses and lock bits should be ok.

If I find more I’ll reply back here. If anyone has any suggestions on what to try next, I’m all ears.

Thanks,

Dan

Solved !!!

R9, used for the RESET pullup, is too small at 10K. 10K is normally sufficient for an Arduino with the series capacitor to reset the Atmel IC but since the reset function is shared with the LCD drivers IC’s the pulse through the cap is not pulled low enough to issue a proper reset. I replaced the 10K with a 20K and firmware updates as well as ICSP now function properly. The 10K is on the hairy edge of working which explains why not all boards experience this issue.

Further update—

So the 10K resistor is actually ok. I have now proven that the displays that aren’t working are missing the bootloader. The reason I thought the 10K needed to be altered was that the ICSP connected to the SPI pins and the R pin was failing due to the serial cap needed for serial bootloader programming. The ICSP can’t tolerate this cap on the R line so in order to get the AVRISP to work you need to connect the reset wire to the “other side” of the serial capacitor and then the AVRISP works fine. I did this and uploaded the bootloader to a defective LCD display. After that, I then connected the FTDI interface to the normal serial connections (including the R terminal with the 10K as is and the serial capacitor in place) and I can now upload custom firmware using the Arduino IDE as expected. I will post a picture of the board with the reset wire bypassing the serial capacitor to be used for ICSP only. If you can’t upload code with an FTDI board through the Arduino IDE the bootloader is likely missing.

Rgds,

Dan

The location for connecting the reset to the ICSP (AVRISP) is shown, on the left side of capacitor C3. With this connected to reset and the MISO, MOSI, CLK, GND and external Vcc(3.3v) connected the burn bootloader function in the Arduino IDE should work and this will then allow you to upload your own application via the serial bootloader as shown in the SF hookup guide. Keep in mind that the FTDI serial upload(bootloader upload) will still use the R connection on the interface header because the series capacitor is required for that method.

Good luck,

Dan

On the latest batch of SerLCDs that I ordered, I also observe the same issue uploading with FTDI, necessitating burning the bootloader using ISP (SPI). As a follow-up to wangcheung’s post (thank you!), the conductor on the left side of C3 is continuous with the RST terminal, which is a more convenient means of connecting a signal for ISP.

Using an UNO as an ISP, I’m able to burn a bootloader, which restores the ability to use a FTDI to upload code from Arduino IDE.

You’re right, the RST is the same point I mentioned. I was focused on the R terminal at the ICSP pins and missed the RST pin. Good catch, thanks.

Sparkfun support (Mark Lindemer) appreciates the heads-up on the bootloader issue, since these are supposed to ship with an Arduino compatible bootloader pre-installed. Thanks again, wangcheung for this discovery.