Browse files

Moved all files over to a flat file system. Added new hyde plugin.

  • Loading branch information...
Sam Jacoby
Sam Jacoby committed Oct 2, 2012
1 parent f529cab commit e98500c7a0459410661b53d92e754b7d84a1b869
@@ -0,0 +1,23 @@
title: Using Arscons
summary: Free'd from the tyranny of an IDE.
date: 2012-08-24 14:10:22
I've used Arch Linux for years -- always a bit ineptly, I must admit -- and a while back, mostly because of Adobe CS, I switched to Mac. I've been pretty happy since, but there's something about coding in Snow Leopard or Lion or Cat or whatever we're on, that I've never really liked.
I've always had another machine around--a Thinkpad X40, to take up the slack. My old X40--which accompanied me on a six month jaunt in Central America and has earned my devoted trust and affection since. I've since amassed a small collection of the things--you can get one in working-order on Ebay for around $65 bucks, last I checked. I'm presently running Arch off've a 4GB USB stick (the ones on Ebay almost never have drives). I couldn't be happier. I'm not the only one. Mako has a [great post]( on the travesty that is the 16:9 screen ratio --which makes my little, cranky skull-bucket thinkpad feel roomier than the glossy MacBook Pro I work on.
At any rate, all of that doesn't change the fact that it's an antiquated machine--and I use it primarily for text editing. I like coding on it--but in vim with my own config. Not in an unwieldy and poorly-rendered Java app. The Arduino IDE--as fantastic as it is--has been a raw spot on my Arch machine. I've been using [Brian Mayton's]( Makefile ([file]( to compile my avr programs--but honestly, I love the convenience of the Arduino libraries and all the rest, even if they're anathema to Assembly Cowboy's. Not growing up on embedded programming, the whole `(1 << PB4)`, alas, does not quite feel like first nature.
So -- can you have it all? Vim, an X40, a tiling WM (Awesome and Xmonad) + Arduino? Sure. Doesn't mean it's particularly easy, but [Arscons]( makes the process relatively painless.
First, install the necessaries:
sudo pacman -S install python-pyserial scons
Then grab the SContstruct file and copy it into your sketch folder, type `scons`, and let the magic unfold. Maybe. Didn't work for me outt've the box. Because I have several versions of avr-gcc, a conflict prevented programs from compiling correctly. I edited the SConstruct file to make it work right--in my case, I just modified the AVR_BIN_PREFIX setting to point to the actual Arduino install of `avr-gcc`. That broke `avrdude`, but such is life. I don't know exactly what was amiss, but it seemed to have worked fine.
Now I can work on mac, quickly compiling Arduino programs and such--sync them up through GitHub--and work on my X40 with Scons, without having to stop using vim.
Yes, yes, I know I can use an external editor with Arduino, but I don't like doing that for some reason. I end up being confused about where I should be editing. So that's that--not so grand. Scons is basically Make--or does the same things, at least--and lets you use Python rather than all of that gibberish. There *are* `Makefiles` for Arduino that do the exact same thing--but they are even more of a code soup.
@@ -0,0 +1,36 @@
title: Building Boards
summary: Whipping together some quick prototype circuit boards.
date: 2012-08-31 10:33:23
My circuit board order came in -- it's always astonishing how tiny the things are, these boards are about the size of two postage stamps, side-by-side. The "barebones" option from Advanced Circuits is a pretty good deal too. These cost $8.90 apiece, which is pretty reasonable. I know that [APC Circuits]( has really quick turn-around for boards with solder mask and such, but I didn't need it. I'm mostly proud for remembering not to pour a groundplane, as it makes it a pain to solder.
<a href="" title="DSC_0359 by s_jacoby, on Flickr"><img src="" width="500" height="333" alt="DSC_0359"></a>
<figcaption>Nice & pretty like.</figcaption>
I used a bunch of `0603` resistors to provide the loads on the capacitive pads (those rectangles along the top). Those suckers are small. What's all the more astonishing, is that there is yet a *smaller* size, 0402, which is about the size of a grain of sand. And Brian was telling me that some special-purpose boards can have the passive elements like those baked right into the various layers.
<a href="" title="0603 Resistor by s_jacoby, on Flickr"><img src="" width="500" height="333" alt="0603 Resistor"></a>
<figcaption>Resistor + Finger. Mostly finger.</figcaption>
I had to catch a flight out to LA--though it was delayed 2 hours--but I managed to throw together a board to bring with, so I could do some work on the plane (of course, I ended up not doing any). After puzzling for a minute why the `FTDI` programming only worked the first time after burning the Arduino bootloader, I realized that I hadn't put in the auto-reset capacitor between the `DTS` pin of and the `RST` line. It works the first, because the bootloader itself holds the chip in reset (thanks, [Dave](
<a href="" title="TapClip v.2 by s_jacoby, on Flickr"><img src="" width="500" height="333" alt="TapClip v.2"></a>
<figcaption>I am still learning about fstops.</figcaption>
I soldered on the toothless alligator clips today (what gems! [[Newark](]) and drew up an aquatic sketch to have some examples to show folks for the workshop I'll be doing.
<a href="" title="TapClip v.2 by s_jacoby, on Flickr"><img src="" width="500" height="333" alt="TapClip v.2"></a>
<figcaption>Under the sea.</figcaption>
@@ -0,0 +1,37 @@
title: TapClip v.2
summary: Onwards and upwards. Building the boards.
date: 2012-09-8 12:06:17
In preparation for a workshop last weekend--I populated the ten bare-bones boards I'd picked up from Advanced Circuits (see my last [post](/posts/2012/8/31/building-boards/)). I've done a bit of this now, but with [Brian's]( ever-essential help, I got really cruising. The ten boards probably took about an hour with a few hiccups.
<figure class="with-caption">
<a href="" title="TapClip v.2 by s_jacoby, on Flickr"><img src="" width="500" height="375" alt="TapClip v.2"></a>
<figcaption>Applying solder paste, using <a href="">ResEnv's</a> pneumatic machine.</figcaption>
[Responsive Environments](, my dear friends and partners in electro-crime, have an extraordinarily well-equipped electronics "pen". This syringe is connected to an automatic pneumatic dispenser with accompanying footpedal--so you can squeeze out a regular bead of solder paste. This is a `QFP` package--so not the smallest out there--but pretty damn small.
<figure class="with-caption">
<a href="" title="TapClip v.2 by s_jacoby, on Flickr"><img src="" width="333" height="500" alt="TapClip v.2"></a>
<figcaption>Throwing down Atmel 168s</figcaption>
There's also a vacuum lift (I don't know what they're really called)--but it's a mechanical arm that helps you place the chips accurately. Sort've like a manual pick-and-place. Actually, that's exactly what it is. Handy.
<figure class="with-caption">
<a href="" title="TapClip v.2 by s_jacoby, on Flickr"><img src="" width="500" height="333" alt="TapClip v.2"></a>
<figcaption>Toasting the solder paste under hot air </figcaption>
Once all of the components are down, I ran them through the hot-air soldering/rework station--which streams a jet of balmy 260&deg;C air over the boards and melts the solder. It's pretty cool to watch. As the solder liquefies, it beads up on the pad and lifts the passive components into alignment. So as you run the boards through, as they heat-up, they wiggle into alignment. This can be an issue--apparently--with smaller components (like `0402s` and `0201`s) which are small enough to be bodily lifted off their pads by the solder ball and "[tombstone]("
<figure class="with-caption">
<a href="" title="TapClip v.2 by s_jacoby, on Flickr"><img src="" width="500" height="375" alt="TapClip v.2"></a>
<figcaption>Soldering on the alligator clips by hand</figcaption>
Large components need to be soldered by hand. These are the alligator clips for fastening the board to a piece of paper.They're fairly large so take a bit to heat up.
<figure class="with-caption">
<a href="" title="TapClip v.2 by s_jacoby, on Flickr"><img src="" width="500" height="377" alt="TapClip v.2"></a>
<figcaption>Programming boards with an AVR ISP </figcaption>
A nice little trick: you don't have to actually solder on an ISP header if you have plated vias on your board. You can just hold the headers in the holes. Works pretty well--though I would solder something on if I were debugging.
<figure class="with-caption">
<a href="" title="TapClip v.2 by s_jacoby, on Flickr"><img src="" width="500" height="333" alt="TapClip v.2"></a>
<figcaption>A small army</figcaption>
Hey, not a bad team.
@@ -0,0 +1,28 @@
title: Gerber File Extensions
summary: Making sense--mostly--of the alphabet soup of circuit board layout files.
date: 2012-08-24 22:42:58
Lest anyone be misled, **this is a post about making circuit boards.** Thrilling stuff.
Every time I send off Gerbers for production, I am baffled by the array of files that the CAM job in Eagle generates. I'm happy to be ignorant. That's fine. The issue is, when you upload your files to most board fabs, they cheerily list the half-dozen odd things you've sent them--and ask you what they are? Top solder mask? NC drill file? I know nothing of this. So--some research later, and this is what we've got.
To the best of my knowledge--using [Advanced Circuits](, these are the file extension mappings using the Eagle Gerber RS274X cam file. I may have once changed the default extensions randomly a few months ago--so handle with care. There are some inconsistencies as detailed [here]( A nice summary [here]( as well. Thanks, Fred.
At any rate, we'll see how the boards come out:
- **.cmp** / top copper
- **.drd** / NC drill from
- **.dri** / *also* an NC drill file. Do we need both? I don't know. Probably not. But someone told me to generate the excellon paths once, so I do.
- **.plc** / top silkscreen
- **.sol** / bottom copper
- **.stc** / top solder mask
- **.sts** / bottom solder mask
- **.gpi** / screw this one. General board info. Not needed.
@@ -0,0 +1,12 @@
title: Hello, World.
date: 2012-08-21 13:24:28
summary: In which I greet you, gentle reader.
With some consternation, I've overhauled my website.
Much is due to the fine work of [Steve Losh](, whose work I've assiduously cribbed for some time, both in web design, `.vim` configs, and much else.
This site is powered by [Hyde](, which is complex enough to make me feel smart--and simple enough to be actually useful. The [Golden Grid System]( gave me all of the nifty "Responsive Web" tricks for free. Fun fact: I helped put the e-book together for [A List Apart]( back when I worked for Threepress.
The code for this website is hosted on [GitHub]( Not much to see, but knock yourself out if you're so inclined.
No changes.
@@ -0,0 +1,19 @@
title: PaperClip
summary: Touch-sensitive circuit board + sound-sample recording software.
date: 2012-08-29 11:37:24
thumbnail: paperclip-processing.jpg
I've been working on the software for TapClip--which is rolling along, in preparation for a workshop next week. So far, it's working pretty well, though the `minim` library is causing me some grief. There appears to be a noticeable lag-time when using `loadSample` to queue a `.wav` file in memory.
I think it has something to do with this `buffer underrun` error I've been seeing a lot of (see below). It's thrown somewhere in the `javasound` library, and I haven't tracked it down yet, so that's all I've got. At any rate, it's probably not that important (the error, I mean)--but if I can't get it resolved, I may give the [Ess]( library a try (thanks to Nick Gillian of []( for the suggestion.
The code is up on [GitHub](
<div class="gallery">
<img src="{{media_url('img/scaled_paperclip-processing.jpg')}}"/>
@@ -0,0 +1,29 @@
title: Touch Tiny v.1
date: 2012-08-21 20:49:40
summary: Playing w/ capacitive sensing.
- Atmega32u4
- AT42QT1070
- AT42QT11110
I'm going to be doing a quick layout to test out the various QTouch chips--which Leah has warned me, work little-better than the code we've got running on plain old ATtinys (which is what the QTouch chips are, basically).
I'll also have some pads straight to the 32u4 to test out the CapSense library--and our custom code, as well.
I'm also going to do a smaller version with an ATtiny44--actually, I think I'll do that one first, just so I can quickly mill out a board and see how the alligator clips behave with the conductive ink and all the rest.
- ATtiny44
- AVR ISP Header
- FTDI 6-pin header
- Six toothless alligator clips
I decided to scrap all that, and make a version that uses an Atmega 168--like an Arduino--as that's the version that I'm most familiar with. Here's the board layout I scrapped together. Works ok, though I ultimately ended up milling one with a resonator.
<a href="" title="TapClip v.1 by s_jacoby, on Flickr"><img src="" width="500" height="389" alt="TapClip v.1"></a>
<a href="" title="TapClip v.1 in action, by s_jacoby, on Flickr"><img src="" width="500" height="333" alt="DSC_0328"></a>

0 comments on commit e98500c

Please sign in to comment.