Close

AVR Listener

A project log for weekend novelty projects

minimal advanced planning. built from stuff i already have around the shop. typically not very useful. generally completed in one weekend.

zakqwyzakqwy 12/11/2016 at 01:268 Comments

I was working on a side project (which will surely appear as a log here at some point) and carelessly used one of an ATTiny's ISP pins as a piezo buzzer output. During programming, the buzzer made a series of interesting noises. This side side project (you can pronounce that "side squared project", like "e squared prom") extends that concept to all three ISP data lines (MOSI, MISO, and SCK) and adds three bright LEDs.

In this video, I've attached the AVR Listener in line with my USBtinyISP, and I am using it to program a #NeuroBytes v0.91 board. I tried to keep the terminal window in the frame so you can see which steps produce which sound; in this case, the first section is writing, the second section is reading, and the third blip after the pause is setting the fuses:

[apologies for the shaky video. Auto-stabilization makes it worse, unfortunately. Someday I'll graduate from my current phone-based video setup.]

The AVR Listener is consists of three surface mount piezo transducers (originally purchased for the aforementioned side project) along with a trio of 2N2222 BJTs, protection diodes, and resistors to drive them. I also included three 0805 LEDs to visually highlight each 'channel'; in this case, green is MISO, yellow is SCK, and red is MOSI. The LEDs are routed through current limiting resistors and are wired in parallel with the piezo elements, so they're driven by the transistors too.

The original side project doesn't have an ISP header, so I used a set of 0.1-spacing terminal blocks I had lying around for the target board connections. In order to program the #NeuroBytes board, I also fabricated a simple ISP adapter that plugs into the terminal block. Finally, I Inkscaped and printed a quick label since I'm bound to forget the pinout otherwise, and taped it to the back of the FR4:

We'll see how much use the AVR Listener actually gets. At the very least, I'll plug it in each time I make substantial code changes to existing programs to see if I can hear the difference [highly unlikely]. Next step, however, is masking off the buzzers and giving the circuit a quick coat of poly to avoid corrosion.

Discussions

Ted Yapo wrote 12/11/2016 at 01:44 point

So, you're a copper-clad prototype guy.  What exactly do you coat them with, and how do you clean them first?

  Are you sure? yes | no

zakqwy wrote 12/11/2016 at 01:47 point

The adapter board in particular was constructed out of an old FR4 scrap (hence its odd shape). It was pretty crusty, so I scrubbed it with some 99.9% IPA before soldering. However, it definitely wasn't that clean; I tend to rely quite a bit on flux for that.

I use normal spray poly as an after-coating, after masking off sensitive stuff (piezo buzzers, some switches, connectors, etc) with bits of tape. I don't do it every time and always regret not taking the time, because corrosion really starts to be apparent after a few months.

Also important: a thorough de-fluxing before poly spray. I use 99.9% IPA for that too.

Edit: I'll add, my prototyping method of choice (carving FR4 using an Olfa razor) tends to be tough to completely clean, since the trenches fill up with burnt flux and are tough to completely scrub out. Worse, the 34-AWG magnet wire I use for signal wires is somewhat delicate, so I'm usually not able to scrub the boards quite as hard as I would with a normal PCB. So yeah, they always end up "good from far, far from good".

  Are you sure? yes | no

Ted Yapo wrote 12/11/2016 at 02:00 point

I've started cleaning then lightly spraying blank boards with acrylic before even cutting them to size.  You can solder through it easy enough, and it appears to keep corrosion at bay even without a post-clean and top coat.  I saw it in a brief note on Wenzel's site:

http://www.techlib.com/electronics/construction.html

But the jury is still out - we'll see how they hold up long-term.

I've tried the trench-cutting method, but with the force required and my klutzy approach, I could imagine getting injured.  I usually just glue islands on.

  Are you sure? yes | no

zakqwy wrote 12/11/2016 at 02:04 point

[replying here as your msg is already at max depth] I should punch out a bunch of islands and give that technique a try. FYI, trench cutting got a lot easier when I found the right knife (an Olfa SVR-1) and fabbed up a little finger rest. Prior to that it was hell on the fingers.

I'll try the acrylic spray method! That would really save an annoying step (that worst of all is often neglected).

  Are you sure? yes | no

Ted Yapo wrote 12/11/2016 at 02:11 point

I'll find that knife and give it a try!  It would be nice to be able to incorporate all these tricks into prototyping.

  Are you sure? yes | no

Ted Yapo wrote 12/11/2016 at 01:33 point

Big brother is going to listen in and get your code :-)

  Are you sure? yes | no

zakqwy wrote 12/11/2016 at 01:40 point

Hah! Next step is making an audio-to-ISP translator and doing the whole thing over free air. I suppose it would have to be duplex. Hmm, that gets complicated.

  Are you sure? yes | no

Ted Yapo wrote 12/11/2016 at 01:42 point

Ahhh ... wireless programming.

  Are you sure? yes | no