Archive for May, 2008

PCBs are finally ready!

Thursday, May 29th, 2008

I’ve had PCBs on order for my Bluetooth sensors for about a month now. They finally arrived today.

I got these made at Futurlec. Their quoted tolerances are quite large by modern standards, but since I’m not building a complicated board, I figured this would be OK. This is one of the tighter-packed boards that I’ve worked on, so I’m probably pushing their manufacturing abilities a little.

The board is double-sided with solder mask and silk-screening on both sides. Some parts of the board do require the minimum tolerances specced by Futurlec.

Lesson 1: Don’t run copper right to the edges of the board.

edge-copper.jpegWhen the boards are cut, the bare copper will be exposed. I haven’t investigated the issue much, but I expect it’ll allow oxidisation and probably bad things long-term.

Lesson 2: Don’t rely on precise hole positioning.

offset-holes.jpeg

Nothing on these boards is bad, but there’s noticable inconsistency between boards. They’re usually offset by a constant amount. Some are near-perfect, some have a fraction of a millimeter offset.

The board has a mini-USB socket and I’ve specified the socket with little mounting posts. There are holes drilled to accomodate these. Of course, offset holes means offset USB socket and possible pad alignment issues. I don’t think it’ll be a problem, but certainly something to watch out for next time.

offset-silkscreen.jpeg

Similarly, the silkscreen is offset slightly. Probably best not to rely on this being perfect.

Lesson 3: Better to have too much solder mask than too little.

close-soldermask.jpeg

The pads between the main CPU are tightly spaced and not all of them have solder mask between them. Since I’ll be hand-assembling the first few, ease of assembly is fairly important to me. I left the pad-to-mask margin at the Protel default, but I’ll reduce it in future. Of course, too little will probably lead to parts not sitting flat on the board. Hmm.

Lesson 4: Where possible, use thicker tracks than the minimum.

weak-corner.jpeg

I should have predicted this after experiencing the same issue when I was etching boards at home. Bends in tracks will tend to get over-etched and hence be thinner. The risk is that they’ll get so thin that they’ll break.

Lesson 5: Don’t rely on tight grid patterns.

pcb-grid.jpeg

I covered most of the backside of the board with a gridded ground plane. This was set up to be at the minimum tolerance allowed by Futurlec. Most boards are perfectly fine, but a few are ‘underexposed’ - there are solid grid squares where there should be a hole.

Lesson 6: Don’t be lazy about rebuilding the ground plane

weak-groundplane.jpeg

In a few places, I’ve got vias pushing through the ground plane (intending to connect to it). I should’ve explicitly connected rather than relying on the grid to ‘coincidentally’ connect. Again, the tracks are getting a bit thin at some points, and I have a sneaking suspicion that some of these are power tracks.

Overall

These are all minor quibbles. I don’t think they’ll make any substantive difference when I actually build the thing. Most of this comes down to “be generous with tolerances”. Don’t rely on everything being perfect; allow a little slop in the design.

Status report, 23 May 2008

Friday, May 23rd, 2008

Nothing spectacular has happened lately. It’s just been a lot of the usual hard work.

The amount of work involved has surprised me. It’s not just the fact that I’m running multiple parallel projects - just bringing a single project to market is an amazing amount of effort. A lot of the work will be faster the second time around, so I’m not too concerned. I do find it amusing that it’s been almost six months and I don’t have any products out yet.

The Mutex Labs website is finally at a state that I’m happy with. You should hire me as a consultant. Now. Do it!

I’ve been running AdWords to drum up some more consulting work. So far, the response has been mediocre. I think that part of the problem is that there just aren’t that many people searching for Python geeks in Australia. Additionally, I don’t think people are searching on Google for them. It’s not like it’s costing me much to keep the ads going, but I don’t have high hopes for them yet.

I also set up Microsoft AdCenter. So far, they haven’t given me a single impression. I don’t know why - even if I search for the exact terms, the ads don’t appear. I guess I’m USD$5 in the hole until I can figure out what’s going wrong.

I am amused that AdCenter appears to have been ‘inspired’ by AdWords. And by ‘inspired’, I mean ‘completely ripped off’. I’m mostly using it because Live is the default search in the new versions of IE and I’m expecting large growth in the amount of their search traffic soon.

My experience with online freelancing websites (Elance, Rentacoder, etc) has been very poor so far. I’ve seen a few good ideas float across, but so far very little interest from the people advertising the projects. Most projects fit into one of three categories:

  • Advertiser has no idea what they want and gives a ridiculously vague spec (which we then nut out during IM and discover that it’s a lot harder than they thought originally)
  • Advertiser gives a good spec with a few glaring flaws. I ask for clarification and get no answer.
  • Advertiser is only offering slave-labour wages, and so I can’t afford to take the work anyway.

Most of the problems are with specs. I’m not going to bid on a project that has +/- 50% wiggle room in its spec, and so far that’s been the good case. And since the hourly rates are very low to begin with, I can’t afford to take the (high) risk of scope creep with the spec that is in place.Contrasting with last month’s money concerns, I’m now inundated with work requests. Nothing concrete yet, just a number of separate inquiries. This sort of highlights one of my frustrations with treating advertising and measuring response rates as a statistical system - noise drowns out your actual data.

