[f] AMB on Facebook

OLEDuino

The face and heart of the system.

Moderator: linux-works

OLEDuino

Postby acideagle » October 6th, 2018, 6:57 pm

Any chance the LCDuino will see an update supporting OLED displays?

Has anyone implemented their own solution?

Some even have code to list tracks playing, custom fonts, etc.

Something like the below:

Image
Last edited by acideagle on October 24th, 2018, 6:43 pm, edited 1 time in total.
acideagle
 
Posts: 60
Likes: 0 post
Liked in: 0 post
Joined: June 11th, 2018, 10:21 pm
Location: USA
Country: United States (us)

Re: OLED with LCDuino Update?

Postby amb » October 6th, 2018, 8:53 pm

Currently the LCDuino-1 firmware is hard-coded to support a dual row, 16-character wide alphanumeric display with parallel interface. It cannot work with the style of display shown in the photo above, neither does it know anything about the currently playing track (where would it get that info)?

The firmware works with a wide variety of 2x16 LCD displays without problem. The only 2x16 OLED display that’s commonly available is one from Newhaven, and it ought to be compatible with the working LCD displays (except it has no ability to dim).

The reality is that we couldn’t get it to work properly. Most of the time it starts up showing garbage characters. Only very occasionally it starts up with the proper text. We tried putting delays in various places during the initializing sequence to no avail.

If anyone would like to take a stab at the firmware code to make it work reliably with the OLED display, you’re welcome to do so. We would love to release the fix as an update.
User avatar
amb
Site Admin
 
Posts: 10555
Likes: 191 posts
Liked in: 505 posts
Joined: March 29th, 2010, 9:49 pm
Location: Sunnyvale, CA
Country: United States (us)

Re: OLED with LCDuino Update?

Postby acideagle » October 9th, 2018, 11:53 am

Someone got info to pass through using USB, presumably info from a computer was passed to the display.

Have you looked at the code base here?

https://drive.google.com/drive/mobile/f ... drive_open

OLED and LCD (similar to LCDuino) compatible firmware for arduino from a diyaudio LDR project.

Could possibly be adapted to work with LCDuino.
acideagle
 
Posts: 60
Likes: 0 post
Liked in: 0 post
Joined: June 11th, 2018, 10:21 pm
Location: USA
Country: United States (us)

Re: OLED with LCDuino Update?

Postby amb » October 9th, 2018, 3:36 pm

Thanks for the pointer, I will have a look.
User avatar
amb
Site Admin
 
Posts: 10555
Likes: 191 posts
Liked in: 505 posts
Joined: March 29th, 2010, 9:49 pm
Location: Sunnyvale, CA
Country: United States (us)

Re: OLED with LCDuino Update?

Postby acideagle » October 16th, 2018, 9:41 pm

Also it seems some have implemented code tweaks that remove the relay clicking that’s inherent in many stepped designs.

That would be a nice addition as well to the code base, although maybe not as appealing as the oled support.
acideagle
 
Posts: 60
Likes: 0 post
Liked in: 0 post
Joined: June 11th, 2018, 10:21 pm
Location: USA
Country: United States (us)

Re: OLEDuino

Postby acideagle » October 25th, 2018, 8:15 am

Seems the VxD code supports two 128x64 OLEDs. In addition, Adafruit has a 16x2 OLED which could be more of a drop in for our purposes, but I think considering the effort involved we would be remiss to not look into utilizing more featured / updated arduino and ICs. I think updating to a larger OLED display would have a lot of plus sides. A big one could be visibility- many I imagine struggle to see the smaller display from across the room.

Anyhow, here's whats out there:

Adafruit128x64 / SSD1306
Libraries: https://github.com/adafruit/Adafruit_SSD1306
PCB: https://github.com/adafruit/Adafruit-12 ... e-OLED-PCB
Datasheet: https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf

SH1106_128x64 // SH1106
Datasheet: https://www.elecrow.com/download/SH1106%20datasheet.pdf
Library: https://github.com/adafruit/Adafruit_SSD1306
Adafruit guide: https://learn.adafruit.com/monochrome-oled-breakouts // PDF form: https://cdn-learn.adafruit.com/download ... akouts.pdf

Adafruit 16x2 OLED Display:
https://www.adafruit.com/product/823
Support Libraries: https://github.com/ladyada/Adafruit_CharacterOLED
Also, the 16x2 above appears to be backwards with the LCD display you use.

You had indicated the LCDuino was hardcoded for dual row 16 character? I imagine you mean it simply ships this way? Are you referring to the y1? But, new firmware can always be compiled and installed yes? Can you clarify what you mean by hardcoded?

Would accepting a 128x64 require board level updates? You also indicated that the chipset was bursting at the seams with code if I remember correctly? Are there other options which could support a larger size firmware? Would utilizing an updated arduino like the nano reduce problems? What about ICs, like MCP23008 or ULN2003?

