Posts

Showing posts with the label led matrix

Remixed WiFiChron board

Image
Thanks to all buyers who waited patiently for the new batch of re-designed WiFiChron PCBs to arrive. The new board eliminates the need for the 2 extra wires on the back (that connected Rx and Tx to ESP8266). The XBee socket, intended for the $45 GPSBee, was also dropped, and replaced with a 3-pin header, used for connecting the $5 GPS modules available on ebay. Here is the list of notable changes: the only RTC now supported is DS3231; DS3231 is now powered from the regulated 3V3; GPS module is now connected to D17 (already supported in software ); as mentioned above, Rx and Tx already connected to ESP8266 module (no need to solder the 2 wires on the back); as before, remember to unplug the ESP8266 module from its socket when uploading a new sketch ; This is how the new board looks like: and assembled: Below is the new schematic (compatible with the old one, just re-mixed): The latest release of the WiFiChron software should still work unchanged with the new board. On the assembly f...

GPS-synchronized Mondrian clock

Image
The challenge was to add GPS to this "basic LED matrix clock". Since I don't see the point of a GPS clock that does not show seconds, I had to figure out how to fit 6 digits on the 8x16 LED matrix. One way to do it is this: as used by the " Matrix Clock V1.0 ". Kind of hard to distinguish between 0 and 8 though. Another way is based on MixiClock , where 4 digits are crammed in a 8x8 (tri-color) matrix. (This was more than 4 years ago. Incredible how little progress I made since.) As for the name, I settled for "Mondrian" because  Kandinsky  was already taken :) The hours are shown in red, the minutes in green and the seconds in orange. After power up, the seconds blink until the GPS time is received (less than 5 minutes in my house, more than 3 meters away from the nearest window). Only the minutes and the seconds are synchronized (but not the hours). The Mondrian clock is made of 2 boards: the wsduino with the GPS Bee plugged in (and the antenna aff...

Prototype 14-segment-display shield

Image
There are many ways (*) to drive the 6-digit 14-segment common cathode display from Seeed Studio. This time I chose to multiplex two MAX7221 , a method described here  (but used for driving a bi-color 8x8 LED matrix). The code is based on LedControl library , which I extended to cover the definition and display of 14-segment characters (digits, upper case letters, and a few specials). Below is a relevant fragment of the code I added: /* * Segment names in the 14-segment (plus DP) display: * *     -     A *   |\|/|   F,I,J,K,B *    - -    G,H *   |/|\|   E,N,M,L,C *     -  .  D,P */ // my wiring: //            GFEDCBAx // 1st byte: B11111111 // //            NHJIKMLP // 2nd byte: B11111111 const static byte charTable14Seg[43][2] = {     {B01111110,B10001000},  // 0     {B00001100,B00001000},  // 1     {B1...

Prototype clock with HDSP-2534 smart display

Image
I recently had the opportunity to acquire a few HDSP-2534  smart alphanumeric displays on the cheap. They seem to be vintage electronics (mines are stamped 9802, by HP), but they are still being made by Avago and sold by digikey (for about $40 a piece). From the datasheet, the HDSP-253x looks like the LED dot-matrix equivalent of an HD44780-controlled LCD display: data is sent on a 8-bit bus; ability to decode 128 ASCII characters, which are permanently stored in ROM; allows definition of 16 user-programmable symbols that are stored in the on-board RAM. I wired the display to an ATmega328 (internal oscillator at 8MHz) through a 595 shift register, using the schematic in this post from nycresistor blog. They use the HDSP-2111 display, which is very similar to the HDSP-2534 I have. They also provide demo source code for writing data to the display. Needless to say everything works as described. My contribution to the code is a function that sets the display brightness at one of th...

MixiClock - 4 digits displayed on 8x8 LED matrix

Image
So far, on a 8x8 LED matrix, I have only seen the time displayed with scrolling numbers (beside the geeky binary/hex/tix/dice/dots/bars or other coded formats). There is simply not enough room to statically display 4 digits at once, since the tiniest set of human-readable digits can be defined in a grid not smaller than 3x5 pixels. I challenged myself to find an intuitive way to display 4 digits on the "standard" 8x8 matrix. I figured that this is possible if using 2 colors. Even though they may overlap a bit (quite literally), digits of different colors can be easily distinguished. This is because the overlap makes a third color: in the case of the bi-color (red/green) LED matrix, it will be orange. I focused on two aspects: font definition (3x5) as simple as possible, with minimal number of "on" pixels, but still readable; // tiny 3x5 digits; byte digit[10][5] = {   {2, 5, 5, 5, 2},  // 0   {1, 1, 1, 1, 1},  // 1   {6, 1, 2, 4, 7},  // 2 ...