I’m still waiting on PCBs for my data loggers. I think it’s been… three weeks now? The manufacturers’ website quoted one week. It took them a week just to acknowledge that I had sent an order. Sigh. I have another place in mind for the next batch, and they’re pretty quick to respond to emails as well. I also have quotes from a few local places who can do short-turnaround orders - it’s not cheap, but it’s good to have the option.

Data logger firmware is about 60% complete. Of course, most of it has only been compiled, not executed, since I still don’t have hardware. Still, it feels good to make such rapid progress.

SyncDroid is stalled. I’m going to run out of data logger code to write soon, so it’ll get some more attention shortly.

I’ve also been playing with a ‘keyword mixer’ that generates all possible combinations of words, intended for AdWords and the like. It’s come up because I have a number of skills that I want to advertise (for example, ‘Python’, ‘AVR’, ‘Gumstix’). Using ‘Python’ as a bare keyword gets a lot of clicks but no conversions (too generic), so I make the search terms more specific by adding terms like ‘development’, ‘consultant’, ‘expert’, and so on. So, the mixer generates every combination from the two lists. Then you copy and paste it into AdWords and tweak from there.

I want to do similar mixing with ad headlines and bodies to help with comparative benchmarking.

It took me about half an hour two write as a Python script. There are a few programs that do similar jobs, but you have to download and mess around with them (and pay, in many cases). I’m thinking of sticking this online and just seeing what happens. I have no solid monetization ideas right now.

Ramblings, 2 May 2008

Friday, May 2nd, 2008

I’ve got money jitters.

Logically, I know they’re irrational, at least in the short term. There are two contributing factors: I haven’t had a predictable paycheck for about six months now, and me putting up AdWords didn’t immediately make the phone ring.

Yup, that’s all.

I’m good for cash for probably two years yet. That’s actually a better prediction than my little thing on the right-hand side of this site, which places my starvation point at Feb 2010. I feel more like someone is tapping me on the shoulder every time I buy something: “Are you going to get that money from your long-term savings? From your index funds? Are you going to sell something? WHAT? You still owe GST/PAYG and the credit card and rent and Amazon and blah blah blah”.

I haven’t had any coffee yet today and it’s after 3pm. Bear with me.

In other news, I haven’t felt like blogging much. I’ve been busy writing content for the Mutex Labs website. My goal there was to get it to a point where it was good enough for me to start pimping it with AdWords, and it is, sort of. I’m spending pretty much the bare minimum - 25c/click, $5/day - and so am getting very few clicks. But that’s OK. I’m already getting good data on what people are interested in and how well the keywords are matching up.

Parts for my first run of Bluetooth sensors are due in any day now. I find that having physical artifacts really clears up how profits actually come about; you buy input parts for $x then sell them for $3x. While the input parts feel kinda expensive, they’ll sell for what appears to be a huge sum. I don’t feel the same way about it that I do about selling software, which is kinda like panhandling: “You like the app? Toss me some cash? Please? Help out a starving programmer?”. There’s physical (figurative) meat to manufacturing which is far more understandable to my hunter-gatherer brain.

And of course, Joel Spolsky’s recent post about how file synchronizers are a solved problem and how making fun things is the future. Well, I’m biased of course, working on a file synchronizer as I do, but I still disagree.

Everyone writes file synchronizers because they’re an interesting programming problem; yes, it is. I don’t believe that the market for it is sewn up just yet, though. Lots of people have multiple computers. Not many people use a synchronizer to keep files in sync between them. Why? The best that I can come up with is that they generally suck (as I have previously mentioned). There are a hundred of them and they all look alike. They all have the same annoyances and are generally not worth the effort. I’m using Unison right now and it’s alright, but it could be a whole lot better. Sadly, Unison is probably the best that I’ve seen, despite the hundreds that are out there.

Making fun things. I wrote a somewhat inflammatory rant on another blog a few weeks ago about how ‘fun’ things are basically the work of the devil. I still feel that way, and I worry that that’s where Joel has gone wrong. Fun things are fun, yes, but do they make my life better? Do I wake up in the morning and say “geez, I’m glad Twitter is around. It really enhances my life.”

These are exactly the sort of things that are interesting programming problems but not really consumer problems. Social networking sites. Yes, Facebook is popular. Yes, it’s valuation is beyond belief. But does it solve a problem? Does it enhance humankind? If fireballs rained down on the Earth and you could only pack a few things into a suitcase before retreating into your underground bunker, would you take the Facebook source code?

I guarantee that you would not.

Perhaps it’s just me, but I’m in this to create great things. My view is obviously not shared by everyone, but I’ve stated repeatedly that my goal in this is not to get fabulously rich. I want to work on fun stuff and be able to live comfortably. That’s it. I’d rather be building rocket ships than websites, even if the latter pays better.