Manufacturing guy-at-large.

Filtering by Tag: hacking

Schematic & Plans

Added on by Spencer Wright.

One more report from our Hacknight: The Public Radio's schematic.

public radio notes-1.jpg

We'll use a Pro Mini for this next rev (the one after that will likely get an ATTiny), but will be using discrete ICs for both the FM receiver chip (Si4703 for this rev, though we'll eventually transition to Si4702 as we're not using the RDS features the 4703 offers) and the amplifier.

This schematic got a little sloppy at the end (after all, I was drawing it :/). I'll probably redraw it once more on paper just to make it pretty, and then we'll punch it down into Eagle and build a board file off of it.

There are probably a few mistakes here so if anyone's got a sharp eye, let me know :)

And lastly, our tasklist for the next few days: 

public radio notes-2.jpg

Most of this doesn't bear much comment... The next rev will likely get laser cut acrylic lids, which I kind of hate but which should be significantly more economical (and quicker to procure). Eventually we'll do stamped stainless steel lids, but that's a ways off. We also need to do a bit more digging on active antennas, as the telescoping RC antennas we're using here leave much to be desired. We've also got to look into other wire-to-board connection options; the screw terminals we're using (.1 spaced) are still a bit bulky, and we'd really like to avoid soldering wire directly to the PCB... 

More soon.

Update: The Public Radio

Added on by Spencer Wright.

I'm not going to go into the details here - it'll be posted on the Public Radio Tumblr soon - but Zach and I have spent a bit of time reconfiguring our MVP in the past week. The result should be done next week (pending a new 3D printed lid prototype, etc) and will cover all of the functionality of the end product. Right now it's a protoboard, an Arduino Pro Mini, and a couple of (meh) Sparkfun boards.

The shitty thing is finding a potentiometer that will work well. It should be a 10K pot, logarithmic (audio) taper, with a switch. Unless I'm missing some hidden trove, there are about 7 parts in the world that fit those criteria and are stocked in quantities of more than a dozen. And then 5 of those have PC pins, when I think I'll end up needing solder lugs... it's a huge PITA. 

Anyway, the project is moving along. More updates soon.

Rubyday photos

Added on by Spencer Wright.

From yesterday. 

In my own experience, working with dogs around is incredibly inefficient. It's also fun sometimes. In the afternoon we took a walk down to Prospect Park for a little while, and Zach threw some treats in a ziploc. So, there you go.

Hackweek Days 3-4

Added on by Spencer Wright.

For reasons I'll get into below, I've got a bit less to show for the past few days. 

The major theme of the past eight months of my life has been to form a new path towards long term stability, satisfaction and happiness. Some of that has been personal: I've spent a lot of time with friends; I've done my share of dating; I've been about as physically active as ever. But a major component has been my career.

I'm skeptical about anyone who claims a high degree of authority over their own emotional state. I tend to think that statements of ultimate preference (e.g. "I could never be happy in finance" or "I'm not satisfied unless I'm building something") tend to fall to post hoc ergo propter hoc fallacies. I want to be happy, and I refuse to let my career get in the way of my happiness. 

That said, I have a particular set of goals vis a vis my career, and high on the list is to be appreciated for my ability to break down complex problems on a range of subjects. And it so happens that the types of problems I'm interested in solving are largely strategic rather than technical, and it so happens that I see the most interesting strategic problem solving happening in the tech world.

I have spent most of my adult life learning skills, but software development is not one of them. I'm probably more comfortable at a command line than the average person, and I can talk generally about a tech stack, but I am not a programmer. Except in certain contexts that fact doesn't bother me. I'm not an engineer either; nor am I a certified welder or a particularly well practiced machinist or carpenter. But I've got all of those skills nonetheless, and I've put enough time in on those types of projects to communicate well with people whose careers are dedicated to those crafts. 

I don't want to be a developer any more than I want to be a bike mechanic. Skills are like tools - I like having them, but I'm wary of committing to any particular one, lest I view the entire world through a single lens. Some problems require a hammer; some require knowing the first damn thing about how serial port emulators work. I want to be a general purpose problem solver; I want to bring a wide variety of skills and experience to the table. I want my range of conceptual frameworks to be broad. I want to be intellectually agile. 

Also - and I don't mean this to be trite - I like computers. 

So Zach and I spent most of yesterday doing an overview of the tech stack required for a basic web app. We've got a couple of ideas that would fall across hardware and software, and it would seem that an RoR backend would fit our needs nicely. We'll still probably be programming our hardware in C, and will have a bit of HTML/CSS on top, but the meat of it - and, really, the fun stuff - would be Rails.

