Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Character LCD Module


  • Please log in to reply
47 replies to this topic

#1 Matt Isenhower

Matt Isenhower

    Advanced Member

  • Members
  • PipPipPip
  • 74 posts
  • LocationSan Diego, CA

Posted 07 August 2012 - 11:26 PM

Hey everyone,

Just a quick preview of the next go!bus module I'm working on -- a character LCD!

Posted Image

This module works with most standard HD44780-compatible character LCDs. Above is a picture of a prototype with a white-on-blue LCD, and here's a picture of the module connected to the mainboard:

Posted Image

The small component near the module connector is a potentiometer for setting the display contrast.

This module will also support LCDs with RGB backlights. With RGB backlit LCDs you will be able to set the color and brightness of the backlight, similar to how you set the color of the RGB LED module.

Quick preview videos of the RGB displays: dark-on-light and light-on-dark.

More information coming soon! It will be at least another month before this module is available for sale, but I'll post more information in this thread when it becomes available :)
Komodex Labs
Follow me on Twitter: @mattisenhower

#2 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 07 August 2012 - 11:29 PM

This module will also support LCDs with RGB backlights. With RGB backlit LCDs you will be able to set the color and brightness of the backlight, similar to how you set the color of the RGB LED module.

I think my heart just skipped a beat :)

We're creating v2.0 of our automated test jigs. They're the Netduino-powered machines that test every Netduino off the assembly line. The new ones are powered by Netduino Go, and I think we just found our petite character display :)

Chris

#3 carb

carb

    Advanced Member

  • Members
  • PipPipPip
  • 352 posts
  • LocationCrystal River, Florida

Posted 08 August 2012 - 01:04 AM

Great job Matt, again. Put me down for a couple when your ready to ship, no rush, just ASAP. :D Nice video. Chuck

#4 Arron Chapman

Arron Chapman

    Advanced Member

  • Members
  • PipPipPip
  • 289 posts
  • LocationOregon, USA

Posted 08 August 2012 - 01:08 AM

Great job Matt, again.

Put me down for a couple when your ready to ship, no rush, just ASAP. :D



I'll second all of that.

When you talk EE use small words, I'm just a Software Developer :)
My Blog/Site and Everything Else

If my post helped you please consider pressing the "Like This" button in the bottom right-hand corner.

 

Oh my. So many things, so little money!!

 


#5 Gutworks

Gutworks

    Advanced Member

  • Members
  • PipPipPip
  • 363 posts
  • LocationOttawa, Ontario

Posted 08 August 2012 - 01:28 AM

Brilliant! I can't wait to get my hands yet another stellar Netduino Go module from Komodex. Kudos Matt!

Steve

#6 JerseyTechGuy

JerseyTechGuy

    Advanced Member

  • Members
  • PipPipPip
  • 870 posts

Posted 08 August 2012 - 01:35 AM

Nicely done. Is it setup like an LCD backpack so we can easily connect our own choice of LCD? Say a 4x20 RGB Backlit?

#7 Matt Isenhower

Matt Isenhower

    Advanced Member

  • Members
  • PipPipPip
  • 74 posts
  • LocationSan Diego, CA

Posted 08 August 2012 - 02:43 AM

Nicely done. Is it setup like an LCD backpack so we can easily connect our own choice of LCD? Say a 4x20 RGB Backlit?

I am planning on selling this module fully assembled, with an LCD attached so no soldering is required. There will likely be several LCDs to choose from (e.g., positive RGB, negative RGB, and white-on-blue).

If you (or anyone else) would like to purchase the module without an LCD, please let me know once the modules are available and I'll be happy to send you one with a discount. If there's enough demand I might make that option available on the store as well.

Regarding other sizes -- this shouldn't be a problem, but I will need to do some testing to be sure. The PCB has been sized around a standard 16x2 display, but it should also work with other HD44780 displays as long as they have the same pin configuration. The display will be a bit bigger than the module, but that shouldn't cause too much trouble unless it hangs over the module connector on the left. You may need to make some changes to the module drivers, but I'll try to make sure the module firmware works for either situation.

