With deep regret, I've had to implement a filter that block all IP traffic originating from Chinese internet service providers. This affects all of the websites and blogs under my control. The reason for this was that I was getting an inordinate amount of web traffic from those IP ranges. These were likely not legitimate traffic but instead spam and/or hacking attempts.

With 25-50 gigabytes of traffic a day, my website provider was going to charge me over $1000 a month in bandwidth over-usage costs, even after I had upgraded to one of their high-volume contracts. I just couldn't afford this.

Since implementing the block, web traffic has plummeted back to normal levels.


20130522 PairBandwidth

If you think you were blacklisted unfairly, then please let me know your IP address (range) and I can whitelist you. Of course, you most probably won't even see this notice unless you use a non-Chinese proxy….

I bought several clone Lightning to 30 pin adapters from China via eBay. So far of the two I've received, neither pass analog audio as described in the listings, although they do work for syncing and charging.

One fell apart on first use, and looking at the innards, only USB and power lines are visible, so there's no attempt at passing / conversion of analog audio.




I'm thinking of getting a new battery system for my EV conversion. Right now I'm using a Prius Gen 2 NiMH pack in a 6S2P setup (43.2 volts nominal @ 13 Ah), which cost me $144 in December of 2009. I can conservatively pull about 330 watt-Hours, so it works out to 43 cents per Watt-hour.

(Nominally it is 561 Wh for the pack, but there is considerable voltage sag at the end which reduces the amount of energy I can extract). The nominal price/performance is 26 c/Wh….


Let's price out some LiPo solutions….










18650 cell (single)LiPo$42.4 Ah3.7V 8.8 Wh 45c / Wh
18650 cell (single)LiPo$72.8 Ah3.7V 10.36 Wh 68c / Wh
Zippy Flightmax 8000 mAh 6S1P 30CLiPo$888 Ah22V178Wh 49c / Wh
Zippy Flightmax 8000 mAh 5S1P 30CLiPo$748 Ah18.5V148Wh 50c / Wh
Zippy Flightmax 8000 mAh 4S1P 30CLiPo$588 Ah14.8V118Wh 49c / Wh
Zippy Flightmax 8000 mAh 2S1P 30CLiPo$288 Ah7.4V59Wh 48c / Wh
Turnigy 5800 mAh 8S 25CLiPo$1005.8 Ah29.6V172 Wh 58c / Wh
Zippy 5000 mAh 10S 25CLiPo$1065 Ah37V185 Wh 57c / Wh

I checked the prices in May (2013.05.20) and there was no change in prices. But there are some bigger cells coming on the market which might change things. This is from dealextreme.com:

26650 cell (single)LiPo$7.606.0 Ah3.7V 22.2 Wh 34c / Wh

I commented before that Nick Dolezal, who wrote Geigerbot, suggested that I use a noise offset of -13 CPM in my settings for the DRGB-90, which uses a SBM-20 tube (CPM conversion of 22 for Co60). Nick based this suggestion on the research of one of his collaborators, Higuchi Osamu, who did a series of experiments that showed that the SBM-20 had a noise floor of about +13 cpm.

UPDATE 2012.02.06: I have adjusted the correction factor done to -9 as of Feb 6th, see notes below

