Pervasive Tangibility blogs Artists create aesthetic problems and solve them. When an artist creates a problem which is technical in nature, but for which no commodified solution exists, a solution must be invented. This is the realm of "making". Making often represents novel unions of sensible phenomena, information, and dynamic objects.  en Time of Day Clock with 60 Alarms and PWM Sequence Output <p><a href="/userfiles/image/Clock.png"><img width="300" vspace="5" hspace="5" height="502" border="5" align="left" src="/userfiles/image/Clock.png" alt="" /></a>The so-far-unnamed-project is moving forward. See <a href="sleep">here</a> and <a href="floating_pins">here</a> and <a href="fuses">here</a> for the rest of the story. The time of day clock now prints onto a serial-input Vaccum Flourescent Display. The clock has up to 60 alarms. All of the alarms fire off a function called runTask(). In the previous version of the code, each alarm task could be tied to a uinque function call. It turns out that the&nbsp; so-far-unnamed-project only needs one task. The alarm setpoints are held in a header file, also called an <em>include file</em>, which will probably be generated by a Processing app when the arduino stuff is done. The runTask() function requires an array containing about 2000 pwm values. These values live in a header file called performanceData.h. I was very surprised to learn that a user's .h files could not be included at the top of the arduino sketch. It's a long saga, but in short, it's an IDE bug. I wound up making an arduino library to get around the problem. In a library, the .h with the same name as the library, can referece other .h files included by the user. There seem to be programming issues with what you can put in the files (why?), but constant variables will work. The constant arrays are stored in program memory using the PROGMEM macro. This avoids chewing up all the RAM and crashing the AVR chip.</p> <p>CLICK READ MORE TO SEE THE REST OF THE POST</p> <p><a href="" target="_blank">read more</a></p> 32KHz arduino clock include files PROGMEM Mon, 14 Feb 2011 18:50:54 +0000 Ed_B 155 at Realtime Clock (RTC) with 32kHz Crystal and Sleep <p>I'm still working on the unnamed project. It involves low power operation. The story is moving forward on different fronts simultaneously. Previously I looked at power consumption issues on a running ATMega168/ ATMega328 configuered as Arduino Lilypads. Significant issues turned out to be <a href="/floating_pins">floating pins and the Power Reduction Register</a> (PRR). To adjust the processor speed and clock source, I had to get comfortable with changing the <a href="/fuses">fuse settings</a> in the AVR. The next piece of the puzzle is setting up sleep mode. Sleep involves going to sleep and waking up, and also knowing what time it is when the MCU wakes up. The ATMega provides a higly accurate (moreso than the normal 16 MHz crystal) super low power clock using a special feature of TIMER2. TIMER2 can generate its own clock, separate from the normal system clock. It uses external watch crystal crystal connected to the TOSC1 and TOSC2 pins. Because this clock is accessable only to TIMER2, it can run while the rest of the AVR is asleep. If TIMER2 is configued to generate a periodic interrupt (there's more than one configuration that will work) that interrupt will wake up the AVR. Whenever the work is done, a few magic lines of code in the program can be used to put the AVR back to sleep. The TIMER2 interrupt with the watch crystal can be used to generate accurate interrupts for any purpose, not just sleep.</p> <p>&nbsp;CLICK READ MORE TO SEE THE REST OF THE POST</p> <p><a href="" target="_blank">read more</a></p> Crystal Interrupts oscillator RTC TIMER2 Mon, 07 Feb 2011 17:11:46 +0000 Ed_B 153 at Arduino at 5volts and 5.3mA, and a Surprise <p>An ATmega168 Lilypad Arduino is the basis for a set of design experiments for a larger project. The larger project is not described here. Power consumption is an issue, so I set about trying strategies to reduce Arduino power consumption. As&nbsp; basis of comparison, measurements were made based on settings that could be changed in a running program, not fuses or circuit adjustments. I set out to get three or four baseline numbers relating to clock speed and internal peripherals. There was a big surprise hiding under a rock: The Arduino-like circuit being tested had by default, active, open input lines that drastically increased the mcu power consumption. The open lines also caused the chip power consumption to fluctuate sporadically on its own, and the fluctuations became more extreme as I moved my hand around the board. It took me a while to notice the correlation between my hand position and the current draw on the mcu, but then the mystery was gone. This is a classic case of the old caveat about not leaving cmos input pins floating -- tie 'em high, or tie 'em low, but don't leave 'em open. In the MCU, two things will fix this in software: set the pin to output, or leave it as input and turn on its internal pullup resistor.&nbsp; </p> <p>CLICK READ MORE TO SEE THE REST OF THE POST</p> <p><a href="" target="_blank">read more</a></p> arduino milliamps power PRR Fri, 04 Feb 2011 09:18:30 +0000 Ed_B 152 at Playing with AVR Fuses, Bricked Chips, and Testing for Low Power: Some Notes <p>My current project (not described here) requires adjusting the clock system fuse settings in some arduino '168 and '328 chips. It turns out that there are a couple of things that can go wrong if you burn the wrong clock or SPI (serial) fuses. My pile of &quot;bricked&quot; MCU's was begining to look silly, so I did two things. First I figured out how to un-brick most of the bad ones. Second, I made a thorough study of the fuse settings in the ATmega48/88/168/328 datasheets and the Arduino documentation, particularly the boards.txt file. This text is pasted in from my project's working notes.</p> <p>------------------------</p> <p>Erase bricked chip and reprogram. </p> <p>Use an Evil board with no xtal or caps, 10K pullup on RST, and a <br /> 1MHz external clock oscillator module connected to pin 9.</p> <p>I'd been trying lots of potential fixes that looked something like this, but<br /> this is the one that finally worked. The differences are the &quot;B&quot;&nbsp; [bitrate?]<br /> switch set to 3 for a high speed spi clock, and no &quot;-v&quot; switches on the command<br /> line. Avrdude may have&nbsp; a bug relating to the -v switch.</p> <p>commandline fu from <a href="" title=""></a></p> <p>&lt;burn&gt;<br /> varmint@Ktootoo:~$ avrdude -B 3 -c avrispmkii -p m168 -P usb -e</p> <p>avrdude: AVR device initialized and ready to accept instructions</p> <p>Reading | ################################################## | 100% 0.01s</p> <p>avrdude: Device signature = 0x1e9406</p> <p>avrdude: erasing chip</p> <p>avrdude: safemode: Fuses OK</p> <p>avrdude done.&nbsp; Thank you.</p> <p>varmint@Ktootoo:~$ <br /> &lt;/burn&gt;</p> <p> CLICK&nbsp;READ&nbsp;MORE&nbsp;TO&nbsp;SEE&nbsp;THE&nbsp;REST&nbsp;OF&nbsp;THE&nbsp;POST</p> <p><a href="" target="_blank">read more</a></p> arduino AVR avrdude bricked fuses Tue, 01 Feb 2011 00:06:04 +0000 Ed_B 151 at Humerus Labor - a robot arm for exploring motion control and robotic art <p>From time to time, I'll be doing &quot;retro&quot; posts of projects and interesting things from my collecton of files. To start things off, here's a couple of pages on a 3 axis robot arm I made with a BUNCH of help. The page is a re-write of another page I put up in 2003. Humerus Labor (the name of the robot) has two pages. One is <a href="/Humerus_Labor">about the robot</a>, and the other is about <a href="/Humerus_Labor_construction">how it was constructed</a>.</p> <p class="rtecenter"><a href="/Humerus_Labor"><img width="240" hspace="20" height="320" border="20" align="middle" src="/userfiles/image/HL/HL_img_thumbs240x320/pen3_thumb.png" alt="" /></a><a href="/Humerus_Labor_construction"><img width="240" hspace="20" height="320" border="20" align="middle" alt="" src="/userfiles/image/HL_construction/fullsize/construction11.jpg" /></a></p> <p>Robotic Art sometimes resembles traditional robots (arms or vehicles). Sometimes robotic art could also be called mechatronic art. Sometimes it's just kinetic work. Motion control works the same way and is made of the same systems no matter how it's used. Humerus Labor shows what motion control looks like in a very traditional way: A robot arm.</p> <p><a href="" target="_blank">read more</a></p> Tue, 18 Jan 2011 20:39:56 +0000 Ed_B 150 at Four Channel LED Driver <p>Here's a purely practical project I've done for student use in <a href="">my department at SAIC</a>. It's a breakout board for the Recom RCD-24-X series of constant current LED drivers. An LED driver's output current must match exactly the requirements of a given LED. Recom makes quite a variety of these modules.</p> <p><a href="/userfiles/image/LED_project_for_web/LED_IMAG0413_1.png"><img height="239" width="400" src="/userfiles/image/LED_project_for_web/LED_IMAG0412_1.png" alt="" /><img height="239" width="400" src="/userfiles/image/LED_project_for_web/LED_IMAG0413_1.png" alt="" /></a></p> <p class="rtecenter">&nbsp;</p> <p>In the Recom part number, X is replaced by the reguated current value. The board shown has one 1-amp and three 350mA modules.&nbsp; I've noticed that 350mA is a common value for power LED supply current. The retail price for the Recom moules is about $12 to $15, depending on the output. (<span style="font-size: larger;"><span style="font-family: Arial;">Click <strong>READ MORE</strong> to see the whole post.)</span></span></p> <p>&nbsp;</p> <p><a href="" target="_blank">read more</a></p> Mon, 22 Nov 2010 05:00:48 +0000 Ed_B 144 at "Radio Hat" - Wearable Electronics from 1949 <p>Making /Hacking/DIY, 1949 style. This image was found at&nbsp; <a href=""></a> The image is in the public domain. Yes, it really is a working vacuum tube radio. All the parts are fuctional.</p> <p class="rtecenter"><a href="/userfiles/image/RE_Jun_1949_Cover.jpg"><img height="600" width="457" src="/userfiles/image/RE_Jun_1949_Cover.jpg" alt="Yes, it really is a vacuum tube radio." /></a></p> Sat, 20 Nov 2010 19:25:06 +0000 Ed_B 143 at Super Bright White LED SMT Slugs <p>We found some discontinued super bright 1 watt white LED slugs for $2.75 a piece from All Electronics. To use them, you would need to buy a Luxeon LED&nbsp;board. We were able to get the boards from Digikey for $1.19 each.</p> <p class="rtecenter"><img width="380" height="200" alt="" src="/userfiles/image/Anna_Tutorials/LED_SLUG.png" /></p> <p>Here are some instructions that I compiled for the students on how to use them.</p> <p><a href="" target="_blank">read more</a></p> Fri, 12 Nov 2010 16:16:57 +0000 ayu 140 at Arduino Timer Library Workshop <p class="rtecenter"><img width="640" height="831" alt="" src="/userfiles/image/Workshops/ArduinoLibrary.png" /></p> Thu, 11 Nov 2010 21:50:10 +0000 ayu 139 at Makezine: Ultimate Workshop and Tool Guide <p>In 2007 I built our first mobile electronics lab to&nbsp; solve a facilities issue. http://<a href="../../../../../../MobileClassroom"> </a>. Now it's everywhere, DYI build your own workspace, shops, hackerspace, anything you can think of.</p> <p>&nbsp;</p> <p class="rtecenter"><img width="369" height="480" src="/userfiles/image/MAKE/TOOLSIP-2.jpg" alt="" /></p> <p class="rtecenter">Latest special issue of Make with topics on:</p> <p class="rtecenter">Workbenches you can build</p> <p class="rtecenter">Create your own hacker space</p> Thu, 11 Nov 2010 21:07:00 +0000 ayu 138 at