So today, we got about a third of the way through the Codecademy Ruby class. The Codecademy site is pretty slick. It's weird doing programming classes in this context, though. I took a few CS classes in college, but that was before laptops were ubiquitous, and I never really got comfortable with the format. Doing Codecademy is a lot cleaner - I like having the instruction and the execution all in one interface - but there's something about it I haven't gotten totally used to yet. I suspect that'll go away, but it was there a little bit today.

I'm excited to bang this class out over the next few days. I'd also like to be making concrete progress on a project, though, and it's hard to know how the two mesh. Not wanting to be a developer puts me in a weird position in the tech world. I'm a bit of a spectacle - a guy who swatted nails for a few years and can talk with some conviction about the benefits of climb milling. For the most part, that's fine with me, but the romanticism that the tech world has for physical objects - and old ones in particular - strikes me as a bit condescending and disrespectful. And all things being equal, I'd rather not be the one being condescended to. 

But, whatever. Sorting hashes is fun, and I relish the opportunity to flaunt my command of logical structures. I'm enjoying learning a new skill, and if history is any guide, I'm sure I'll find a way to put it to use. 

Hackweek Day 2

Added on by Spencer Wright.

Unsurprisingly, it's trickier to troubleshoot a handmade PCB than it is to make a PCB by hand. We (and by "we" I mean Zach, with my mostly moral support) spent a bunch of the day ringing out one weird bridge to ground. It's frustrating work, and we ended up only isolating it partially before putting our mind to more tangible problems (we'll return to it tomorrow or Thursday).

Added the thru-hole components. Click to "embiggen," or whatever.

Our board layout was a heavily utilized tool today. Click to "embiggen," or whatever.

Meanwhile, I spent a lot of the morning setting up a new domain to use for hosting projects. I also explored a few more APIs, and then spent the middle of the day refreshing my shell scripting chops. I took a UNIX class in college but couldn't invoke sed to save my life, and I suspect that our next step in getting some simple data transfer going will involve a serial port monitor, cURL and the Google Docs API. Suffice it to say that I've got a bit of re-learning to do before I can start learning again.

In the afternoon, we pulled out my XBees and did a refresher on their configuration. The new version of XCTU is available for Mac (thank god), but the interface is foreign to me and I had to familiarize myself before I could give Zach anything resembling a primer. By the time the evening rolled around, though, we had them up and running again, and Zach had played around with a high-temp temperature sensor enough to get it reading data to an arduino.  

Tomorrow we'll probably throw a few of these things together - XBee, the temperature sensor, and a AC rated relay - and get a feedback loop going that will boil water and then shut the hot plate (the same one we did our reflowing on) off. I would like to then use cURL to schedule the whole thing by making a PULL request from Google Calendar, but we'll see how the afternoon goes.  

Hackweek on! Spencer out! 

Hackweek Day 1

Added on by Spencer Wright.

Zach and I started the week with The Public Radio

When last we visited it, we had assembled - destructively - our first PCB. Today we started fresh, beginning with solder paste application. 

Paste applied. Click to "embiggen," or whatever.

Parts. Click to "embiggen," or whatever.

Parts applied.  Click to "embiggen," or whatever.

We spent a little while trying to find a reflow curve for our solder paste, but gave up after Sparkfun (of course) fell flat on a datasheet (Note to self: get proper solder paste, and get it in a fucking syringe. Enough with the toothpicks.)  So we found one for some Kester paste and shot for that. With my non-contact thermometer and our crappy hot plate, reflowing went damn well.  

Ready for reflow.  Click to "embiggen," or whatever.

Why would you want to look at this more closely? I'm not sure. Still,  click to "embiggen," or whatever.

 Click to "embiggen," or whatever.

Reflowed.  Click to "embiggen," or whatever.

Then, we basically looked at it real close. I've got a line loupe, and recently threw down for an eyeglass style magnifier. Add a multimeter and we were able to figure out where all of our bridges were pretty easily.

Gimme da loupe?  Click to "embiggen," or whatever.

On to fixing. We had a bit of trouble getting our wick + torch to agree with each other, but eventually got all (but possibly one - but it's going *down*) bridge fixed. 

The area, i.e. my kitchen. Click to "embiggen," or whatever.

Fixing.  Click to "embiggen," or whatever.

Fixing.  Click to "embiggen," or whatever.

The net effect: The Public Radio is basically ready to have its bootloader installed. With any luck, we should get it programmed, tested, and bumping HOT97 tomorrow.



Lunch: Franks does the heavy lifting here.  Click to "embiggen," or whatever.

I spent a good part of my afternoon working to get data passed to a Google Spreadsheet. It turns out that the quickest way to do so is to create a form, which by default dumps text inputs to the next row of a spreadsheet.  The standard format puts a timestamp on the first column and then text strings in each subsequent column. I wanted to start by passing data from a command line, mostly because I was pretty sure that implementing cURL was going to be straightforward. There's plenty of info about cURL and the Google Data Services API, but once you get to the complicated stuff, everyone's building PHP scripts - something that was a little much for me to take on for the afternoon. So I reached out on twitter, and within a half hour a friend from college got back to me with the syntax I was looking for

Computers like notebooks. Click to "embiggen," or whatever.

Posting to Google Docs directly from the command line. Click to "embiggen," or whatever.

The next step here (if you believe my pseudo-engineer ass) will be to built a PHP web app that can pass data to the same spreadsheet. Some of this will transfer right from what I did today, but the complexity level - and the potential things I can do with it - will increase pretty quickly. A PHP script will allow me to get and push data, and will also handle some computation as well. From there, I hope to add an additional layer - a basic embedded system that can post data from a wireless connection (likely XBee and/or GSM) directly to a Google Spreadsheet.  I'm planning on getting the web app mostly built tomorrow (it'll be extremely simple, but will be the basis for a lot more) and hope to be getting data from a wireless device later this week.

The net effect: A good amount of progress today, capped off with a (somewhat...) interesting meetup in the evening. Plus, Zach got a little real about his twitter account

Shit's real. 

If you need me, I'll be: This Week

Added on by Spencer Wright.

This week is hackweek for me and Zach

We've been working, slowly, on a handful of projects (products?). Some require skills we don't have; some require time we haven't had the guts and/or availability to put in. 

I'm not bothered by the things not being done. I'm bothered by the skills unlearned, the effort not put in, the mental and emotional shit that I've put in my own way (nb. I'm not talking here about actual shit that actually happens - I accept that God laughs, etc. - I'm talking about self imposed shit, which I suspect is the lion's share of what most of us deal with most of the time). These are the problems that keep anyone - everyone - from taking care of the crap that matters most to them.  

But fuck that, right? 

In the interest of keeping ourselves on track, here's a brief overview of the week's agenda. Some of it's pretty hazy, but that's what you get. 

  • The Public Radio. We've got a couple PCBs and need to populate, reflow, program and test them. 
  • GSM data.  Getting activities on an Arduino to a Google Doc, web app or Twitter feed.
  • Temperature sensing. I got a high temperature waterproof thermometer a while back, but never got around to figure out the communication protocol. The plan is to be able to accurately test for temperature in a pot of boiling water, and relay that (via xBee/GSM/possibly Bluetooth & a PC) to a Google Doc, web app or Twitter feed.
  • Barometric pressure sensing.  Ditto for "Temperature sensing."
  • Bluetooth.  Getting data from a Bluetooth enabled sensor node to/from a PC.
  • iOS dev.  I just want to make a static app to start. Then build something that'll post data to a Google Doc/web app/Twitter feed.
  • Google Docs API.  See above. My impression is that it's easiest to send http requests to a Google Doc Form, which then dumps the data entered into a spreadsheet; we'll see.
  • Twitter API.  See above. Useful to trigger IFTTT actions... and just as a general exercise.
  • Simple web app.  I'd like to be able to trigger physical/electromechanical actions from a web interface, and then return the results to the same interface/a Google Doc/Twitter feed. For instance, I want to ask my web app what the temperature is at my xBee, and then have that temperature returned to my output streams. My plan for now is to do this in Ruby; we'll see.

That's the meat of it. In addition, I've got a couple of additional pet projects that'll need some attention:

  • Get Zach to be posting shit actively.
  • Some interesting bike-related design. 
  • Some interesting coffee-related design. 
  • Some freelance design. 
  • The Hardwired meetup on Monday. 
  • Bike rides MWF mornings. 
  • (Possibly, depending on my condition) running w/ dog TTh. 
  • Write up & publish a post re: Geoff Pullum & George Orwell. 
  • Post a big batch of photos.

I'm expecting it to be a good week. 

the public radio progress/mvp

Added on by Spencer Wright.

last week.  some real text is sorely needed at this point, but it'll have to wait for now :( 


anyway, we're making some real progress.  the physical enclosure is mocked up and we've got a good acoustic test going.  we should have the actual amp mocked up in a few days, and will be working on the rest in the coming week or two. 

pictured: my feet, coffee, etc.  obv. 

pictured: the workstation, i.e. my kitchen's #2 counter/storage space.  the soldering station is defective and needs to be replaced; the amp is a piece of junk (and was put together wrong - my bad).  i just got a positioning jig to hold PCBs while assembling (the cardboard and spools didn't work all that well).  and... mamoun's hot sauce remains kinda inedible.

pretty mvp.  and pretty cool.

the mvp is an off-the-shelf amp circuit, an ipod, and a speaker (the volume potentiometer isn't connected to anything), housed in a mason jar.  it sounds pretty great, though it's tough to change tracks/channels on the ipod.  luckily that won't be an issue on v1.0, which will have a fixed band FM tuner only.