<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bitwizard.nl/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tomtest</id>
	<title>BitWizard Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://bitwizard.nl/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tomtest"/>
	<link rel="alternate" type="text/html" href="https://bitwizard.nl/wiki/index.php/Special:Contributions/Tomtest"/>
	<updated>2026-04-05T20:16:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.6</generator>
	<entry>
		<id>https://bitwizard.nl/wiki/index.php?title=RGB_clock&amp;diff=1073</id>
		<title>RGB clock</title>
		<link rel="alternate" type="text/html" href="https://bitwizard.nl/wiki/index.php?title=RGB_clock&amp;diff=1073"/>
		<updated>2012-04-16T14:55:36Z</updated>

		<summary type="html">&lt;p&gt;Tomtest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;testedit&lt;br /&gt;
[[File:RGB_clock_complete.jpg|thumb|300px|alt=The fully working clock|The fully working clock]]&lt;br /&gt;
&lt;br /&gt;
This is the documentation page for the RGB clock kit. &lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Driver PCB for up to 64 common-anode RGB LEDs, or 192 normal LEDs.&amp;lt;br&amp;gt;&lt;br /&gt;
The PCB is designed for 1:3 multiplexing of the LEDs, and is equipped with 8 74HC595 shift registers (configured as 4 16-bit deep registers), 64 current-limiting resistors (220 Ohm by default) and 3 FETs to switch the cathode groups on-and-off.&amp;lt;br&amp;gt;&lt;br /&gt;
The PCB is equipped with a BitWizard-standard 20-pin IO connector, designed to work together with our USB-multio PCB, but it is also possible to connect our FTDI-ATmega, USB-bigmultio or Cyclone dev board, or one of your own boards, like for example an Arduino.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SV1-SV8 are the connectors for the RGB LEDs. SV1-SV8 are connected to IC1-IC8.&amp;lt;br&amp;gt;&lt;br /&gt;
IC1 and IC5 are configured as one 16-bit deep shift register. Qa-Qh are connected to IC1, and Qi-Qp are connected to IC5.&amp;lt;br&amp;gt;&lt;br /&gt;
IC2 and IC6 are configured as one 16-bit deep shift register. Qa-Qh are connected to IC2, and Qi-Qp are connected to IC6.&amp;lt;br&amp;gt;&lt;br /&gt;
IC3 and IC7 are configured as one 16-bit deep shift register. Qa-Qh are connected to IC3, and Qi-Qp are connected to IC7.&amp;lt;br&amp;gt;&lt;br /&gt;
IC4 and IC8 are configured as one 16-bit deep shift register. Qa-Qh are connected to IC4, and Qi-Qp are connected to IC8.&amp;lt;br&amp;gt;&lt;br /&gt;
The control pins (!OE, LATCH, !RESET, CLK) of all shift registers are connected in parallel.&amp;lt;br&amp;gt;&lt;br /&gt;
SER0 is connected to IC1.&amp;lt;br&amp;gt;&lt;br /&gt;
SER1 is connected to IC2.&amp;lt;br&amp;gt;&lt;br /&gt;
SER2 is connected to IC3.&amp;lt;br&amp;gt;&lt;br /&gt;
SER3 is connected to IC4.&amp;lt;br&amp;gt;&lt;br /&gt;
It is therefore required to update all shift registers at the same time.&lt;br /&gt;
&lt;br /&gt;
== Assembly instructions ==&lt;br /&gt;
&lt;br /&gt;
==== LED Driver PCB ====&lt;br /&gt;
* First, decide if you want to use 4 pushbutton switches (for the default firmware), 4 LEDs, or a mix (for custom firmware).&lt;br /&gt;
** SW1 and R65 or D7 and R71&lt;br /&gt;
** SW2 and R66 or D6 and R72&lt;br /&gt;
** SW3 and R67 or D5 and R73&lt;br /&gt;
** SW4 and R68 or D4 and R74&lt;br /&gt;
* Mount all necessary SMD components. Which component should go where, can be found in the table below.&lt;br /&gt;
* cut the header strips to the right length. Our suggestion:&lt;br /&gt;
** cut the first strip in one 10-pin long strip, and 5 6-pin long strips.&lt;br /&gt;
** cut the second header in 3 6-pin strips, and one 4-pin strip.&lt;br /&gt;
* solder all headers in place&lt;br /&gt;
* solder the desired switches in place&lt;br /&gt;
&lt;br /&gt;
 Component   Value&lt;br /&gt;
 IC1-IC8     74HC595&lt;br /&gt;
 R1-R64      220R&lt;br /&gt;
 R65-R68     10K&lt;br /&gt;
 R69-R74     1K&lt;br /&gt;
 C1-C8       100nF&lt;br /&gt;
 C9          10uF&lt;br /&gt;
 T1-T3       N-channel FET&lt;br /&gt;
 D1          Double Diode (BAT54S for example)&lt;br /&gt;
 D2-D7       LED&lt;br /&gt;
 SW1-SW4     Pushbutton&lt;br /&gt;
