<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-38908275</id><updated>2011-11-01T00:57:50.545-07:00</updated><category term='soldering'/><category term='energy'/><category term='wireless'/><category term='photography'/><category term='smart design contest'/><category term='layout'/><category term='AVR'/><category term='hacking'/><category term='embedded design'/><category term='PCB'/><category term='FPGA'/><category term='SMT'/><category term='rant'/><title type='text'>More noise than signal</title><subtitle type='html'>Random nonsense about electronics, networks, photography, farming, and whatever else comes along.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-38908275.post-3976865863995402481</id><published>2010-10-30T00:51:00.000-07:00</published><updated>2010-10-30T01:07:10.851-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>A scary LED project for MSP430 Launchpad</title><content type='html'>I read the Evil Mad Scientist Labs project "&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;a href="http://www.evilmadscientist.com/article.php/sleepypumpkin"&gt;A pumpkin that sleeps like a Mac&lt;/a&gt;".&amp;nbsp; This inspired me to build up an LED project to light my jack-o-lantern. Their project&lt;/span&gt;&lt;/span&gt; uses an ATtiny2313 and I didn't have time to order parts.&amp;nbsp; But I did have some TI MSP430 LaunchPad boards that I hadn't even opened yet.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;So I installed an IDE and ported the code from AVR to MSP430.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;The MSP430 has a timer counter with a PWM function, but rather than learn how to program TI's timer, I just converted the code to a simple, brute force PWM function in software.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Another change I made to the code was to change their algorithm's constants into variables.&amp;nbsp; This allowed me to easily try different values to get the blinking effect I wanted without a lot of re-compiles.&amp;nbsp; I could just pause the debugger, change a value, hit continue to see the effect.&amp;nbsp; Once I had an blink that I liked, I put the numbers into the initialization of the variables and programmed the MSP430 processor.&lt;br /&gt;&lt;br /&gt;The basic blinking algorithm is still as Evil Mad Scientist Labs originally designed it.&amp;nbsp; I just tweaked some code details.&lt;br /&gt;&lt;br /&gt;One thing I learned is that the IAR IDE is configured by default to disable downloading the code to the target system when you press the "Download and Debug" button.&amp;nbsp; Note that the button right next to it is "Debug without Downloading".&amp;nbsp; Why there is such an option, I don't know.&amp;nbsp; They should grey out that icon, or change the tool tip.&amp;nbsp; It sure wasted a bit of my time figuring that problem out.&amp;nbsp; Anyway, the fix is under Project &amp;gt; Options &amp;gt; Debugger. Change the Driver pulldown from "simulator" to "FET Debugger".&lt;br /&gt;&lt;br /&gt;Here is the code:&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://pastebin.com/embed_iframe.php?i=WDswq9iS" style="border:none;width:100%"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Some notes on the circuit.&lt;br /&gt;&lt;br /&gt;The MSP430 is rated for VCC of 2.2 to 3.6 volts.  I used two AA which gives a nominal 3V VCC.&lt;br /&gt;&lt;br /&gt;The MSP430 outputs can drive about 25mA.  I used some 2.2V red LEDs rated for 20mA, so I could probably have driven the LED directly.  That would be running both the MSP430 and the LED at their limits, which isn't good for reliability nor battery life.  Instead, I used 180 ohm resistors which gives about 4.5mA of current to the LED.  I hooked up two LEDs, each on its own pin.  The code as written drives pins P1.7 and P1.6.  This seems to be bright enough to light the inside of a pumpkin sitting on a porch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-3976865863995402481?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/3976865863995402481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=3976865863995402481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3976865863995402481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3976865863995402481'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/10/scary-led-project-for-msp430-launchpad.html' title='A scary LED project for MSP430 Launchpad'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-7641016676523758499</id><published>2010-07-09T11:43:00.000-07:00</published><updated>2010-07-21T19:39:20.813-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FPGA'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded design'/><title type='text'>Actel Smartfusion</title><content type='html'>Yesterday, I went to Seattle for a presentation (they call it a "design workshop") on Atmel's Smartfusion devices.&amp;nbsp; They have combined their Flash-based FPGA with an ARM Cortex-M3, the usual micro-controller peripherals, and some configurable analog blocks to make a very flexible, mixed-signal, embedded device.&amp;nbsp; I brought home an &lt;a href="http://www.actel.com/products/hardware/devkits_boards/smartfusion_eval.aspx"&gt;eval board&lt;/a&gt; and some thoughts on their technology.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;First, some background info. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I like Actel's FPGAs.&amp;nbsp; Their on-die Flash and anti-fuse FPGAs tend to be faster than Xilinx or Altera.&amp;nbsp; Actel seems to always put plenty of routing resources on the chip, unlike Xilinx which seems to always starve the routing.&amp;nbsp; Sure, Xilinx can route through logic cells, but then you end up with the occasional 100nS signal delay.&amp;nbsp; Altera seems to fall in between Xilinx and Actel in routability (and thus real world speed - ignore the raw gate delays).&lt;br /&gt;&lt;br /&gt;What's in a SmartFusion device?&amp;nbsp; Basically, its a nice ARM Cortex-M3 based 100MHz, 32-bit MCU with all the peripherals and memory you would expect, some configurable analog functions, plus an Actel Flash FPGA fabric.&amp;nbsp; Here is the &lt;a href="http://www.actel.com/products/smartfusion/docs.aspx#ds"&gt;datasheet&lt;/a&gt;.&amp;nbsp; A quick rundown: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;SPI, I2C, UART, 32-bit timers, watchdog, RTC, on-ship oscillators (classic MCU stuff)&lt;/li&gt;&lt;li&gt;8-channel DMA, Priority interrupt controller, external memory controller, Ethernet MAC (nice Cortex-M3 support)&lt;/li&gt;&lt;li&gt;Embedded SRAM (dual port!), FLASH, and a bit of EEPROM&lt;/li&gt;&lt;li&gt;12-bit A/D and D/A, comparators&lt;/li&gt;&lt;li&gt;Flash programmed FPGA with 4Kbit SRAM blocks&lt;/li&gt;&lt;li&gt;All tied together by an AHB and APB busses&lt;/li&gt;&lt;li&gt;JTAG programming and debugging&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The CPU and perhipherals are implemented in gates aka "hard macros", not FPGA soft macros.&amp;nbsp; This avoids&amp;nbsp; issues with typical FPGA implementations of embedded controllers.&amp;nbsp; Soft macro CPUs take up too many FPGA resources and under-perform in speed.&amp;nbsp; So you can end up with a $50 FPGA-based part that performs like a $5 Atmel or PIC device.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;My take aways from the class&lt;/b&gt; (more or less from the bad to the good):&lt;br /&gt;&lt;br /&gt;No USB interface.&amp;nbsp; IMO, that's as important as Ethernet for a 32-bit MCU embedded design.&amp;nbsp; They need to add that in the next generation.&lt;br /&gt;&lt;br /&gt;FPGA tools have slowly improved over the years.&amp;nbsp; Early on, FPGA tools were a collection of totally separate programs with completely different UI's for each stage: design capture, simulation, timing analysis, synthesis, routing.&amp;nbsp; Over time, the different FPGA vendors have added nice front ends that tie those bits together and run most of them in the background.&amp;nbsp; Unfortunately, with the CPU, hard peripherals, and analog functions being added to the FPGA, we're back to a very modal design model where you are obviously launching different tools from different vendors to get things done.&amp;nbsp; By the end of the class, by brain was spinning.&amp;nbsp; You need a very large poster to diagram the roadmap you must navigate to produce a design.&amp;nbsp; At this point, it is not for the feint of heart.&amp;nbsp; Certainly not for the hobbiest.&lt;br /&gt;&lt;br /&gt;Too costly.&amp;nbsp; The mid-sized part with 200K FPGA gates is about $50.&amp;nbsp; I don't know the cost of the 600K device, but it must be well above $200.&amp;nbsp; I can get a 32-bit ARM MCU and a nice sized FPGA for under $50.&amp;nbsp; The 60K device, to be released latter this year, may be at a more interesting price point.&lt;br /&gt;&lt;br /&gt;The programmable analog looked interesting.&amp;nbsp; Compared to a typical MCU with an A/D and maybe some comparators, the analog modules are more flexible and varied.&amp;nbsp; They include an "analog compute engine", which is really just a configurable state machine.&amp;nbsp; But it gives the designer more than the usual flexibility in configuring how the analog works, and offloads the CPU a bit for simple sequencing of the analog functions.&amp;nbsp; There is also a "post processing engine" that can do low-pass filtering and other transformations that really are better done in hardware than the general purpose CPU.&lt;br /&gt;&lt;br /&gt;While I already complained about the tools, I really liked the MSS (microcontroller subsystem) configurator.&amp;nbsp; Atmel and Microchip need to study this and emulate this capability it for their MCU's, immediately. If Arduino added this functionality to their tools, it would really make the platform easier to use for people without a background in embedded design.&lt;br /&gt;&lt;br /&gt;The tool presents you with a "block diagram" GUI view of the ARM CPU and hard macro peripherals.&amp;nbsp; Click on any function block to configure or disable it.&amp;nbsp; For example, set the SPI interface to master, disable an unused UART, set up a timer on an interrupt, etc. &lt;br /&gt;&lt;br /&gt;Then the magical happens.&amp;nbsp; The tool will generate a software shell with all of the drivers for the peripherals, initial setup functions, and all the .c and .h files set up and ready for you to add your code into the main() function.&amp;nbsp; No more hunting around the web and downloading what you hope is the right SPI code that will work with your part.&amp;nbsp; A lot less adding include files to fulfill dependencies in the drivers.&amp;nbsp; Its like Arduino on mega-doses of steroids.&amp;nbsp; That UART block you disabled - it will be set up for zero power.&amp;nbsp; The SPI interface - just look at the function prototypes and you know how to read() and write() to your SPI peripherals.&lt;br /&gt;&lt;br /&gt;If you are uncertain about how to use any of the MSS devices, you can have the tool generate a little example code that will run on the evaluation board,&amp;nbsp; You can then see and experiment with working code.&lt;br /&gt;&lt;br /&gt;The MSS tool also supports very easily adding any of the common embedded peripherals to the FPGA and it will hook them up to the ARM through the ABH bus, set up the memory map, and supply the drivers and the setup code.&amp;nbsp; All with drag-n-drop.&amp;nbsp; You can add 5 UARTS with no Verilog (or VHDL, your choice) coding required.&amp;nbsp; But the Verilog is there and editable.&amp;nbsp; If you need a 64-byte FIFO on your UART, you can get into the code and add it.&lt;br /&gt;&lt;br /&gt;I know Freescale has something similar in their &lt;a href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=PROCESSOR-EXPERT&amp;amp;tid=PEH"&gt;Processor Expert&lt;/a&gt; tool, and probably others as well.&amp;nbsp; Maybe there is a costly 3rd party tool out there that does this.&amp;nbsp; But I haven't had an opportunity to use those yet.&amp;nbsp; Atmel really needs something like this, with the variability in how their different devices implement the same peripheral functions.&amp;nbsp; Microchip is a bit more consistent with their peripherals, but this would still be a nice feature for their flow.&lt;br /&gt;&lt;br /&gt;Arduino, thanks to being on a small subset of parts, would have the easiest time implementing this, and their user base needs it the most.&amp;nbsp; I think it could help expand Arduino from 100,000 users to 10 million.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The eval board&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The SmrtFusion eval board sold out immediately when Actel announced it.&amp;nbsp; They've had more batches built and they are now available.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;For $99 (or $50 for the board plus a day of training, which is what I did), you get their $50 A2F200KM3F SmartFusion part on a board with a (tiny) I2C OLED display, some buttons and LEDs, a 10/100 Ethernet port, external SPI Flash memory, an expansion header, and a USB interface.&lt;br /&gt;&lt;br /&gt;The USB interface is implemented in a separate part, not the A2F200K.&amp;nbsp; It is used for programming and debug.&amp;nbsp; It can also be used to send data from an application running on the FPGA through a UART port to the PC using serial over USB.&lt;br /&gt;&lt;br /&gt;Basically, you have a way to play with all of the different I/O features on the chip.&amp;nbsp; This comes in handy with the MSS tool's ability to generate example code.&lt;br /&gt;&lt;br /&gt;There are several jumper switches on the board.&amp;nbsp; The silk screen is so small, it almost takes a magnifying glass to make out which is which.&amp;nbsp; One jumper has to be constantly changed as you go between programing the part and debugging.&amp;nbsp; That's a pain.&amp;nbsp; At the least, they should have a slide switch, and preferably figure out a way to eliminate that jumper.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-7641016676523758499?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/7641016676523758499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=7641016676523758499' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7641016676523758499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7641016676523758499'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/07/actel-smartfusion.html' title='Actel Smartfusion'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-3893522958087537397</id><published>2010-07-03T00:36:00.000-07:00</published><updated>2011-01-16T10:29:27.878-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='energy'/><title type='text'>Your utility thinks you are lazy and stupid</title><content type='html'>Someone was wrong on the internet.&amp;nbsp; That’s certainly not news nor something I want to try to &lt;a href="http://xkcd.com/386/"&gt;battle every day&lt;/a&gt;. But in this case, the problem I discovered appears to be spreading and it is affecting important decisions in the real world.&lt;br /&gt;&lt;br /&gt;The energy industry is selecting which technologies to implement based on the belief that consumers are “stupid and lazy”.&amp;nbsp; I’ve tracked down the source of this problem.&lt;br /&gt;&amp;nbsp;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;A little over a year ago, I went to a community meeting to discuss what Oregon could do to attract federal economic stimulus dollars.&amp;nbsp; The theme was to find ways to leverage Oregon’s “green” reputation.&amp;nbsp; We hoped to identify projects that could use stimulus money to show the rest of the country the viability of new ideas and technologies in areas such as health, renewable energy and energy conservation.&lt;br /&gt;&lt;br /&gt;I went to a breakout session on energy.&amp;nbsp; We were supposed to brainstorm some ideas on energy generation and conservation.&amp;nbsp; The group included educators, technologists, inventors, and some people from the energy industry.&lt;br /&gt;&lt;br /&gt;Any idea (including all of mine) that involved consumers was immediately shot down by the industry insiders.&amp;nbsp; They told us none of our ideas would work because consumers are “stupid and lazy” and “they can’t even figure out how to program a setback thermometer”.&amp;nbsp; They insisted that the only things that would work were those that could be done without depending on the consumer to do anything.&amp;nbsp; I passed it off as the usual crap spewed by people that are trying to get money for themselves, and don’t want anyone to actually brainstorm new solutions that might take dollars away from their pet projects.&lt;br /&gt;&lt;br /&gt;A week later, at a different meeting with a different set of people, I heard similar words from some people involved with the smart grid.&amp;nbsp; “Consumers are too stupid and lazy to even program a setback thermometer.”&amp;nbsp; I was beginning to see a trend.&amp;nbsp; I asked them where they came up with that assertion.&amp;nbsp; “Oh, there’s a study out that proves it.”&amp;nbsp; I gave them my card and asked them to please send me a copy or link.&amp;nbsp; I never heard back from them.&lt;br /&gt;&lt;br /&gt;Over the course of the next few weeks, I ran into this attitude every time I was in a meeting with anyone in the energy industry.&amp;nbsp; Apparently, it is a meme that has developed within the energy industry.&amp;nbsp; I can tell you that it is actively stifling any innovation that involves consumers.&amp;nbsp; The utilities are using it to justify decisions like not providing consumers with real-time data on energy use from the smart meters that are being installed.&amp;nbsp; Their attitude is that smart meters are only for instrumenting of the smart grid for the utilities use, not for the stupid lazy consumers.&amp;nbsp; Believe me, “stupid lazy consumers” is almost a chant with these guys.&amp;nbsp; I wouldn’t be surprised to hear they use a three letter acronym for this in the office.&lt;br /&gt;&lt;br /&gt;Eventually, I found what I believe to be the source of this attitude.&amp;nbsp; I found a Forbes.com article titled “&lt;a href="http://www.forbes.com/2009/05/15/smart-grid-energy-technology-internet-infrastructure-energy.html"&gt;The Smart Grid Vs. Grandma&lt;/a&gt;”.&lt;br /&gt;&lt;br /&gt;The meme apparently originated from statements being made by Richard Thaler, a behavioral psychology economist at the University of Chicago's Booth School of Business and co-author of Nudge, a how-to book on influencing decision-making. &lt;br /&gt;&lt;br /&gt;Quotes from the article include: "Thaler points to Americans' adoption and use of programmable thermostats as an example of laziness trumping logic."&amp;nbsp; and "People tend to be passive," Thaler says. "For smart meters to work, they'd have to be pre-programmed."&lt;br /&gt;&lt;br /&gt;He bases his assertions in the article on “a 2005 survey by the Energy Information Administration”.&amp;nbsp; I tracked down the actual survey: the Energy Information Administration’s “&lt;a href="http://www.eia.doe.gov/emeu/recs/"&gt;2005 Residential Energy Consumption Survey, home energy uses and costs&lt;/a&gt;”.&lt;br /&gt;&lt;br /&gt;Given the actual numbers in that survey, his analysis and conclusions are pretty bizarre.&lt;br /&gt;&lt;br /&gt;Thaler states that "only a third of Americans own the devices and less than a fifth use them to change their homes' temperature during the day, even though half of Americans leave their houses empty from morning until evening". This is a very misleading interpretation of the data in the report. &lt;br /&gt;&lt;br /&gt;While it is numerically accurate, 18.6/111.1 is the number of homes that use a programmable thermostat to lower temperature during the day, he is misinterpreted this to imply that 80% of consumers are too stupid or lazy to even program a thermostat to save energy. &lt;br /&gt;&lt;br /&gt;His statement ignores a few facts mentioned in the report: many homes are not empty during the day; some homes are in climates where heat isn’t typically needed; some homes have heating systems (example wood burning stoves) that are not regulated by a thermostat; some of the homes in that 111.1 million don’t even have a heating system.&lt;br /&gt;&lt;br /&gt;Here are a few of the numbers from the report (in millions):&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Total US housing units: 111.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Use space heating equipment: 109.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Have a thermostat: 95.8&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * someone home all day: 56.4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Lower temperature setting when no one is home: 40.5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Have a programmable thermostat: 33.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Use programmable thermostat to reduce temp during the day: 18.6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Use programmable thermostat to reduce temp at night: 21.5&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The study points out that only half (111.1-56.4/95.8) of all homes are empty during the day, and would thus even be interested in reducing heating during the day.&amp;nbsp; Yet 56% (18.6/33.1) of people with programmable thermostats do indeed program them to lower temperatures during the day.&amp;nbsp; The correct conclusion is that homes which are empty during the day have a higher probability of having a programmable thermostat, and it is indeed programmed.&lt;br /&gt;&lt;br /&gt;This statement also bothered me: "If it involves people actually doing something, it won't happen," Thaler says. "Just look at everyone who never figured out how to program a VCR."&lt;br /&gt;&lt;br /&gt;The VCR is a poor analogy, based off a bad joke from the 70's.&amp;nbsp; In reality, VCR user interfaces in that era (in case you are too young to have seen them) were very poorly designed, and quite frankly often had poorly translated instructions.&amp;nbsp; The failure was with product development and user interface design, not with the consumers.&amp;nbsp; So yeah, if the energy industry does a terrible enough job, people won’t be able to use the technology.&lt;br /&gt;&lt;br /&gt;21 million (40.5-18.6) homes are manually lowering the temperature settings and may benefit from installing programmable thermostats.&amp;nbsp; People are obviously motivated enough to lower temperatures manually.&lt;br /&gt;&lt;br /&gt;My conclusion: Consumers are smart enough to program their thermostats when it is needed.&amp;nbsp; Consumers are motivated enough to manually control their thermostats.&amp;nbsp; Isn’t this the opposite of Thaler’s position?&amp;nbsp; Consumers are neither stupid, nor lazy. &lt;br /&gt;&lt;br /&gt;There are also quotes in the same Forbes article from Marti Doneghy, supposedly a spokesperson for the Association for the Advancement of Retired People.&amp;nbsp;&amp;nbsp; Simply put, this lady should be fired.&lt;br /&gt;&lt;br /&gt;"We vigorously oppose the mandatory imposition of these smart meters in peoples' homes," Doneghy says. "Everybody has to pay for this change, and a lot of the 50-plus population simply isn't that interested."&lt;br /&gt;&lt;br /&gt;Even the simplest online interface for controlling those smart meters, Doneghy points out, is beyond the grasp of plenty of Americans. "Internet access is not a fact of life for every person in the country," she says.&lt;br /&gt;&lt;br /&gt;I’m not going to even bother to look for statistics to refute her first statement.&amp;nbsp; The 50-plus population is most certainly interested in anything that can save them money.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Doneghy has no idea what "the simplest online interface" might be.&amp;nbsp; No one is proposing consumers "control those smart meters".&amp;nbsp; "Plenty of Americans"&amp;nbsp; can read a thermometer or gas gauge, and they can understand a display of their real-time energy usage.&lt;br /&gt;&lt;br /&gt;As the last statement, the reality is that broadband access is at 74% and internet access is at 85% according to U.S. Census Bureau numbers for 2008. Not quite everyone has the internet, but it’s obvious that enough use it to make it useful.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;This “spokesperson” obviously believes people over 50 are "stupid and lazy", and people in the energy industry that I talked to agree with her.&lt;br /&gt;&lt;br /&gt;This meme that "consumers are stupid and lazy" is helping the energy industry to make poor, self-serving decisions.&amp;nbsp;&amp;nbsp; Maybe not everyone in the energy industry has bought into this thinking, but certainly those I talked to back in May and June of 2009.&lt;br /&gt;&lt;br /&gt;I checked out Thaler’s book, Nudge.&amp;nbsp; It is full of interesting theories on how to manipulate consumer decision making.&amp;nbsp; He backs up his theories with data from various studies and surveys.&amp;nbsp; After looking into his interpretation of data in the residential energy consumption survey, I have to be skeptical about everything said in that book.&lt;br /&gt;&lt;br /&gt;Unfortunately, I don’t have time to track down everywhere someone is wrong on the internet.&amp;nbsp; I am too busy with ideas about monitoring and reducing home energy use that I need to work on instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-3893522958087537397?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/3893522958087537397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=3893522958087537397' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3893522958087537397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3893522958087537397'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/07/your-utility-thinks-you-are-lazy-and.html' title='Your utility thinks you are lazy and stupid'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-3511220651552493980</id><published>2010-06-14T00:30:00.000-07:00</published><updated>2010-06-14T00:30:33.875-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='layout'/><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><title type='text'>Eagle Cad autorouter on fine pitch SMT</title><content type='html'>That first design may be an anomaly, so I tried a couple more designs.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This next design is a smaller board, less complex, density about the same, but with a QFN part.&amp;nbsp; Note that my board density is partially due to the off-board connectors defining the minimum size board, and a tradeoff in size to make it easier for me to hand place the smt components.&amp;nbsp; Plus, not cramming parts too close together for these prototype PCBs allows for cuts and jumpers during debugging.&lt;br /&gt;&lt;br /&gt;Here is my manually routed board.&amp;nbsp; I think it flows fairly nicely.&amp;nbsp; The 6-pin header is an ISP programming connector, so I cannot reassign pins on the 20-pin MCU to improve routing.&amp;nbsp; There is also a trend showing up in my boards.&amp;nbsp; I like to put a rectangle on the bottom and assign it to GND to give me a ground plane.&amp;nbsp; Not really necessary on these tiny, low frequency board. Above 16MHz is my rule of thumb for where ground planes are a must.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;But it is a force of habit for me, and it saves me from routing the GND net.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/TBXH0DsIcGI/AAAAAAAAB0Y/fcZwLl1E110/s1600/manualrouting.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/TBXH0DsIcGI/AAAAAAAAB0Y/fcZwLl1E110/s320/manualrouting.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;I tried routing this board with the routing grid set to 10, but the Eagle CAD router refused to connect to any of the QFN pins.&amp;nbsp; The pins are .5mm spacing.&amp;nbsp; So I tried setting the grid down to 2 and even 1 mil.&amp;nbsp; Still it wouldn't route for some reason.&amp;nbsp; And, routing with a tiny grid gives the algorithm too much freedom.&amp;nbsp; Instead of routing in a few seconds, it can take minutes (on a small board).&lt;br /&gt;&lt;br /&gt;So I "helped" by doing short routes out from the pins.&amp;nbsp; A secondary benefit is that this prevents the autorouter from doing anything stupid right up next to the package, like putting in a via that blocks adjacent pins.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/TBXJIAfrJuI/AAAAAAAAB0g/TsR6q6j8T6A/s1600/QFNassist2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/TBXJIAfrJuI/AAAAAAAAB0g/TsR6q6j8T6A/s320/QFNassist2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;That puts the end of the signals on-grid, allowing the autorouter to do its work.&amp;nbsp; So I set my DRC rules to 10/10 (width/spacing) and the routing grid to 10.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qg37553jmQ4/TBXKZ1W7aII/AAAAAAAAB0w/AIsYS8ve6ao/s1600/Moreassist3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qg37553jmQ4/TBXKZ1W7aII/AAAAAAAAB0w/AIsYS8ve6ao/s320/Moreassist3.png" /&gt; &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Anyway, this isn't great.&amp;nbsp; There are a couple unrouted nets. One is easy to fix, but the other is going to take some work.&amp;nbsp; The routing is noticably less optimal my manual routing. &amp;nbsp; Also note the two vias the router still managed to put close to the QFN.&amp;nbsp; Not good for solerability or rework.&amp;nbsp; There are some goofy squiggles on some nets.&amp;nbsp; If I wanted to help the autorouter some more, I would rip everything up, then route the QFN pin 4 up to the SOT23 and give it another try.&lt;br /&gt;&lt;br /&gt;I hand routed this board in under an hour.&amp;nbsp; Cleaning up the autoroute is going to take a fair amount of time, but well under an hour.&amp;nbsp; So again the autorouter is a time saver with acceptable (not optimal) results.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next, I have a board that has a bit more critical routing requirements.&amp;nbsp; This board is a capacitive touch controller.&amp;nbsp; The signals going to the headers on the right of the board need to be layed out to avoid too much capacitive coupling between signals.&amp;nbsp; The board as placed is a little more dense that the first two, and it could be compressed even more.&amp;nbsp; I left it a bit loose so it would be easier to manually route.&amp;nbsp; I have to admit in fairness to the autorouter, I took two evenings to route this by hand, which included starting over from scratch at one point to make the board larger and easier to route by hand.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/TBXPmgSR8zI/AAAAAAAAB04/Ue6LSK-12lE/s1600/manualroute.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/TBXPmgSR8zI/AAAAAAAAB04/Ue6LSK-12lE/s320/manualroute.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Without going into too much detail, there are some considerations in the routing to make the power rails clean, and reduce coupling between the touch sensor signals.&amp;nbsp; The autorouter isn't going to know about those.&lt;br /&gt;&lt;br /&gt;Another QFN fine pitch part, so I hand routed some stubs for each pin just so the autorouter would have any chance to route the board.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qg37553jmQ4/TBXQdNImv-I/AAAAAAAAB1A/yLq_9qmgeac/s1600/QFNassist1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qg37553jmQ4/TBXQdNImv-I/AAAAAAAAB1A/yLq_9qmgeac/s320/QFNassist1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Next is the autoroute results:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qg37553jmQ4/TBXQ3ppwqrI/AAAAAAAAB1I/m9pehPbfv5E/s1600/autoroute2noplane.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qg37553jmQ4/TBXQ3ppwqrI/AAAAAAAAB1I/m9pehPbfv5E/s320/autoroute2noplane.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;One unrouted net.&amp;nbsp; The autorouter managed to put in some vias and routes to really block that signal from routing.&amp;nbsp; I manually routed it, but it took about 12 minutes of shoving stuff around.&amp;nbsp; The spaghetti routing on the right side of the board may or may not be acceptable, electrically, for the touch sensor signals.&amp;nbsp; I'd have to fab the board and try it to see if the capacitive touch is impaired.&amp;nbsp; It is certainly not as good as what I did, but then the autorouter doesn't know the special constraints in that area.&lt;br /&gt;&lt;br /&gt;The routing on the left side of the board isn't too bad.&amp;nbsp; The power signal is routed similarly to what I did, with no vias.&amp;nbsp; VCC is pin 3 of the QFN going to the SOT23 regulator without any vias.&lt;br /&gt;&lt;br /&gt;What I might do with this board next is to leave some of the autorouted nets as-is, and rip up a lot of the nets on the right half of the board so I could clean them up. &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;The EagleCAD autorouter can be useful on some boards.&amp;nbsp; The autorouter was able to route these boards with just some very basic tweeking (routing grid set to 10 mils instead of the default 50) and routing help (fine pitch SMT parts seem to be problematic).&amp;nbsp; This router doesn't support tagging nets as differential pairs or critical nets, so there is a clear limit to what it can do.&amp;nbsp; For hobbyist prototype boards, if you lay out critical nets by hand, I'd say it can be a useful tool to save you some time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-3511220651552493980?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/3511220651552493980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=3511220651552493980' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3511220651552493980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3511220651552493980'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/06/eagle-cad-autorouter-on-fine-pitch-smt.html' title='Eagle Cad autorouter on fine pitch SMT'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qg37553jmQ4/TBXH0DsIcGI/AAAAAAAAB0Y/fcZwLl1E110/s72-c/manualrouting.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-3479709035764713423</id><published>2010-06-12T14:34:00.000-07:00</published><updated>2010-06-12T14:35:10.193-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='layout'/><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><title type='text'>Eagle Cad autorouter</title><content type='html'>In &lt;a href="http://www.eevblog.com/2010/06/12/eevblog-93-pcb-autorouters-suck/?utm_source=twitterfeed&amp;amp;utm_medium=twitter"&gt;EEVblog #93&lt;/a&gt;, Dave Jones rant's that "PCB Autorouters Suck". Especially for beginners, and most definitely in cheap tools. &amp;nbsp; &lt;br /&gt;&lt;br /&gt;I happen to agree.&amp;nbsp; So I tried a little experiment.&amp;nbsp; My results surprised me.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;I have a small microcontroller board that I created in the free version of Eagle CAD.&amp;nbsp; I manually routed it a few months back.&amp;nbsp; Including placement, I think this took me about 2 to 3 hours (one evening).&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/TBPue4EALGI/AAAAAAAABzo/Znf9TOnJo6w/s1600/Manualroute.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/TBPue4EALGI/AAAAAAAABzo/Znf9TOnJo6w/s320/Manualroute.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The MCU runs at 4MHz off of its internal oscillator.&amp;nbsp; The crystal you see is a 32KHz for a time of day function.&amp;nbsp; None of the signals on this board are above 400KHz, and currents are low.&amp;nbsp; I like to make power traces big mainly so I can quickly tell them apart from signals.&amp;nbsp; I don't like vias under my QFP.&amp;nbsp; I got lazy and put in a top layer ground plane to help with routing ground through my power supplies on the left of the board.&amp;nbsp; So basically, one can say none of the traces are critical.&amp;nbsp; Good design practice has bypass caps near the power pins of the MCU, and the XTAL should have a solid ground plane.&lt;br /&gt;&lt;br /&gt;So I ripped up all the traces and took out the top side ground plane.&amp;nbsp; Loaded my 10/10 width/spaces design rules.&amp;nbsp; I set the autorouter to a 10 mil grid.&amp;nbsp; If you leave it at the default of 50 mil, it can't route to SMT pads that are "off grid".&lt;br /&gt;&lt;br /&gt;I clicked OK and about 5 seconds later, the autorouter gave me this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/TBPwb6m6RfI/AAAAAAAABzw/saXLpne19qo/s1600/autoroute2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/TBPwb6m6RfI/AAAAAAAABzw/saXLpne19qo/s320/autoroute2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Note it says 100% routed!&amp;nbsp; That right there shocked me.&amp;nbsp; And the other thing I noticed is that the autoroute looks pretty decent.&amp;nbsp; Not too many oddball excursions - it was smart enough to clean those up.&lt;br /&gt;&lt;br /&gt;But, it did put 5 vias under my QFP.&amp;nbsp; I don't like that.&amp;nbsp; I like my traces where I can get to them for debugging.&amp;nbsp; So I ripped up the routing, placed a couple power traces under the QFP, then blocked out the rest with some rectangles.&amp;nbsp; I'll take the rectangles out when routing is finished.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/TBPxie4OeSI/AAAAAAAAB0A/3pI9zTGmMcA/s1600/blockout3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/TBPxie4OeSI/AAAAAAAAB0A/3pI9zTGmMcA/s320/blockout3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I fired up autoroute, and this time it took slightly longer, maybe 10 seconds.&amp;nbsp; I could see it trying various routes.&amp;nbsp; But when it got done, I again had 100% routing, and it looked like this.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/TBPyBhflOLI/AAAAAAAAB0I/_K7gKrTTCek/s1600/autoroute4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/TBPyBhflOLI/AAAAAAAAB0I/_K7gKrTTCek/s320/autoroute4.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Not bad at all!&amp;nbsp; Not counting copy/pasting images for posting here, I've got only a couple minutes invested in this routing so far, and it looks presentable.&amp;nbsp; Sure, there are some longish routes, but at these speeds, its not a problem.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;A bit of cleanup, widening some power signals, a little bit of moving signals and vias for manufacturability, and now with a total of 15 minutes invested I have this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/TBP4EMaKscI/AAAAAAAAB0Q/qPqscL7Jhr4/s1600/autoroutefinal5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/TBP4EMaKscI/AAAAAAAAB0Q/qPqscL7Jhr4/s320/autoroutefinal5.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;That looks pretty good to me.&amp;nbsp; I'd say that's quite acceptable for a small prototype design.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I have to say I'm surprised at the results.&amp;nbsp; For a quick, small, prototype PCB, typical of what I'm seeing other hobbiests do on Eagle, the autorouter helped me finish the job in 1/5th of the time of manual routing (excluding placement, which will be the same either way). And I got similar quality to my manual work without much fiddling with the autorouter settings.&lt;br /&gt;&lt;br /&gt;Sorry Dave, I've failed to prove your (and my) position on autorouters.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-3479709035764713423?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/3479709035764713423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=3479709035764713423' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3479709035764713423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3479709035764713423'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/06/eagle-cad-autorouter.html' title='Eagle Cad autorouter'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qg37553jmQ4/TBPue4EALGI/AAAAAAAABzo/Znf9TOnJo6w/s72-c/Manualroute.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-4793684548779278323</id><published>2010-05-23T11:57:00.000-07:00</published><updated>2010-05-23T11:57:23.600-07:00</updated><title type='text'>What I learned at Code Camp</title><content type='html'>I&amp;nbsp; attended Portland Code Camp with about 1400 other geeks yesterday at the University of Portland.&lt;br /&gt;&lt;br /&gt;Because paper notes get lost and don't hyperlink so well, I'm going to post them here.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Eventually, the slides will be online and I will link them.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Developing a Rich Interactive Application Experience&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Brian Henderson, UX guy from Seattle&lt;br /&gt;@brian_henderson&lt;br /&gt;&lt;br /&gt;Start with understanding the user -&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is their environment?&amp;nbsp; Are there post-its or other info they have collected to help do their work?&lt;/li&gt;&lt;li&gt;What is their behavior?&amp;nbsp; What tasks do they do most often?&lt;/li&gt;&lt;li&gt;Collect their stories. &lt;/li&gt;&lt;/ul&gt;Create mockups on cardboard, walk through with user, rework, try scenarios.&lt;br /&gt;Ask open ended questions. Ask about their problems.&amp;nbsp; Avoid just hearing their proposed solution.&lt;br /&gt;What activity wastes your time? What shortcuts do you use?&lt;br /&gt;&lt;br /&gt;Personas -&lt;br /&gt;A made-up, believable person.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Role: e.g. beginner, expert, admin.&lt;/li&gt;&lt;li&gt;Personality&lt;/li&gt;&lt;li&gt;Name&lt;/li&gt;&lt;/ul&gt;Use the personas to get agreement with team on who they are developing for, get everyone (including management) on the same page. &lt;br /&gt;&lt;br /&gt;Sequence what they will do and how.&amp;nbsp; Test on paper, not code.&amp;nbsp; Paper is cheap.&amp;nbsp; Code is expensive, and developers become invested in it - hard to modify.&lt;br /&gt;&lt;br /&gt;Focus on solutions, not features.&lt;br /&gt;&lt;br /&gt;Features of a Rich Interactive user experience -&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Guide users through the app&lt;/li&gt;&lt;li&gt;Help them progress from beginner to becoming expert&lt;/li&gt;&lt;li&gt;Keep it simple - minimum info and context&lt;/li&gt;&lt;li&gt;Focus&lt;/li&gt;&lt;li&gt;Task oriented&lt;/li&gt;&lt;li&gt;Provide meaningful incentives: badge, status, member vs visitor&lt;/li&gt;&lt;ul&gt;&lt;li&gt;stackoverflow.com is a good example&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Three stages, each with a feedback loop.&amp;nbsp; Make changes at the easiest, cheapest possible level.&lt;br /&gt;&lt;ol&gt;&lt;li&gt; Paper design / test&lt;/li&gt;&lt;li&gt;Functional design / test&lt;/li&gt;&lt;li&gt;Production ready design / test&lt;/li&gt;&lt;/ol&gt;&amp;nbsp;Six Principles:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make it Direct (obvious)&lt;/li&gt;&lt;li&gt;Keep it Lightweight (minimalist)&lt;/li&gt;&lt;li&gt;Stay on the page (avoid context switches, navigating back and forth)&lt;/li&gt;&lt;li&gt;Provide invitations (lead them)&lt;/li&gt;&lt;li&gt;Use Transitions (providing context on-page)&lt;/li&gt;&lt;li&gt;React Immediately (hints, tool tips, popups.&amp;nbsp; validate input and give feedback)&lt;/li&gt;&lt;/ol&gt;Matrix of "Interesting moments" - states.&amp;nbsp; A spreadsheet-like list of tasks - see presentation for an example.&amp;nbsp;&amp;nbsp; Helps keep it simple, lightweight.&lt;br /&gt;&lt;br /&gt;Need screen considerations:&amp;nbsp; Landscape (PC), Portrait (tablet), Mobile (small)&lt;br /&gt;&lt;br /&gt;Couple slides of common screen patterns, UX patterns.&amp;nbsp; Tried and tested, familiar.&lt;br /&gt;Quince - online tool to explore them.&lt;br /&gt;&lt;br /&gt;Manage expectations - early versions should have less polish, to let everyone know its not baked yet.&lt;br /&gt;&lt;br /&gt;Review&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Focus of stories, not features&lt;/li&gt;&lt;li&gt;test earlier - cheaper and easier to modify&lt;/li&gt;&lt;li&gt;Know your users - don't design for yourself&lt;/li&gt;&lt;li&gt;Be visual - storyboards, mockups&lt;/li&gt;&lt;li&gt;Maximize shared understanding - UX, dev, coder, user - personas, wiki, stories&lt;/li&gt;&lt;/ul&gt;Last page: Resources list&lt;br /&gt;Google "RIA" "UX" "Interaction Design"&lt;br /&gt;Note that stuff from most recent 2 years is better than older.&lt;br /&gt;&lt;br /&gt;A good presentation, the second I've attended by Brian.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Developing for Windows Phone 7 Series&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Marcello Guerra, Microsoft&lt;br /&gt;&lt;br /&gt;Everything in his presentation is also available from MIX.&amp;nbsp; Go there for hours of videos.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Expression Blend&lt;/b&gt; - best for Windows Phone development.&amp;nbsp; Looks like Visual Studio w/ a black UI.&amp;nbsp; Used for designing the UI and creating simple interactions.&amp;nbsp; Demo was a very simple version of Mine Sweeper with no code required.&lt;br /&gt;&lt;br /&gt;Visual Studio 2010 Express Phone Edition.&amp;nbsp; Has Silverlight and XNA.&amp;nbsp; This is beta, about 5-step process to install.&amp;nbsp; Full instructions on Microsoft web site.&amp;nbsp; Polished single download due out later this year.&amp;nbsp; Note: do not try to install over other Visual Studio, must un-install first.&lt;br /&gt;&lt;br /&gt;Microsoft Phone Notification - push notification.&amp;nbsp; Small amounts of data that show up on the app icon.&amp;nbsp; NOT for app update downloads, not for pushing lots of info for the app to have when it becomes active. &lt;br /&gt;&lt;br /&gt;Microsoft has new catch phrase "three screens and the cloud".&amp;nbsp;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;PC&lt;/li&gt;&lt;li&gt;TV (Xbox)&lt;/li&gt;&lt;li&gt;Phone&lt;/li&gt;&lt;li&gt;Cloud (web services)&lt;/li&gt;&lt;/ol&gt;&amp;nbsp;Went over the Microsoft Marketplace app submit process.&amp;nbsp; Sounds like Apple.&lt;br /&gt;&lt;br /&gt;Current version of requirements has all phones with the same display resolution, all peripherals required that are in the APIs.&amp;nbsp;&lt;br /&gt;2nd version will add resolutions, ad-hoc distribution, Flash and Silverlight in the browser (not in 1st version).&lt;br /&gt;&lt;br /&gt;For Windows Phone 7 resources, go to &lt;a href="http://developer.windowsphone.com/"&gt;developer.windowsphone.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Consuming RESTful web services on the iPhone&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Frank Schmitt&lt;br /&gt;@frankus&lt;br /&gt;&lt;br /&gt;Talked about "Objective Resource", an obj-C library for the iPhone.&lt;a href="http://iphoneonrails.com/"&gt; iphoneonrails.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mentioned that REST purists may object to some of what he says/does. &lt;br /&gt;&lt;br /&gt;This library is designed to work seemlessly with a Ruby on Rails web site.&amp;nbsp; Frank very quickly created a web app (scaffolding) for a book database with title and auther from the command line using Rails.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;ObjectiveResource supports:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;List - GET /books&lt;/li&gt;&lt;li&gt;Create - POST /books&lt;/li&gt;&lt;li&gt;Read - Get /book&lt;/li&gt;&lt;li&gt;Update - PUT /book&lt;/li&gt;&lt;li&gt;Delete - DELETE /book&lt;/li&gt;&lt;/ul&gt;Quickly created an iPhone app to talk to the web app.&amp;nbsp; Classes: Book, Author.&lt;br /&gt;#import "ObjectiveResource.h"&lt;br /&gt;&lt;br /&gt;DEBUG key causes the library to send to the console messages about everything it sends and receives from the Rails app on the server.&amp;nbsp; Very handy.&lt;br /&gt;&lt;br /&gt;Contrasting to SOAP - SOAP is higher level, more complex, uses pre-defined data formats, more data traffic.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Security - POST user, PW, get GUID.&amp;nbsp; use GUID for session, don't keep sending user and PW!&amp;nbsp; Or, use SSL and certificates.&lt;br /&gt;&lt;br /&gt;Note: if the network is slow, finder may kill your app on launch for being too slow to load.&amp;nbsp; Need to set up loading the db in the background (with a spinner over the app).&lt;br /&gt;&lt;br /&gt;Mentioned ASIHTTP Request as another option, but he hasn't used it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Design Patterns in architecting applications in the cloud - Amazon Web Services&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Jinesh Varia, Amazon tech evangelist&lt;br /&gt;&lt;br /&gt;AWS provides scalable, spike-proof, pay-as-you-go cloud services.&lt;br /&gt;&lt;br /&gt;Google "Cloud best practices" to find his presentation, on http://media.amazonwebservices.com/&lt;br /&gt;&lt;br /&gt;I mentioned Portland's Urban Airship using AWS to scale their business while the company stayed at 2 guys and a laptop.&amp;nbsp; He is trying to meet with John at Urban Airship to discuss.&lt;br /&gt;&lt;br /&gt;Animoto.com is the example he went through.&amp;nbsp; Cool web app that takes your images and soundtrack and "automagically" creates a cool presentation.&amp;nbsp; They went viral with their Facebook application, spiked to adding 25K users per hour.&amp;nbsp; Quickly went from 500 to 5000 servers.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;They have a variety of services.&amp;nbsp; You can choose from them cafeteria style.&amp;nbsp; Using one does not imply you must use another.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EC2&lt;/b&gt; - Amazon compute on virtualized server instances.&amp;nbsp; Linux, Windows, Solaris, etc.&lt;br /&gt;Three pricing options:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On-demand - allows for spikey usage.&amp;nbsp; Most expensive, e.g. 8.5 cents/hour per server&lt;/li&gt;&lt;li&gt;Reserved - non-spikey, steady state usage.&amp;nbsp; Cheaper, e.g. 3 cents/hour&lt;/li&gt;&lt;li&gt;Spot - bid on unused capacity.&amp;nbsp; Executes your workload when price&lt;bid.&gt;&lt;/bid.&gt;&lt;/li&gt;&lt;/ul&gt;See &lt;a href="http://aws.amazon.com/calculator"&gt;AWS.amazon.com/calculator&lt;/a&gt; to look at various rates.&lt;br /&gt;See &lt;a href="http://cloudexchange.org/"&gt;cloudexchange.org&lt;/a&gt; for spot prices.&lt;br /&gt;&lt;br /&gt;Bandwidth is additional 15 cents/GB/month.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;S3&lt;/b&gt; - Amazon storage.&amp;nbsp; $/GB.&amp;nbsp; Only pay for what you use.&lt;br /&gt;&lt;br /&gt;Other services include: RDS database service on mySQL, SQS Queues, SNS notifications, SimpleDB domains, Analytics.&lt;br /&gt;&lt;br /&gt;OS, Framework, Language agnostic.&amp;nbsp; Use what you want, like you would on your own, in-house servers.&amp;nbsp; But without the up-front costs, and instant scalability.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Scalability Best Practices&lt;/b&gt;&lt;br /&gt;This doesn't happen automatically.&amp;nbsp; Your app and architecture needs to understand and allow for scaling.&lt;br /&gt;&lt;br /&gt;1. Design for failure - recognizing failure, how to recover, rerouting automatically&lt;br /&gt;&lt;ul&gt;&lt;li&gt;elastic IP addresses - remappable static IP&lt;/li&gt;&lt;li&gt;use multiple zones, Amazon has 4 - US-W, US-E, Euro, Asia&lt;/li&gt;&lt;li&gt;Use AutoScale for auto recovery&lt;/li&gt;&lt;li&gt;use EBS for persistent file systems.&amp;nbsp; EC2 looses its file storage when terminating or dieing.&amp;nbsp; Back up volume to EBS on a schedule that is right for your app.&lt;/li&gt;&lt;/ul&gt;2. Build loosly coupled systems&lt;br /&gt;Independant components, blackboxed, decoupled using queues on load balance clusters.&lt;br /&gt;&lt;br /&gt;3. Implement Elasticity - dynamic reconfiguration&lt;br /&gt;On bootup - who am I and what is my role?&amp;nbsp; Enable dynamic config, not static.&amp;nbsp; Resiliant to reboot and relaunch.&lt;br /&gt;&lt;br /&gt;4. Build security at every level&lt;br /&gt;encrypt data at rest in S3.&amp;nbsp; Encrypt data in stransit with SSL. Set up security groups. Consider encrypting data in EC2 for sensitive data (they don't wipe data, so next one to use that server might have access)&lt;br /&gt;&lt;br /&gt;5. Don't fear constraints&lt;br /&gt;Can always get more instances, etc.&lt;br /&gt;&lt;br /&gt;6. Leverage Storage Options&lt;br /&gt;Showed a spreadsheet for pro/con for each type.&lt;br /&gt;&lt;br /&gt;7. Think parallel&lt;br /&gt;&lt;br /&gt;Start small, put some small piece on the cloud, get experience, scale and expand over time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;C# IDE Tips and Tricks for VS2010&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Kevin Pilch-Bisson, Microsoft developer for Visual Studio for 8 years.&lt;br /&gt;@pilchie&lt;br /&gt;&lt;br /&gt;There are a lot of underused features, some from versions prior to VS2010.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;As Kevin went through his tips and tricks, he received several rounds of spontaneous applause from the audience when he described how to get to features users have been wanting for a long time.&amp;nbsp; And "oh!"s when he described "undiscovered" features that have been around for a while.&lt;br /&gt;&lt;br /&gt;ctrl-e - brings up search window for any text in your project.&lt;br /&gt;ctrl-comma - navigate to.&amp;nbsp; Extensible navigation tool.&amp;nbsp; Understands camel-case. Type TST and get TestStatusText. Understands pascal-case.&amp;nbsp; Type test text status and get TestStatusText.&lt;br /&gt;ctrl-period - display menu for a smart tag.&amp;nbsp; These are the small red or blue tags VS puts on code. Much easier than trying to hit them with mouse.&lt;br /&gt;cltr-alt-space - toggle suggestion mode for auto complete.&amp;nbsp; new mode: tab to accept suggestion. space, period, etc are taken literally.&lt;br /&gt;F12 - go to definition !!!&lt;br /&gt;ctrl-dash - go back to last cursor loc after a search or goto.&amp;nbsp; With a 5 button mouse, the "back button" does the same.&lt;br /&gt;&lt;br /&gt;Hover over a variable in debugger, after 1.5 seconds, click on the push pin to get a "permanent" watch pinned at that location in the code.&amp;nbsp; Rather than clutter the watch window with variables all over your code.&lt;br /&gt;&lt;br /&gt;Breakpoints - now have export (via XML file) to save or share your break points.&lt;br /&gt;&lt;br /&gt;.exe projects now default to 32-bit, even on 64-bit systems.&lt;br /&gt;&lt;br /&gt;Edit and Continue - nice, but many limitations.&amp;nbsp; Doesn't work for LINQ, for example.&lt;br /&gt;&lt;br /&gt;Intellitrace - only available in high end SKU above Pro.&amp;nbsp; Shows a list of exceptions that led up to a problem.&lt;br /&gt;&lt;br /&gt;cltr-shift-F12 - see list of where identifier is used in your project.&lt;br /&gt;&lt;br /&gt;F8 can now cycle through results for any list, e.g. compile errors. Shift-F8 to cycle backward.&lt;br /&gt;&lt;br /&gt;Other resources he recommended:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/"&gt;CodeRush Xpres&lt;/a&gt;s - free tool that adds more features to VS.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://csharp.net/"&gt;csharp.net&lt;/a&gt; - C# developer center.&lt;br /&gt;&lt;br /&gt;VS key bindings posters available at &lt;a href="http://blogs.msdn.com/lisa/archive/2010/04/16/vs-2010-keyboard-shortcut-posters-now-available-for-vb-c-f-c.aspx"&gt;blogs.msdn.com/lisa/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-4793684548779278323?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/4793684548779278323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=4793684548779278323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/4793684548779278323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/4793684548779278323'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/05/what-i-learned-at-code-camp.html' title='What I learned at Code Camp'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-1297527025241526184</id><published>2010-05-03T12:17:00.000-07:00</published><updated>2010-05-03T12:39:40.667-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>AVR Dragon vs slow clock rates</title><content type='html'>I am using the Atmel AVR Dragon board for debugging.  For $50, its a great tool.  The AVR Dragon supports virtually all AVR devices, and works with AVR Studio to support Atmel assembler and GCC C code and in-circuit debugging.&amp;nbsp;  It also works with other tools, such as the command line AVRDUDE utility.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To do in-circuit debugging, AVR Dragon uses something Atmel calls "debugWIRE".  This uses the RESET pin to communicate serially with the AVR.  To make this work, you must NOT have any capacitor hooked to RESET.  You are allowed to have a resistor on RESET, but it should be 20K ohms or higher.&amp;nbsp; Of course, no active circuit can be driving REST.&lt;br /&gt;&lt;br /&gt;It can be a little tricky to bring up the AVR Dragon and your target board.  The problem is that the AVR Dragon's ISP interface senses the target's AVR voltage, but does not intend to drive power to the MCU.  However, some small amounts of power can reach your AVR processor through the signal pins.  Just enough voltage to get it to come up in a bad way so that the target AVR processor will "hang".  Thus, it is important to power the target board separately, and power it up BEFORE plugging in the AVR Dragon.  &lt;br /&gt;&lt;br /&gt;What I do is power up the target with the AVR Dragon attached via the 6-pin ISP interface, but the USB cable not plugged into the AVR Dragon.  Then I plug in the USB cable.  This seems to work reliably.&lt;br /&gt;&lt;br /&gt;Another thing to note is that when you debug code, the AVR Dragon will first write the code into the AVR's Flash.  This has a "side effect" that later when you try to start up a debugging session, and you plug in power to the target board, it will begin executing its code.  This can be a problem.&lt;br /&gt;&lt;br /&gt;The real problem is that the AVR Dragon does not like AVR's that are running below 1MHz.  This can confuse the debugWire serial interface on the RESET pin in the AVR.  If the clock rate in the AVR is below 1MHz, it becomes very difficult to bring up debug mode.  The slower the clock rate, the more problematic it can be.  At 32KHz, the AVR processor is essentially "bricked".  You have to find a way to re-program the Flash.&lt;br /&gt;&lt;br /&gt;For my project, I am trying to conserve battery power.  So my program lowers the clock rate, then puts the AVR (an ATtiny44A) into the IDLE sleep mode.  The AVR wakes up on an input change or in 10 minutes via TIMER1.  It changes the clock rate back to 4MHz, processes the input or timer event, then returns to sleep.  So 99% of the time, the clock rate is low.  &lt;br /&gt;&lt;br /&gt;This works fine.  And you can even debug it using AVR Dragon as long as the Flash code doesn't come up and immediately put the AVR into low clock rate sleep mode. &lt;br /&gt;&lt;br /&gt;I learned all this after "bricking" my board by loading and debugging a version with the lowest clock rate, 8M/256 = 31.250KHz.  &lt;br /&gt;&lt;br /&gt;So now my sleeping clock rate is not a #define, but rather a variable in RAM.  The variable is initialized to "clock_div_8" which is 8MHz/8=1MHz.  This results in my code starting up with a default of a 1MHz clock during sleep.  I manually change the variable to 256 during debug to see what happens at 31KHz. Now when I try to debug with AVR Dragon, the Flash code will start off with 1MHz, and everything works.&lt;br /&gt;&lt;br /&gt;I was able to un-brick my board.  I wrote a very tiny, do-nothing program and, after a couple tries, got the AVR Dragon to re-program the Flash. There is another solution I found on &lt;a href="http://www.ladyada.net/wiki/microcontroller_annoyances"&gt;LadyAda's wiki&lt;/a&gt; that uses AVRDUDE to erase the part, but I didn't have to resort to that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-1297527025241526184?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/1297527025241526184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=1297527025241526184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1297527025241526184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1297527025241526184'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/05/avr-dragon-vs-slow-clock-rates.html' title='AVR Dragon vs slow clock rates'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-515454954700692837</id><published>2010-04-06T16:40:00.000-07:00</published><updated>2010-04-06T16:42:13.311-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><title type='text'>Eagle CAD versions</title><content type='html'>CadSoft recently released version 5.8 of their EagleCAD schematic and layout software.&amp;nbsp; They have a free version that is limited, but popular with hardware hobbiests.&amp;nbsp; Now they also have a "Freemium" version that is less limited, yet, too limited.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;Here are the basic versions of EagleCAD.&amp;nbsp; Most hobbiests go for the Freeware version.&amp;nbsp; You can do a lot in one schematic page, and a 2-layer 100x80mm board.&lt;br /&gt;&lt;br /&gt;&lt;table border="1" bordercolor="#ffcc00" cellpadding="1" cellspacing="1" style="background-color: #000000;"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td&gt;Version&lt;/td&gt;   &lt;td&gt;Schem pages&lt;/td&gt;   &lt;td&gt;PCB Layers&lt;/td&gt;   &lt;td&gt;PCB Size (mm)&lt;/td&gt;   &lt;td&gt;Price&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;Freeware&lt;/td&gt;   &lt;td&gt;1&lt;/td&gt;   &lt;td&gt;2&lt;/td&gt;   &lt;td&gt;100x80&lt;/td&gt;   &lt;td&gt;Free for not-for-profit use&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;Light&lt;/td&gt;   &lt;td&gt;1&lt;/td&gt;   &lt;td&gt;2&lt;/td&gt;   &lt;td&gt;100x80&lt;/td&gt;   &lt;td&gt;$49&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;Freemium&lt;/td&gt;   &lt;td&gt;4&lt;/td&gt;   &lt;td&gt;4&lt;/td&gt;   &lt;td&gt;100x80&lt;/td&gt;   &lt;td&gt;60-day Free trial&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;Standard&lt;/td&gt;   &lt;td&gt;99&lt;/td&gt;   &lt;td&gt;6&lt;/td&gt;   &lt;td&gt;160x100&lt;/td&gt;   &lt;td&gt;$747 ($498 w/o autorouter)&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td&gt;Standard Not-for-Profit&lt;/td&gt;   &lt;td&gt;99&lt;/td&gt;   &lt;td&gt;6&lt;/td&gt;   &lt;td&gt;160x100&lt;/td&gt;   &lt;td&gt;$125&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Freemium would be nice to have, with the extra room on four schematic pages.&amp;nbsp; 4 layer boards are more expensive than two, but useful if you are doing high speed or dense board design. With four pages to play on, the 100x80 board space might become an issue.&lt;br /&gt;&lt;br /&gt;The trouble is that once your 60 day free trial is over, you have to either drop to the Freeware/Light version, or move up to the Standard version.&amp;nbsp; There is no non-free, unlimited use version of the Freemium version.&lt;br /&gt;&lt;br /&gt;But, for complex hobbiest projects, there is an option of getting the Standard version for $125 if you promise to use it only for "not for profit" use.&lt;br /&gt;&lt;br /&gt;If there was a not-for-profit Freemium version for $49, I'd buy it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-515454954700692837?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/515454954700692837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=515454954700692837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/515454954700692837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/515454954700692837'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/04/eagle-cad-versions.html' title='Eagle CAD versions'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-7012395983017146935</id><published>2010-03-24T01:07:00.000-07:00</published><updated>2010-03-24T01:07:47.733-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><title type='text'>Throwing in the towel</title><content type='html'>Tonight, I had to admit that it is impossible to complete my design by the deadline this Friday.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;It was all my own fault.&amp;nbsp; I threw away a month waiting to see if I'd  made past the first selection to the top 100 entries.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I wasted a second month on getting  reflow soldering working.&amp;nbsp; In a couple evenings, I could have hand soldered enough  boards to get debug started, then worked on the reflow in parallel.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;So I  had only three weeks left for debug, but could have had eleven weeks.&amp;nbsp; Ouch, my bad.&amp;nbsp; Terrible planning.&lt;br /&gt;&lt;br /&gt;It turns out, I also don't do my best design and debug work at 1am.&amp;nbsp; Debug was going way slower than it should have.&lt;br /&gt;&lt;br /&gt;Here is what I debugged in one of my typical evenings, between 10pm and 2am:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Reset AT42QT2160 incorrectly&lt;/li&gt;&lt;li&gt;Forgot to turn on LCD backlight regulator&lt;/li&gt;&lt;li&gt;Cold solder joint on connector pin for backlight power&lt;/li&gt;&lt;/ul&gt;The first problem was that I misread the datasheet back when I coded the initialization function, and for over an hour of debug assumed my understanding was right, just coded wrong.&amp;nbsp; I mean, how hard is it to send a reset command?&amp;nbsp; Pretty easy on the QT2160 as it turns out.&amp;nbsp; I just tried to make it hard.&lt;br /&gt;&lt;br /&gt;The second and third problems were two bugs with the same symptom - the LCD backlight wouldn't come on.&amp;nbsp; So I went round and round with that for a while before I realized there were two bugs I was dealing with.&lt;br /&gt;&lt;br /&gt;The good news is I don't need to survive on 3-5 hours of sleep any more.&amp;nbsp; I won't give up on this project, but I'm not going to kill myself working late at night any more.&amp;nbsp; Its just not productive use of my time because I'm so inefficient that late at night.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-7012395983017146935?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/7012395983017146935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=7012395983017146935' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7012395983017146935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7012395983017146935'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/03/throwing-in-towel.html' title='Throwing in the towel'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-5919502583336273889</id><published>2010-03-13T12:47:00.000-08:00</published><updated>2010-03-13T12:56:28.042-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SMT'/><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><category scheme='http://www.blogger.com/atom/ns#' term='soldering'/><title type='text'>Hand soldering QFN</title><content type='html'>I tried last night to hand solder another 28-pin QFN part.&amp;nbsp; A QFN part has no leads, but rather copper pads are built right into the package.&amp;nbsp; And the leads are tiny and closely spaced.&amp;nbsp; On top of that, many QFN parts have a big ground "paddle" under the part.&amp;nbsp; This should be soldered down.&amp;nbsp; &lt;a href="http://support.atmel.no/bin/customer?=&amp;amp;action=viewKbEntry&amp;amp;id=18"&gt;Atmel FAQ&lt;/a&gt; explains why.&lt;br /&gt;&lt;br /&gt;So I'll give you the summary right up front: use reflow soldering for QFN.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Since I can't solder the paddle under the package with my soldering iron, I applied solder to the paddle and to the PCB pad, hoping for some mechanical contact would be "good".&amp;nbsp; This caused the part to "high center", and it rocked back and forth as I tried to align the part with the solder pads.&amp;nbsp; So I wicked it down as much as I could.&lt;br /&gt;&lt;br /&gt;In the future, I might try putting a via right in the middle of the paddle and use it to conduct heat up to the paddle from below for hand soldering. Watch this &lt;a href="http://www.youtube.com/watch?v=qaMPp_5tXSY&amp;amp;feature=PlayList&amp;amp;p=69964E289B684397&amp;amp;playnext=1&amp;amp;playnext_from=PL&amp;amp;index=10"&gt;Schmartboard video&lt;/a&gt; for this technique in action.&lt;br /&gt;&lt;br /&gt;Anyway, my next problem was aligning the pads.&amp;nbsp; In reflow soldering, the viscosity of the molten solder will pull the part into nice alignment.&amp;nbsp; It's fun to watch the parts suddenly shift when the solder paste melts, and a great way to tell you've reached reflow temperature.&amp;nbsp; This works really well up to misalignment of 50% of the pad spacing - at that point, the part might move onto the wrong pads.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Hand soldering, getting that first pin soldered with good alignment all around the package is just trial and error.&amp;nbsp; The act of touching the pad with my iron tends to pull the part to the iron.&amp;nbsp; So you need to hold the part down with pressure from your tweezers or something.&amp;nbsp; I saw an idea on &lt;a href="http://hackaday.com/"&gt;Hackaday&lt;/a&gt; on using pliers and a small screwdriver with a rubber band to create a tool to hold down ICs.&amp;nbsp; It works pretty good!&amp;nbsp; But rotation of the part vexed me last night.&amp;nbsp; Eventually, I got misalignment down to 1/4 to 1/2 of the pad width.&amp;nbsp; Yes, I was satisfied with 1/2 - it was very frustrating.&lt;br /&gt;&lt;br /&gt;Next, I applied flux paste all around the part and "drag soldered" the pins.&amp;nbsp; Look on Youtube for videos on drag soldering.&amp;nbsp; I use .015 diameter solder and apply a fair amount of solder.&lt;br /&gt;&lt;br /&gt;I got quite a few shorts.&amp;nbsp; One side had just one short, but the worst side had all pins shorted.&amp;nbsp; I can see shorts using a simple magnifying glass - its pretty obvious when there is the shiny glint of solder from one pin to the next.&amp;nbsp; You can and should use an ohm meter to verify adjacent pins are not shorted.&amp;nbsp; What is very hard to do is verifying the pads are soldered down.&amp;nbsp; So I used plenty of solder.&lt;br /&gt;&lt;br /&gt;Removing a short, if there isn't too much solder, can be done just by touching the solder bridge and dragging some&amp;nbsp; solder away with the iron.&amp;nbsp; In cases with too much solder for that to work, I used solderwick to pull off excess solder.&lt;br /&gt;&lt;br /&gt;I started around the package, removing visible shorts and verifying with the ohm meter they were clear.&amp;nbsp; It went pretty well for the first two sides.&lt;br /&gt;&lt;br /&gt;Unfortunately, on the third side, the ohm meter "lied" to me.&amp;nbsp; I was trying to clear this one short, and no matter how much solder I removed, the pins were shorted.&amp;nbsp; Eventually, I gave up and went to bed (4am).&lt;br /&gt;&lt;br /&gt;The next morning, with a clearer head, I realized that the two pins I was working on were VCC and GND.&amp;nbsp; These pins were shorted on the fourth side of the package!&amp;nbsp; So I had to re-apply a bit of solder to those pins to ensure they were soldered.&amp;nbsp; That meant getting the flux back out and dragging that side of the part.&amp;nbsp; Yay, more shorts to clear.&lt;br /&gt;&lt;br /&gt;I fairly quickly removed those shorts and the ones on the last side of the package.&amp;nbsp; Double checked every adjacent pin for shorts.&amp;nbsp; Everything is clear.&amp;nbsp; What I don't know is if I damaged the part while I fussed with the VCC GND pins last night.&amp;nbsp; I should find out fairly quickly when I begin software debug.&amp;nbsp; Unless the part is "sort of working" and just flakey.&amp;nbsp; That takes a while to figure out.&lt;br /&gt;&lt;br /&gt;Sorry for the lack of photos, but all you'd see is a little tiny IC on a PCB under a 3rd hand magnifier.&amp;nbsp; I need to get a macro lens for my camera.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-5919502583336273889?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/5919502583336273889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=5919502583336273889' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/5919502583336273889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/5919502583336273889'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/03/hand-soldering-qfn-cont.html' title='Hand soldering QFN'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-1622347986612462164</id><published>2010-03-02T00:37:00.000-08:00</published><updated>2010-03-09T20:57:00.158-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SMT'/><category scheme='http://www.blogger.com/atom/ns#' term='soldering'/><title type='text'>Hand soldering SMT components</title><content type='html'>Below is based on an email that describes how I do hand soldering of SMT.&amp;nbsp; I'll try to add a few photos soon.&lt;br /&gt;&lt;br /&gt;I use a temperature controlled iron with a good tip, set to 315C.&amp;nbsp; &lt;b&gt;A temperature controlled soldering iron with a good tip is KEY!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I bought a Aoyue 937+ digital soldering station for about $50 through Amazon.&amp;nbsp; You can buy a "fire-starter" soldering iron without temperature control for as little as $10.&amp;nbsp; But even an "expensive" soldering iron without temperature control makes SMT soldering more difficult, your tips don't last as long, and you are at greater risk of heat damaging parts and your board.&amp;nbsp; Excessive heat can lift traces and pads.&amp;nbsp; If you need to save money, you can buy the Aoyue 936 analog controlled soldering station for $40.&lt;br /&gt;&lt;br /&gt;For SMT, I use a roll of .015" (very thin) Sn63/Pb37 no-clean solder.&amp;nbsp; Not lead-free.&amp;nbsp; Lead-free takes at least twice the skill.&amp;nbsp; That's for pro's or "pro-sumers", not us hackers.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I use a magnifying glass on a third-hand base to see my work.&amp;nbsp; I keep both eyes open so I can use depth of field.&amp;nbsp; I don't use the alligator clips, I just use the third hand to position the magnifier where I need it.&amp;nbsp; The board is held in position with scrap PCB's taped around it.&amp;nbsp; I use a gooseneck lamp or a strong LED flashlight to illuminate my work.&amp;nbsp; A ring light with a center magnifier would probably work better, but I don't have one (yet).&amp;nbsp; Decent microscopes are too expensive and don't allow me enough freedom in choosing my angle of view.&amp;nbsp; If you can afford one, you are a pro-sumer and should be working on your lead-free skills.&lt;br /&gt;&lt;br /&gt;No prep on the pad, just drop the part on and position it with your very-fine tipped tweezers.&amp;nbsp; Note that one side of my supposedly "anti-magnetic" tweezers have already become slightly magnetized.&amp;nbsp; But titanium tweezers are over $20, "anti-magnetic" stainless are just $5, so I just deal with it.&amp;nbsp; Solder wire doesn't magnetize, so I use it to hold down 0603 and 0402 parts while I pull away my tweezers.&lt;br /&gt;&lt;br /&gt;Make sure your soldering iron tip is clean and well tinned, but no excess solder.&amp;nbsp; A very tiny bit of excess solder on the tip will help heat conduction, but it also too often grabs the part with the surface tension of the solder to cause it to tomb-stone.&amp;nbsp; That's where the part pops up to a vertical position, like a tomb-stone sticking out of your PCB.&lt;br /&gt;&lt;br /&gt;Touch one side of pad and end of part with the tip.&amp;nbsp; Count to 2 or 3, touch the pad with solder wire. Exhale (to blow fumes away instead of inhaling them).&amp;nbsp; Solder should flow across pad and up the lead of the part.&amp;nbsp; 0603 parts will tombstone about 25% of the time, 0402 about 75% (less with practice).&amp;nbsp; When it happens, use the end of your solder wire to quickly push the part back down.&amp;nbsp; If part has rotated, maybe 10% of the time, push it straight with solder wire. Pull iron away.&amp;nbsp; Try not to dwell overlong positioning the part with the iron heating the joint, as you can damage the part and/or the pad.&amp;nbsp; Of course, you have to remember to remove the solder wire before the iron.&lt;br /&gt;&lt;br /&gt;On other side of the part, touch iron to pad and lead, count to 2 or 3, touch pad with solder, pull solder away and pull iron away almost simultaneously.&lt;br /&gt;&lt;br /&gt;Admire handy-work.&amp;nbsp; Soderwick (tm) is your friend at this stage, but very rarely needed, about 5% or less of my joints need rework thanks to using thin, lead-based solder and my temperature controlled iron with good tip.&amp;nbsp; Be generous with oderwick. Once used, cut the end away and always use solder-free Soderwick.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I have found I can hald-solder SOT-3 parts.&amp;nbsp; These have 5 leads in about the size of a 0603 component.&amp;nbsp; I was surprised that I could align the parts and solder them with basically the above technique.&amp;nbsp; Even with my magnifier, it is very hard to see the leads to tell if they are aligned.&amp;nbsp; For hand soldering, using larger than recommended pad lengths helps.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I do not have a very good technique for QFN (leadless) IC's.&amp;nbsp; Basically, I align the part carefully and try to hand solder one corner pin without moving the part.&amp;nbsp; Then I drag solder the sides (starting on opposite corner from first pin) resulting in many shorts.&amp;nbsp; I clean those up with Soderwick.&amp;nbsp; Lay it snug along one side of the part, and drag the soldering iron across the Soderwick.&amp;nbsp; It easily pulls all the excess solder out, leaving just enough to make joints.&amp;nbsp; I ohm out all adjacent pins to verify no shorts.&lt;br /&gt;&lt;br /&gt;I have one QFN part that requires a solder pad under the body to be connected.&amp;nbsp; No choice there but to use a SMT reflow hotplate or toaster oven. &lt;br /&gt;&lt;br /&gt;Always ohm out power to ground when you are finished, before applying power.&lt;br /&gt;&lt;br /&gt;LED's are about the most easily damaged SMT part.&amp;nbsp; My digital meter has a diode check function.&amp;nbsp; I apply that through the load resistor to check for LED operation (and correct orientation).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-1622347986612462164?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/1622347986612462164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=1622347986612462164' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1622347986612462164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1622347986612462164'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/03/hand-soldering-smt-components.html' title='Hand soldering SMT components'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-7698660288108688840</id><published>2010-03-02T00:00:00.000-08:00</published><updated>2010-03-02T00:17:23.232-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>How to waste 2 weeks</title><content type='html'>Inspired by a class I took from the author of &lt;a href="http://www.instructables.com/id/Extreme_Surface_Mount_Soldering/"&gt;Extreme SMT Instructable&lt;/a&gt;, I decided to set up a SMT reflow soldering system.&amp;nbsp; Although his hotplate technique works well, it isn't as repeatable as I would like.&amp;nbsp; Recently, he added a follow-up instructable that adds a PID controller to the hotplate system, which should make the process repeatable.&amp;nbsp; But I didn't see that until I was already committed to the toaster oven system (parts had been ordered).&amp;nbsp; &lt;br /&gt;&lt;br /&gt;And the hotplate technique still bothers me.&amp;nbsp; The heat is applied to the insulating FR4 fiberglass, so only convection heat is getting to the solder joints.&amp;nbsp; The bottom of the PCB tends to discolor slightly, so who knows what this means for long term reliability.&lt;br /&gt;&lt;br /&gt;Reading several DIY guides, I became convinced that the way to go was to buy a PID temperature controller and a powerful toaster oven.&amp;nbsp; Why duplicate something you've seen work when you can try to do it "better"?&amp;nbsp; (hint: This is especially not a good idea when you are under a tight deadline, like I am right now.)&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/S4y9myvRD_I/AAAAAAAABzE/bqSef5W6Sh4/s1600-h/IMGP5951.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/S4y9myvRD_I/AAAAAAAABzE/bqSef5W6Sh4/s320/IMGP5951.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I spent a few days choosing the devices to use, ordering parts, and waiting for everything to arrive.&lt;br /&gt;&lt;br /&gt;My materials: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;a &lt;a href="http://www.thesiliconhorizon.com/cms/index.php?option=com_content&amp;amp;view=article&amp;amp;id=66&amp;amp;Itemid=57"&gt;Reflow 3.0 PID controller from The Silicon Horizon,&lt;/a&gt; for $65.&amp;nbsp; This is a PIC-based PID controller with some handy Windows utilities to drive it. No time to build my own - I'm on a schedule here, right?&lt;/li&gt;&lt;li&gt;a type-F thermocouple from TSH, $16. &lt;/li&gt;&lt;li&gt;a Black and Decker Infrawave toaster oven  (recommended by TSH) for $70 from Amazon.&amp;nbsp; 1500W is reported to be sufficient for lead-free work. Also, I know that some industrial reflow soldering systems run on infrared, so I figured it would be a good choice.&lt;/li&gt;&lt;li&gt;35amp Omron SSR from Digikey for $18. (recommended by TSH).&amp;nbsp; 1500W/110V is less than 15 amps, but you want to be overdesigned here so the SSR doesn't overheat.&lt;/li&gt;&lt;li&gt;Misc 120VAC parts from HomeDepot and &lt;a href="http://www.surplusgizmos.com/"&gt;Surplus Gizmos&lt;/a&gt; (an electronics surplus store just a short drive away).&lt;/li&gt;&lt;/ul&gt;Note that this is a fairly high multiple in cost over the Instructable's hotplate method. &lt;br /&gt;&lt;br /&gt;Not wanting to risk electrocution or a fire, I put the AC stuff all into an electrical box.&amp;nbsp; I chose a metal weatherproof&amp;nbsp; box so the box could act as a heat sink for the SSR.&amp;nbsp; It turns out that the SSR runs pretty cool in this application.&amp;nbsp; I don't think the metal box was actually necessary.&amp;nbsp; The spot where the SSR is bolted to the box with a bit of thermal paste barely warms up under full load.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/S4y5Ve9vpDI/AAAAAAAAByk/q36HEGhXVDE/s1600-h/IMGP5931.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/S4y5Ve9vpDI/AAAAAAAAByk/q36HEGhXVDE/s320/IMGP5931.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I added a red indicator lamp so I can see when power is flowing to the outlet through the SSR.&amp;nbsp; And an on/off switch so I can easily kill power whenever I want.&amp;nbsp; I leave the switch off when the oven is not in use, for safety. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/S4y6eAtm4ZI/AAAAAAAABys/KREmYf7G8IA/s1600-h/IMGP5934.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/S4y6eAtm4ZI/AAAAAAAABys/KREmYf7G8IA/s320/IMGP5934.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;The Infrawave oven's controller needs to be bypassed so the SSR has complete control of the heating elements.&amp;nbsp; I didn't follow The Silicon Horizon's instructions.&amp;nbsp; They say you need to defeat the door switch, but the door switch just feeds into the toaster's controller. It is not directly interrupting AC, so after bypassing the controller, it has no effect.&lt;br /&gt;&lt;br /&gt;Also, they suggest soldering bridge wires around the SSR's on the toaster's controller.&amp;nbsp; The AC wires coming to the oven and going out to the heating elements are all common 1/4" spade connectors.&amp;nbsp; I used three spade receptacles, a wire nut, and a small amount of wire to completely bypass the controller.&amp;nbsp; The unused controller no longer receives power using my method.&amp;nbsp; Thos connectors are just laying on the green PCB, they are not connected to it.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/S4y8cWTF_1I/AAAAAAAABy0/Dc8PaVhdKz4/s1600-h/IMGP5943.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/S4y8cWTF_1I/AAAAAAAABy0/Dc8PaVhdKz4/s320/IMGP5943.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Right after I took this picture (taken with the toaster upside down), I removed the brown relay board shown at the top of photo completely.&amp;nbsp; There wasn't room for my wires with that board in there.&amp;nbsp; But it no longer does anything at all, so why store it in there?&lt;br /&gt;&lt;br /&gt;So here it is, all assembled.&amp;nbsp; Note that I'm not going to give detailed instructions on what I did.&amp;nbsp; AC is dangerous. If you don't know enough to do this without detailed instructions, IMO you shouldn't be mucking around with AC.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S4y9N25CCKI/AAAAAAAABy8/1S9ZjxgPdfk/s1600-h/IMGP5948.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S4y9N25CCKI/AAAAAAAABy8/1S9ZjxgPdfk/s320/IMGP5948.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Next, I experimented with some scrap boards and no-lead solder paste.&lt;br /&gt;&lt;br /&gt;Some notes on the Reflow 3.0 controller.&amp;nbsp; It uses a USB connection to the host PC running Windows.&amp;nbsp; As you change parameters, it seems to reset the controller and its USB connection a lot.&amp;nbsp; I'm thinking that changing a profile or PID parameter shouldn't require a complete reset.&amp;nbsp; Probably some optimization can be done there.&amp;nbsp; The source code for the controller is reportedly available, but I don't have time to look at it right now.&lt;br /&gt;&lt;br /&gt;Starting a reflow is hit or miss.&amp;nbsp; Fairly often, the Windows app will report that the reflow operation has started, but nothing happens.&amp;nbsp; Just hit stop reflow in the app's Reflow menu.&amp;nbsp; Check that power is on to the Reflow 3.0 and in the SSR controller box, and then re-start the operation.&amp;nbsp; It seems to always start the second time.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;The instructions for the Reflow 3.0 say to start with 1-1-1 for PID parameters.&amp;nbsp; The Infrawave tends to work well at 40-0-120.&amp;nbsp; That's a long way from 1-1-1.&amp;nbsp; Other ovens will work best with different PID parameters, but don't expect to be using anything close to 1-1-1.&amp;nbsp; I wasted an evening finding all that out.&amp;nbsp; The guy that runs The Silicon Horizon responded to my email first thing the next morning and set me straight.&lt;br /&gt;&lt;br /&gt;The Infrawave, for all its 1500W of power, struggles to hit temperatures over 220 C.&amp;nbsp; It can take over 60 seconds to get from 180 C to 235 C.&amp;nbsp; The no-lead solder paste I was using was not reflowing at 235 C.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S4y-fJHZPYI/AAAAAAAABzM/q3xccev0nxs/s1600-h/solder_balls.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S4y-fJHZPYI/AAAAAAAABzM/q3xccev0nxs/s320/solder_balls.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;You can see in this microscope photo that the flux has been activated and is mostly gone, but the solder doesn't reflow - it just forms balls.&amp;nbsp; When the solder reflows properly, surface tension should pull it onto the pads and leads (see below).&amp;nbsp; Instead, it has just puddled, flowing out from the pad on the 0603 cap on the left, and shorting all the pins on the QFN (lead-less) package on the right.&lt;br /&gt;&lt;br /&gt;I've been told this is a symptom of too low a soldering temperature.&amp;nbsp; I need to get the temperature to 240-250 C for several tens of seconds to properly reflow the no-lead paste.&amp;nbsp; Eventually, I will try that, but it looks like doing so will exceed the recommended time at solder temperatures for most components.&amp;nbsp; From past experience, I know this is especially a problem for my SMT LEDs.&lt;br /&gt;&lt;br /&gt;For now, I've run out of time, so I have resorted to hand-soldering my boards.&amp;nbsp; I've also got some leaded paste on order from &lt;a href="http://macetech.com/store/index.php?main_page=product_info&amp;amp;cPath=7&amp;amp;products_id=19"&gt;Macetech&lt;/a&gt;.&amp;nbsp; It should reflow nicely at around 220 C.&amp;nbsp; That should easily work with my system as-is for doing additional boards. I have over 10 boards I need to solder after debugging the first board of each type - way too much for me to hand solder.&lt;br /&gt;&lt;br /&gt;Below is what the joints should look like, under the same magnification as the picture above.&amp;nbsp; You can see how surface tension has caused the solder to wick onto the metal pads and leads. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/S4zAka897-I/AAAAAAAABzU/v_lVeXYoqCE/s1600-h/Extreme+SMT.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/S4zAka897-I/AAAAAAAABzU/v_lVeXYoqCE/s320/Extreme+SMT.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Here is the Fail Whale, visiting my attempt to do lead-free soldering in a toaster oven.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S4zA7EbxSqI/AAAAAAAABzc/KIO5YAwU7po/s1600-h/IMGP5920.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S4zA7EbxSqI/AAAAAAAABzc/KIO5YAwU7po/s320/IMGP5920.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-7698660288108688840?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/7698660288108688840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=7698660288108688840' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7698660288108688840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7698660288108688840'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/03/how-to-waste-2-weeks.html' title='How to waste 2 weeks'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qg37553jmQ4/S4y9myvRD_I/AAAAAAAABzE/bqSef5W6Sh4/s72-c/IMGP5951.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-6453003790544319896</id><published>2010-02-17T00:12:00.000-08:00</published><updated>2010-02-17T00:53:22.679-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><title type='text'>In the Final 10</title><content type='html'>I got the word on Feb 12th that I made it into the final round of the Atmel SMART design contest.&amp;nbsp; I was too excited to post about it right away.&lt;br /&gt;&lt;br /&gt;I sent out my three PCB designs in a local group order.&amp;nbsp; Got a great price and quick turn around. The boards literally arrived the same day I heard I was in the final round.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;As you can see, the quality is good.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S3ucJPNK9aI/AAAAAAAAByE/eQmi2DZozN8/s1600-h/Sensor+PCBs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S3ucJPNK9aI/AAAAAAAAByE/eQmi2DZozN8/s320/Sensor+PCBs.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;One surprise was that the vendor printed all of the silkscreen text, even the very tiny component values I had left in the data but assumed the vendor would filter and not print.&amp;nbsp; It doesn't hurt anything, as the silkscreen isn't over sold pads, but having text smaller than the size of a 0603 part doesn't help me, either.&amp;nbsp; Moral: put what you want in the gerber outputs, nothing more or less.&lt;br /&gt;&lt;br /&gt;My parts order arrived a couple days later.&amp;nbsp; I tried to time the parts to arrive with the boards, but the boards came faster than I thought.&lt;br /&gt;&lt;br /&gt;At this point, I am hung up waiting for a part for my toaster oven based SMT soldering system.&amp;nbsp; The part I need is in the mail and should arrive this week.&amp;nbsp; But when it arrives, I need to calibrate my system.&amp;nbsp; I grabbed some scrap SMT PCB's from &lt;a href="http://www.surplusgizmos.com/"&gt;Surplus Gizmos&lt;/a&gt; to run tests.&lt;br /&gt;&lt;br /&gt;SMT soldering is easier than many people think, but getting consistent quality of results is dependent on having control of your technique.&amp;nbsp; I'm using a infrared oven from Black and Decker.&amp;nbsp; It's 1500W will easily melt lead-free solder paste.&amp;nbsp; The oven will be controlled by PID code running on  a micro-controller with a solid-state-relay controlling the heating elements and feedback from a K-type thermal probe.&amp;nbsp; Standard, well-proven techniques.&amp;nbsp; This gives me accurate temperature profiles and avoids thermal shock to the components.&lt;br /&gt;&lt;br /&gt;Still, I plan to do the soldering out in the garage.&amp;nbsp; No use poisoning the house with flux vapors or stinking things up should a board somehow get over-heated.&amp;nbsp; Downside is that it is still winter here.&amp;nbsp; Typical high temperatures during the day are in the low 50s.&amp;nbsp; I am hoping the high power of the oven coupled with PID control will be able to handle whatever the ambient temperature happens to be.&lt;br /&gt;&lt;br /&gt;While I was waiting for the boards and parts, I did more simulations on VMLAB.&amp;nbsp; I believe I've got the UI 100% tested.&amp;nbsp; I can't be too sure about the I2C interface, but it seems to be doing what I think it should.&amp;nbsp; The provided I2C simulation component helped me out.&lt;br /&gt;&lt;br /&gt;There is no SPI simulation component available.&amp;nbsp; I looked into building my own, but the documentation and examples are lacking for someone with limited time budget.&amp;nbsp; If the I2C component source was available, I think I could tweak it, but it isn't.&amp;nbsp; I can see the SPI signals wiggling, but I can't easily control what data gets read, so I had to do some manual poking of values into memory.&amp;nbsp; That area of the code is not well tested.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S3usUZZtFwI/AAAAAAAAByM/g_k1_lETpOE/s1600-h/SPI+waveform+only.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S3usUZZtFwI/AAAAAAAAByM/g_k1_lETpOE/s320/SPI+waveform+only.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;An SPI write followed by a read.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;PB3=MOSI, PB4=MISO, PB5=SCK, PB0=Enable&lt;/div&gt;&lt;br /&gt;An odd thing happened with the clocking.&amp;nbsp; The MCU is set up to use its internal oscillator, and a 32KHz crystal on the external oscillator pins.&amp;nbsp; The MCU model doesn't seem to handle this quite right.&amp;nbsp; But in a couple (out of dozens) simulation runs, the timer interrupt routine started getting executed regularly.&amp;nbsp; So the timer code got checked out, but I'm not really sure what is going on there.&amp;nbsp; I hope it is the model, and not some crazy bug in my code.&lt;br /&gt;&lt;br /&gt;I've written some stripped down test code to debug each module individually.&amp;nbsp; I plan to start with the timer code.&amp;nbsp; Either an LED will be blinking with a 1 second interval, or I'm afraid I'll be spending a lot of time debugging oscillator and timer initialization code.&amp;nbsp; The good news is that the LCD routines are debugged and look solid.&amp;nbsp; printf will be my friend once again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-6453003790544319896?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/6453003790544319896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=6453003790544319896' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/6453003790544319896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/6453003790544319896'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/02/in-final-10.html' title='In the Final 10'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qg37553jmQ4/S3ucJPNK9aI/AAAAAAAAByE/eQmi2DZozN8/s72-c/Sensor+PCBs.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-965395242601820345</id><published>2010-02-02T21:58:00.000-08:00</published><updated>2010-02-03T02:31:02.557-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>Lantern modification</title><content type='html'>I have a GE camping lantern that stopped working, so instead of just fixing it, I decided to make it "better".&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;This lantern uses 4 D cell batteries and a CFL bulb.&amp;nbsp; 4D cells last a long time, and the CFL put out reasonable light for camping.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S2iIe_V-C_I/AAAAAAAABwU/Wc40z4cnwXk/s1600-h/IMGP5495.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S2iIe_V-C_I/AAAAAAAABwU/Wc40z4cnwXk/s320/IMGP5495.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;But for no reason, it wasn't dropped or left in the rain, it stopped working.&amp;nbsp; I checked around, and there are no replacement parts for this lantern.&amp;nbsp; A lot of people online are complaining that their GE lanterns have also stopped working.&lt;br /&gt;&lt;br /&gt;This is probably a symptom of the &lt;a href="http://en.wikipedia.org/wiki/Capacitor_plague"&gt;"capacitor plague"&lt;/a&gt;. As long as I needed to fix the lantern, instead of mucking around changing capacitors, I figured I'd make the lantern "better".&amp;nbsp; I decided to replace the 4 watt CFL with a 3 watt LED and get even more energy efficiency out of the lantern.&lt;br /&gt;&lt;br /&gt;I ordered a Cree LED on a star heatsink and a regulator from &lt;a href="http://www.dealextreme.com/products.dx/category.901"&gt;DealExtreme&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S2iLnub_WAI/AAAAAAAABwc/iJkDrmjDA8Y/s1600-h/IMGP5560.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S2iLnub_WAI/AAAAAAAABwc/iJkDrmjDA8Y/s320/IMGP5560.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The important thing to know is Power = Volts * Amps.&amp;nbsp; A 3 watt LED with a rated forward voltage of 3.7 volts needs 3W / 3.7V = .81A, or 800mA of current.&amp;nbsp; The LED regulators are designed to put out a specific current, not a voltage.&amp;nbsp; So I bought a regulator rated at 800mA.&amp;nbsp; Matched with this LED, the regulator will adjust the voltage to be around 3.7 volts to get the delivered current to be 800mA.&lt;br /&gt;&lt;br /&gt;A 3 watt LED can get mighty hot, and I didn't want my lantern to fail early due to overheating the LED.&amp;nbsp; So I&amp;nbsp; found a little 1-inch square heatsink I had laying around and a package of thermal paste.&lt;br /&gt;&lt;br /&gt;Then I&amp;nbsp; had to figure a way to secure the LED to the heatsink (thermal paste is NOT glue) in a way that would survive car trips and the banging around at camp.&amp;nbsp; I came up with a bent paperclip design that is sort of based on the bails you get on CPU heatsinks.&amp;nbsp; I bent it into a "W" shape as you see in the picture, then twisted the arms to the sides so I could get the flat part up into the fingers of the heatsink.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S2iN5pHHdbI/AAAAAAAABwk/fsBvcyWz9PU/s1600-h/IMGP5565.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S2iN5pHHdbI/AAAAAAAABwk/fsBvcyWz9PU/s320/IMGP5565.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S2iN_N2JnSI/AAAAAAAABws/lA-PbcTGT28/s1600-h/IMGP5567.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S2iN_N2JnSI/AAAAAAAABws/lA-PbcTGT28/s320/IMGP5567.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Then I soldered the power supply to the Cree.&amp;nbsp; Red is positive, Black is negative. &amp;nbsp; Solder to any of the appropriately labeled pads on the top of the star.&amp;nbsp; The bottom of the star is electrically isolated.&amp;nbsp; It just conducts heat, so don't try soldering to it.&amp;nbsp; Also, it is a heatsink, so you probably won't be successful soldering to the bottom anyway.&amp;nbsp; In retrospect, I probably shouldn't have soldered the power supply to the star at this point.&lt;br /&gt;&lt;br /&gt;I also applied way too much paste to the bottom of the star.&amp;nbsp; A very tiny bit goes a long way.&amp;nbsp; You just need a very thin film of thermal paste to ensure good thermal conduction between the star and the heatsink.&amp;nbsp; Then I put the star on the heatsink and twisted my paperclip bail back into position, making sure I wasn't shorting out power.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/S2iPjel7m5I/AAAAAAAABw0/uvFJTa1L9LE/s1600-h/IMGP5570.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/S2iPjel7m5I/AAAAAAAABw0/uvFJTa1L9LE/s320/IMGP5570.jpg" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;As you can see, the bail is pressing down pretty hard on the star, squeezing all that excess paste out. You should use just a tiny drop.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The bottom of the lantern unscrews, for replacing the batteries.&amp;nbsp; To get to the CFL bulb, unscrew two screws in deeply recessed slots revealed by removing the bottom.&amp;nbsp; To separate the glass from the base, you need to unscrew four nuts that are sealed with Locktite. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/S2kPB80cnkI/AAAAAAAABx8/hp-3Ec8IuV4/s1600-h/IMGP5499.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/S2kPB80cnkI/AAAAAAAABx8/hp-3Ec8IuV4/s320/IMGP5499.jpg" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_qg37553jmQ4/S2kO6URp49I/AAAAAAAABx0/T8uaXu_cxEw/s1600-h/IMGP5497.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qg37553jmQ4/S2kO6URp49I/AAAAAAAABx0/T8uaXu_cxEw/s320/IMGP5497.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I cut the battery lead right at the CFL bulb assembly and removed it.&amp;nbsp; Then I replaced the CFL assembly with a little bit of plastic to support the heatsink and LED at the bottom of the lantern's glass. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/S2iRkaWdJzI/AAAAAAAABw8/V_0DTamYzrg/s1600-h/IMGP5571.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/S2iRkaWdJzI/AAAAAAAABw8/V_0DTamYzrg/s320/IMGP5571.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I didn't come up with a clever method of mounting the heatsink.&amp;nbsp; I just used my hot glue gun.&amp;nbsp; It turns out, hot glue doesn't stick all that well to flat plastic nor heatsinks, so it took a couple applications to get it mounted.&amp;nbsp; This is a weak point in my design.&amp;nbsp; There must be a better way.&amp;nbsp; The 1 inch heat sink was slightly longer on the diagonal than the hole in the lantern, so I had to file out a couple notches.&amp;nbsp; Hopefully, this adds some stability to the heatsink.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To assemble this, I needed to solder the power supply to the battery wires with the case off, yet position the heatsink on the platform after putting the battery holder back into the case.&amp;nbsp; This isn't what I did, but what I would do if I had to do it again:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Solder the battery leads to the power supply. &lt;/li&gt;&lt;li&gt;Use a spot of hot glue to stick the power supply down to the top of the battery holder.&lt;/li&gt;&lt;li&gt;Position the power supply output leads so they are sticking above the platform where the hole in the base will be.&lt;/li&gt;&lt;li&gt;Lower the case over the battery holder, threading the power leads through the hole.&lt;/li&gt;&lt;li&gt;Solder the power leads to the star.&amp;nbsp; Red to +, black to -.&lt;/li&gt;&lt;li&gt;Attach the star to the heat sink with the paper-clip bail.&lt;/li&gt;&lt;li&gt;Hot glue the power supply to the platform.&amp;nbsp; Use plenty of glue.&lt;/li&gt;&lt;/ol&gt;In the end, it should look like this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/S2iTilQs1RI/AAAAAAAABxE/quqcEsbM7Fg/s1600-h/IMGP5583.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/S2iTilQs1RI/AAAAAAAABxE/quqcEsbM7Fg/s320/IMGP5583.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;A 3 watt LED is piercingly bright.&amp;nbsp; You do not want to look into the LED when it is on.&amp;nbsp; Mounted like this, most of that light gets lost in the top of the lantern, yet you can see the LED directly, which is hard on your eyes.&amp;nbsp; So I added two features to the lantern:&amp;nbsp; a plastic ball as a diffuser around the LED to protect my eyes, and a reflector at the top of the lantern to reflect more of the light out in a useful direction.&lt;br /&gt;&lt;br /&gt;It turns out, a ping-pong-sized ball works nicely for the diffuser.&amp;nbsp; It diffuses the light coming directly from the LED to your eye and it fits the lamp's reflector on the base just right.&amp;nbsp; I cut holes on opposite sides of the ball to get more light up to the reflector.&amp;nbsp; Then I used hot glue to attach it to the reflecting ring from the lantern.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/S2iUuaHLy8I/AAAAAAAABxM/ljIY9KY_crw/s1600-h/IMGP5586.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/S2iUuaHLy8I/AAAAAAAABxM/ljIY9KY_crw/s320/IMGP5586.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Forgot to take a picture of the ball with the holes cut.&amp;nbsp; I made them about an inch in diameter.&lt;br /&gt;&lt;br /&gt;For the reflector, to reflect the light 90 degrees, I need a 45 degree surface.&amp;nbsp; I know the diameter of the top of the lamp is 3.5 inches.&amp;nbsp; Therefore, the length of the side of the cone then needs to be 3.5 * cos 45 = 2.47 inches.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/S2kKaBgn7VI/AAAAAAAABxU/348kb7bj9yA/s1600-h/Reflector.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/S2kKaBgn7VI/AAAAAAAABxU/348kb7bj9yA/s320/Reflector.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I drew a circle of radius 2.5 inches on a bit of cereal box cardboard.&amp;nbsp; Then I made a cut from the edge to the center.&amp;nbsp; I covered one side with aluminum foil and taped it into place.&amp;nbsp; Forming it into a tight cone that would fit through the opening in the bottom of the glass housing, I pushed it to the top and let go.&amp;nbsp; The cardboard tried to flatten out, which resulted in a friction fit with a cone about the dimensions I wanted.&amp;nbsp; Fortunately, the glass diameter is largest at the top, so it all hangs in place pretty securely.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/S2kMPYnUo5I/AAAAAAAABxc/EDaXikNGWB0/s1600-h/IMGP5585.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/S2kMPYnUo5I/AAAAAAAABxc/EDaXikNGWB0/s320/IMGP5585.jpg" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Then I reassembled the lamp: &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/_qg37553jmQ4/S2kMcpZce4I/AAAAAAAABxk/Gai9v5E-rV0/s1600-h/IMGP5593.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qg37553jmQ4/S2kMcpZce4I/AAAAAAAABxk/Gai9v5E-rV0/s320/IMGP5593.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;Turning it on, I get about the same light intensity that the fluorescent light produced, but thanks to the efficiency of LED technology, even better battery life.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S2kM3R2_74I/AAAAAAAABxs/gcX9ksDlWaE/s1600-h/IMGP5595.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S2kM3R2_74I/AAAAAAAABxs/gcX9ksDlWaE/s320/IMGP5595.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-965395242601820345?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/965395242601820345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=965395242601820345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/965395242601820345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/965395242601820345'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/02/lantern-modification.html' title='Lantern modification'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qg37553jmQ4/S2iIe_V-C_I/AAAAAAAABwU/Wc40z4cnwXk/s72-c/IMGP5495.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-4561985190418941752</id><published>2010-01-23T23:51:00.000-08:00</published><updated>2010-02-03T02:28:23.828-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><title type='text'>Phase 2 is complete</title><content type='html'>I worked until 5am Friday morning completing the information I need to send in for Phase 2.&amp;nbsp; I got up after a nap and was preparing to email what I had done the night before.&amp;nbsp; In my email was a note saying that since they wouldn't start judging until Monday, we could submit our material through Sunday.&lt;br /&gt;&lt;br /&gt;While I was pleased that I had another 2 days, I was disappointed they waited until the last moment to let us know.&amp;nbsp; I could have done with more sleep.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;I used the extra time to complete the Chibi RF driver support in my sensor design, and got the code to compile error free.&amp;nbsp; I grabbed a few more screen shots of the simulation, and added in PDF's of the schematics and board designs.&amp;nbsp; Then I had to go back and edit the text of my submission to reflect these changes.&lt;br /&gt;&lt;br /&gt;Instead of the partially baked submission I was preparing on Friday, I've now got what I feel is a completely baked entry, and its only Saturday evening.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When I started to work on the BOM, I expected to find some part shortages, based on what I'd been hearing on the web.&amp;nbsp; I only found one out of stock part, out of the 60+ unique parts in my design.&lt;br /&gt;&lt;br /&gt;But I did notice some "sub optimal" decisions.&amp;nbsp; I had used through hole mount LEDs when I could be using SMT.&amp;nbsp; Another example is that I noticed the temperature sensor I had chosen has a minimum operating voltage of 2.3volts.&amp;nbsp; Not good when you are running a device on two AAA batteries.&amp;nbsp; I found a slightly more expensive National part that is good down to half that.&lt;br /&gt;&lt;br /&gt;The backlight for the LCD display I am using draws 60mA typical.&amp;nbsp; The 1/10 watt 0603 SMT resistor I had put on the board layout wouldn't deal with that well.&amp;nbsp; I need to change the board to use a 1206 1/3 watt.&amp;nbsp; There are several other changes I've decided to make.&amp;nbsp; Fortunately, most aren't functional problems, rather they are just better decisions, like SMT instead of THP LEDs.&lt;br /&gt;&lt;br /&gt;The net is that every time you look at a design a different way, you find things that need to be changed or improved.&amp;nbsp; I found changes I needed to make while I was doing place and route.&amp;nbsp; I found changes&amp;nbsp; when I sketched out how the boards would be connected with each other and the LCD and radio.&amp;nbsp; I found changes when I was writing the code.&amp;nbsp; And I found changes when I was costing the BOM and checking availability.&amp;nbsp; I'm hoping I don't see too many more changes when I go back to make the updates to the hardware I've already decided to make while working on the software and BOM.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;In a normal work environment, I usually don't write the code, and I don't cost the BOM.&amp;nbsp; Other specialists do those things.&amp;nbsp; But then I miss out on those different perspectives and the detailed re-examination of the design those efforts entail.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Since I had the time, I tried again to find an SPI user component for the VMLAB simulator.&amp;nbsp; It appears that none exists.&amp;nbsp; Since there is an I2C simulation component, you would think that SPI would be easy.&amp;nbsp; I will have to make one myself if I hope to do any&amp;nbsp; serious simulation work.&amp;nbsp; Yet another thing I usually get to farm out to a specialist that I will have to do myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-4561985190418941752?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/4561985190418941752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=4561985190418941752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/4561985190418941752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/4561985190418941752'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/01/phase-2-is-complete.html' title='Phase 2 is complete'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-3637623632289773611</id><published>2010-01-20T12:03:00.000-08:00</published><updated>2010-01-20T12:03:35.135-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Code complete</title><content type='html'>I finished the code for the sensor board.&amp;nbsp; I plan to use an ATtiny44 with 4K Flash program memory.&amp;nbsp; The code compiles to 3720 bytes, so it seems there is room.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Actually, it doesn't compile.&amp;nbsp; The Chibi uses an SPI interface.&amp;nbsp; The ATtiny series doesn't support SPI in the way that ATmega and above do.&amp;nbsp; An ATmega SPI works like a USART: you write a byte into a register and it gets sent.&amp;nbsp; In the ATtiny, you write a byte into a register, and then have to manually toggle the SCL line to shift the data out.&amp;nbsp; A silly "defeature" Atmel did so they could offer devices in different price tiers.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;But, I have just two days left to complete my contest entry.&amp;nbsp; So I am putting the code aside and working on costing the BOM, a quick power analysis, and writeup.&amp;nbsp; The writeup will have my known todo items in it.&amp;nbsp; I think full disclosure will be better than sending in code that won't compile and letting them discover it.&lt;br /&gt;&lt;br /&gt;I'm off to Digikey to get prices now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-3637623632289773611?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/3637623632289773611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=3637623632289773611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3637623632289773611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3637623632289773611'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/01/code-complete.html' title='Code complete'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-6466568108934555338</id><published>2010-01-18T02:09:00.000-08:00</published><updated>2010-02-03T02:22:58.555-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><title type='text'>Never give up, never surrender</title><content type='html'>I had intended to post more often, but as the deadline nears, it is hard to take the time to craft a cogent post.&lt;br /&gt;&lt;br /&gt;I discovered on Friday that the deadline for the round 2 submission to Atmel's Smart Design contest was delayed until Friday, the 22nd.&amp;nbsp; Four extra days that I really need.&amp;nbsp; I would not have made the deadline tomorrow.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On Monday and Tuesday, I basically wasted the both days trying to decide which sub-optimal radio I would be forced to use.&amp;nbsp; I had gone so far as to start writing code for a USART-based interface to 2.4GHz Zigbee modules.&amp;nbsp; I was talking myself into believing the logic that they could not ding me for using their favorite technology with 3 Atmel parts in every radio, despite the total overkill and expense.&lt;br /&gt;&lt;br /&gt;On Wednesday, I discovered that "Akiba" at &lt;a href="http://freaklabs.org/"&gt;freaklabs.org&lt;/a&gt; had designed a radio board using the AT86RF212 RF transceiver chip. Even better, he's written a basic driver for it that does exactly what I need done.&amp;nbsp; 3 application level functions: init, send, receive.&amp;nbsp; Under the covers, of course, it is much more complex than that, but that's what my code sees.&lt;br /&gt;&lt;br /&gt;Akiba's "simple open source wireless software stack" is dubbed "&lt;a href="http://freaklabs.org/index.php/Chibi-A-Simple-Open-Source-Wireless-Stack.html"&gt;chibi&lt;/a&gt;".&amp;nbsp; He is also working on an open source Zigbee project.&amp;nbsp; AFAIK, he has made the only open source radio boards with open source software drivers in existence.&amp;nbsp; That's quite an accomplishment by one guy.&lt;br /&gt;&lt;br /&gt;Friday and Saturday I was out of town.&amp;nbsp; So today I integrated the chibi driver with my software.&amp;nbsp; Then I struggled for literally hours with my makefile.&amp;nbsp; I hate make.&amp;nbsp; We just never have gotten along.&amp;nbsp; I think it knows I'm a hardware guy, so it rebels.&amp;nbsp; I finally called my software buddy and he debugged it over the phone.&lt;br /&gt;&lt;br /&gt;So I've now got the entire embedded software package for my main controller compiling without errors!&amp;nbsp; I may not have much time for simulation, but compile-clean is all I've really hoped to achieve before the deadline.&lt;br /&gt;&lt;br /&gt;Now I need to write the sensor code.&amp;nbsp; I'm hoping I can have it done by Tuesday night so I have some time to do cost and power analysis, do a writeup, and email the whole lot on Friday.&amp;nbsp; Even with that amazing stroke of luck on the radio and the schedule extension, it's going to be tight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-6466568108934555338?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/6466568108934555338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=6466568108934555338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/6466568108934555338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/6466568108934555338'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/01/never-give-up-never-surrender.html' title='Never give up, never surrender'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-289034413781452204</id><published>2010-01-11T21:33:00.000-08:00</published><updated>2010-02-03T02:27:22.450-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Good progress</title><content type='html'>I finished up the last bit of coding this morning, and made stubs for the RF routines.&amp;nbsp; Rather than face the problem of deciding on an RF solution, I decided to go ahead and try to get the code to compile.&lt;br /&gt;&lt;br /&gt;It wasn't pretty.&amp;nbsp; Coding late at night results in repeating mistakes like "uint_8" instead of "uint8_t", and lOts of subtle capItalIzation errors.&amp;nbsp; I should typedef something easier than uint8_t, but it makes the code a little more obscure to someone looking at it later, such as judges.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Another thing that got in my way was the editor that comes with &lt;a href="http://winavr.sourceforge.net/download.html"&gt;WinAVR&lt;/a&gt;, Programmers Notepad, chose Lucida Console for its font.&amp;nbsp; I find it difficult to spot capitalization errors in that font.&amp;nbsp; To compound things, PN uses font styles to do syntax highlighting, so I had to change several styles to make it more usable.&amp;nbsp; It is nice be able to jump right to the syntax error.&amp;nbsp; But I prefer Notepad++.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qg37553jmQ4/S0wFmwG44hI/AAAAAAAABwM/uCzm4MQjqi4/s1600-h/Programmers+Notepad.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qg37553jmQ4/S0wFmwG44hI/AAAAAAAABwM/uCzm4MQjqi4/s320/Programmers+Notepad.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Programmers Notepad (with font changes)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;I got the code to compile without errors a bit quicker than I had planned, so I jumped right into simulation in &lt;a href="http://www.amctools.com/vmlab.htm"&gt;VMLAB&lt;/a&gt;.&amp;nbsp; This is really handy for simulation.&amp;nbsp; There are lots of very handy components to choose from.&amp;nbsp; I hooked up a virtual LCD configured for 4x20 characters, an I2C simulation model, a couple LEDs and some resistors.&amp;nbsp; No programming necessary!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/S0wCyDUR-UI/AAAAAAAABwE/xXno1sT4Pa4/s1600-h/VMLAB.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/S0wCyDUR-UI/AAAAAAAABwE/xXno1sT4Pa4/s320/VMLAB.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;VMLAB simulator&lt;/div&gt;&lt;br /&gt;I quickly discovered a mistake deep inside the I2C handshake I'd inherited from that Atmel App note.&amp;nbsp; I fixed that, and suddenly I've got the LCD display working and conversations happening on the I2C.&amp;nbsp; I still need to figure out why my timer isn't issuing interrupts.&lt;br /&gt;&lt;br /&gt;So today I'm feeling really upbeat about making the January 18th deadline.&amp;nbsp; I'll even have simulation results! If I can get those interrupts running and the system going to sleep mode, I'll have exceeded my expectations.&amp;nbsp; Maybe I'll have time to put the complex UI back in. jk!&lt;br /&gt;&lt;br /&gt;One reason I jumped to compiling is that I was getting worried I'd outgrown the ATmega328.&amp;nbsp; But that should not be a problem.&amp;nbsp; The image is only 7K of flash so far.&amp;nbsp; The RF functions shouldn't be over 2K.&amp;nbsp; I should double check to see if I can move to the *168 part, although it is only a few cents cheaper.&lt;br /&gt;&lt;br /&gt;Speaking of parts, I was watching &lt;a href="http://www.macetech.com/"&gt;macetech &lt;/a&gt;live streaming their SMT assembly process last night.&amp;nbsp; They are building thirty LED controller boards.&amp;nbsp; And we're not talking an Arduino and a couple through hole connectors.&amp;nbsp; This board is about 4x4 inches, covered with buffer ICs and 603 discretes.&amp;nbsp; And when they finish that task, they have to build some large number of LED boards to go with them.&amp;nbsp; Quite a job using tweezers and a toaster oven.&lt;br /&gt;&lt;br /&gt;They pointed out the electronics shortage is really affecting the ability to build stuff.&amp;nbsp; They had to redesign their board a couple times due to the lack of available parts.&amp;nbsp; Just what I need, a part shortage.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;p.s. If you click on the PN image, you should quickly see why my system isn't going to sleep...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-289034413781452204?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/289034413781452204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=289034413781452204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/289034413781452204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/289034413781452204'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/01/good-progress.html' title='Good progress'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qg37553jmQ4/S0wFmwG44hI/AAAAAAAABwM/uCzm4MQjqi4/s72-c/Programmers+Notepad.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-4591042989456849415</id><published>2010-01-10T02:04:00.000-08:00</published><updated>2010-02-03T02:24:29.188-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Light at the end of the tunnel</title><content type='html'>I finished coding most of the main controller today.&amp;nbsp; Reducing the user interface to something more manageable really helped.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I reused code for a 4-bit LCD display interface from &lt;a href="http://winavr.scienceprog.com/example-avr-projects/avr-4-bit-lcd-interface-library.html"&gt;winavr.scienceprog.com/&lt;/a&gt;, which required only minor adjustments to retarget it to my system, but ended up taking half of an evening.&amp;nbsp; It was nicely modular code, with all the LCD commands implemented, and a 4-bit handshake, but I found a few bugs.&amp;nbsp; &lt;br /&gt;&lt;ol&gt;&lt;li&gt;The handshake was slow. _delay_ms(1) on every handshake edge&amp;nbsp; when _delay_us(1) would work.&amp;nbsp; Painting a 4x20 was going to take 1/3 of a second.&amp;nbsp; Now it should take more like 5ms to paint the whole screen.&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;The code was not checking the busy flag nor allowing time for commands to complete.&amp;nbsp; I think the 1ms handshake delays were a kludge that happened to fix this.&lt;/li&gt;&lt;li&gt;The code was writing 8 bits to an AVR port, even though the code is written for driving a 4-bit LCD interface.&amp;nbsp; I'm using those other bits for other functions!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;i&gt;Never trust code you download. &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;For the Atmel Qtouch controller code, I had planned to "reuse" code from an Atmel app note.&amp;nbsp; The .pdf containing the code was copy protected, so I couldn't copy / paste the code, which covered 6 pages.&amp;nbsp; Too much to hand copy.&amp;nbsp; A note to Atmel support got me plain text in less than a day.&lt;br /&gt;&lt;br /&gt;Once I really sat down to study the code, I realized it was a useful example of controlling a Qtouch interface, but it made no attempt to be a driver library. I had to create functions to implement all of the driver features I need.&amp;nbsp; I took some shortcuts so it isn't a reusable library, but it is a lot closer than what I started with.&amp;nbsp; The I2C code contained in the app note I was able to use nearly unchanged.&amp;nbsp; That's a big help, although there are other I2C libraries out there.&amp;nbsp; I hope I don't get burned by bugs in that code.&amp;nbsp; I don't relish debugging a I2C handshake.&lt;br /&gt;&lt;br /&gt;The one major block I need to work on is the RF interface.&amp;nbsp; Atmel Smart RF devices use SPI, so I can use library code for the interface.&amp;nbsp; If I go with a complete radio, such as Zigbee, it will be UART library code.&amp;nbsp; Either way, coding shouldn't take too long.&amp;nbsp; Debug may be another matter.&lt;br /&gt;&lt;br /&gt;Only eight days left.&amp;nbsp; Still lots to do.&amp;nbsp; A "day" is about 4 hours that I can steal from my sleep schedule.&amp;nbsp; My estimate is: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Choose RF solution. 1/2 day&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Write interface to RF. 1 day&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Write sensor module code. This will be simple code, under 1 page. 1 day&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Get code compilable without errors. 2 days &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Analyze system power and cost. 1 day&lt;/li&gt;&lt;li&gt;Package it up and send it in. 1/2 day&lt;/li&gt;&lt;/ul&gt;Which leaves me 1 day of slack in the schedule.&amp;nbsp; I'll take a look at my RF options tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-4591042989456849415?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/4591042989456849415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=4591042989456849415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/4591042989456849415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/4591042989456849415'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/01/light-at-end-of-tunnel.html' title='Light at the end of the tunnel'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-1627562757812160086</id><published>2010-01-08T02:32:00.000-08:00</published><updated>2010-02-03T02:26:18.281-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><title type='text'>Time just keeps ticking away</title><content type='html'>Since the holidays are over, I've had to spend more time (that is, more time than zero!) on other for-pay projects.&amp;nbsp; That has not helped my progress on the contest.&lt;br /&gt;&lt;br /&gt;It is quite clear now that I will have to use RF modules.&amp;nbsp; There just simply won't be time to design the hardware let alone code low level drivers for the chips.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With only ten days left now, it looks like I will have to start making some more feature cuts.&amp;nbsp; I just spent 3 hours writing code to implement what I had originally proposed.&amp;nbsp; Its turning into quite a bit of code just for the user interface.&amp;nbsp; I need to allow time to at least get the code to compile, otherwise my project faces rejection at the next step of the contest just because the code won't compile. I certainly won't have done any "simulation".&amp;nbsp; So I'm considering a much stripped down version of the UI.&amp;nbsp; I have an idea that is 1/8th the complexity I had proposed.&amp;nbsp; That should save a lot of time.&amp;nbsp; Time I need in order to finish in &lt;b&gt;TEN DAYS&lt;/b&gt;.&amp;nbsp; Yikes.&lt;br /&gt;&lt;br /&gt;So, like most engineering projects, time constraints are limiting the features.&amp;nbsp; Nothing new there.&amp;nbsp; Every product on the shelves has had that happen to it.&lt;br /&gt;&lt;br /&gt;The basic functionality of the system remains intact, it just won't have usability features I had planned for - and documented in the proposal.&amp;nbsp; The user will have to spend more time fiddling with the interface.&amp;nbsp; Consumers pretty much demand "set and forget".&amp;nbsp; This system will not be consumer ready.&amp;nbsp; But I am determined to make it contest ready...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-1627562757812160086?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/1627562757812160086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=1627562757812160086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1627562757812160086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1627562757812160086'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/01/time-just-keeps-ticking-away.html' title='Time just keeps ticking away'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-227525407954831064</id><published>2010-01-04T19:07:00.000-08:00</published><updated>2010-02-03T02:25:43.260-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Not an Arduino</title><content type='html'>This is my "main controller" board for the Atmel design contest.&amp;nbsp; The ground pour pretty completely fills in the white spaces, so I am showing the board here without them so you can see all the lovely traces.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_qg37553jmQ4/S0KpvRxpG-I/AAAAAAAABv8/47K_JfpnNq8/s1600-h/Main_controller.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_qg37553jmQ4/S0KpvRxpG-I/AAAAAAAABv8/47K_JfpnNq8/s320/Main_controller.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The SMT part in the center is an ATmega328.&amp;nbsp; The 6-pin connector on the left is the same pinout as an Arduino serial programming port.&lt;br /&gt;&lt;br /&gt;So why didn't I just design an Arduino shield?&lt;br /&gt;&lt;br /&gt;Well, I tried that.&amp;nbsp; Between the Arduino shield connectors and the interface connectors I need, the board was a mess of pins.&amp;nbsp; The ratsnest was also a mess.&amp;nbsp; The routing looked like it would take at least as long as this board, and for contest judging purposes, the elegance of the solution and BOM cost were not what I wanted.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On the upside, I can fall back to using Arduino boot loader and Arduino libraries if I need to save time.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've got some protoboard shields that I can use with actual Arduino boards in the early part of system debug, and then shift to my board when it arrives.&amp;nbsp; That way, I can have debuggged (I hope) software running on my un-debugged hardware.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've been struggling with non-Arduino libraries, trying to find a usable I2C driver.&amp;nbsp; It was looking like a lot of work to get something usable for my project, when a fortuitous Google search found an Atmel app note with code for connecting an AVR processor to the Atmel touch controller.&amp;nbsp; I think I just saved a few days in my software schedule.&lt;br /&gt;&lt;br /&gt;Which is good, because I'm running short on days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-227525407954831064?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/227525407954831064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=227525407954831064' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/227525407954831064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/227525407954831064'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/01/not-arduino.html' title='Not an Arduino'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qg37553jmQ4/S0KpvRxpG-I/AAAAAAAABv8/47K_JfpnNq8/s72-c/Main_controller.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-8648395478482147703</id><published>2010-01-03T04:38:00.000-08:00</published><updated>2010-02-03T02:25:12.002-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><title type='text'>Universal PCB design rules</title><content type='html'>I just went through the design rules of just about every prototype PCB house I know of to determine what my design rules should be so I have complete freedom of choice.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think the list is pretty well covered on the &lt;a href="http://www.ladyada.net/library/pcb/costcalc.html"&gt;Adafruit cost calculator&lt;/a&gt; page, along with links there.&lt;br /&gt;&lt;br /&gt;Almost all of them will do 4 layer boards.&amp;nbsp; Of course, I can't design 4 layers on the free version of Eagle CAD.&lt;br /&gt;&lt;br /&gt;Olimex has more restrictive rules than most.&amp;nbsp; I'm noting where their rules are tighter in the list below.&lt;br /&gt;&lt;br /&gt;1 oz copper on 0.062-inch FR4 is universal.&amp;nbsp; No surprise.&amp;nbsp; Only a couple in the list will do heavier copper.&lt;br /&gt;&lt;br /&gt;7/7 mil minimum track width and spacing except Olimex at 10.&amp;nbsp; I'm sticking with 10/10 except where SMT parts make it impossible.&amp;nbsp; The boards are more likely to not have opens and shorts at those dimensions.&lt;br /&gt;&lt;br /&gt;Minimum drill size is all over the place.&amp;nbsp; 20 mil covers all except Olimex at 24.&amp;nbsp; I happen to have my vias set at 24 mils.&lt;br /&gt;&lt;br /&gt;Minimum annular ring around holes is often not specified.&amp;nbsp; A couple require 5 mil, Olimex 8.&amp;nbsp; I'm going with 10 mil (44 mil vias) for reliability and improved yields.&lt;br /&gt;&lt;br /&gt;Max drill size is 246 mil or larger for most, but AP Circuits is 125 and Olimex is 195.&amp;nbsp; Several of them won't do non-plated holes, and some will only do them with an extra charge.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;Only Olimex specified copper and holes to board edge, and they used 20 mil.&amp;nbsp; I have one board where I put the edges of some traces at 20 mil from the board edge, and it felt like I was putting them right on top of the edge of the board..&amp;nbsp; I like to leave 50 mil to traces and 100 mil to the centers of holes.&amp;nbsp; If I am making boards at home, I know I will need that.&lt;br /&gt;&lt;br /&gt;Minimum board size of 1.25"x1.25" covers them all.&amp;nbsp; Many will go down to 0.5"x0.5".&amp;nbsp; My smallest board is 1.0x0.9, eliminating Gold Phoenix (by 0.1 inch), PCB FAB Express, and Advanced Circuits.&lt;br /&gt;&lt;br /&gt;Maximum board size is at least 10"x10" for all but Olimex (12.59x"x7.87" max) and Advanced Circuits "$33 each" deal at 60 sq in.&amp;nbsp; Not an issue for me.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Overall, I could shave a few mils off of my boards with smaller vias, and a few more mils with smaller traces, but I'd pay a price in getting more PCBs with manufacturing defects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-8648395478482147703?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/8648395478482147703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=8648395478482147703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/8648395478482147703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/8648395478482147703'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2010/01/universal-pcb-design-rules.html' title='Universal PCB design rules'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-1188882874970704888</id><published>2009-12-31T02:42:00.000-08:00</published><updated>2010-02-03T02:32:03.264-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><title type='text'>It does get easier, honest</title><content type='html'>After designing 3 boards (well, actually one of those was a complete redesign after a failed attempt) with Eagle CAD, I have re-learned it's crazy interface.&amp;nbsp; The fourth board I did today in about 3 hours, from beginning the schematic capture to completing the board layout including passing DRC, and even the silk screen layer done.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;I had time today to go back to the first board and add a feature, polish up the silk screen layer, and fix some minor DRC errors.&amp;nbsp; I think its important to get the DRC clean.&amp;nbsp; Otherwise, there is a tendency to pass over real problems the DRC is trying to tell you about, hidden in the "errors" that aren't really problems.&amp;nbsp; If the DRC is clean, then you at least know there are no problems that the computer can catch.&amp;nbsp; I hate finding a bug in a fabricated and assembled board only to discover that the problem was flagged in a DRC error that I overlooked back during the design capture stage.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_qg37553jmQ4/Szx7FEONwXI/AAAAAAAABv0/InZQ8YcB0zE/s1600-h/Sensor_board+v1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_qg37553jmQ4/Szx7FEONwXI/AAAAAAAABv0/InZQ8YcB0zE/s320/Sensor_board+v1.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Of course, this was the easiest of the boards so far.&amp;nbsp; Only 1x1 inch.&amp;nbsp; I got a little carried away and did the design without any signal routes on the bottom layer. There are four vias for routing power.&lt;br /&gt;&lt;br /&gt;There are still two more boards to do.&amp;nbsp; One is even easier than this board.&amp;nbsp; It will be only one layer, roughly 3x6 inches.&amp;nbsp; I just have to figure out how to capture the design of a board that won't fit in the Eagle CAD free version's restriction of 4x3 inches.&lt;br /&gt;&lt;br /&gt;The other board is the radio, which is the hardest board to design in this project.&amp;nbsp; But, my plan is to do the other boards and most of the software, then see if I have time to design a radio.&amp;nbsp; If not, then I won't have to worry about it, I'll just buy Atmel-based Zigbee modules.&amp;nbsp; If I do have time, then at least I should be competent at running Eagle CAD before tackling that job.&lt;br /&gt;&lt;br /&gt;I've used up 13 of 30 days doing 3/5ths of the hardware design and I haven't started on the software.&amp;nbsp; While some of those were holidays that I didn't get anything done, some were very long days.&amp;nbsp; It's looking likely that I'll be buying those radios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-1188882874970704888?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/1188882874970704888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=1188882874970704888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1188882874970704888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1188882874970704888'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2009/12/it-does-get-easier-honest.html' title='It does get easier, honest'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qg37553jmQ4/Szx7FEONwXI/AAAAAAAABv0/InZQ8YcB0zE/s72-c/Sensor_board+v1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-6900052859973852301</id><published>2009-12-28T18:38:00.000-08:00</published><updated>2010-02-03T02:32:24.121-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><title type='text'>Doing it wrong is progress</title><content type='html'>I spent a day working on the partitioning of the system, mapping functions to pins, and sketching the mechanical arrangement of the boards, display, touch panel, and radio.&amp;nbsp; System level design work.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;There are a fair number of variables to consider.&amp;nbsp; A few of the more important ones:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Power. Where does it come in, what voltages and currents are needed, how does it get distributed.&lt;/li&gt;&lt;li&gt;Connectivity.&amp;nbsp; Do the boards stack, or connected via a cable. What side of the board should the connector be on. What signals are on each connector.&lt;/li&gt;&lt;li&gt;Compatibility.&amp;nbsp; Touch panel and RF both require special care in locating them in the system.&lt;/li&gt;&lt;li&gt;Pin allocation.&amp;nbsp; AVR controllers have a lot of special pin functions.&amp;nbsp; What is the best use of the pins to get the functions I need.&lt;/li&gt;&lt;/ul&gt;I juggled all that and more, and thought by the end of the day that I'd gotten it right.&amp;nbsp; But the next day, as I started to implement one of the boar designs, I realized I'd made two mistakes.&amp;nbsp; Not merely sub-optimal choices, but flat out broken.&lt;br /&gt;&lt;br /&gt;In working on those errors, some other choices came tumbling down, no longer the best fit.&amp;nbsp; My core problem is that I am trying to design too optimally, too close to the edge.&amp;nbsp; For example, I needed to put one more function in an ATmega that was out of pins.&amp;nbsp; If I had chosen an ATxmega device, I'd have plenty of pins to work with.&lt;br /&gt;&lt;br /&gt;The good news is that having done the system design once, the second iteration was a lot easier, and it is now a better, "rev 2", design.&amp;nbsp; But I worry that I may have missed something else, and I don't have time to juggle the system around repeatedly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-6900052859973852301?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/6900052859973852301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=6900052859973852301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/6900052859973852301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/6900052859973852301'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2009/12/doing-it-wrong-is-progress.html' title='Doing it wrong is progress'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-7982880265674077229</id><published>2009-12-26T16:00:00.000-08:00</published><updated>2010-02-03T02:32:48.385-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='PCB'/><title type='text'>Re-learning Eagle CAD</title><content type='html'>Eagle CAD's free version of schematic capture and board layout is a great tool for hobbyists.  Full featured, lots of parts libraries available, and it does a decent enough job for designs that will fit on a 2-layer board up to 4 x 3 inches.&lt;br /&gt;&lt;br /&gt;But the user interface is arcane.  It takes me a day to remember how to use the darn thing when I haven't used it for a couple months.  Yesterday, I spent 2 hours on a 1 page schematic.  That was easily twice what it should have taken, but I was re-learning the UI.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;The way to operate on groups always confuses me at first.  But it is actually fairly straight forward, if not intuitive.&lt;br /&gt;&lt;br /&gt;1. Select (that is click on) the operation you want to do.  Move, delete, copy are the common ones I use on groups.&lt;br /&gt;&lt;br /&gt;2. Select the group operation - the dotted box icon.  &lt;br /&gt;&lt;br /&gt;3. Drag select the group of items you want to operate on.  An object must be completely contained within the box to be selected as part of the group.&lt;br /&gt;&lt;br /&gt;4.  Right click any highlighted object in the group.  At the bottom of the pop-up menu, there will be a menu item for the group operation you selected before you activated the group command.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_qg37553jmQ4/SzbFkBfJieI/AAAAAAAABvk/pE-j5Wo0sMs/s1600-h/touch_controller.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_qg37553jmQ4/SzbFkBfJieI/AAAAAAAABvk/pE-j5Wo0sMs/s400/touch_controller.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Like I said, straight forward but not intuitive.One would expect the menu to be group commands if you have a group selected.  But that is not how it works.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_qg37553jmQ4/SzbGFYS_IBI/AAAAAAAABvs/RlIc30BN2Vw/s1600-h/Touch_controller+v1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_qg37553jmQ4/SzbGFYS_IBI/AAAAAAAABvs/RlIc30BN2Vw/s200/Touch_controller+v1.png" /&gt;&lt;/a&gt;I am doing a very small SMT board design based on the Atmel AT42QT2160 touch controller.  I chose a board outline that was a little tight.  Being "a little tight" on space doubled the amount of time it took me to do the layout.  And being out of practice with Eagle CAD probably doubled the time again.  So it took me several hours to do a small, fairly simple board.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But now I'm mostly back up to speed on the interface and re-memorizing the hotkeys, and I will try not to make the mistake of constraining the next board to just barely big enough for the next three boards I need to do for the contest.  &lt;br /&gt;&lt;br /&gt;It's not that my design is so complex it needs four boards, but free Eagle CAD is limited to small boards, and I wanted to modularize the design for re-use.  Also, if one of the boards needs a major redesign, it should be easier and cheaper to revise one smaller board than one big monolithic design.&lt;br /&gt;&lt;br /&gt;One note on the Atmel touch controller.  The pins are arranged fairly nicely, except I have no idea why they thought it would be a good idea to put X6 and X7 on the opposite side of the chip from the other six sense lines.  That really isn't helpful, and complicated the layout quite a bit.  I'm considering ripping up those routes and using just 6 sense lines, which would give me 6 buttons and a slider.  Who needs 16 buttons anyway?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-7982880265674077229?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/7982880265674077229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=7982880265674077229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7982880265674077229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7982880265674077229'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2009/12/re-learning-eagle-cad.html' title='Re-learning Eagle CAD'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qg37553jmQ4/SzbFkBfJieI/AAAAAAAABvk/pE-j5Wo0sMs/s72-c/touch_controller.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-1606673534272811251</id><published>2009-12-25T11:31:00.000-08:00</published><updated>2010-01-13T20:07:50.203-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Things that eat up time</title><content type='html'>Atmel's AT42QT2160 uses a 28-lead QFN/MLF package.  The datasheet for this part doesn't have package dimensions!  So I searched around and found that their ATmega168PA/328P also comes in the same package.  But that datasheet has dimensions for for a 20-pin QFN (which the 168P does not even come in).  Thanks Atmel, you are a ton of help today.&lt;br /&gt;&lt;br /&gt;So after wasting time searching, I'm stuck calculating what I hope are the 28-pin package dimensions, and if I'm wrong, eventually I'll be wasting a LOT of time redesigning my board.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-1606673534272811251?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/1606673534272811251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=1606673534272811251' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1606673534272811251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/1606673534272811251'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2009/12/things-that-eat-up-time.html' title='Things that eat up time'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-7626864104986321267</id><published>2009-12-21T14:02:00.000-08:00</published><updated>2009-12-22T00:35:13.712-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><title type='text'>RF design tradeoffs</title><content type='html'>Well, more like architectural tradeoffs.&lt;br /&gt;&lt;br /&gt;I've looked at the Atmel AT86RF212 datasheet and some example code, and compared that to the RFM12B datasheet and the code in the RF12 library used in the JeeNode.  I believe I could fairly quickly port the RF12 library to use Atmel's part.  Some features, like a fast SPI interface and 128-byte TX/RX FIFO will make the Atmel device easier to use than the RFM12B.  Not easier to port, but easier to use in my application code.&lt;br /&gt;&lt;br /&gt;But, and this is a big but, I am worried about the time needed to debug the code.  Debugging wireless is hard.  Of course, I don't have to debug it before the paper design is due in &lt;strike&gt;30&lt;/strike&gt; 27 days.  It just has to simulate.&lt;br /&gt;&lt;br /&gt;Yes, that's right, 10% of my design time gone, and I haven't even made a decision on the wireless solution.&lt;br /&gt;&lt;br /&gt;I'm going to move on to other parts of the system.  Design and code those, then see how much time is left before the deadline.  I have a feeling that I'll have to go with Raven modules due to time constraints.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-7626864104986321267?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/7626864104986321267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=7626864104986321267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7626864104986321267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/7626864104986321267'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2009/12/rf-design-tradeoffs.html' title='RF design tradeoffs'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-4469492480262742954</id><published>2009-12-20T12:56:00.000-08:00</published><updated>2010-02-03T02:33:30.361-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Atmel Smart RF</title><content type='html'>&lt;span style="font-weight: bold;"&gt;First step:&lt;/span&gt; figure out what I'm going to use for wireless.&lt;br /&gt;&lt;br /&gt;I need to keep in mind the goals: use as many Atmel components as possible, keep cost low, and minimize power consumption.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;My design centers around wireless sensors, so I figured in my proposal that I'd use Atmel Smart RF parts.  The 433MHz ATA5428 transceivers looked attractive.  Very cheap, low power, Atmel AVR friendly, really good range, and my sensors won't need much throughput so 10-20Kbps is fine.  I thought that perhaps the result might be a really cheap radio design for hackers that don't need all the features of Xbee or Zigbee or WiFi.  I was hoping the cost could be under $10 DIY for a radio that could send small bits of information like temperature or on/off commands.  Like the JeeNode, but with an Atmel radio.&lt;br /&gt;&lt;br /&gt;But last night, I started looking for design information on those parts, maybe some demo boards I could use or at least replicate the RF section, and some example code.  After a couple hours on the web, I believe that Atmel has discontinued that particular part, but left the information about it on their web site.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Options&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It looks like Atmel has bet heavily on Zigbee.  Lots of good info, modules, design data on 2.4GHz and 915MHz radios supporting Zigbee or 6LoWPAN.&lt;br /&gt;&lt;br /&gt;Zigbee is way more complex than I need.  In addition to the transceiver chip, it takes a fairly robust AVR with at least 50K Flash dedicated to Zigbee protocol.  While that would boost my Atmel chip count, I would have problems with cost and to a lesser extent power.&lt;br /&gt;&lt;br /&gt;6LoWPAN, IP over wireless, is interesting for building an "Internet of things", but that isn't my goal.  Lower processing requirements than Zibgee, and it would be cool to use IP stacks.  I'm concerned about power and maturity.  &lt;br /&gt;&lt;br /&gt;If the brand new, single-chip RF plus AVR ATmega128RFA1 part was available, I might go for that.  But then again, I've only got 30 days, not a good time to be playing with brand new technology and a device I can't even order yet.&lt;br /&gt;&lt;br /&gt;The Raven boards look interesting.  A "scaled back" 802.15.4 MAC and Zigbee.  No mesh, no security.  I could live with that.  $99 gets me two boards plus a USB stick.  That would really help accelerate my design if I could go with a pre-packaged setup like that.  But on closer examination, it has two processors on it.  ATmega3290P and ATmega1284P.  One of those is dedicated to talking to the radio and holds the MAC and Zigbee protocols.  It talks serially to the other uC which is where the application would reside.  All I need to do is read a sensor once in a while and blink an LED.  Overkill.&lt;br /&gt;&lt;br /&gt;There is some code called "TAT", only 2KB, that gives low-level access to the RF transceiver.  That seems more in line with what I need.  But it does mean I'd have to create a very simple MAC to send and receive packets on top of it.&lt;br /&gt;&lt;br /&gt;I might be able to take the RF12 driver code from JeeNode and adapt it to work with the AT85RF212, but I'll have to spend some time looking at the code and the chip spec to work that out.  Having the TAT code in front of me will help.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;First day's results&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've decided that I'd like to use the AT86RF212 radio.  It uses 915MHz, so the range would be 2X the 2.4GHz Smart RF parts.  1.8-3.6 VCC, so it will run on a pair of AAA or a Lithium battery for a very long time.  1Mbps max throughput is overkill for my sensors, so I'll run it much slower, which should improve range even more.  Whole home coverage is important.&lt;br /&gt;&lt;br /&gt;More investigation is needed.  I still have to research the AVRFreaks boards to see what folks there may have done with Atmel Smart RF.  Maybe something will turn up.  But I can't spend too much more time on research.  The schedule is just too short.&lt;br /&gt;&lt;br /&gt;Otherwise, I think I'll dig into the AT86RF212 interface spec, download the TAT code and RF12 code, and see if I can convince myself I can make an merge of those that will work.&lt;br /&gt;&lt;br /&gt;Fallback plan will be to use the Raven design and hope that the use of lots of Atmel parts trumps cost, complexity, and power.  Not your usual engineering design tradeoff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-4469492480262742954?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/4469492480262742954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=4469492480262742954' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/4469492480262742954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/4469492480262742954'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2009/12/atmel-smart-rf.html' title='Atmel Smart RF'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-8501689923346995254</id><published>2009-12-20T12:36:00.000-08:00</published><updated>2010-02-03T02:34:03.397-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smart design contest'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Atmel Arrow Smart  Design Challenge</title><content type='html'>I submitted a design proposal to Atmel's &lt;a href="http://www.arrownac.com/manufacturers/atmel/s/avr/smart-car.html"&gt;AVR design contest&lt;/a&gt; back in October.  The grand prize is a Smart Car.  I figured winning a new car would be fun.&lt;br /&gt;&lt;br /&gt;On Friday, they notified me that I had made it into the semi-finals, along with up to 100 other entries.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;I now have 30 days to produce a "design on paper".  Schematics, BOM, software, and "simulations".  I got bit carried away in my proposal, so I'm now worried I won't complete this phase of the design in time.  I'm pretty busy with some contract work plus trying to start a new business.  And lets not forget the holidays.&lt;br /&gt;&lt;br /&gt;Maybe I should have started work on the paper design back in October.  But I didn't.  So here I am, 29 days from the deadline.  Time to get to work.  Maybe deadline pressure will help me be efficient.&lt;br /&gt;&lt;br /&gt;The judging criteria includes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Uniqueness  and creativity of design or application using an 8 bit AVR microcontroller from Atmel&lt;/li&gt;&lt;li&gt; Usefulness  of products resulting from design or application (impact)&lt;/li&gt;&lt;li&gt; Low power  consumption&lt;/li&gt;&lt;li&gt; Design  methodology and technology&lt;/li&gt;&lt;li&gt; Cost of application  and incorporation&lt;/li&gt;&lt;li&gt; Number of  Atmel components required &lt;/li&gt;&lt;/ul&gt;I'll need to keep those in mind as I proceed through the design process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-8501689923346995254?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/8501689923346995254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=8501689923346995254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/8501689923346995254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/8501689923346995254'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2009/12/atmel-arrow-smart-design-challenge.html' title='Atmel Arrow Smart  Design Challenge'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-3759752430462913846</id><published>2007-05-01T18:28:00.000-07:00</published><updated>2007-05-01T18:32:54.822-07:00</updated><title type='text'>Ebay To Go</title><content type='html'>Ebay has an interesting new feature - the ability to insert gadgets into web pages (and blogs) that contain an ebay listing, or a search of ebay listings.  Like so:&lt;br /&gt;&lt;br /&gt;&lt;object width="355" height="300"&gt;&lt;param name="movie" value="http://togo.ebay.com/togo/togo.swf" /&gt;&lt;param name="flashvars" value="base=http://togo.ebay.com/togo/&amp;lang=en&amp;mode=search&amp;query=pentax 50mm lens -screw -f/2 -f2" /&gt;&lt;embed src="http://togo.ebay.com/togo/togo.swf" type="application/x-shockwave-flash" width="355" height="300" flashvars="base=http://togo.ebay.com/togo/&amp;lang=en&amp;mode=search&amp;query=pentax 50mm lens -screw -f/2 -f2"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Hello web 2.0...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-3759752430462913846?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/3759752430462913846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=3759752430462913846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3759752430462913846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/3759752430462913846'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2007/05/ebay-to-go.html' title='Ebay To Go'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-38908275.post-117596456676024584</id><published>2007-04-07T09:09:00.000-07:00</published><updated>2009-11-16T00:00:38.317-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>The effects of RAW converters on DSLR quality</title><content type='html'>Warning, links below lead to web pages with large graphic files.&lt;br /&gt;&lt;br /&gt;The perceived quality of a digital camera, particularly DSLRs and their lenses, is heavily dependent on the tools you use to process the image.  Not just the "recipe" or settings you use, but also the mathematical algorithms in the particular software package that you use.&lt;br /&gt;&lt;br /&gt;Take the demosaicing algorithm.  This is taking the red/green/blue camera sensor data and overlaying the colors into pixel data.  Somewhat surprisingly, there are various ways this can be done, each with trade-offs for resolution, color, and artifacts.  See &lt;a href="http://www.rawtherapee.com/comparison.html"&gt;this comparison&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Sharpening is another algorithm that varies from tool to tool.  See &lt;a href="http://www.sphoto.com/techinfo/rawconverters/pages/details.htm"&gt;this comparison&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Don't take those comparisons as a way to judge the absolute quality of any of the software, because the results are highly dependent on the content of the test image used.  And there lies the rub.  When you think about it too much, you realize there is an infinite solution space.&lt;br /&gt;&lt;br /&gt;The variables are the camera, lens, subject, lighting, exposure, software, settings.  A particular image might look best post-processed (PP) in Adobe Camera RAW with sharpening (and at least 6 other controls) set a particular way.  Another image might look best processed in Silkypix.&lt;br /&gt;&lt;br /&gt;So what to do?  You can't run every picture you take through every software tool with every setting.  I barely have time to run my best pictures through one tool!&lt;br /&gt;&lt;br /&gt;You have to pick a RAW processing tool and learn how to use it well, learn what all the adjustments do and their combined effects, which adjustment to apply in which order.  You have to develop different recipes for different types of images.  And by recipe I don't mean a set of absolute settings, I mean the methodical steps you go through to adjust the image.&lt;br /&gt;&lt;br /&gt;Portraits might be one recipe, landscapes another, low light interior another, and so on.&lt;br /&gt;&lt;br /&gt;Do it wrong, and you are likely to blame the camera, or the lens, or the software you are using.  Do it right, and you will have a very pleasing result.  Maybe not the ultimate best result that could be accomplished some other way on some other software, but then you can't know every software package and you can't try every recipe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/38908275-117596456676024584?l=more-noise-than-signal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://more-noise-than-signal.blogspot.com/feeds/117596456676024584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=38908275&amp;postID=117596456676024584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/117596456676024584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/38908275/posts/default/117596456676024584'/><link rel='alternate' type='text/html' href='http://more-noise-than-signal.blogspot.com/2007/04/effects-of-raw-converters-on-dslr.html' title='The effects of RAW converters on DSLR quality'/><author><name>SiliconFarmer</name><uri>http://www.blogger.com/profile/11434681826272098792</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_qg37553jmQ4/SfyhPBJ-nHI/AAAAAAAABuk/Z0wqlwFHIwU/S220/icon.PNG'/></author><thr:total>0</thr:total></entry></feed>
