On advertising

September 17th, 2015 No comments

This is going to be a simple and short post. In my circles in news and twitter, there’s a lot of discussion about ad blocking (relating, it seems, to iOS9’s new content blocking features). I’ve been mulling the purpose of my blog and online advertising over the past few months, and I’ve come to the conclusion that the pittance that Google returns me for the privilege of running ads on my site isn’t worth it. Therefore, I’m going to disable all the ads on the site, which should improve load times and reduce general annoyance for the 1% of you that don’t block them anyway! :)

If you enjoy what’s on the site (even though I haven’t posted in a while) feel free to donate via paypal using the link in the sidebar. If you don’t feel like it, that’s ok too!



VORs and SDRs part 3 supplemental materials

February 27th, 2015 15 comments

I recently posted part 3 of the VORs and SDRs series. In this video, I look into the instrument landing system (ILS), and how it works. I just uploaded the raw baseband data and GNU Radio companion document for anyone that wants to play around with it:

GNURadio Companion GRC file
Baseband data

VORs and SDRs Part 1 & 2 Supplemental materials

January 11th, 2015 12 comments

Part 1

Part 2

I want to share some supplemental materials to go along with this video. In the attached zip file, I’ve included the raw samples (32k/sec sample rate, roughly centered carrier) and the GNU Radio Companion file for basic processing. I’d be very interested to see if others can squeeze out a little better performance.

Also, this is the path that I took. It may help understand the angles. I need to make clear that I’m not at all certain that the absolute angles are representative to compass points. I’m only looking at relative angles at this point. Eventually I’ll calibrate the system using a known VOR calibration location (there is one at the Corvallis airport).

This is the path I took while collecting the VOR data. Ignore the drive time

This is the path I took while collecting the VOR data.


My new Chinese laser cutter!

January 10th, 2015 No comments

For my birthday, my entire family chipped-in and gave me most of the money to buy a (relatively) cheap laser cutter directly from China. I had seen several Hack-a-day articles about these machines, and I’ve got experience with 3D printers, so I thought it was something that I could handle. Boy, did I have a lot to learn.

The path the slow boat from china took

The path the slow boat from china took