&lt;br /&gt;
[[File:RGB_clock_top.jpg|none|thumb|300px|alt=A closeup of the assembled board|A closeup of the assembled board]]&lt;br /&gt;
&lt;br /&gt;
==== LED chains ====&lt;br /&gt;
&lt;br /&gt;
===== Building your own clock-face =====&lt;br /&gt;
&lt;br /&gt;
If you are not buying the laser-cut clock-face that we offer, you&amp;#039;ll be building one yourself. A consideration is that at about 20cm radius, the legs of the LEDs are long enough to form the R, G and B common lines. If you make the clock larger, you&amp;#039;ll have to run three wires along the leds....&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;puzzle&amp;quot; line between the four segments stems from the fact that the laser-cutter that we have access to only goes so big. And it comes in handy for transport. The laser-cutter could handle up to 30cm outer diameter. And it could handle half a clock at once. But the 4-fold symmetry looks nice.&lt;br /&gt;
&lt;br /&gt;
===== Connecting the LEDs =====&lt;br /&gt;
Counting clockwise, starting at the LED to the right of the topmost LED:&lt;br /&gt;
 Output  Pin#  Connector&lt;br /&gt;
 Qp      8     SV6&lt;br /&gt;
 Qo      7     SV6&lt;br /&gt;
 Qn      6     SV6&lt;br /&gt;
 Qm      5     SV6&lt;br /&gt;
 Ql      4     SV6&lt;br /&gt;
 Qk      3     SV6&lt;br /&gt;
 Qj      2     SV6&lt;br /&gt;
 Qi      1     SV6&lt;br /&gt;
 Qg      7     SV2&lt;br /&gt;
 Qf      6     SV2&lt;br /&gt;
 Qe      5     SV2&lt;br /&gt;
 Qd      4     SV2&lt;br /&gt;
 Qc      3     SV2&lt;br /&gt;
 Qb      2     SV2&lt;br /&gt;
 Qa      1     SV2&lt;br /&gt;
