Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
I tote around an ancient Palm Zire 71, which suffices for my simple calendar & to-do lists. This is my second, as the first failed when the flexible cable connecting the guts to the charging / USB connector crapped out; turns out that the slide-to-open feature that reveals the crappy camera also stresses the flexy cable to the breaking point. Now I don’t do that any more.
The battery (well, it’s actually a single Li-Ion cell, but let’s not be pedantic) finally stopped taking a charge, so I did a full backup, tore the thing apart, and popped in a new battery. This being my second Zire 71, things went smoothly…
I got a stack of surplus Palm batteries some years ago, but they’re readily available from the usual suspects for prices ranging from $5 to $50. We’ll see how well mine survived their time in isolation.
The connectors don’t match, which means you just chop off them in mid-wire, then solder the old connector onto the new battery. A few dabs of Liquid Electrical Tape and it’s all good.
Some teardown instructions are there, with fairly small pix.
General reminders:
Stick the teeny little screws on a strip of tape
Watch out for the tiny plastic switch fin on the side
Torx T06 screws on either side of the camera
The silver shield around the shutter button snaps under the sides with more force than you expect
There’s a metal strip over the connector that can be taped back in place after the plastic posts snap off
Gently pry the flexy cable up off the base, using the tabs on either side
The speaker seems to be held in with snot
The battery shield is not soldered in place!
The battery adhesive comes off with a sloooowww pull
Screws under label
Components around shutter button
Back side
Although it may not be obvious, I replaced the crappy plastic window over the camera with a watch crystal. Much better picture quality, although much worse than my pocket camera.
Backup and restore with various pilot-link utilities:
I used a pair of blue LEDs for the colon in the Totally Featureless Clock. Each one has a brass tube to define the dot and a white plastic diffuser to eliminate hotspots.
Some rummaging in the brass cutoff assortment produced a pair of tubes with a 0.300 inch ID that closely matched the width of the LED segment bars. The catch is that I don’t have a core drill that spits out 0.300 inch slugs…
Milling the dots
So I taped a chunk of translucent acrylic to some plywood scrap and milled the dots. Helix milling on the lesser of a 4% slope or 1/5 of the cutter diameter, 15 inches/min, no cooling, maybe 1500 rpm.
The resulting disks were snug slip fits into the tubes, although I added a dot of cyanoacrylate to ensure they didn’t get any ideas about perpetrating an escape.
It took two disks to remove all the hotspots, which reduced the light intensity to the point where I had to increase the LED current, which really heated up the linear regulator driving the dots. Fooey! In retrospect, I think frosting the LED lens would eliminate the need for a second diffuser without decreasing the intensity much at all.
The code is available as an OpenOffice file there, too.
(Post milling)
(Ed Nisley KE4ZNU - Feb 2010)
(Origin = center of post at surface)
(Double-stick tape holding acrylic sheet to sacrificial plate)
(-- Dimensions)
#<_PostDia> = 0.300 (post OD)
#<_PostRad> = [#<_PostDia> / 2]
#<_Thickness> = 0.120 (sheet thickness)
#<_MillDia> = 0.250 (cutter diameter)
#<_MillSpeed> = 15 (cutting speed)
#<_MaxCutDepth> = [#<_MillDia> / 5] (max cutting depth)
#<_MaxCutSlope> = 0.04 (max cutting slope)
#<_TraverseZ> = 0.300 (safe travel height)
#<_TraverseSpeed> = 25 (safe traverse speed)
G20 (inches!)
(-- Figure cut depth per helix pass)
#<_PassCut> = [#<_MaxCutSlope> * 3.142 * [#<_PostDia> + #<_MillDia>]] (limit max cut for each pass)
O9000 IF [#<_PassCut> GT #<_MaxCutDepth>]
#<_PassCut> = #<_MaxCutDepth> (limit max cut for each pass)
O9000 ENDIF
(-- Set up cutter comp)
G0 Z#<_TraverseZ>
G0 X[0 - 3 * #<_PostRad>] Y0 (get to entry point)
G42.1 D#<_MillDia>
G2 X[0 - #<_PostRad>] I#<_PostRad> F#<_TraverseSpeed>
(-- cut down through sheet)
#<CurrentZ> = 0.0
G0 Z#<CurrentZ>
F#<_MillSpeed>
O1000 DO
#<NextZ> = [#<CurrentZ> - #<_PassCut>] (figure ending level)
G3 I#<_PostRad> Z#<NextZ> (once around)
#<CurrentZ> = #<NextZ>
O1000 WHILE [#<CurrentZ> GT [0 - #<_Thickness>]]
G3 I#<_PostRad> (clear final ramp)
G40 (comp off)
G0 Z#<_TraverseZ>
G0 X0 Y0
M2
Just for curiosity’s sake, I applied a slitting saw to the oldest defunct generic NP-FS11 battery pack, cutting carefully along the bonded joint between the two parts.
No coolant, 1000 rpm, 200 mm/min, the saw is 22 mm diameter. Much slower than you’d use if you were in production, but I’m not.
First cut all the way around at 0.5 mm inside the case, then another pass at 1.0 mm. The second cut went ting as it passed the tabs at the base of the cells, so I knew the halves were released.
Inside we find a pair of 14430 Li-Ion cells, wired in parallel, with a little protection circuit board just jam-packed with teeny parts. One may reasonably assume the circuit controls over-charge and over-discharge, as well as current limiting.
Pack opened
So a reasonable (or, perhaps, amusing) thing to do would be to buy raw cells from a nominally reputable supplier, do a heart transplant, and see if that improves the situation.
Protection Circuit – Outboard
Photos of the protection PCB, showing the cell connections. Positive end of the cells is toward the PCB. I think there’s enough clearance in the camera’s battery compartment to allow a wrap of tape around the case in lieu of re-bonding the plastic together.
Sony no longer offers the NP-FS11 Li-Ion batteries required for my DSC-F505V camera, so I’ve been using “generic” replacements for quite some time. My experience has been mixed: some batteries provide a reasonable amount of run time, others provide almost none.
Feeding the appropriate keywords into Froogle gives you a range of battery suppliers, with offerings from, as of this writing, $3 to $103. Perhaps not surprisingly, the image for a $70 battery exactly matches the one on my desk that cost perhaps $15 a few years ago… although I’m certain that the actual battery you’d get wouldn’t match that picture.
I just bought three NP-FS11 batteries from the usual low-buck Hong Kong eBay supplier: six bucks apiece, shipped halfway around the world. The eBay listing claimed 1800 mAh, which seemed aggressive, and the batteries sport a 3900 mAh label, which is flat-out impossible.
Frankly, I didn’t expect much and here’s the discharge test graph to show I wasn’t disappointed. I used a 1-amp rate as a reasonable guess at the camera’s peak draw, although that might be a touch high for a continuous discharge.
Generic Sony NP-FS11 Li-Ion Batteries
The top blue curve is from a two-year-old literally no-name battery (no logo, no nothing!) that still provides decent run time; it’s the one matching that $70 battery. It provides about 1100 mAh, reasonably close to its 1300 mAh rating.
The middle curves, black and purple, are two of the new cells that provide about 900 mAh: half the as-listed-on-eBay capacity, 25% of the absurd label value. Their very low terminal voltage during most of the discharge says that these won’t provide much run time at all.
The green curve piddling off on the bottom is the third new cell, which is obviously defective. As I said, I didn’t expect much and I certainly wasn’t surprised.
The red curve is an old and completely defunct batteries.com offering that never provided good service.
Here’s another plot of three successive charge-discharge cycles for just the three new batteries. The first curves (at 1.0 A) correspond to what you see above, the remaining two sets (at 0.5 A) are the next two cycles. Batteries G and I have improved, H remains a dud.
MaxPower NP-FS11 Battery Tests
Given the varied offerings on the Web, I believe that there is no way to ensure you’re getting a known-good battery from a reputable supplier. It’s absolutely certain that price does not correlate with quality; the ones I bought simply establish that low-end offerings are crap.
The purchase was worth it for the amusement value alone; I don’t expect any action from the vendor, although I did send a copy of that graph with some explanatory text. The question is whether I should give them a five-star rating for prompt delivery…
As it happens, there’s enough room to slide a standard CR123A-size cell into the battery compartment. I think a bit of Quality Shop Time applied to a dead NP-FS11 battery case (and the vital Sony “Infolithium” DRM module) will provide a baseplate with all the proper connectors. Perhaps I can conjure up a “battery” containing a single cell of known-good quality?
Primary CR123A cells supply only 3 V, not the 3.6 V the camera really wants, so I can’t use disposable cells.
I have an X10 CM11A “Two Way Computer Interface” handling the very very very few scheduled events for our house. Basically, it turns the living room lights on in the evening and everything off much later.
As a result, I tend to ignore it for years at a time. A recent power outage killed the regularly scheduled events, which suggested that the backup batteries needed changing… and, yes, they were pretty well corroded.
With that out of the way, I discovered that the last time I’d loaded a program into the thing was so long ago that the heyu config files had either gone missing or were on a system not near the top of my heap. It’s easy enough to configure, so I installed heyu and spun up a new set of config files.
All the doc I can find says the CM11A has an RJ11 modular phone jack, which mates with the standard 6-position 4-conductor dingus found on the end of every phone in this part of the world. My CM11A, however, has a 4P4C jack, the narrower dingus found on phone handsets. Given that heyu reports
Firmware revision Level = 1
I suspect that this thing is slightly older than some of the folks reading this post and the X10 factory switched to a somewhat less bizarre connector in mid-stream.
Anyhow, the DB9 (yeah, it’s a DE9, but nobody calls it that) connector has “X10 Active Home” printed on it in my very own handwriting, with a standard RJ11 plug on the end. A double-jack adapter connects a hank of cable with an RJ11 plug on one end and a 4P4C connector on the other. I have no idea where that cable came from; perhaps I replaced the 4P4C plug with something less bizarre to add that extension so the cable would stretch from PC to wall outlet?
I plugged the thing into a USB-RS232 adapter and heyu had no trouble talking to the CM11A. However, trying to execute
heyu dim n13 10
produced the discouraging report
RI serial line may be stuck.
A bit of deft multimeter work produced this pinout list, which agrees with most of the doc you’ll find elsewhere. Hold the 4P4C connector with the tab down and the cable away from you: the pin numbers are 4 3 2 1 from left to right. The RS-232 pins are printed right on the DB-9 connector.
4P4C DB9
1 2 RxD
2 9 RI
3 3 TxD
4 5 Gnd
It’s entirely possible the USB converter doesn’t support RI or it doesn’t do a good job of it. I jammed the cable into the serial port on the back of the PC and shazam it works perfectly.
The x10.conf file, for the next time around
TTY /dev/ttyS0
HOUSECODE N
LATITUDE 41:40N
LONGITUDE 73:53W
ALIAS MBR_Dresser N1
ALIAS Front_Hall N5
ALIAS RV_XCVR N9
ALIAS Couch N10
ALIAS Mary_Reading N11
ALIAS LR_Ceiling N12
ALIAS Fireplace N13
ALIAS Kitchen N14
ALIAS Patio N15
ALIAS Garage_Spots N16
START_ENGINE AUTO
LOG_DIR /var/log/heyu/
DATE_FORMAT YMD '-'
Got the replacement X10 controller from the usual eBay source and it works fine, except it has a red LED that’s on unless it’s sending an X10 command.
That’d be OK, except that I’ve spent the last few months associating a red LED at that spot on the dresser with a jammed X10 controller.
Not to mention that red LEDs are sooo 20th Century…
Four screws hold the baseplate in place; it takes a bit of prying to release the stiffening collars around the front screws and remove the baseplate. One more screw holds the circuit board in place.
Surprisingly, they used the same metal-dome switch plates!
Anyhow, with the board out, it’s easy to unsolder the red LED and replace it with a green one from my bag o’ mixed LEDs. It’s not quite the same shape and doesn’t have a big shoulder to keep it in place, but it’s good enough for me.
New green LED
The heat of soldering melted the thermoplastic glue that held the original LED in place. The new one isn’t quite as firmly bonded, but I don’t intend to jam a paperclip into the hole after shoving the LED out of the way.
In the process of pulling together a talk for the Trinity Robotics contest, I rediscovered my spreadsheet of spectral response data. It’s been compiled over the years from myriad sources (utterly without attribution), suffers from gaps & interpolations, and undoubtedly emits a fairly high bogon flux density.
To wit: trust nothing!
Spectral Response
Horizontal scale has UV on the left and IR on the right.
Vertical scale is linear, roughly corresponding to power in or out at a particular wavelength. It should, of course, be logarithmic, but that’s in the nature of fine tuning, as no source data has that much resolution.
Things to note:
Human eyes are tuned to see chlorophyll and not much else. That must’a been important at one time or another…
The nice bumps on the left are visible LEDS: violet blue green orange yellow red. The IR LED over on the right stands alone.
There’s no overlap between human vision and IR LED emission, but you can still see a dim red glow if you stick it right up against your eye.
Don’t do that with a UV LED, though.
White LEDs are just blue LEDs with fancy phosphors. That’s why the spectrum looks like a blue LED with a bump in the yellow-orange neighborhood. They’re not well-balanced at all.
High-pressure sodium lights kill IR sensors stone cold dead. Look at that peak, perfectly aligned with the photodiode response. If you could see in IR, you’d go blind. That’s what made the Trinity contest so challenging for so many years; they recently switched to fluorescent lighting and the complaints dropped dramatically.
Those emission spikes are why camera color correction doesn’t work well: if there’s no energy in a region, you can’t crank the gain up enough to make a difference.
An 87C Wratten filter is great for excluding visible light, but the overlap with that HP-Na spike tells you it won’t do jack with that sort of lighting.
Fluorescent tubes produce intense spikes at 436 and 546, corresponding to mercury emission lines. Their phosphor emissions extend far into the IR, too, but the data I have doesn’t include that region.
Ditto for metal halide bulbs.
To produce the graph, apply this bash script to the CSV file…
#!/bin/sh
export GDFONTPATH="/usr/share/fonts/TTF/"
gnuplot << EOF
#set term x11
set term png font "arialbd.ttf" 24 size 1200,800
set output "Spectral Response.png"
set title "Spectral Response"
#set key 28,-0.75 Left reverse samplen 2 noautotitles
#set key right noautotitles
unset key
unset mouse
set bmargin 4
set grid xtics ytics
set xlabel "Wavelength - nm"
set format x "%3.0f"
#set xrange [0:9]
#set xtics 0,10
#set mxtics 4
set ytics nomirror autofreq
set ylabel "Relative Response"
#set format y "%3.0f"
set yrange [0:1.1]
#set y2label "Panel Power - mW"
#set format y2 "%3.0f"
#set y2range [0:800]
#set y2tics 200
set datafile separator ","
set label 1 "Eye" at 550,1.05 font "arialbd,14" center
set label 2 "White" at 480,1.05 font "arialbd,14" center
set label 3 "IR" at 940,1.05 font "arialbd,14" center
set label 4 "87C Filter" at 1050,0.85 font "arialbd,14" center
set label 5 "Photodiode" at 825,1.05 font "arialbd,14" center
set label 6 "Tungsten" at 1050,1.00 font "arialbd,14" center
set label 7 "Fluor" at 410,0.42 font "arialbd,14" right
set label 8 "Halide" at 680,0.41 font "arialbd,14" left
set label 9 "HP-Na" at 805,0.60 font "arialbd,14" right
set label 10 "Violet" at 410,1.05 font "arialbd,14" center
set label 11 "Red" at 635,1.05 font "arialbd,14" center
plot "Spectral Response Curves.csv" \
using 1:2 with lines lt -1 lw 3 title "Eye", \
"Spectral Response Curves.csv" \
using 1:3 with lines lt 1 lw 2 lc rgb "light-blue" title "White" , \
"Spectral Response Curves.csv" \
using 1:4 with lines lt 1 lw 2 lc rgb "dark-violet" title "Violet" , \
"Spectral Response Curves.csv" \
using 1:5 with lines lt 1 lw 2 lc rgb "blue" title "Blue" , \
"Spectral Response Curves.csv" \
using 1:6 with lines lt 1 lw 2 lc rgb "green" title "Green" , \
"Spectral Response Curves.csv" \
using 1:7 with lines lt 1 lw 2 lc rgb "gold" title "Yellow" , \
"Spectral Response Curves.csv" \
using 1:8 with lines lt 1 lw 2 lc rgb "orange" title "Orange" , \
"Spectral Response Curves.csv" \
using 1:9 with lines lt 1 lw 2 lc rgb "red" title "Red", \
"Spectral Response Curves.csv" \
using 1:10 with lines lt 1 lw 2 lc rgb "magenta" title "IR" , \
"Spectral Response Curves.csv" \
using 1:11 with lines lt 1 lw 2 lc rgb "dark-red" title "Photodiode" , \
"Spectral Response Curves.csv" \
using 1:12 with lines lt 1 lw 2 lc rgb "dark-gray" title "87C Filter" , \
"Spectral Response Curves.csv" \
using 1:13 with lines lt 1 lw 2 lc rgb "dark-yellow" title "Tungsten" , \
"Spectral Response Curves.csv" \
using 1:14 with lines lt 1 lw 2 lc rgb "orange-red" title "HP-Na" , \
"Spectral Response Curves.csv" \
using 1:15 with lines lt 1 lw 2 lc rgb "brown" title "Halide" , \
"Spectral Response Curves.csv" \
using 1:18 with lines lt 1 lw 2 lc rgb "midnight-blue" title "Fluorescent"
EOF
And the data in CSV format because WordPress doesn’t allow spreadsheets…