I admit I haven't taken a deep dive into the code or its implementation with the hardware, hoping you can at least describe the general viability of shoehorning OLED support (both 16x2 and 128x64) into the LCDuino as well as describe some of the snags you reporting running into when you attempted implementation.

I personally wouldn't see OLED support worthwhile if forced to stick with only a 16x2 display. 16x2 and 128x64 opens up a lot of possibilities and makes configuration / setup more fluid, creates options for those who have already built your designs and want a minor visual update as well as a much more attractive and larger interface for those starting a build from scratch. The larger OLED creates many possibilities for different visual layouts, font sets, etc. and imho would feel more like a true update instead of a patch that would seem obsolete as soon as its released, given the technological improvements in such things since the LCDuino was originally developed.
acideagle
 
Posts: 60
Likes: 0 post
Liked in: 0 post
Joined: June 11th, 2018, 10:21 pm
Location: USA
Country: United States (us)

Re: OLEDuino

Postby amb » October 25th, 2018, 4:24 pm

By “hard coded” I mean the existing firmware is written to assuming a 2x16 display. The locations of various indicators (I.e., input/output port display, realtime clock, volume attenuation display and bar graph, etc.) are fixed and will not scale with larger displays.

The only LCDuino-1 board-level assumption with regards to the display is that it’s a Hitachi-compatible parallel device (not serial). The display’s physical interface connector pins must of course be compatible so they can be mated together.

linux-works had built a three-board δ1 relay volume control with the LCDuino-1 driving a 4-row monochromatic LCD display (with the same hardware interface) and a modified firmware for his specific implementation.

The choice of ATmega328 processor was made based on the fact that it was a capable device that happens to be available in a through-hole DIP package. It allows me to pre-flash the bootloader and firmware in a special jig with a zero insertion force socket, and offer them in AMB audio shop.

The pre-flashing is important because the bootloader cannot be flashed on the LCDuino-1. Only the firmware can be flashed/reflashed onboard.

The current firmware does fill up most of the available space in the ATmega328, and is the result of adding so many features.

Faster processors with larger memories are available from Atmel but they’re SMD, which makes it impossible to pre-flash them. Also some of these other devices are not well supported by Arduino. Moving to a different processor will involve board-level changes to the LCDuino-1 board and firmware, not to mention how to get the bootloader and firmware on the chip. None of these are what we’re prepared to do.

The firmware contains its own LCD display driver because at the time of initial development, the available driver libraries were buggy. I don’t know whether that situation has improved as we have not re-tested with them.
User avatar
amb
Site Admin
 
Posts: 10555
Likes: 191 posts
Liked in: 505 posts
Joined: March 29th, 2010, 9:49 pm
Location: Sunnyvale, CA
Country: United States (us)

Re: OLEDuino

Postby acideagle » October 25th, 2018, 6:52 pm

So, in short, we are talking 16x2 or bust?

I could take a stab at the adafruit 16x2 linked to above. Would this fit your compatibility description?
acideagle
 
Posts: 60
Likes: 0 post
Liked in: 0 post
Joined: June 11th, 2018, 10:21 pm
Location: USA
Country: United States (us)

Re: OLEDuino

Postby amb » October 25th, 2018, 7:33 pm

acideagle wrote:So, in short, we are talking 16x2 or bust?

Not necessarily, as I said, linux-works used a display with 4 character rows (I don't recall the width). It's a matter of how much firmware hacking you want to take on.

I could take a stab at the adafruit 16x2 linked to above. Would this fit your compatibility description?

From the Adafruit 16x2 OLED page:

The good:
"They are pin/shape compatible with 'standard' HD44780 LCDs"

The bad:
"The code is slightly different (they're more timing sensitive) so we have our own Arduino library that plays better with the OLEDs than the standard LiquidCrystal library."
"This OLED is not compatible with any of our LCD shields or backpacks!"

So, you can certainly try it, but don't get your hopes up too high that it would "just work". The "timing sensitivity" mentioned is probably the same or similar to the Newhaven OLED display I tried. If you want to dig deep into adafruit's code, you might be able to find what their "fixes" are and apply it to the LCDuino-1 firmware.

By the way, the Newhaven unit I tried is the 80x36mm 16x2 blue OLED display with part number NHD-0216KZW-AB5.
Here's the page on their site showing other color variants of the same display:
http://www.newhavendisplay.com/characte ... 9_576.html
User avatar
amb
Site Admin
 
Posts: 10555
Likes: 191 posts
Liked in: 505 posts
Joined: March 29th, 2010, 9:49 pm
Location: Sunnyvale, CA
Country: United States (us)


Return to LCDuino-1 display I/O processor

Who is online

Users browsing this forum: No registered users and 0 guests

Quick Links

AMB audio DIY resources
AMB audio shop