Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add sym/cmp for HD44780 compatible displays #109

Merged
merged 2 commits into from
Sep 7, 2023
Merged

Conversation

ubruhin
Copy link
Contributor

@ubruhin ubruhin commented Sep 6, 2023

SUMMARY

There are many displays with a HD44780 compatible interface so they can all be represented by the same symbol and component. Just the backlight may or may not be available, thus added both variants.

With backlight:
image

Without backlight:
image

DATASHEETS / REFERENCES
OPEN QUESTIONS / UNRESOLVED ISSUES

None.

CHECKLIST
  • I have read and followed the library conventions¹.
  • For packages, I followed IPC7351C (see details in library conventions).
  • For modified elements, I bumped their version number².
  • I already used the new library elements in a design and verified their correctness (optional).
  • I'm the copyright owner of the added content (i.e. the changes are made by myself, not copied/imported from somewhere else).
  • I agree to publish all my changes under the CC0 Public Domain License³, allowing everyone to use and modify the content without any restrictions.

¹ Library Conventions: https://docs.librepcb.org/#libraryconventions
² Minor version bump if only metadata was modified (e.g. "0.1" -> "0.1.1"), major version bump if functional changes were made (e.g. "0.1" -> "0.2")
³ CC0 Public Domain License: https://en.wikipedia.org/wiki/CC0

@ubruhin ubruhin added addition New library element. ready for review Waiting for review by maintainers. labels Sep 6, 2023
@dbrgn
Copy link
Contributor

dbrgn commented Sep 6, 2023

First of all, does this really belong in the base library? Shouldn't it be part of LibrePCB_ICs.lplib?

Nice, that you marked pins 0-3 as optional and 4-7 as required! Most times, these displays are run in 4-bit mode.

Some keywords would be nice. Maybe "hd44780,hitachi,lcd,character lcd"?

The name "V0" seems a bit non-intuitive for the contrast pin. Wikipedia calls it "Vee", which isn't better. On all my LCD modules I have laying around (5, although I should have some more, which I can't find right now), if the pin is labelled on the silkscreen, it is named "V0". I wonder if "Contrast" might be better? (However, if "V0" is the established term, it's probably best to stick to it.) (Edit: I think V0 is fine.)

You named the backlight pins "LED". Was that on purpose? To quote WP:

Character LCDs may have a backlight, which may be LED, fluorescent, or electroluminescent. The nominal operating voltage for LED backlights is 5V at full brightness, with dimming at lower voltages dependent on the details such as LED color. Non-LED backlights often require higher voltages.

(Changing this would also have an effect on the descriptions.)

@ubruhin
Copy link
Contributor Author

ubruhin commented Sep 6, 2023

Thanks for taking a look at this!

First of all, does this really belong in the base library? Shouldn't it be part of LibrePCB_ICs.lplib?

First I had exactly the same thought! 😃 Mainly because HD44780 is an IC. But this sym/cmp does not represent the IC (it has many more pins) but an LCD module which is not an IC. I mean, it doesn't fit perfect for either library but somehow the base library feels more intuitive for me as most of the other optoelectronic parts are here as well.

Some keywords would be nice. Maybe "hd44780,hitachi,lcd,character lcd"?

Will do! Maybe just without hd44780, actually I think we're overusing keywords a little bit 😂 Every term already contained in the name does not need to be duplicated in the keywords.

The name "V0" seems a bit non-intuitive for the contrast pin. [...]

I agree it's not intuitive. But I also saw that this seems to be the most widely used term so I think it makes more sense than something like "contrast".

You named the backlight pins "LED". Was that on purpose?

To be honest, so far I'm not aware of a display calling it other than LED+/-. But probably there exist other backlight types. I just wonder whether they should have a separate component then 🤔 Most probably the driver circuit of the backlight needs to be quite different for different kinds of backlights... For example naming it BL_VCC and BL_GND (or something like that) could be misleading for an LED backlight since not a specific voltage is required, but a specific current.

@dbrgn
Copy link
Contributor

dbrgn commented Sep 6, 2023

Every term already contained in the name does not need to be duplicated in the keywords.

Yeah, I wasn't sure about that, so I put it in the list again 🙂 Makes sense though.

To be honest, so far I'm not aware of a display calling it other than LED+/-.

All my labelled displays call it A/K 🙂 Which isn't really better, in my opinion.

You're probably right. LED is by far the most common backlight technology, and we can just assume it's using LED.

Maybe we should rename the part to "with LED Backlight", but that's probably overkill.

@ubruhin
Copy link
Contributor Author

ubruhin commented Sep 6, 2023

All my labelled displays call it A/K 🙂 Which isn't really better, in my opinion.

Hmm okay, I agree it's not better 🙈 So let's keep LED+/- for now.

Maybe we should rename the part to "with LED Backlight", but that's probably overkill.

I added it, so now the scope of the sym/cmp should be very clear ;)

Keywords added as well.

Copy link
Contributor

@dbrgn dbrgn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! (But the fixup went wrong.)

@ubruhin ubruhin merged commit e72b0b6 into master Sep 7, 2023
2 checks passed
@ubruhin ubruhin deleted the hd44780-display branch September 7, 2023 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
addition New library element. ready for review Waiting for review by maintainers.
Development

Successfully merging this pull request may close these issues.

2 participants