Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
Well, that’s not what I expected: the “new” Wasabi batteries perform worse than the three year old Canon OEM battery and no better than the crap batteries from eBay.
Just to be sure, I ran two tests on each of the three new batteries. Unlike the NP-BX1 batteries, these deliver a lower voltage than the Canon OEM battery and have a much lower capacity. The camera cuts off at 3.5 V, so the new batteries deliver 2/3 the run time of the old OEM battery
Sheesh…
Tech support at Blue Nook (I am not making that up) says they’ll send me a couple of batteries from their next shipment to see if something’s wrong with this batch; all the batteries have date code BNF27.
The Sony HDR-AS30V helmet camera can record about 5.5 h of 1920×1080 60 fps video on a 64 GB Micro-SD card, but a single NP-BX1 battery provides a 1.5 h run time, tops. Having had a good experience with the previous Wasabi batteries, I picked up three more and ran all six through the battery tester:
Sony NP-BX1 – OEM Wasabi – 2014-10-03
The red curve is the Sony OEM battery, the two lower curves are the Wasabi batteries from January, and the upper three come from the new Wasabi batteries. All in all, they look good to me.
These curves aren’t directly comparable to the older ones, as I’ve bumped the discharge to 500 mA to better match the actual camera load. These worked out to about two hours apiece, so the camera must draw around 600 or 700 mA.
The Wasabi batteries deliver a higher voltage than the Sony OEM battery over nearly all of the discharge curve. The older ones delivered almost exactly the same run time, which leads me to believe the camera cuts off at 2.8 V, too, with a boost power supply extracting all the energy under the curve.
I suppose a 1.5 h run time makes sense for downhill skiiing, but it’s painfully short for bike trips.
A quick-and-dirty bracket (made from a leftover strip in the pile of chassis clips) affixed an IR reflective sensor (based on the ubiquitous TCRT5000 module) to the sewing machine motor:
TCRT5000 sensor on motor
That’s scribbling black Sharpie around the retroreflective tape for the laser tachometer, which worked just about as poorly as you’d expect. Retroreflective tape, by definition, reflects the light directly back at the LED, but in this case you want it bounced to the photosensor.
An IR view shows the geometry and highlights the LED:
TCRT5000 sensor – IR view
The TCRT5000 datasheet suggests that the peak operating distance is 2.5 mm, roughly attained by tinkering with the bracket. The datasheet graph shows that anything between 1 and 5 mm should be just fine:
IR Reflective Sensor module – TCRT5000 – response vs distance
Apply stainless steel tape around half the circumference
Burnish flat
Which looks pretty good:
Kenmore 158 motor pulley – black-silver
The stainless tape butts up against the setscrew:
Kenmore 158 motor pulley – black-silver at setscrew
Adjusting the sensitivity midway between the point where the output is low (OFF) over the black and high (ON) over the tape seems reasonable.
Running at the slowest possible speed produces this pulse train:
Motor sense – min speed
The motor at 19 rev/s = 1140 RPM corresponds to about 2 rev/s of the sewing machine shaft= 2 stitch/s. Slower than, that, the pedal won’t go in simple open-loop mode.
The setscrew causes those “glitches” on the rising edge. They look like this at a faster sweep:
Motor sense – min speed – setscrew
At maximum speed, the setscrew doesn’t show up:
Motor sense – max speed
The motor at 174 rev/s = 10440 RPM would do 1000 stitch/s, but that’s just crazy talk: it runs at that speed with the handwheel clutch disengaged and the motor driving only the bobbin winder. I was holding the machine down with the shaft engaged and all the gimcrackery flailing around during that shot.
The sensor board may have an internal glitch filter, but it’s hard to say: the eBay description has broken links to the circuit documentation.
I could grind the setscrew flush with the pulley OD and cover it with tape, but that seems unreasonable. Fixing the glitch in firmware shouldn’t be too difficult: ignore a rising edge that occurs less than, say, 1/4 of the previous period following the previous edge.
Perhaps buffing half the pulley’s circumference to a reasonable shine (minus the bluing) would eliminate the need for the stainless steel tape.
Iterating the bluing operation / scrubbing with steel wool should produce a darker black, although two passes yields a nice flat black.
The relay at the top connects the AC hot line to the rest of the circuitry, with a feeble red LED to show when it’s live:
AC Power Interface
The driver lives on the Low Voltage Interface board:
LV Power Interface – AC Relay driver
The GX270’s front-panel hard drive LED now serves to indicate when the AC power goes live.
I’d originally intended to turn the AC on when the Arduino gains control, but after seeing those pictures, I think it’ll remain disabled unless there’s a call for motor motion.
The interlock switch closes when the case opens, grounding the transistor base and disconnecting the AC power.
Of course, you can cheat by simply unplugging the switch, so it’s not failsafe. If you want failsafe, you need a normally closed switch in series with the collector; that’s not what Dell used as a chassis intrusion switch. That’s my story and I’m sticking with it.
The 10 µF caps scale the output to visible blinkiness. Their polarity may seem backwards, but the red trace in the simulation shows that the net voltage is positive in that direction for nearly the entire cycle. They see only two forward biased junctions in the other direction, so they shouldn’t blow up.
I built it with resistors from the SqWr junk box parts cabinet that were close to the nominal values.
Connecting the transistor base / cap charging resistors to the power supply, rather than the LEDs, gets rid of the tiny current when the LEDs should be off.
The cap-and-pulse-generator dingus on the bottom kickstarts the simulation; it doesn’t have any physical significance.
Memo to Self: Build one with a pair of ET227 transistors and some 100 W tungsten bulbs…
Although I plan to servo the motor speed to the pedal position, a quick open-loop test seems in order. The motor requires nigh onto half an amp before it can spin the sewing machine shaft, so this chunk of Arduino code scales-and-offsets ten bits of pedal position voltage into twelve bits of DAC output that produce a corresponding current limit for the motor winding:
Putting that in the Arduino’s main loop and holding the pedal down produces this pleasant result:
Current Sense Amp vs Tek – 200 mA-div
The current sense amp output in the top trace is scaled at 525 mA/V = 525 mA/div and the bottom trace is from the Tek current probe at 200 mA/div. Fiddling with the scope’s gain & offset exactly overlays the two traces and they remain overlaid through the full pedal travel, so the ferrite toroid isn’t saturating and the output remains nicely linear.
The flat tops in that picture show the ET227 transistor limiting the motor current to 600 mA, exactly the way it should.
Of course, the LM324 has a GBW = 1 MHz and, with a gain of three, a bandwidth of barely 300 kHz, so there’s a distinct lack of fuzz on that trace compared to the Tek probe’s 10 MHz bandwidth.
It’s easy to hold the sewing machine at a constant speed with a constant load, but touching the handwheel stalls the motor at a constant pedal position. Similarly, releasing the handwheel causes a runaway, unless I let up on the pedal fairly quickly.
Setting the Tek probe to 500 mA/div and triggering on a somewhat higher current while stomping on the pedal and grabbing the sewing machine’s handwheel shows the current increasing with the motor under heavier load:
Model 158 – Current sense vs Tek 500 mA-div
The current limit reaches just under 2 A, over on the right side, for both traces.
So the hardware works pretty much the way it should.