Regarding other RGB displays -- the board is currently designed around an RGB display that has a common cathode line. I think the only 20x4 RGB LCD I've seen is the one sold at Adafruit, and that has a common anode backlight so it wouldn't work with this module in its current configuration.

By the way, I did some testing with Adafruit's 16x2 RGB LCDs (which are also common anode) but I found a few problems with them. First, they appeared to be STN displays (similar to the one pictured in the original post) and had a blue tint in the dark areas rather than the deep black you get with FSTN displays. Also, while they feature integrated backlight resistors, the largest resistor was on the common anode line. The RGB cathode lines each had 10 ohm resistors, but the anode line had a 100 ohm resistor. As a result, I wasn't able to turn all three colors on at once and mixing colors turned out to be pretty difficult as well.

The datasheet for their 20x4 RGB display says it has an FSTN LCD, so it should be better in that regard but I'm not sure what its resistor configuration is. Regardless, since it's common anode it wouldn't work with this module but I might be able to make some changes to accommodate that.
Komodex Labs
Follow me on Twitter: @mattisenhower

#8 Fabien Royer

Fabien Royer

    Advanced Member

  • Members
  • PipPipPip
  • 406 posts
  • LocationRedmond, WA

Posted 08 August 2012 - 02:51 AM

Nice job Matt :) It's good to see the module ecosystem growing. -Fabien.

#9 PhillipMorris

PhillipMorris

    Member

  • Members
  • PipPip
  • 17 posts
  • LocationSerres, HELLAS

Posted 08 August 2012 - 08:25 AM

Great job Matt !!! What about special characters support ? e.g. Greek letters ?

#10 Stefan

Stefan

    Moderator

  • Members
  • PipPipPip
  • 1965 posts
  • LocationBreda, the Netherlands

Posted 08 August 2012 - 08:31 AM

With the HD44780 interface, it's possible to add custom characters: http://www.circuitva...44780-16x2.html In the HD44780 datasheet, page 17, table 4, you'll see all supported characters: http://lcd-linux.sou...ocs/hd44780.pdf I'm not too familiar with the greek characters, but this may help. Matt: are you going to support all HD44780 commands, or at least keep the option open to send raw data to the display, so people can extend this themselves?
"Fact that I'm a moderator doesn't make me an expert in things." Stefan, the eternal newb!
My .NETMF projects: .NETMF Toolbox / Gadgeteer Light / Some PCB designs

#11 ByteMaster

ByteMaster

    Advanced Member

  • Members
  • PipPipPip
  • 76 posts

Posted 08 August 2012 - 12:13 PM

Very nice Matt - I needed something like this for status on my current project, now I don't have to create one =D Sign me up! -twb
Kevin D. Wolf
Windows Phone Development MVP
President Software Logistics, LLC
Tampa, FL

#12 Matt Isenhower

Matt Isenhower

    Advanced Member

  • Members
  • PipPipPip
  • 74 posts
  • LocationSan Diego, CA

Posted 08 August 2012 - 04:31 PM

Great job Matt !!!
What about special characters support ? e.g. Greek letters ?

As Stefan mentioned, the HD44780 controller can handle up to eight custom characters. Here's an interactive character generator and some sample characters:
http://www.quinapalu...hd44780udg.html

Matt: are you going to support all HD44780 commands, or at least keep the option open to send raw data to the display, so people can extend this themselves?

I'd be interested in getting some input from the community about this. Currently the module driver has two methods for updating the display: SetLine1(string) and SetLine2(string). I will be adding a method to set custom characters as well, but beyond that, I'm not sure how many other methods should be added. I think it's important to keep the interface relatively simple so people don't have to think about the specifics of the HD44780 controller to use the display.

This approach could lead to some problems, though, if the user needs other specific functionality of the HD44780 such as blinking cursors. For features like that, I'd probably prefer to abstract the functionality away (e.g., ShowCursor(int column, int row)) than add something more complicated like raw commands.

One other issue with sending raw commands is that go!bus is faster than the HD44780 interface. It would be necessary for the module to maintain a command queue, and if that queue overflows, what should happen? Currently, the module stores the content for lines 1 and 2 and updates the display from memory when not servicing SPI requests. If the line content changes while the display is being updated, it re-sends that line to the display and therefore always shows the latest version of the line content.

