This is the most recent (and cheapest yet) member of the Wise Clock family.

(As a quick recap, the other members of the Wise Clock family are, so far, the glass-domed Wise Clock and Wise Clock 2. They are "wise" because, along with the time, they also display quotations.)

This clock is made with just three major elements:
1. Wiseduino (with RTC and EEPROM on board);
2. 8x32 LED matrix display from Sure Electronics;
3. cardboard box as enclosure.

A few other required components are:
- a tilt sensor (or tilt ball switch);
- a USB cable, to power the clock.

Step 1: Assembling Wiseduino

Wiseduino is an Arduino clone with an on-board real time clock (DS1307) and EEPROM (24LC256).

Wiseduino can be bought as a kit here. The kit contains the following components:
- PCB (black);
- ATmega328P microcontroller programmed with the bootloader;
- 28-pin socket for the ATmega328P chip;
- 16MHz resonator for the microcontroller;
- DS1307 real time clock, with 8-pin socket;
- 24LC256 EEPROM, with 8-pin socket;
- 32768Hz crystal for the RTC;
- CR1220 coin battery and battery holder;
- 6-pin right angled male header (FTDI connector);
- 40-pin female header;
- 4 resistors 10K;
- 4 decoupling capacitors 100nF;
- 2N2222 transistor;
- power micro switch;
- 2-pin polarized male header (power connector);
- power jack with cable.

To assemble Wiseduino, follow these mini-steps:

1. Solder the IC (integrated circuits) sockets first. Place them correctly, so their notches match those in the silkscreen.
(This will be helpful later, when the ICs are to be inserted into their respective sockets; their notches should match those in the sockets, which match those in the silkscreen, got it?)
2. Solder in place the battery holder. (photo 1)
3. Solder the power connector, then the FTDI connector. (photo 2)
4. Solder the micro switch on the pads. Since this is an SMD (surface mounted device), use this technique: put some solder on one of the pads; place the switch over the pads, then solder the pin which is over the "loaded" pad. Once in place, solder the remaining pins.
5. Solder the four identical (10K) resistors in their places. These are the only resistors on the board.
6. Solder the four decoupling capacitors. Again, they are the only capacitors on the board.
7. Solder the 15MHz resonator.
8. Bend 90 degrees the 2 pins of the small cylindrical crystal (32768Hz), then solder it so it is parallel and close to the board. (photo 3)

At this point, we would have a few more steps to a complete assembling. But, for this project, we don't solder the female headers and neither the transistor.

What is left to be done is:

9. Insert the integrated circuits in their respective sockets, matching the notches (as mentioned above).
10. Insert the coin battery in its holder.

