McGrew, 35, and Northrup, 32, are a husband-and-wife design team who have completed projects for Wikipedia, Clif Bar, and Timbuk2, and recently collaborated with open-source hardware designers Evil Mad Science to create interactive LED-infused coffee tables.
McGrew: “We have three tables — the Wave, the Ripple, and the Pulse — with the same lighting on the inside. They see change and light up in response. If you set something down on it, it lights up, but then calms down and stops twinkling. When you move that item, it will light back up again.”
Northrup: “We wanted to showcase two different ways you can use light. The Wave typically has a glass top, so you’re seeing everything — the circuit board, the LEDs, the patterns they’re making. The Ripple and the Pulse are more of a secret because they have this frosted top that just looks like a really nice table. When you interact with one of them, it becomes more than a table. You get this second, wonderful experience.”
McGrew: “The two big problems LEDs have always had — they weren’t very bright and were very expensive — are going away. We’re leveraging whatever we can get our hands on to help us make cool stuff.”
I ordered a fine graphic LCD from the adafruit store and decided to write a little graphics Menorah to learn how it works. I am not a programmer, and am new to micro-controllers so I learned a lot in the following sketch.
Some of the topics I included are:
Creating functions
drawing graphics with GLCD (I did it by hand for fun, but I assume the bitmap works as well or better)
Text placement in GLCD
debouncing (this doesn’t actually work in the following sketch. If you know why, drop a comment
abstraction (an array determines what order the flames are lit in so you can change it up)
A non-blocking timer. Using delay(); made my button detection icky. I decided to try and find a different way. I’m actually pretty happy with how this part worked out. suggestions on improving efficiency will be appreciated. I found a library in arduino.cc called fuse I think. I could never get the page to load, though so I couldn’t use it.
Lastly, I made this for my wife, and I know next to nothing about the Menorah. Please trust that it was done out of respect and that any mispellings, or cultural gaffes are based on my ignorance alone. Feel free to post corrections in this regard as well.
For more information, check out the LCD datasheet (marginally useful) or the HD4470 datasheet with useful stuff like the character map. To use with an Arduino, we suggest using our library (see below). This one is faster, more complete, uses 1 less pin and is works with more LCDs.
To use, connect pin 1 (GND) to ground, pin 2 (VDD) to +5V, pin 3 (Vo) to the middle of the pot, pin 4 (RS) to Arduino pin 7, pin 5 (RW) to ground, pin 6 (E) to Arduino pin 8, leave pins 7-10 disconnected, pin 11 thru 14 (DB4-DB7) to Arduino pins 9 thru 12, pin 15 (BL+) to +5V and pin 16 (BL-) to ground. See For a detailed photo if you’re having difficulty (the pinout is the same for 16×2 and 20×4 LCDs)
If you’re not using Arduino 17+, then delete the old LiquidCrystal library in Arduino/hardware/libraries and in its place copy the updated LiquidCrystal library. Now in the IDE select the LiquidCrystal->HelloWorld example sketch to try it out! (You may need to adjust the contrast pot.) For a detailed guide on using the LCD, check out the the Arduino LiquidCrystal Reference and LiquidCrystal Tutorial
The LiquidCrystal library allows you to control LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.
The Liquid Font Family is a collection of small bitmap fonts to be used on small displays, e.g. LCD displays on HTPCs, mp3-players, status displays on phones, printers, remote controls, etc.etc.
The overall goal is to provide nice-looking, very readable fonts that allow displaying a lot of information. So in contrast to most other bitmap font projects for tiny fonts, Liquid fonts are proportional fonts, not mono-spaced, because more characters can be displayed horizontally this way, and it also looks nicer. This means they require graphics capable displays. In particular, they are not primarily for 5×7 pixel LCDs, which have hardwired(=missing) horizontal and vertical empty pixel rows and columns to separate characters and lines.
The main work of the Liquid family is ‘Liquid Mean’. This font is a 6×8 pixel font which additionally focusses on good Unicode support. Currently, it already supports Latin, Greek and Cyrillic for a few hundred languages. It implements a superset of the European MES-2 standard, a recommendation for European Latin/Greek/Cyrillc fonts to support the vast majority of European languages, including most minor languages.
Liquid Mean goes beyond that. The support includes many more languages, even those which require a vast amount of accents and diacritic marks, like Ancient Greek, Vietnamese, and Mandarin Chinese Romanisation.
Liquid Mean explores what amazing things can be done on a very limited display with max. 6×8 pixels per character.