I was hesitant at first, but decide to do some more research on this. I eventually decided that having a noise offset was the right thing to do given the three sources of data that indicated this:

  1. Osamu Higuchi's research: http://www.higuchi.com/item/640
  2. Research done by the Kokumin Seikatsu Center on several consumer-level geiger counters (http://www.kokusen.go.jp/pdf/n-20111222_1.pdf). All of the SBM-20 based geiger counters (#3, #4, and #5) read around 0.05 - 0.07 uSv/hr high on background radiation, as well as 0.05 - 0.08 uSv/hr too high when they were inside a lead-lined container. This means that the SBM-20 is occasionally firing even when there is no radiation and that these consumer units do not compensate for inherent background counts. See page 7 of the report.
  3. Finally, when I use a compensation factor of -13 CPM along with a conversion factor of 22 (Cobalt-60), my DRGB+Geigerbot values very closely align with both the national and city government's figures for Shinjuku ward, where I am, namely around 0.05 uSv/hr.


Here's the national and city government data:

All of them seem to be giving figures of about 0.05 uSv/hr (+/- 0.2 uSv/hr) which is exactly what my compensated Geigerbot reading is. So I'm now confident that I'm getting fairly good data.

Another way to read the data is the highest radiation readings for Shinjuku for the past year was March 22, 2011 when the maximum atmospheric reading was 0.166 uGy/h (equivalent to 0.166 uSv/hr). Without the compensation factor, I was getting these levels every day! So obviously my uncompensated geiger counter was reading high.

p.s. I would like to publicly state for the record that Nick Dolezal rocks.

This feed is currently monitoring my home in New Haven, CT.


Note 1: 1000 nSv = 1 uSv ===> so 50 nSv/hr = 0.05 uSv/hr
Note 2: 100 nSv/hr or 0.10 uSv/hr ===> 877 uSv / year or .9 mSv / year


DRGB90 mod 001

I've been spending the past couple of months in Tokyo. Worried about the radiation, I brought my DRGB-90 russian geiger counter /dosimeter that I had bought a couple of years ago. Unfortunately, the DRGB is a rather old analogue design and the readings at low (natural background radiation) are rather imprecise.

There's an application on iOS called Geigerbot that is a sophisticated click-counter. Set up correctly, it can give you precise microsievert per hour readings. It also interfaces with Pachube which allows historical readings. Now Geigerbot can use the microphone on your iPad/iPhone to detect the geiger counter's audible clicks, but it will of course also pick extraneous external noise.

I wanted to directly interface my DRGB-90 with my iPhone so I could have more precise readings. Unfortunately, the DRGB doesn't have an external speaker jack or any other outputs.

Here's how I hacked it.


Step 1: Take it apart

It's very important to note that geiger counters produce very high voltages (400 volts in the case of DRGB-90). Before opening the case, remove the batteries. This is what it looks like on the inside. The long cylinder is the SBM-20 geiger-muller tube. It came wrapped in aluminum foil from the factory in order to give it better shielding against beta radiation (in order to emphasize gamma radiation).

DRGB90 mod 003

I was disappointed to not see the speaker when I opened it up. Hmm, it must be on the back side of the printed circuit board. The board didn't up easily, it took some wrenching

Step 2: Under the PCB

Lifting up the PCB (with the help of a sharp scoring knife to break the PCB conformal coating). The piezo speaker becomes visible. I wanted to patch into the speaker. Using my multimeter, it becomes clear that the piezo speaker frame is grounded to ground and there's a small (almost invisible in the photo) lead to the piezo.

DRGB90 mod 004

Step 3: Patching into the speaker output

I cut the speaker output lead and soldered in my own lead.

DRGB90 mod 007

Step 4: The speaker jack

I then hacked in my own headphone jack using the lead from the piezo speaker as the positive terminal and the battery ground as the ground. On the headphone jack end, I used the necessary bypass capacitor and voltage dividing resistors that the iPhone needs to recognize a microphone input, as noted on the Geigerbot homepage. I could have built this into the unit itself if I had thought a bit more about it. In order to reduce the output to iPhone mic-in levels, I used the 100:1 voltage divider circuit on Higuchi's page, but the volume levels were a bit low in Geigerbot, so I later changed it to 40:1 by swapping out the 100K resister.

DRGB90 mod 009

Step 5: Putting it all together

Here it is all put together and hooked into my old iPhone 3G which had been previously destined for the dust box.

DRGB90 mod 002

The iPhone then connects into my Pachube account for a real-time and historical data feed.


Tim writes asking how he could charge his 8S2P Prius battery pack used in an experimental EV. My Piaggio is 6S2P and I encountered numerous problems. Here was my response to him:

Using Prius packs are tricky and 8S2P is going to be even more difficult. Here are the problems:

  1. Charging voltage is very high

  2. Even "smart" chargers cannot detect Prius battery delta-V or delta-T to stop charging
  3. No parallel charging
  4. Packs expand on charging

* High voltages

Prius NiMH batteries are internally 6 cells, so a 6S pack is really a 36 cell pack, with nominal voltages of 43.2 volts (but usually hot off the charger at around 50 volts). An 8S pack would be 48 cells, so nominally 57.6 volts with a hot off the charge voltage above 60 volts.

Then the problem is that almost all commercial NiMH chargers go up to 50V (and even those are rare). I had trouble finding chargers for my 36-cell pack. The two I bought were: Astroflight 112D (NiMH version) and the "CH-UN4820 Multi-Current Smart Charger (2.0A) with 3 pins Plug for 36V or 48V NiMH / NiCd Pack."

You will most likely have to split your pack in half so you only charge 4S (24 cells) at a time.

* No parallel charging

First, you know you should never charge in parallel, so you need to add some connectors so you can charge as two 8S1P and 8S1P packs -- or four 4S1P packs. I recommend Anderson 75A power pole connectors.

* Smart chargers can't detect Prius delta-T/V

NiMH batteries are tricky to charge as there isn't a fixed final voltage as with LiIon/LiPo/Lead-acid. Instead, smart chargers usually look for a very small drop in voltage (delta-V) which signals the cell is full; or an increase in cell temperature (delta-T).

Unfortunately, Prius packs don't exhibit a measurable drop in voltage and don't increase in temperature when they are full. This is partly because of their pack design (prismatic rather than cylindrical). Instead, when a Prius pack is full, it bulges due to the increased internal pressure. Not good.

* Packs expand when charged

The prismatic (rectangular) Prius packs will swell and expand when they are overcharged. In order to prevent this, you have to design a strong battery holder that will keep good lateral pressure on them. My own holder (below) uses threaded rod and steel plates to hold the packs together. Even with 2mm steel, the packs have put enough pressure on the side plates to bend them and I'll have to make up new side plates sometime soon.





* How to charge

So how do you charge a Prius pack? I haven't found a smart charger smart enough to charge them using the standard delta-T and delta-V. So instead, I do what the battery management system in the Prius does -- I coulomb count. With my CycleAnalyst, I know how many watt-hours I've used in a ride. For example, for my commute I used 234.23 Wh which is around 5.90 Ah.

Knowing that my multi-current "smart" (stupid) charger has a nominal charge rate of 2.0 amps (and using a wattmeter), I set the charger using a timer to charge for 3 hours. This gives me 3 hours x 2 amps = 6 amp hours.

I have to repeat this twice, one for each side of my parallel chain.


I'm in the process of designing my own charge circuitry that will allow me to automate the coulomb counting. It will measure the output of the battery, then put the same back in (+10% for charging inefficiency). For a backup foolproof end-of-charge detection, I plan on using load cells to detect when the cells are expanding from internal pressure.

Of course, I'm busy with my day-job so this advanced Prius pack charger is still many many months (if not years) away given that a simple charger with a timer does much the same.

Trés cool programming of an ultra-cheap ATtiny 45/85 using the Arduino IDE. Perfect for embedded systems. Now there's no reason for me to go back to PICAXE!

This tutorial shows you how to program an ATtiny45 or ATtiny85 microcontroller using the Arduino software and hardware. The ATtiny45 and ATtiny85 are small (8-leg), cheap ($2-3) microcontrollers that are convenient for running simple programs. They are almost identical, except that the ATtiny85 has twice the memory of the ATtiny45 and can therefore hold more complex programs. We like to use both of them with paper circuits and other craft electronics. To program them, we’ll use a port of the Arduino core libraries created by Alessandro Saporetti and slightly modified by HLT.

From: http://hlt.media.mit.edu/?p=1229

Have been playing with the Seeeduino Bluetooth module. Will report more later, but just wanted to note that there's a simple UNIX command to turn your terminal into a … terminal on another port:

Knowing the serial port, you can just type screen portname datarate to show the serial data on the screen. In my case, it was:

screen /dev/tty.Keyserial1 9600

Then I started typing bytes at the PIC, and it sent bytes back to me. Whee! No need for zTerm! To quit the screen app, type control-A, then control-\.

Very useful!

From: http://www.tigoe.net/pcomp/resources/archives/avr/000749.shtml

PHilips LED3 540x378

EDN.com has a great two part teardown of the new Philips AmbientLED 12.5W lightbulb. I use these A19 style bulbs in my house. They have a nice even white-light output, dim much better than the other LED bulbs I've used. All around, great players. And CL&P has an instant rebate for them in CT that makes them $20 each.


What's really neat about them is that they use remote phosphor technology. The yellow coating on them fluoresces under the blue LED used internally in the devices. This allows for the diffuse white quality of the light. This is in contrast to the CREE LEDs that have the secondary phosphor built into the LED shell itself and a diffuser in the A19-style shell. Their luminous efficacy is actually much better than CFLs for a change.

UnitWattsLumenslm/WPrice
Eco-Smart8.6 W420 lm49 lm/W~$20
Philips AmbientLED 12.5W12.5 W800 lm64 lm/W~$20 AIR
Compact 16W CFL16 W800 lm50 lm/W~$2

RemotePhosphor

Find recent content on the main index or look in the archives to find all content.