[[File:RGB_clock_quadrant.jpg|none|thumb|300px|alt=A fully assembled quadrant|A fully assembled quadrant]]&lt;br /&gt;
&lt;br /&gt;
All R, G and B pins should be connected in parallel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:RGB_LED_closeup.jpg|none|thumb|300px|alt=A closeup of one of the LEDs|A closeup of one of the LEDs]]&lt;br /&gt;
This is the same for each quadrant, only the connector numbers differ.&lt;br /&gt;
&lt;br /&gt;
==== Putting it all together ====&lt;br /&gt;
&lt;br /&gt;
Version 1.0 uses 12pin headers to connect to the LEDs, but unfortunately, 12-pin ICD connectors don&amp;#039;t exist, so we used 14-pin ICD connectors.&amp;lt;br&amp;gt;&lt;br /&gt;
Pay close attention then connecting the 14-pin connectors to the PCB! Pin 1 through 12 should line up, and pin 13 and 14 should be &amp;quot;floating&amp;quot;.&lt;br /&gt;
[[File:RGB_clock_connectors.jpg|none|thumb|300px|alt=Everything wired-up|Everything wired-up]]&lt;br /&gt;
As can be seen in this image, the left ICD connectors are a bit further towards the USB connector, and the right ICD connectors are a bit further to the switches. Also, the reset switch isn&amp;#039;t mounted. We decided we would never use it, so left it out. Your version will come equipped with a reset switch&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
After hooking everything up, you should end up with something like this:&lt;br /&gt;
[[File:RGB_clock_back_complete.jpg|none|thumb|300px|alt=The completed clock|The completed clock]]&lt;br /&gt;
&lt;br /&gt;
== External resources ==&lt;br /&gt;
&lt;br /&gt;
=== Datasheets ===&lt;br /&gt;
* [http://www.fairchildsemi.com/ds/MM/MM74HC595.pdf 74HC595 datasheet]&lt;br /&gt;
&lt;br /&gt;
=== Related projects ===&lt;br /&gt;
&lt;br /&gt;
== Pinout ==&lt;br /&gt;
&lt;br /&gt;
SV10 is connected as follows &lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt; connector pin number&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;pin name&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;multiio AVR pin name&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GND   &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GND   &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SER0  &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PD1 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SER1  &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PD2 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 5&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SER2  &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PD3 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 6&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SER3  &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PD4 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;!OE   &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PD5 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;LATCH &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PD6 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 9&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;!RESET&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PB1 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;CLOCK &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PB0 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R     &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PB3 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;12&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;G     &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PB2  &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;13&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;B     &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PB5 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;external clock source&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PB4&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;15&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IO1   &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PB7 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;16&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IO0   &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PB6 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;17&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IO3   &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PC6 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;18&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;IO2   &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; PC7 &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;19&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;VCC   &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;20&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;VCC   &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
SV1 through SV8 are connected as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A0&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A1&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A2&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A3&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 5&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A4&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 6&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A5&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A6&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;A7&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 9&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;G&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;B&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;12&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SV9 can be used to connect an external clock source, or a servo motor, or...&lt;br /&gt;
&amp;lt;table border=1&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GND&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;VCC&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt; 3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;connected to pin14 of SV10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Pin 3 has two clamping diodes attached, to limit the voltage range to GND-0.6V and VCC+0.6V.&amp;lt;br&amp;gt;&lt;br /&gt;
We are considering connecting this pin through a very large valued resistor directly to the mains. In that case the clamping diodes are neccessary. The better option would be to use an optocoupler or something like that....&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LEDs: ===&lt;br /&gt;
&lt;br /&gt;
* D2 is connected to VCC from SV10&lt;br /&gt;
* D3 is connected to USB power&lt;br /&gt;
* D4 is connected to pin17 from SV10&lt;br /&gt;
* D5 is connected to pin18 from SV10&lt;br /&gt;
* D6 is connected to pin15 from SV10&lt;br /&gt;
* D7 is connected to pin16 from SV10&lt;br /&gt;
&lt;br /&gt;
=== Switches: ===&lt;br /&gt;
&lt;br /&gt;
* Switch1 (next to R71) is connected to pin16 from SV10&lt;br /&gt;
* Switch2 (next to R72) is connected to pin15 from SV10&lt;br /&gt;
* Switch3 (next to R73) is connected to pin18 from SV10&lt;br /&gt;
* Switch4 (next to R74) is connected to pin17 from SV10&lt;br /&gt;
&lt;br /&gt;
== Jumper settings ==&lt;br /&gt;
&lt;br /&gt;
JP1: Power supply selection.&amp;lt;br&amp;gt;&lt;br /&gt;
Open: LED driver board and microcontroller board have individual power supplies&amp;lt;br&amp;gt;&lt;br /&gt;
Closed: VCC from LED driver board and microcontroller board are connected.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Programming ==&lt;br /&gt;
&lt;br /&gt;
Please refer to http://www.bitwizard.nl/wiki/index.php/Usbio#programming for information on programming the controller PCB.&lt;br /&gt;
&lt;br /&gt;
== The software ==&lt;br /&gt;
&lt;br /&gt;
The software supplied by BitWizard, is designed to run on the BitWizard USB-Multio board, but it should be possible to port it to other boards.&amp;lt;br&amp;gt;&lt;br /&gt;
A zipfile containing the latest source code can be downloaded here: http://www.bitwizard.nl/software/rgb_clock/&lt;br /&gt;
&lt;br /&gt;
=== Default operation ===&lt;br /&gt;
&lt;br /&gt;
==== Test modes ====&lt;br /&gt;
&lt;br /&gt;
As of software version 20120208, there are several (test) modes included. &lt;br /&gt;
&lt;br /&gt;
These can be accessed in two ways:&lt;br /&gt;
&lt;br /&gt;
===== Over USB =====&lt;br /&gt;
&lt;br /&gt;
All modes are available.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 m [m]&lt;br /&gt;
For example:&lt;br /&gt;
 m 3&lt;br /&gt;
jumps to the LED test mode.&lt;br /&gt;
&lt;br /&gt;
====== Mode 0 (default)======&lt;br /&gt;
&lt;br /&gt;
Default operation.&amp;lt;br&amp;gt;&lt;br /&gt;
PWM routine: Enabled.&amp;lt;br&amp;gt;&lt;br /&gt;
Bitmap generation: Enabled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Mode 1 ======&lt;br /&gt;
&lt;br /&gt;
Allows you to, for example, send your own RGB bitmaps to the clock with the &amp;quot;D&amp;quot;, &amp;quot;E&amp;quot;, and &amp;quot;F&amp;quot; commands.&amp;lt;br&amp;gt;&lt;br /&gt;
PWM routine: Enabled.&amp;lt;br&amp;gt;&lt;br /&gt;
Bitmap generation: Disabled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Mode 2 ======&lt;br /&gt;
&lt;br /&gt;
Enables you to manually turn colors on and off, and also send your own bitmaps.&amp;lt;br&amp;gt;&lt;br /&gt;
PWM routine: Disabled.&amp;lt;br&amp;gt;&lt;br /&gt;
Bitmap generation: Disabled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Mode 3 ======&lt;br /&gt;
&lt;br /&gt;
Perfect for testing your LEDs and soldering work. This mode automatically generates a test sequence.&amp;lt;br&amp;gt;&lt;br /&gt;
PWM routine: Enabled.&amp;lt;br&amp;gt;&lt;br /&gt;
Bitmap generation: Enabled, but using a test bitmap.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Mode 4 ======&lt;br /&gt;
&lt;br /&gt;
Normal clock operation, but with a twist: Instead of only lighting LED x from color y, LED 0 though x are all lighted.&amp;lt;br&amp;gt;&lt;br /&gt;
PWM routine: Enabled.&amp;lt;br&amp;gt;&lt;br /&gt;
Bitmap generation: Enabled.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Using the pushbuttons =====&lt;br /&gt;
&lt;br /&gt;
Only [[RGB_clock#Mode_0_.28default.29|mode 0]] and [[RGB_clock#Mode_4|mode 4]] are available.&lt;br /&gt;
&lt;br /&gt;
Press Swtich 1 to toggle between both modes.&lt;br /&gt;
&lt;br /&gt;
==== Loading custom bitmaps ====&lt;br /&gt;
&lt;br /&gt;
This is only possible is some test modes.&lt;br /&gt;
&lt;br /&gt;
===== Identical for each quadrant =====&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;d&amp;quot; command (only works in mode 2):&lt;br /&gt;
 d [value]&lt;br /&gt;
The value should be in hex. However, it might be easyer to think binary. Each bit represents an LED.&amp;lt;br&amp;gt;&lt;br /&gt;
For example, to light each even LED:&lt;br /&gt;
 d aaaa&lt;br /&gt;
Or for each odd LED:&lt;br /&gt;
 d 5555&lt;br /&gt;
Only one color is active in this mode. To change the active color, use the &amp;quot;r&amp;quot;, &amp;quot;g&amp;quot;, and &amp;quot;b&amp;quot; commands.&lt;br /&gt;
To turn on the red LEDs, and turn off the green and blue LEDs:&lt;br /&gt;
 r&lt;br /&gt;
The same goes for the &amp;quot;g&amp;quot; and &amp;quot;b&amp;quot; commands, only the colors differ.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you send the data quick enough (for example, with a script), it should be possible to generate some nice effects.&lt;br /&gt;
&lt;br /&gt;
===== Complete RGB bitmap =====&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;D&amp;quot;, &amp;quot;E&amp;quot;, and &amp;quot;F&amp;quot; commands (only works in mode 1):&amp;lt;br&amp;gt;&lt;br /&gt;
This is a little bit more complicated than the previous option, but gives you a lot more possibilities.&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;quot;D&amp;quot; command controls the red LEDs.&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;quot;E&amp;quot; command controls the green LEDs.&amp;lt;br&amp;gt;&lt;br /&gt;
The &amp;quot;F&amp;quot; command controls the blue LEDs.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To turn all red LEDs on, and all green and blue LEDs off:&lt;br /&gt;
 D ff ff ff ff ff ff ff ff&lt;br /&gt;
 E 00 00 00 00 00 00 00 00&lt;br /&gt;
 F 00 00 00 00 00 00 00 00&lt;br /&gt;
&lt;br /&gt;
Each nibble represents one LED in each quadrant. Let&amp;#039;s call the quadrants 1, 2, 4, and 8. Quadrant 1 is the bottom right, quadrant 2 top right, quadrant 4 top left, and quadrant 8 bottom left.&amp;lt;br&amp;gt;&lt;br /&gt;
We only have 15 LEDs, so one of the 16 nibbles is not used:&lt;br /&gt;
 D ff ff ff ff xf ff ff ff&lt;br /&gt;
               ^&lt;br /&gt;
Nibble x (also marked with a ^) is not in use.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Table of which nibble represents which LED:&lt;br /&gt;
 D ff|ff ff ff ff ff ff ff&lt;br /&gt;
   x |  |  |  |  |  |  |   LED 0&lt;br /&gt;
    x|  |  |  |  |  |  |   LED 1&lt;br /&gt;
     |x |  |  |  |  |  |   LED 2&lt;br /&gt;
     | x|  |  |  |  |  |   LED 3&lt;br /&gt;
     |  |x |  |  |  |  |   LED 4&lt;br /&gt;
     |  | x|  |  |  |  |   LED 5&lt;br /&gt;
     |  |  |x |  |  |  |   LED 6&lt;br /&gt;
     |  |  | x|  |  |  |   LED 7&lt;br /&gt;
     |  |  |  | x|  |  |   LED 8&lt;br /&gt;
     |  |  |  |  |x |  |   LED 9&lt;br /&gt;
     |  |  |  |  | x|  |   LED 10&lt;br /&gt;
     |  |  |  |  |  |x |   LED 11&lt;br /&gt;
     |  |  |  |  |  | x|   LED 12&lt;br /&gt;
     |  |  |  |  |  |  |x  LED 13&lt;br /&gt;
     |  |  |  |  |  |  | x LED 14&lt;br /&gt;
&lt;br /&gt;
So, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
To light the first 5 red LEDs in quadrant 2:&lt;br /&gt;
 D 22 22 02 00 00 00 00 00&lt;br /&gt;
To light the first 5 red LEDs in quadrant 2 and 4:&lt;br /&gt;
 D 66 66 06 00 00 00 00 00&lt;br /&gt;
To light the first 5 red LEDs in quadrant 2, and the last 5 red LEDs in quadrant 4:&lt;br /&gt;
 D 22 22 02 00 00 04 44 44&lt;br /&gt;
The syntax is identical for green and blue, but you should use the &amp;quot;E&amp;quot; and &amp;quot;F&amp;quot; command instead of the &amp;quot;D&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
==== Setting the time ====&lt;br /&gt;
&lt;br /&gt;
===== Over USB =====&lt;br /&gt;
It is possible to set the time over a USB-serial port, using the &amp;quot;T&amp;quot; command.&amp;lt;br&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
 T [hh] [mm] [ss]&lt;br /&gt;
With hh, mm, and ss in hexadecimal. For example:&lt;br /&gt;
 T 10 2F D&lt;br /&gt;
sets the time to 16:47:13 .&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
At BitWizard, we use the following script (we called it tsync) to set the time:&lt;br /&gt;
 #!/bin/sh &lt;br /&gt;
 h=`(echo obase=16 ;date +&amp;quot;%H&amp;quot; )| bc`&lt;br /&gt;
 m=`(echo obase=16 ;date +&amp;quot;%M&amp;quot; )| bc`&lt;br /&gt;
 s=`(echo obase=16 ;date +&amp;quot;%S&amp;quot; )| bc`&lt;br /&gt;
 echo T $h $m $s&lt;br /&gt;
Forward the output of this script to the clock, to set the time:&lt;br /&gt;
 ./tsync &amp;gt; /dev/ttyACM0&lt;br /&gt;
&lt;br /&gt;
===== Using the pushbuttons =====&lt;br /&gt;
&lt;br /&gt;
Switch 2: Push to jump one hour forward&amp;lt;br&amp;gt;&lt;br /&gt;
Switch 3: Push to jump 1 minute forward&amp;lt;br&amp;gt;&lt;br /&gt;
Switch 4: Push to reset the seconds to 0&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Reading back the time ====&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;t&amp;quot; command outputs the current time on the clock over the serial interface:&lt;br /&gt;
 CDC usbio/usbmultiio Wed Jan 11 18:28:22 CET 2012&lt;br /&gt;
 &amp;gt; t 11:2F:03.02E0&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
The time is printed in hex, in hh:mm:ss.milliseconds&lt;br /&gt;
&lt;br /&gt;
==== Adjusting the white-balance ====&lt;br /&gt;
&lt;br /&gt;
===== Over USB =====&lt;br /&gt;
&lt;br /&gt;
Setting the white-balance can be done with the &amp;quot;B&amp;quot; command.&amp;lt;br&amp;gt;&lt;br /&gt;
Usage:&lt;br /&gt;
 B [rValue] [gValue] [bValue]&lt;br /&gt;
Values are in hex. Example (this is the default setting):&lt;br /&gt;
 B 7800 7E00 0000&lt;br /&gt;
This means the red LED is on from 0x0000 until 0x7800, green is on from 0x7800 until 0x7E00, and blue is on from 0x7E00 until 0x0000.&amp;lt;br&amp;gt;&lt;br /&gt;
This counter counts from 0x0000 to 0xBB80.&lt;br /&gt;
&lt;br /&gt;
Because the interrupt routine takes some time too, there is a minimum interval between two interrupts. This minimum was measured to be between 0x600 and 0x700. I recommend you do not set the interval between two interrupts shorter than about 0x800.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Using the pushbuttons =====&lt;br /&gt;
&lt;br /&gt;
Not yet implemented.&lt;br /&gt;
&lt;br /&gt;
==== Jump to bootloader ====&lt;br /&gt;
&lt;br /&gt;
If you want to flash the controller, you need to switch to the bootloader. You can do this by pressing the pushbutton, of if you&amp;#039;re lazy (or if the clock is hanging on a wall on the other side of the room) you can do it by issuing the &amp;quot;z&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
== Technical Specifications: ==&lt;br /&gt;
&lt;br /&gt;
Power usage: Approximately 30mA with default firmware.&lt;br /&gt;
&lt;br /&gt;
== Future hardware enhancements ==&lt;br /&gt;
&lt;br /&gt;
* Replace 2 12-pin connectors by 1 20-pin connector&lt;br /&gt;
* Add numbers to the pushbutton switches&lt;br /&gt;
&lt;br /&gt;
== Future software enhancements ==&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
&lt;br /&gt;
=== 1.0 ===&lt;br /&gt;
* Initial public release&lt;/div&gt;</summary>
		<author><name>Tomtest</name></author>
	</entry>
</feed>