Personal Project about exploring the control of a HD44780 through Beaglebone.
There are many LCD display around us these days. "Character Display" are fading out. I believe that is because the color display are getting cheaper and cheaper. Sure they can do much more things compare to a typical character display. But the character display is something like "7-Segment-Display", which belonge to the part of our memory. Since some days before I saw a youtube view showing around tuning the HD44780 Character Display, to let it show very very stylful stuffs. I decided to do something by myself.
Beautiful Demo from others
- LCD Graphics MegaDemo HD44780
- HD44780 Graphic Transitions (Forum that talked about these MegaDemo)
- Odometer effect Link1 Link2
- LCD Audio VU meter as a shield of Arduino
- ChibiMo: Arduino + KS0108 graphics LCD = USB Monitor
- Tetris
- 16x2 LCD 8 bit Mario animation
- Arduino animation using easing functions [//]: # ( ASCII Demo not display related: https://www.youtube.com/watch?v=6-SmBeeXRBQ )
Linux proc/daemon
WIKIs
Reference Link:
- http://www.thebrokendesk.com/post/writing-to-an-lcd-screen-with-the-beaglebone-black/
- https://github.com/Wicker25/Rpi-hw (C++ Library for Raspberry pi)
- https://www.youtube.com/watch?v=31IZaJWMYjU
- How to Control LCD Displays | Arduino Tutorial. (Basic working logic about how to control the display)
- github repo of the Beaglebone built-in chip pru
- C Library for HD44780 Display control (TI M430)
- Text Tutorial about special character
- Paul's LiquidCrystal Library (LiquidCrystalFast) looks very very good for the working status for me.
- 4 bit mode
- Beaglebone cross-compile-tool-chain for Windows user
- Dincer's JavaScript LCD Simulator
Some important note:
- In 4 bit mode, first upper nibble, then lower nibble.
- Because the busy flag (FG) is set to 1 while an instruction is being executed, check it to make sure it is 0 before sending another instruction from the MPU. (HD44780.pdf P.24)
Other discoveries
- overo-blinkm: control BlinkM in Linux Command line It looks like that BlinkM has really some nice scripts build into their firmware. TODO: Fork this repo, pulling some requests to it: / in tool-tips list, play-script argument "-n num_repeats" is also optional. If it's not specified, the loop go permanently. So it should be written like "[-n num_repeats] / Add new settings for beaglebone black in "i2c_functions.c"
- The Linux Kernel Module Programming Guide "/proc File System" are virtual file system that contain system runtime informations & let user modify these parameters