Next, we need to "hack" Wiseduino a bit, to install the tilt switch and to solder the ribbon cable for the display.
<p>Here is a follow up:</p><p><a href="http://timewitharduino.blogspot.ca/2012/04/bookclock-software-update-set-time-from.html" rel="nofollow">http://timewitharduino.blogspot.ca/2012/04/bookclo...</a></p>
hai florinc, i try the first step, but there are too many erors : <br>http://www.mediafire.com/view/?i3wwnxzi4nktv5j <br> <br>In file included from ds1307_test.pde:3: <br>C:\Users\bejad\Documents\PA Andre\arduino-1.0.4\libraries\ds1307/DS1307.h:51: error: 'boolean' has not been declared <br>C:\Users\bejad\Documents\PA Andre\arduino-1.0.4\libraries\ds1307/DS1307.h:52: error: 'boolean' has not been declared <br>C:\Users\bejad\Documents\PA Andre\arduino-1.0.4\libraries\ds1307/DS1307.h:53: error: 'boolean' has not been declared <br>C:\Users\bejad\Documents\PA Andre\arduino-1.0.4\libraries\ds1307/DS1307.h:57: error: 'byte' has not been declared <br>C:\Users\bejad\Documents\PA Andre\arduino-1.0.4\libraries\ds1307/DS1307.h:58: error: 'byte' has not been declared <br>C:\Users\bejad\Documents\PA Andre\arduino-1.0.4\libraries\ds1307/DS1307.h:59: error: 'byte' does not name a type <br>C:\Users\bejad\Documents\PA Andre\arduino-1.0.4\libraries\ds1307/DS1307.h:60: error: 'byte' has not been declared <br>C:\Users\bejad\Documents\PA Andre\arduino-1.0.4\libraries\ds1307/DS1307.h:63: error: 'byte' does not name a type <br>ds1307_test.pde: In function 'void setup()': <br>ds1307_test:13: error: expected `;' before 'RTC' <br>ds1307_test.pde: In function 'void loop()': <br>ds1307_test:50: error: 'class DS1307' has no member named 'get_sram_byte' <br> <br>what should i do ?
Thanks, that solved it! I was having issues with a faulty arduino software installation as well. <br> <br>I do have another question though, in that the VBS script is giving me a &quot;permission denied&quot; error, on line 12, despite having the correct COM port and quote file location specified. The serial monitor is closed as well. Do you have any suggestions? Sorry to plague you with questions.
Sorry for the late reply, I just saw your question now. <br>If you did not solve that yet: if the COM port is higher than 9, you need to address it like &quot;\\:\\COM10&quot; (if I remember correctly; google microsoft site for this naming convention).
I'm using com3, so that shouldn't be any issue. the line of code I'm using is: <br>&quot;Set com = fso.OpenTextFile(&quot;COM3:9600,N,8,1&quot;, ForWriting)&quot; <br>Any obvious issues there?
Nothing obvious. It should work on Windows XP. What OS are you using?
I'm using Windows 7, maybe that's what's causing the issue? Thanks for your help.
Maybe. Windows 7 requires admin rights when accessing stuff (even to copy files to the root of C:\, from what I saw).
I do have an administrator's account, would there be anything more required to enable it?
Honestly I don't know, since I don't use Windows 7. Did you google the issue on Microsoft site?
For step #1, assuming you mean before &quot;#include ,&quot; what exactly should I add? I am a little confused.
Sorry, I thought I revisited what I wrote before hitting &quot;Save&quot; (the editor may have removed the angular brackets). #include Arduino.h, that's what I meant, with arduino.h between angular brackets (less then, greater then). <br>
Oh, I think the issue is that the code doesn't show up on instructables. What I meant to ask was what to include before the include &quot;wire.h&quot; where the quotes are the include symbols.
I'm trying it with a windows partition on my mac, except I think the latest version of the arduino software is giving me issues. I'm not able to upload the eeprom_quotes files, I get errors saying &quot;'Wire' was was not declared in this scope,&quot; and &quot;as of Arduino 1.0, the &quot;byte&quot; keyword is no longer accepted, please use Serial.write instead&quot; <br> <br>Any idea how to get around this? Thanks for your help!
That sketch was written for Arduino 18. To make it work with Arduino 1.0, here are the changes you have to make (I tested them): <br>1. Add the line #include before #include <br>2. change all &quot;Wire.receive&quot; to &quot;Wire.read&quot; <br>3. change all &quot;Wire.send&quot; to &quot;Wire.write&quot; <br>4. delete the second argument in function &quot;Serial.print&quot; (e.g. BYTE, DEC). <br>I hope this helps. Let me know how it goes.
Is there a workaround for uploading the quotes file on a mac?
I never used a mac. If you don't have access to a Windows machine, please contact me and I will get one EEPROM written for you.
girino2n,<br>You are right, a header file (ht1632.h) is missing from the zip. It worked for me because I had it somewhere else, and the compiler picked it up from there.<br>Please send me an email (you find the address on my blog: http://timewitharduino.blogspot.com/) and I will send it to you. I will also upload it to my source code repository.<br><br>
when I try to upload the main BookClock sketch i get a compile error<br><br>'HT1632_ID_CMD' was not declared in this scope<br><br>This error occurs on line 160 of BookClock.pde<br>Any idea what gives?
BookClock.cpp: In function 'void ht1632_sendcmd(byte)':<br>BookClock:159: error: 'HT1632_ID_CMD' was not declared in this scope<br>BookClock.cpp: In function 'void ht1632_clear()':<br>BookClock:178: error: 'HT1632_ID_WR' was not declared in this scope<br>BookClock.cpp: In function 'void ht1632_senddata(byte, byte)':<br>BookClock:201: error: 'HT1632_ID_WR' was not declared in this scope<br>BookClock.cpp: In function 'void ht1632_setup()':<br>BookClock:214: error: 'HT1632_CMD_SYSDIS' was not declared in this scope<br>BookClock:220: error: 'HT1632_CMD_COMS10' was not declared in this scope<br>BookClock:223: error: 'HT1632_CMD_MSTMD' was not declared in this scope<br>BookClock:224: error: 'HT1632_CMD_SYSON' was not declared in this scope<br>BookClock:225: error: 'HT1632_CMD_LEDON' was not declared in this scope<br><br><br>

About This Instructable




More by florinc:Method and apparatus for mass-synchronizing clocks Clock with Meggy Jr RGB Wise Clock 3 - Arduino-based geeky alarm clock 
Add instructable to: