Desoldering braid is magic (or, Building prototypes is hard)

So, to kill any suspense that may have been building over the last couple weeks, I’ve managed to complete a first prototype of my open watch. As it turns out, a lot of people have built these over the last couple years, as hobby parts get more sophisticated and smaller. It’s now possible to take a bunch of off the shelf stuff and build a smart watch in any number of configurations. It’s not long before you can build a phone, similarly.

version2 with rfduino

I hesitate to go into too much detail. There’s a lot of this that’s arbitrary, or an accident of me painting myself into some corner through mistakes early on, or simply unexamined. I’m sure there are several lucky breaks I don’t know about, in addition things like the fact that the display breakout I’m using has a voltage regulator. You can see from the photos that it took a lot of working and re-working. What I’d like to do is to teach the knack that helped me know where to look for problems when they came up. How to work through a decision tree of what parts to use, where, and when, what connections to make,

As hinted in an earlier post, the heart of the beast is an RFduino, an Arduino compatible ARM and Bluetooth LE system on chip (SoC). The prototype is built on an an Adafruit perma-proto, but you could proably use any standard perf board. The display is this one, which I’m also using for it’s voltage regulator. VIN goes to the display, and the rfduino is powered from the 3v pin. I’m using one of their tiny LiPo batteries, the 150mAh, but I think power consumption may be an issue when I get to the radio-using phase, so I also have a 500mAh ready to swap in.

The first draft of thie prototype was… messy. I sat and thought about every connection, then soldered, then sat and thought some more. This is not a fast way to build a watch. This version of the setup worked, for a loose definition of ‘work’. I used really long jumper wires, and tried to pack them all together, so, of course, there were shorts. It also made the whole package considerably bigger than I thought it would be. So, kind of a dud.

second rfduino SMT solder

The second version was a little better; I shortened a bunch of wires, but the RFduino had a pad separation on the reset pin, which meant that it was kaput. I had bought 2 of them, luckily, so I wasn’t dead in the water. Not that the pad separation was my fault; these are SMT complonents, meant to be reflowed (soldered) once only. I knew I was pushing my luck, and it didn’t work out.

rear of finished board

Version three I sort of took the experiences of the first two and combined them. I made the proto board a little longer, and soldered little legs to the rfduino, which I made out of wire wrap wire. They’re tiny, and a little flimsy, but in aggregate, give enough tension to hold the chip securely. I wired the power/programmer side so that I could plug it in directly and power everything off of it, for debugging purposes. You may notice, if you look closely, that Rx and Tx are switched from the circut diagram I posted in my last post; that’s because I screwed up drawing it.

So, what have I learned so far? There is a metric ton of information on how to do all of this stuff out there on the internet. If you have a question, someone else already has, and has posted on a forum about it, and been derided for being a noob. Then, someone knowledgeable will come along and actually answer the question, sometimes clearly, and sometimes in an offhand way that has you googleing again. Skim the trolling, look for answers. Then, there are the manufacturers’ data sheets, which are supposed to tell you everything you need to know to use their product. They give away perfectly good designs, so you get to benefit.

With clips

But seriously, solder braid really is magic. There’s more to say, and a ton more to do, but that’s enough for now.

Posted by Matt on 2014-06-17 12:52:43 +0000

Programming an Rfduino with an FTDI friend

There comes a time in every man’s life when he buys a thing, thinking he won’t need accessories, only to find out later that he does, in fact, need them. This was one of those times.

I’d tweeted about building a bluetooth-enabled watch,and a friend linked me to the RFduino, a device that seemed to fit all my requirements. It’s small, low power, has enough GPIOs, and was supposedly open source. I’m not entrely sure that’s true, as I know that you need a proprietary toolchain to build the bootloader currently, but the bootloader itself is at least open. So, I decided to forge ahead with experiments anyway. I ordered two of the SMT versions.

When they arrived, I was stoked. They’re freaking tiny . My level of stoke only lasted until I started trying to find out how to program it; there wasn’t much information at first, other than to use their programmer. A look at the data sheet told me that it was just a USB → serial interface, and I had one of those, Adafruit’s FTDI Friend.

To get it working, there are some steps. The Friend is already configured for 3v logic, but you have to solder some jumpers on the back to expose the right signal lines, and make Vcc 3v as well. In the picture, you can see I’ve bridged the DTR jumper pads with a surface mount part; that’s a small value capacitor I had laying around. You don’t have to do it that way, it just needs to be in series with the DTR line.

I derived most of the schematic from the datasheets for the parts involved, and then from some forum postings figured out the capacitor. It’s pretty simple once you get to the end point, but took me a while to get here. Recommended but not required is a filter capacitor wired in parrallel between VCC and Ground. On my breadboard currently, there’s also a pullup resistor from reset to Vcc, but that’s not required. I was trying to troubleshoot… anyway. Protip: Command-u is not the same as Command-shift-u.

You could replicate the above with any of the FTDI programmers out there; sparkfun sells one, and there are clones all over. Just make sure it exposes the DTR line, and you’re set. One last photo: this is the current setup, with filter caps and a sneak peek at the display of the watch I’m working towards. You can see what loook like three hands; the one pointing to 12 is actually a bug in the redraw code. We’ll pretend it’s a second hand.

Posted by Matt on 2014-06-04 15:58:19 +0000