As I mentioned though, I'm definitely open to community input regarding the driver interface. I want to keep it simple but I also want it to be capable of doing everything you need :)
Komodex Labs
Follow me on Twitter: @mattisenhower

#13 Nevyn

Nevyn

    Advanced Member

  • Members
  • PipPipPip
  • 1072 posts
  • LocationNorth Yorkshire, UK

Posted 08 August 2012 - 05:02 PM

As I mentioned though, I'm definitely open to community input regarding the driver interface. I want to keep it simple but I also want it to be capable of doing everything you need :)

Just wonder if there is any merit is supporting the micro liquid crystal library as a starting point. The library has had more than 1200 downloads so far. It would give people the chance to port existing code.

Regards,
Mark

To be or not to be = 0xFF

 

Blogging about Netduino, .NET, STM8S and STM32 and generally waffling on about life

Follow @nevynuk on Twitter


#14 Fabien Royer

Fabien Royer

    Advanced Member

  • Members
  • PipPipPip
  • 406 posts
  • LocationRedmond, WA

Posted 08 August 2012 - 05:45 PM

Hi Matt,

Can you please share a link to the license (covering hardware, C# drivers and firmware) under which Komodex modules are released? I may have missed it, but I did not see it on your site.

Thanks,
-Fabien.

#15 Matt Isenhower

Matt Isenhower

    Advanced Member

  • Members
  • PipPipPip
  • 74 posts
  • LocationSan Diego, CA

Posted 08 August 2012 - 06:01 PM

Just wonder if there is any merit is supporting the micro liquid crystal library as a starting point. The library has had more than 1200 downloads so far. It would give people the chance to port existing code.

Good point -- I'll take a look at that library to see if it would be a good idea to implement something similar.

Can you please share a link to the license (covering hardware, C# drivers and firmware) under which Komodex modules are released? I may have missed it, but I did not see it on your site.

You're right, that's something I forgot to specify on the site. The licensing is the same as for Netduino products: The module drivers are released under the Apache 2.0 License and the hardware schematics are released under CC BY-SA 3.0. The module firmware has not yet been released.

I will get that information posted later today. Thanks!
Komodex Labs
Follow me on Twitter: @mattisenhower

#16 Fabien Royer

Fabien Royer

    Advanced Member

  • Members
  • PipPipPip
  • 406 posts
  • LocationRedmond, WA

Posted 08 August 2012 - 06:04 PM

Thanks Matt :)

The module firmware has not yet been released.


Why not release the firmware with the module?

#17 Matt Isenhower

Matt Isenhower

    Advanced Member

  • Members
  • PipPipPip
  • 74 posts
  • LocationSan Diego, CA

Posted 08 August 2012 - 06:12 PM

Why not release the firmware with the module?

This will be posted soon as well, I just need to clean up the source a bit first. I'd also like to get a better distribution system in place, but I may just release it as a zip file in the meantime.
Komodex Labs
Follow me on Twitter: @mattisenhower

#18 Fabien Royer

Fabien Royer

    Advanced Member

  • Members
  • PipPipPip
  • 406 posts
  • LocationRedmond, WA

Posted 08 August 2012 - 06:21 PM

Makes sense. About the distribution system: is there a reason for not using a repository like GitHub / BitBucket / Codeplex?

#19 Matt Isenhower

Matt Isenhower

    Advanced Member

  • Members
  • PipPipPip
  • 74 posts
  • LocationSan Diego, CA

Posted 08 August 2012 - 06:27 PM

About the distribution system: is there a reason for not using a repository like GitHub / BitBucket / Codeplex?

Current plan is to use CodePlex, but I still need to maintain my own internal repositories. Up to this point I have used SVN and the process of maintaining code in two different places with SVN is a bit... difficult, so I need to evaluate other options like hg and git to see if they will make the process easier :)
Komodex Labs
Follow me on Twitter: @mattisenhower

#20 Fabien Royer

Fabien Royer

    Advanced Member

  • Members
  • PipPipPip
  • 406 posts
  • LocationRedmond, WA

Posted 08 August 2012 - 06:45 PM

Last question for you: are you signing up resellers for your modules? ;)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.