To begin with, I looked around on eBay and Alibaba. I noticed that 90% of the ~$1000 units are almost identical. There are occasional small differences such as pointing laser, whether it has a spring loaded “work clamp,” whether it has a raising-lowering bed, etc. I found one that claimed to have a larger bed than any other that I’d seen (mistake #1). I don’t know why I accepted that a machine that looked like every other machine out there would have magically increased the work size, but I did, and it doesn’t.

Because I was mentally set on this machine, I was willing to accept the shenanigans of the seller (mistake #2). The trouble began when their “free shipping to the USA” became $200. I thought “That’s kinda annoying, but not the end of the world.” The shipping charge was on par with other vendors. The next problem became that the $200 shipping was by boat, and F.O.B. (Mistake #3). Alibaba doesn’t support shipping by boat, and at this point the vendor and I agreed to leave the relative safety of Alibaba (Mistake #4). I requested a refund of my Escrow and it was granted.

A quick note about how Alibaba works, for the uninitiated. Alibaba is a marketplace, like eBay. Unlike eBay, however, Alibaba provides some additional protections to the buyer, and less so, the seller. When you purchase something from a vendor and make a payment you pay Alibaba directly, and that money is put into an Escrow account for the transaction. At this point, the Seller is assured that the money is there and they are guaranteed payment if they hold up their end of the deal. The seller, then, ships the product with an Alibaba approved carrier (like DHL, EMS, etc.). When the buyer receives the product and decides that it was accurately represented and meets expectation the seller is paid and the escrow is closed.

If you decide to leave Alibaba, it’s the wild, wild … east? The vendor really wanted to be paid by a wire transfer, which is the system that you see in spy movies. Bank account number, routing number, etc. The thing about a wire transfer is that there are NO protections. That money is gone, forever. If the vendor is feeling generous they may give it back if there’s a problem, but there are no systems in place for you to dispute it. There was no way I was going to go for that. I got them to agree to accept PayPal, which for all their faults does provide some buyer protections. Paypal makes their money by levying a surcharge on business transactions; the only way I got the vendor to agree to this was by paying the surcharge myself. In my mind, it was a worthwhile investment in insurance.

Ok, at this point I’ve paid the vendor and they’ve sent me vague information about when the ship will be leaving the Qingdao port. Then, one day I get an email from them about filing an ISF (10+2) form. I had no idea what this was, and I literally called the Port of Portland to ask them. They basically laughed at me. Apparently, the ISF is a form for a system that was introduced after the Sept. 11 collective mindless panic. Someone had the thought along the lines of “zomg, someone could put a bomb in a shipping container and blow up an entire city!” So, of course the government intervened and invented yet another complicated, expensive, process that can only really be done by a customs broker.

Now I need to find a customs broker. Off to Google… Whelp, no one has a ratings site for customs brokers. All my usual methods for deciding on a service provider fail. I find myself at the port of portland website and staring at a list of what seems like a hundred brokers. I literally choose one at random (mistake #5). I call their number and someone assures me that I’ve got plenty of time to file (Did I mention that you have to file the form three days before the ship leaves the last foreign port, and that failure to comply can be a $5000 fine?). I never hear from him again. Two days later I get a call at 3:00am from China. They’re calling to yell at me about the fact that my form hasn’t been filed and that I needed to do it right now. I calmly (lucky for them, my 1-year old wasn’t woken) explain to them that no one is awake or willing to take my calls at 3:00am. I’m not happy. The next morning I googled for “Customs broker portland oregon.” I choose the first link. My thinking is that google’s magic algorithms must know something more than random guessing. The new company is fast, responsive, and mostly a pleasure to work with.

Importing something substantial (I’m not sure what makes something substantial, but stay with me) is an expensive affair. The ISF form costs $35 to file. Great. Wait, I also have to become a customer of the brokerage company, $50. I need to have an ISF bond, $100. Don’t forget the customs bond premium, $45. Someone needs to enter the customs yard, $125. I haven’t even mentioned duty yet (this is what most people think of when importing), $26.50. By the way, any device that “emits radiation” has to be FDA accepted (they mean all radiation. Yes, I know that LEDs emit radiation, so do radios, you get my point), that’s another $35. So far were looking at about $400 in addition to my $200 shipping. Awesome.

You can see in the image above that the boat is going to Long Beach, California. Cool. I don’t live in California. The whole time I’ve been talking to them I’ve said Port of Portland perhaps a dozen times. I’m panicking a little. About two days before the boat is set to arrive in Long Beach, I get a call from a company at the Port of Long Beach. They were wondering when I would pay their fees. What? I wasn’t aware I had contracted with anyone at the Port of Long Beach. They had asked me about who my customs broker was. It seemed like this was the kind of thing that they could bill my customs broker for, and I had them do that. These guys charged another $160 of fees, including my favorite, the “Clean truck fee.”

Now, at this time (October 2014, and persisting now, into January 2015) there is a major bottleneck at the Port of Long Beach. My delivery was delayed a bit over a week because of this.

I was curious how I could get a shipment delivered to Long Beach, and have it go through customs in Portland. Apparently, it’s possible to move merchandise across the country that has not gone through customs. It just has to go to customs before it goes to the customer. That seems strange to me.

Anyway, the truck eventually got my package to Portland, and I drove up one day to get it (I had 2 days before I’d start getting charged warehouse fees). They put it on a forklift and surprisingly gracefully placed it in the back of my 4-runner.

All told, the cost for the machine was $700 + $200 shipping + $667 in customs fees. I feel a bit nauseous typing that out. Even more so when I add them and have to say that it was $1567 in total. Though, when I remember how much a decent laptop costs, I feel a little better. :)

The rest of my laser-cutter adventures were documented in video. Please enjoy the YouTube playlist below:

Laser water cooling, part 1: Peltier element theory

September 8th, 2014 No comments

I just ordered a laser engraver/cutter from China.  While I wait for the slow boat to come into port, I thought it would be a good idea to start preparing the infrastructure.  These products don’t include any hardware for the required water-cooling, other than a submersible pump.  Most people just say “just have a few gallons of water circulating, and you’ll be fine.”  I say “if it’s worth doing, it’s worth overdoing.”

In the spirit of overdoing it, I remembered that I had a peltier element-cooled fridge in my lab for a while, and that the parts were still kicking around somewhere.  Peltier coolers are really neat.  They can use an electrical current to drive a difference in temperatures on the opposite plates.  I found an interesting page with a simplified model for calculating their performance across a range of conditions.  It’s interesting to note that you can’t just drive it harder to move more heat.  Because the modules are consuming energy themselves, self-heating can (and often does) overwhelm the coolers ability to move heat.  After spending a couple days understanding the models, I discovered an error in the page, so I’m going to re-post corrected equations.

Computation of T1

This equation computes the temperature of the “cold side” of the cooler.  The model depends on several variables:

I = Drive current (Amps)

Rp = Cooler resistance from the data sheet (Ohms)

Q1 = Thermal load that we’re trying to cool (Watts)

C1 = Thermal conductivity from load to ambient (Watts/°C)

Cp = Thermal conductivity through the peltier (Qmax/ΔTmax) from the data sheet

Ch = Thermal conductivity of the heatsink on the hot side (Watts/°C)

T1 = Temperature of the object being cooled (°C)

T3 = Temperature of the ambient environment (°C)

I’m going to ignore P.  For now, it suffices to say that it’s a constant that models the peltier junction’s performance.  (Watts/Amp)

The article that I got this model from doesn’t really explain the terms at all, so I’m going to try to interpret the pieces of it.  First of all, the T3 term references the entire model to ambient.  If you used something else as a counterpoise, I’ll call it, to the peltier you could remove this term and model it.

The middle term models the heat flow out of the hot-side heatsink.  The numerators of this term are the thermal load (Q1) and the self-heating from the peltier cooler’s current (see Ohm’s law for the inspiration of this).  The entire term is divided by the thermal conductivity of the heatsink, Ch.  Thermal conductivity is a very useful specification, as it tells us the °C across the device per Watt.  In the case of a heatsink, that is referenced to ambient.

The first term models the heat flow from the load through the peltier.  Again, there is the Q1 term, as we have to get the thermal load through the device.  Second, we have half of the peltier’s self-heating.  My assumption is that only half of the peltier’s self-heating has to travel all the way through the device.  Finally, the -P*I term models the active cooling (the point of this whole thing).  These are all divided by the combination of the thermal conductivity of the load-peltier junction and the peltier’s internal thermal conductivity.

The upshot of this, is that we can model the performance of our system built around a given peltier junction given load, heatsink performance, and ambient temperature.


Now, let’s talk about P.  We can derive P entirely from information commonly found in peltier junction datasheets.  There really isn’t much more to say about this, just plug in the values…

The module I'm working with

The module I’m working with

Now, let’s make all of this a little less abstract…  The image above is the module that I’ve salvaged.  It’s easy enough to lookup the model number and get the data sheet.

Specification table

Specification table

Using the specification table, directly from the data sheet, we can calculate P to be 14.47 (for 25°C).  For now, let’s also choose some values for the other parameters.  Let’s say we want to cool a load that is producing 10 Watts, with a rather poor heat sink that has .2 Watt per °C of conductivity (would be listed as 5 °C per Watt as resistance).

T1 heat versus amps, with simple heatsink (blue) and ambient (green).

If we graph T1 versus drive current, I, we can see that the optimal current from the cooler is 0.8 Amps (red line).  Unfortunately, if we compare it to Q1/Ch (which would happen if we just put a heatsink on the load) it’s almost 6 °C hotter than without the peltier cooler…  boo.   The laser is estimated to produce about 200 Watts (20 times more than the 10 Watt example) of heat.  The problem, ultimately, is that the hot-side heatsink matters.  A lot.

T1 heat versus amps, with simple heatsink (blue) and ambient (green). With a better heatsink

T1 heat versus amps, with simple heatsink (blue) and ambient (green). With a better heatsink

Now, what happens if we find a much better heatsink?  They’re expensive, but you can find .1 °C per Watt heatsinks on Digi-key.  This would be 10 Watts per °C in terms of conductivity.  With the better heatsink, the cold side is down to -17 °C!  The heat sink is more than able to shunt the heat from the load and the cooler.

All that is obviously super-awesome, but what if we want to calculate what the ideal drive current is for a peltier cooler?  The Itec equation, above, will give us this information.  We still need the P and Rp terms from the data sheet, and the thermal conductivity of the peltier and the heatsink.  But, you’ll notice that thermal load and the ambient temperature are not factors in the equation.  Therefore, the ideal drive current (and, therefore maximum temperature drop) are not affected by those factors.

I hope this has been at least somewhat interesting.  Stay tuned for part two, where I investigate whether it’s really feasible (practically and economically) to move over 200 Watts with peltier elements.  Also, I’m planning some research into how to characterize the efficiency of radiators in liquid cooling setups.  If you have any insight, please leave it in the comments.  Also, I started to write a mac application to model peltier cooler systems.  I probably won’t finish it unless it seems like something people would want.  Leave messages in the comments if you would pay a few dollars for something like that.