Posts

Showing posts from June, 2015

WiFiChron fix and other WiFis

Image
The peculiar feature of the "May 2015" revision of WiFiChron board is that it was designed to use software serial to communicate with either the XBee or ESP module. The reason is related to debugging. I wanted to be able to send messages to the serial monitor while (software serially) communicating with the serial device. This solution works well for XBee ( GPSBee , BTBee ), but not for ESP8266, only because the software takes more than the available 2K of RAM in this case (WiFi + software serial). The immediate fix to use the ESP module is to connect its Rx/Tx lines to Rx/Tx of the processor. The existing connections can be left uncut, since they are not used in the sketch for ESP8266 . The wiring should be like in the photo below. The "permanent" fix would be re-designing the board to use ATmega1284 SMD (DIP-40 would not fit). Talking about 1284,  take a look at Farit's WiseClock4 mod. He used the WiseClock4 board, but completely re-wrote the software, in

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     {B10110110,B01000000},  // 2     {B00011110,B01000000},  // 3     {B11001100,B01000000},  // 4     {B11010010,B00000010},  // 5     {B11111010,B01000000},  // 6     {B00000010,B00001100},