Overview
Overview
The second clock kit from ladyada & Adafruit Industries, we present MONOCHRON!We wanted to make a clock that was ultra-hackable, from adding a separate battery-backed RTC to designing the enclosure so you could program the clock once its assembled.
- 128x64 LCD (KS0108) - we special-ordered the black and white display
- ATmega328 processor (we even stuck an 'arduino' stk500 bootloader on there too)
- Laser cut enclosure in black acrylic
- Beeping/blinking alarm with 10 minute snooze
- Battery backed-up real time clock (DS1307) keeps time even when power is lost for years
- European/US 12 or 24 hour time display as well as date
- Completely open source hardware, all firmware, layout and CAD files are yours to mess with
- Plenty of space for mods, a prototyping area for soldering stuff in
Videos!
- Amanda 'w0z' Wozniak - designed the beautiful enclosure
- Caitsith2 - beta-tested, and submitted some great firmware mods
- Buro Vormkijgers - inspired people to relive the joy of their retro-youth (we are in no way associated with Buro Vormkijgers, at the request of Sander Mulder on 4/10/2010 we've included a link to his site here)
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
FAQ
Frequently Asked Questions
My clock is acting odd. It works then it freaks out
Make sure you install the CR1220 coin cell battery, the RTC chip needs it even if you don't use the battery backup.How long will the battery run the clock for?
As long as the clock is plugged in, the backup battery isn't used. When unplugged, the clock should keep time for many years - 20mAh / 500nA = 4.5 years
What is the current draw of the clock?
How much energy does this clock require to run?
We use a high-efficiency white LED backlight display so the whole clock only uses about 50mA at 5V! Likewise, the power supply we provide is a nice switching supply, which means it runs at 80% efficiency or higher! So total power usage for the clock is under a half Watt.
How can I reprogram the kit?
Check out this detailed tutorialWhat kind of display does it use?
The MONOCHRON is designed to use a KS0108 LCD, these are monochrome displays that are very very well documented and understood. They're very popular for hobbyist use.Can I use a different display?
The clock is designed to control a monochrom KS0108 display. Note that these displays come in two 'flavors' of pinouts, you'll want one that is equivalent to our stock KS0108 LCD. So you can plug in any KS0108 display with the same pinout and it will Just Work.It's possible to use a different kind of display like a SED1330 but note that it won't just work, you'll need to write some code and possibly rewire it!
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Design
Design documetns
Overview
Here is a rough overview of how the kit is designed to work.Click here for the full schematic
Power supply
Real Time Clock
Note that the RTC will act erratically if the battery is not placed. If you are absolutely sure you don't want battery backup, stick some tinfoil in the battery holder. Otherwise i2c will hang and it will be a real pain to figure out whats going on!
Switches
Since we don't have a lot of spare pins on the microcontroller, we save 2 by having the pushbuttons connected 'totem-pole' style to the analog-digital converter. as each button is pressed, the resistor divider made of R3-R6 changes and thus we can tell which switch has been pushed. Note that we can't tell if more than one button is pressed - in this application we dont need to so thats OK.
Display
This display has a parallel 8-bit interface and so it needs 8 bits for the port (DB0-7), and then 2 chip-select lines (CS0 and CS1) as well as an enable pin E, read/write select pin RW and command/data pin RS.
V0 is the contrast pin, and must be connected to a 10K pot tied between ground and VEE which is a negative voltage generated by the LCD.
The backlight of the display is an LED (anode is A cathode is K and is connected to ground). We use a 100 ohm (5V - 3.4Vf / 20mA = 80 ohms or so) resistor R2 to se the brightness. If the resistor is placed in slot R2 we save a pin but cannot adjust the brightness. if R2' is used, the backlight is connected to a PWM output of the micro which allows us to control the brightness in the configuration.
Microcontroller
Because of the massive # of pins, the display requires, the only free pins are RX, TX, and PC1. PD3 is free if you solder R2 into the hardwired slot (see above). If you'd like to connect something to the i2c bus, there are already pull ups on there.. If you really need an extra pin, LCD_CS1 is always the invertion of LCD_CS0 so you can use a transistor and a pullup to create a 'not gate' and the use either PC0 or PD2.
Firmware
The firmware uses Pascal Stang's great AVR libraries. The i2c.c and i2c.h files (which are used to access the RTC) and ks0108 files are from that project. There were a few bugs and sluggish things about the KS0108 library so we made a few modifications to allow inverted drawing, fast rectangle (blitting instead of setting one pixel at a time), etc. The KS0108 library can draw basic shapes and best of all, has a 5x7 font so you can easily print text on the screen.The clock core code is in ratt.c, that's where the stuff that deals with setting and updating the time, snooze, talking to the RTC, beeping the piezo and running the main loop that animates the display.
Button debouncing and interface code is in buttons.c. The ADC runs constantly to look for changes in the resistor divider.
The configure menu system is all in config.c - it's basically a state machine, you shouldn't have to modify anything there.
The real drawing and any display logic code happens in anim.c. step() is called every TICK milliseconds, and the microcontroller does the work of figuring out where the 'ball' is heading and then whether each 'stick' should attempt to hit it or miss it (depending on whether the time changed).
If you want to design a clock display, you would pretty much just want to edit anim.c and have the init() and step() code change.
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Make it!
Make it!
Make your kit!
This is a very easy kit to make, just go through each of these steps to build the kit:MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Preparation
Prepare to qualify!
Prep
Learn how to solder with tons of tutorials!Don't forget to learn how to use your multimeter too!
Tools
There are a few tools that are required for assembly. None of these tools are included. If you don't have them, now would be a good time to borrow or purchase them. They are very very handy whenever assembling/fixing/modifying electronic devices! I provide links to buy them, but of course, you should get them whereever is most convenient/inexpensive. Many of these parts are available in a place like Radio Shack or other (higher quality) DIY electronics stores.Any entry level 'all-in-one' soldering iron that you might find at your local hardware store should work. As with most things in life, you get what you pay for.
Upgrading to a higher end soldering iron setup, like the Hakko FX-888 that we stock in our store, will make soldering fun and easy.
Do not use a "ColdHeat" soldering iron! They are not suitable for delicate electronics work and can damage the kit (see here).
Click here to buy our entry level adjustable 30W 110V soldering iron.
Click here to upgrade to a Genuine Hakko FX-888 adjustable temperature soldering iron.
You will want rosin core, 60/40 solder. Good solder is a good thing. Bad solder leads to bridging and cold solder joints which can be tough to find.
Click here to buy a spool of leaded solder (recommended for beginners).
Click here to buy a spool of lead-free solder.
You will need a good quality basic multimeter that can measure voltage and continuity.
Click here to buy a basic multimeter.
Click here to buy a top of the line multimeter.
Click here to buy a pocket multimeter.
You will need flush diagonal cutters to trim the wires and leads off of components once you have soldered them in place.
Click here to buy our favorite cutters.
Strangely enough, that's the technical term for this desoldering vacuum tool. Useful in cleaning up mistakes, every electrical engineer has one of these on their desk.
Click here to buy a one.
Not absolutely necessary but will make things go much much faster, and it will make soldering much easier.
Pick one up here.
Page last edited March 18, 2013
Text editor powered by tinymce.
Parts list
Parts list
Bill of Materials
Check to make sure your kit comes with the following parts. Sometimes we make mistakes so double check everything and email [email protected] if you need replacements!| Image | Name | Description | Part # & Information | Qty |
| IC1 | Microcontroller (preprogrammed with firmware when purchased in a kit) | ATmega328P-20PU | 1 | |
| IC2 |
7805 (TO-220 package) or 78L05 (TO-92) 5V regulator |
78L05 | 1 | |
| IC3 | Real time clock | DS1307 | 1 | |
| Q1 | 32.768 KHz, 12.5 pF watch crystal | Generic 32.768KHz crystal | 1 | |
| LED1 | Green or red 3mm LED | 3mm indicator LED | 1 | |
| D1 | Power diode | 1N4001 | 1 | |
| C2 |
Electrolytic capacitor 47uF / 25V |
Generic | 1 | |
| C4 | 100uF / 6.3V capacitor (or higher) |
Generic | 1 | |
| C1, C3, C5 | Bypass capacitor (0.1uF) | Generic | 3 | |
| R2' |
100 ohm resistor Brown Black Brown Gold |
Generic | 1 | |
| R1, R3, R4, R5, R6, R7 |
1/4W 5% 1.0K resistor Brown Black Red Gold |
Generic | 6 | |
| R8, R9 |
1/4W 5% 2.2K resistor Red Red Red Gold |
Generic | 2 | |
| TM1 | 10K trim potentiometer 6mm side adjust | 1 | ||
| J1 | 2.1mm Power Jack | CUI PJ-202AH | 1 | |
| IC1' | 28-pin socket | 28 pin socket | 1 | |
| IC1' | 8-pin socket | 8 pin socket | 1 | |
| ICSP |
6 pin header, 0.1"x0.1" spacing DO NOT SOLDER THIS IN |
2x3 pin header | 1 | |
| LCD | 20 pin female header | Generic | 1 | |
| LCD & FTDI |
Straight male header DO NOT SOLDER THIS INTO THE FTDI PORT |
0.1" male header strip | 1 | |
| SW1 | Right angle SPDT switch | C&K OS102011MA1QN1 | 1 | |
| S1, S2, S3 |
Right angle tactile switch 8.35mm long actuator |
EVQ-PF008K | 3 | |
| SPK | Piezo Speaker | PS1240P02AT | 1 | |
| BATT | 12mm 3V lithium coin cell | CR1220 | 1 | |
| BATT' | 12mm coin cell holder | Keystone 3001 | 1 | |
| LCD | KS0108 LCD Black with white backlight preferred & is included in the kit |
1 | ||
| PCB | Circuit board | 1 | ||
| STANDOFF | 1/2" 4-40 round F-F threaded aluminum standoff | 4 | ||
| SPACER | 3/8" plastic spacer | 4 | ||
| SCREW | 5/8" 4-40 stainless steel machine screw | 8 | ||
|
ENCLOSURE | 6-piece laser cut enclosure |
Page last edited March 18, 2013
Text editor powered by tinymce.
Solder it!
Assembly instructions
Here are the step by step instructions...just want to remind you not to solder in the 6-pin FTDI header or ISP header!OK! Lets start! First thing we will solder in is the resistor R1, which has a 1Kohm value. You can tell which one this is because it has Brown Black Red Gold stripes on it. Bend this resistor into a staple as shown. Then slip it into the spot in the lower middle, right over the matching silkscreen that is labeled R1. Resistors are not 'polarized' so you can place them either way and they work the same. The resistor should sit right up against the PCB.
This resistor is used to allow the microcontroller to be programed with an In-System Programmer while the LCD is connected (they share a pin).
Bend the leads out of the staple so it holds the part in place and flip over the PCB.
Using your soldering iron tip, press and heat both the pad (the silver ring around the hole) and lead (wire) at the same time for 2 or 3 seconds. Then poke the end of the solder in to create a nice solder joint. Do this for both leads.
Using your diagonal cutters, cut off the long leads just above the solder joint.
You should have nice shiny solder points that are rounded and fill the entire pad.
Now we will continue by placing the remaining 5 1K resistors.
Place R3, R4, R5, and R6. These resistors make up a multiplexed button-reading circuit that allows the chip to listen to 3 buttons using only one analog pin.
Place R7 this is the current limiting resistor for LED1 (the alarm indicator).
Next we will solder in last 3 resistors.
R8 and R9 are 2.2K (red red red gold) resistors that are used as i2c pull-ups for the real time clock (the datalines require pull-up resistors).
R2' is a 100 ohm resistor (brown black brown gold) that sets the brightness for the LCD.
Please note: This resistor can be soldered into R2 (fixed brightness) or R2' (software controllable). In these photos we soldered them into R2 but we suggest you use R2'which will allow you to control the brightness easily (it turned out the LCD backlights vary quite a bit from one to the other). So please ignore the incorrect resistor location here and the use R2' slot!
Flip over the PCB and solder in the resistors.
(Don't forget to use R2' not R2!)
Then clip them short
Now that we are done with the resistors it's time to solder in the ceramic capacitors. Capacitors are used to smooth out power supply ripples and also to block DC voltages.
C1 is the input (9V) filter capacitor, C3 is the output (5V) filter capacitor. C5 is used to program the chip using an FTDI chip, it blocks the DC 'reset' pin and turns it into a pulse.
Ceramic capacitors, like resistors, are not polarized so they can go in 'either way'
Now we are ready to build the power supply. The power supply is what takes 9V from the outside world (from power plug) and regulates it down to 5V that is safe for the microcontroller to run at.
The first part is the 2.1mm DC jack. This is the mechanical connection. It fits in the lower left hand side of the PCB and you can snap it into place (may need a bit of a squeeze) - make sure it sits flat against the circuit board!
If it doesn't snap in place, you can keep it from falling out by 'tack' soldering it a little from the top on one of the pins.
Now flip over the PCB and solder the three big pins. Make sure to heat up the pads and pins for a few seconds before shoving tons of solder in there. This is a mechanical solder connection so you really want to get the big round pads filled up.
Next is D1 the 1N4001 protection diode. Diodes are semiconductors, in particular a diode will only pass current in one direction. This protects the power supply and micro from if someone plugs in a power supply that is AC or negative polarity. Instead of going poof, the diode will block the negative voltage.
Because diodes only conduct in one direction, it's important to put it in right. Look for a white stripe at one end, this is the cathode, now look on the PCB, there is a silkscreened diode and one side also has a white stripe, make sure to match those up!
After the diode is the 7805 voltage regulator IC2. The 7805 regulators up to 17VDC down to a nice steady 5V. Because we are using a good quality LCD with an LED backlight, we don't need a big honking power supply chip. The TO-92 package 7805 can supply about 100mA.
However, if you end up doing mods or want to use an LCD with an EL backlight, you may end up using IC2' which is the TO-220 package version and can provide 1.0 Amp of current!
OK, so the regulator has a flat side and a round side, the three pins go in the pads, and the outline on the silkscreen should match the shape of the regulator.
Now we are ready to do our first test. Clear off your table and make sure there are no wires or bits that could short out the PCB.
Place the PCB down and insert the power supply plug into the jack all the way. The jack should not move at all, if you soldered it enough. Now using your multimeter in voltage mode, measure between the two points shown (you can zoom by clicking on the picture).
You should get 4.9 to 5.1VDC
If you don't then stop, check your work. Make sure your multimeter has a fresh battery in it, and post in the forum if you can't get it to display 5V. If the voltage is too high or low, it could damage your kit, you should not continue.
Once you are done, unplug the power supply and put away the meter.
Now we will solder in the two electrolytic capacitors C2and C4.
C2 is the 47uF/25V electrolytic capacitor. This capacitor smooths out any large ripples in power coming into the kit. Electrolytic capacitors are polarized which means they must be placed correctly or they won't work at all. If you look at the capacitor you'll notice one leg is longer than the other, this is the positive (+) lead. Make sure this lead goes into the pad silkscreened with a +. See left for how to place the capacitor.
Bend C2 down so that it doesn't stick up so much.
Next is C4, a 100uF/6.3V electrolytic, which is the capacitor which helps reduce noise on the regulated 5V supply. It is electrolytic so make sure it's placed correctly.
Once the electrolytic capacitors are placed correctly, bend out the leads and solder them in place.
Use the diagonal cutters to clip the leads short.
Now place the IC socket. The socket protects the microcontroller chip and allows it to be replaced if necessary.
The socket has a U-shaped notch in one end. Make sure that this notch matches the U-shaped notch in the silkscreen, see the image to the left if you're not sure. If you end up putting the socket in backwards, don't fret. It's not essential that it is in right, but it will help you if you have to replace the chip.
First solder in 2 opposite corners. Then solder the rest of the pins.
They do not need to be clipped as they are already quite short.
Now it is time to insert the processor chip! Carefully remove it from the packaging. You'll have to bend the pins in a little to make them fit nicely into the socket. I grab both ends and rock the pins against a tabletop. (The image shows a smaller chip, but the idea is the same). Once the legs are parallel, locate the U-shaped notch in one end. Make sure that this end goes into the notched-end indicated on the silkscreen (and, hopefully, the socket as well).
Double check the chip is in right!
Now making sure that all the legs are lined up, and not bent or twisted, press the chip into the socket. It should seat itself easily without a lot of force.
If you aren't getting beeps, check the power supply, are you getting 5V still? Is the chip in right? If you are struggling, post in the forums for help.
Once you are satisfied, unplug the kit and continue.
Now it's time to place the small indicator LED LED1. LED's are not symmetric and must be placed correctly in order to work. You'll notice one leg of the LED is longer than the other. This is the positive leg. The positive leg goes into the hole with a + next to it. In the picture shown, it's the left hole.
Insert the LED into the correct location, and bend the body out so it will stick out of the enclosure a bit. Bend the leads out to keep it from falling out when you turn the PCB over.
Now you can also place SW1 which is the alarm switch. Make sure the switchy part faces out, it should snap in place.
Solder in the LED and switch, watch out because the switch has some smaller pins in the middle. Don't use tons of solder.
Clip the leads of the LED. The switch doesn't need to be clipped
Now you can do a test of the LED and switch if you'd like. Clear off your desk and power up the clock. It will still beep, but now you can flip the switch back and forth and see the LED turn on and off!
Once you are satisfied, let's continue.
Now we will solder up the real time clock (RTC) circuit. The RTC is what keeps time when the power is out, it's a very very very low power microcontroller and crystal that will keep time for years on a tiny coin cell. This way you can mod your clock with ease and not have to reset it after power loss.
First, melt a tiny bit of solder onto the center tab of the battery holder BAT. This will make good contact with the battery.
Now place the 12mm coin battery holder.
Tack solder one side so it doesn't fall out when you flip over.
Now place the 8-pin socket (watch the U-tab) and 32.768 KHz watch crystal Q1. The socket is to protect the chip and the crystal is the same as whats in your watch or clocks.
The crystal sits on top of a pad but don't solder it to the pad! Just let it chill out there, sitting flat against the PCB.
Now that the RTC is done, we will solder in the 3 interface switches S1, S2, and S3. These are what allow you to set the time and alarm and date and all that great stuff. They will snap into place, try to get them as flat to the PCB as possible.
All the way to the right we will also solder in the 10K 'trimmer' potentiometer TM1 which is used to set the contrast of the LCD. It also sits flat against the PCB.
Solder in the three switches, checking they are sitting flat.
Then also solder and clip the trimmer pot.
Now we're onto the LCD part. Find the 36 pin male header and 20 pin female header. Use the 20 pin header to help you cut down the 36-pin down to 20.
You can use diagonal cutters, or pliers to break apart the header.
Place the female header strip with the sockets up in the PCB.
You may need to tape it so you can turn over the kit and solder it in place. Solder a few pins and then see if you need to bend the header so it's perpendicular!
Once the female header is solidly in place, slip the male header into the sockets so that the short pins stick up.
Then place the graphical LCD on top and solder the pins. You may want to stuff something underneath the LCD so it is parallel to the PCB.
The trim pot on the side is used to adjust the contrast.
Plug in the kit and turn the pot with a small screwdriver until you see the animated display show up!
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Case it!
Enclosure assembly
Case it!
In this step we'll take the assembled kit and case it up for display!Prep
You should have 6 pieces, poke out any pieces of plastic so that they're clean. For the speaker 'grille' you can use a pen/pencil/tack/paperclip.
Sides and front
The first part is a bit tricky, but here is a good way to go about it. Screw 4 screws from the back into the standoffs. Dont go all the way, this is just to keep the standoffs in place.
Put the sides on. Make sure youve got them so the printing is on the outside.
Thread it in a little so it grabs the display PCB.
Annoyingly, the display has holes that are just a tiny bit too small for 4-40s, so you may find theres some resistance to screwing the front on. Just don't keep pushing hard after the screw gets to be flush with the front.
If the back screws are in the way, undo them a little at a time.
If the standoff starts to come away, hold it with your thumb and rotate it so it sits flush.
Bottom
Now carefully turn the kit so that the battery is facing up. If you haven't inserted the battery do so now, the clock requires the battery to function!Gently pull the two sides out so that you can slide in the bottom piece and have it held 'in place' by the notches on the side. The bottom piece is symmetric but we would appreciate it if you put the side with the name of the kit on the outside!
Top
Now carefully turn the kit over to the 'top'Gently pull the two sides out so that you can slide in the bottom piece and have it held 'in place' by the notches on the side. The piece is symmetric but make sure the third tab is sticking out.
Back
Finally, slide the back piece on. You can flip it so that the FTDI and ISP hints are showing or not.
Screw on the 4 remaining bolts to keep the kit together! Don't overtighten, just tighen until the screws wont come loose.
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Use it!
Date display
Pressing SET or + will temporarily display the date. Feb 19 looks like this in US mode:
Power
The clock has a 2.1mm DC positive tip jack for power. Inside is a 7805 regulator so you can input 7-18VDC (we suggest 9VDC). There is a DC blocking diode so you shouldn't be able to damage the kit with a bad power supply unless its 20VDC or something!Buttons
If the alarm is going off, pressing a button will enter snooze mode.
Otherwise, pressing SET or + will display the date and then year instead of the time.
Pressing MENU will enter the configuration menu (see below for full tutorial on each configuration).
Alarm
The MONOCHRON can act as an alarm clock! To turn on the alarm, flip the switch on the right side of the clock. When the LED is on the alarm is active, when the LED is off the alarm is off (easy to remember!)
If you press a button, that will put the clock into Snooze mode which will stop the beeping but keep flashing. After 10 minutes, the snooze will end and the alarm will continue to beep!
Contrast adjust
There is a slot on the side of the clock to allow adjusting of the display, use any screw driver to change the constrast to your liking. You can also change the backlight brighness.
Configuring the clock
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Alarm
Alarm set
Turning the Alarm on/off
Flip the switch on the right side of the clock. When the LED is on the alarm is active, when the LED is off the alarm is off (easy to remember!)
Alarm & snoozing
If the alarm is going off, the piezo will beep loudly and the display will flash. You can turn off the alarm by flipping the alarm switch on the side.If you press a button, that will put the clock into snooze mode which will stop the beeping but keep flashing. After 10 minutes, the snooze will end and the alarm will continue to beep!
Setting the alarm time
Press MENU to get into the config menu.
When you're done, press SET to save your changes.
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Time
Setting the time
Set time
We'll now set the time, you can change the 12/24 hour mode now. In this example, we'll have 12hr mode but of course 24 hour is the same except that theres no A/P notation.Press MENU to enter the configuration menu. Press MENU again to advance to Set Time.
Page last edited March 18, 2013
Text editor powered by tinymce.
Date
Setting the date
Save the date!
We'll now set the date, you can change the US/EU mode now. In this example, we'll have US mode but of course EU is the same except that the day and month are swapped.Press MENU to enter the configuration menu. Press MENU again twice to advance to Set Date.
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Region
Set region
Regioning
You can easily change the kit display so no matter where you live, the numbers look the way you want!To set the region, press the MENU button to enter the configuration menu. Then press MENU three times to get to Set region.
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Backlight
Set backlight brightness
Adjust!
For the kit, we use an LED-backlit display which means we can easily adjust the backlight brightness with PWM. You must have the R2 resistor soldered into R2' slot for this to work so make sure you have that and if you can't seem to dim it, double check!To set the backlight brigness, press the MENU button to enter the configuration menu. Then press MENU four times to get to Set Backlight.
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Mods
Modificating your kit for fun!
What are the mods?
Mods are tweaks you can do the the clock after it's built to give you a cooler look, new display, etc!- Neater power cable - make the cable come out the back of the kit instead of the side
- Some other nifty clocks you may want to use
- How to update the clock with other firmware to make a new display!
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Power cable
Neater power cord
The mod!
This will make your clock look a little nicer. You'll need to cut and solder the cable direct but it's an easy mod.
Lets go!
First, take off the back of the clock by gently prying the top and pulling it off. Get your power supply too. Make sure it's not plugged in.
Once you're done you can slip the bottom in by pulling gently on the acrylic sides to pop it in.
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Clocks!
Other firmwares
The MONOCHRON was explicitly designed to allow users to create their own firmware for the clock using our code design. Here are some firmware clocks you can check out right now!To update the firmware on your clock you'll need either an AVR programmer (such as a USBtinyISP or STK500 or AVRISP, etc) or an FTDI cable (which allows you to upload via the onboard bootloader.
To do so, first download the firmware (click on Download Source in GitHub). Then install an AVR toolchain. Then go to the firmware directory using a terminal (such as the DOS command line, Terminal for MacOS X or xterm) and type in make to build the .hex. Attach the programmer to tbe back of the kit via the 6 pin cable so that the red wire is at the top. You can use the left-over 6-pin connector and just 'press fit' it, tilting a little to make good contact. If you have a USBtinyISP you can then just type in make program and hit return. If you have another AVR programmer, edit the makefile to change the programmer and port to whatever you've got.
EmuChron
If you're interested in developing clocks for monochron, here's an emulator that you can use on Debian/Linux for fast development!https://github.com/tceulema/Emuchron
There's also a fresh version of the firmware, much cleaned up and easier to develop with than my code ;)
MultiChron
Like all of the clocks shown? Try the MULTICHRON! Comes with 6 clocks and 3 modes! by DatamanVersion 1.1 Is our current release:
- RATTChron - Retro Acrade Tabel Tennis
- IntruderChron - Retro Space Intruder Game
- SevenChron - Seven Segment LCD Display
- XDaliChron - XWindows DaliClock
- TSChron - Times Square Chron, Like the Big Clock in Times Square
- About Screen - Retro Star Wars looking credits
- GPS Setup - MODERN! GPS Configuration and Debug dialog. Setup Info Here.
- Random Mode - Choosed a different clock randomly each time the display is started
- Rotate Mode - Rotates through a new clock every 15 minutes.
Download the source from Github
RATTChron
Retro arcade style table tennis for two...the clock!
XDaliChron
“Dali Clock is a digital clock. When a digit changes, it “melts” into its new shape. The date is displayed when the + button is pressed."
Code available at GitHub Click Download Source to get it all.
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Updating
Updating your clock!
The MONOCHRON was explicitly designed to allow users to create their own firmware for the clock using our code base. Once you have built and tested your clock, you can choose one of our existing designs or, of course, write your own!AVR Programmer or FTDI cable?
There are two ways to update the clock. One is to reprogram the entire chip using an AVR programmer. The other is to use a bootloader that is pre-programmed onto the chip that allows the chip to re-program itself. An AVR programmer is more powerful: you can really mess with anything on the chip and the entire 32K of memory is available. Using the bootloader is safer: there's no way to mess with the fuse settings (which could brick the chip) but you only get 30K of memory since 2K is used by the bootloader. Not a big deal, but if you are making some massive clock which requires tons of flash space, you may need it.For a lot more information about AVR programmers and bootloaders, I strongly recommend reading this short article.
Note that to program an AVR you need an AVR programmer, but to upload using the bootloader you need a computer-serial connection (such as an FTDI cable). Unfortunately, they are not the same device so unless you have both, you should pick one to start with. If you're not a microcontroller wiz, I suggest going with the bootloader (FTDI) method. It's as fast (or faster), allows you to debug as well, and there's virtually no way to damage/brick the chip by messing with the fuses. If you're familiar with microcontroller programming, and you have a programmer, then feel free to go that direction.
Installing programming software
The first thing you must do, no matter which way you go, is to install the software for communicating with the monochron!Unless you've already done some microcontroller hacking, you should install the AVR development system on your computer. For windows, I suggest WinAVR (see here for my tutorial). For Mac, AVRMacPack seems to be the best choice (see here for my tutorial). For linux, you'll have to do some package installing, which depends a bit on your distro: I suggest googling for the best way for your distro, or if you are willing to do it 'from scratch', my tutorial will take you through step-by-step.
Either way, make sure that when you are done, you can open up a command window or terminal, and type in avrdude to get the following. If you get a respose that avrdude "isn't found" or "isn't recognized" go back and make sure you installed the software properly according to the tutorials!
Installing the FTDI driver
Since it's going to be more common, we'll be covering how to use the FTDI adapter first. Nearly all of this tutorial is just getting everything set up and installed, it only has to happen once!Step #1 is to plug in your FTDI adatper. If you have an FTDI cable proper, there is already a USB A connector on the end.
Next up, plug it into your computer! If you are using Windows you may hear a sound from the computer and a little popup bubble in the bottom right corner of the screen that says Found New Hardware FT232R USB UART
FTDI name and Set RTS on Close
OK now we will verify that the driver installed properly.Under Mac, in the Terminal window, type in ls /dev/cu.* which should give the following responses or so:
The name we are looking for is /dev/cu.usbserial-XXXX where the X's are going to be unique for each cable. Copy and paste the name into a text file so you'll remember it for later.
For Linux/Unix type ls /dev/ttyUSB* into a terminal window, you should see a device file called something like ttyUSB0
Look for an entry under Ports (COM & LPT) that says USB Serial Port (COM) the COM number may vary but it should be something like COM3 or COM4 the COM number may be as high as COM99 so just look for the USB serial port. The COM stands for "communication", and each one has a unique number, known as the COM Port number. In this case the COM Port number is COM3. If you don't see the COM port verify the cable is plugged in, and check that you installed the VCP FTDI driver.
Then right click and select Properties
Whew! OK now you are good to go for the next step
Test!
Plug in your clock, and verify it's working. Next plug in the FTDI adapter (if it's not plugged in yet).Open up a command window (Windows), or terminal (Mac/Linux/Unix) and type in the following command (dont hit return yet!)
avrdude -c arduino -p m328p -P -b 57600
Where is something like COM3 or /dev/ttyUSB0
Remember don't hit return yet!
Now look again at your FTDI cable or adapter. If you have a cable you'll notice that one wire is Black.
The most important part is that you will see AVR device initialized a bar of #'s and then text that says Device signature and Fuses OK This means you've successfully talked to the bootloader! Yay! Go have a cup of your favorite drink.
If you're having problems, go back to the previous step and try to get the clock to reset. If you're having problems still, post up in the forums!
Uploading your favorite clock
Now that you have all that set-up stuff ready, you can get to the fun part. Let's install SevenChron, for example, on our clock.Go to the clock listing page, and click on the link that says "Code at Github" then click Download Source and save the zip or tar file onto your computer. Then uncompress it and find the file called monochron.hex in the firmware subfolder and copy it to your home directory (or to C:\ if you're using Windows).
Back to your command window:
Go to the directory where the file is at. If you're using windows, type in and press return
cd C:\
For mac or linux
cd ~
Now, we will issue the reprogramming command. Type in the following, don't press return!
For windows: avrdude -c arduino -p m328p -P -b 57600 -U flash:w:C:\monochron.hex
For Mac/Linux: avrdude -c arduino -p m328p -P -b 57600 -U flash:w:~/monochron.hex
Basically, you can hit the up arrow twice and then type in "-U flash:w:monochron.hex" at the end. This will write the flash with the new firmware file. Press the FTDI adapter against the clock as before and hit return, keep pressing against the cable for about 30 seconds until the entire process is complete.
MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.
Download
Download
Firmware & PCB
You can grab everything over at GitHub including CAD files, firmware, PCB files, etc!The firmware is GPL, and the CAD & PCB files are CC Attrib. & Share-Alike.
Other firmwares!
More clock firmwares are available at the Mods page.MONOCHRON® is a registered trademark of Adafruit Industries
Page last edited March 18, 2013
Text editor powered by tinymce.






























