The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Category: Electronics Workbench

Electrical & Electronic gadgets

  • Sony 64 GB MicroSDXC Card: Speed Reduction Thereof

    So one of my Genuine Sony 64 GB MicroSDXC cards stopped working in my Genuine Sony HDR-AS30V action camera, failing to record video after starting normally.

    For example:

    The RCVER status display doesn’t appear anywhere in the manual, but also occurs when the camera must rebuild its metadata indexes. Or something like that. Anyhow, it’s obviously unhappy about what just happened in the course of recording.

    After several weeks of having Sony ignore my emailed requests (no “email agent” never contacted me after the initial “we’re on it” autoreplies) and after several days of being blown off by their phone menu (800-222-7669 and 800-282-2848 lead to the same tree, after which 5 – 1 – 6 disconnects after one ringy dingy), I got another number by picking a reasonable (to me) option and bulldozing the pleasant voice off-script: 877-440-3453. It turns out that if you’re at the Digital Camera node in the Sony tech support tree, the helpful agent cannot find the model number of the SR-64UY MicroSDXC card in their database, even though I’m looking at the Sony Support web page describing it.

    Anyhow, 877-440-3453 (or the “direct” 956-795-4660) produces a pleasant voice that directs me to their Media Services center in Texas and, after clicking on the Ordering Information menu item (isn’t that obvious?), produces a PDF that one fills in and sends with the failed media for their perusal.

    Being that type of guy, I sent in a somewhat more extensive description than would fit in the tiny space on the form:

    The problem with this SR-64UY MicroSDXC card (serial N73WAXOP) is that it cannot record video at the highest resolution produced by my SONY HDR-AS30V action camera: 1920x1080p @ 60 fps.

    The formatted data capacity seems unchanged at 59 GB, so the problem is not a loss of capacity.

    The camera starts recording and will continue for a few seconds or a few minutes, at which point it stops recording, flashes WAIT, then RCVER (“recover”), then returns to its idle mode. The recorded video is correct up to the failure.

    I have reformatted the card in the camera, which does not correct the problem.

    An identical SR-64UY MicroSDXC card (serial N73WA9JM), bought shortly afterward and not used, continues to operate correctly, so the problem isn’t the fault of the camera.

    The failing card (XOP) has recorded less than 100 sessions since August, while the working card (9JM) has been sitting, unused, on my desk. Recording sessions generally run 45 to 90 minutes and the AS30V produces a 4 GB every 22 minutes, so each session involves 2 to 6 large video files, plus the same number of thumbnails. I transfer the files to a PC and delete them from the card after each session. The card has therefore recorded only 1000 GB of video before failing.

    The XOP card can record video at 1920×1080 @ 30 fps and all lower resolutions. The camera requires a Class 4 speed, which means that the SR-64UY card no longer meets its Class 10 / U 1 speed rating.

    Please replace this card with one that meets its speed rating.

    Thank you…

    The replacement card just arrived, so a speed reduction is a warranty failure.

    I’ll test this one by plugging it into the high-amperage Micro-USB charger for the Kindle, aiming it at a clock, and letting it run until it’s either filled the card with excruciatingly boring high-data-rate video or crashed & burned in the attempt.

  • Kenmore 158: Pulse Drive First Light

    This worked right out of the box:

    Pulse Drive - Tek 1 A-div
    Pulse Drive – Tek 1 A-div

    That’s roughly two half-cycles of the full-wave rectified AC with about 100 ms between pulses.

    The upper trace comes from the differential amp, the lower trace from the Tek current probe at 1 A/div. The overall amp transconductance looks to be 1.3 A/V = 1.3 A/div, minus that small DC offset, so the ADC range is actually 6.5 A. That might be a bit too much, all things considered, but not worth changing right now.

    Notice that the upper trace drops like a rock at the end of the pulse, while the Tek probe shows a gradual decrease. The missing current goes ’round and ’round through the flyback diode across the motor:

    Pulse Drive - Flyback Diode - Tek 1 A-div
    Pulse Drive – Flyback Diode – Tek 1 A-div

    The Tek probe in the lower trace goes on the green wire connecting the diode to the bridge rectifier, oriented to match the diode polarity (+ current flows from motor to blue wire on collector to brown wire on rectifier to motor):

    Motor flyback diode - installed
    Motor flyback diode – installed

    That nasty little spike in the middle of the diff amp output occurs when the collector voltage drops to zero and the ET227 shuts off, but the motor current continues to flow due to the winding inductance. In the first scope shot, the Tek probe doesn’t show any spikes in the motor current, because there aren’t any.

    Compare that with the voltage and current of the motor running from an isolation transformer:

    Rectified AC - 200 mA div - 875 RPM
    Rectified AC – 200 mA div – 875 RPM

    As the pulse repetition frequency increases, the motor speed goes up and the current goes down:

    Pulse Drive - Fast - Tek 1 A-div
    Pulse Drive – Fast – Tek 1 A-div

    The dropouts between successive pairs of half-cycles show where the firmware shuts off the current and goes once around the main loop.

    The Arduino code making that happen:

    PedalPosition = ReadAI(PIN_PEDAL);
    if (PedalPosition > 190) {
    	BaseDAC.setVoltage(Cvt_mA_to_DAC(3000),false);					// give it a solid pulse
    	MotorDrive.ADCvalue = SampleCurrent(PIN_CURRENT_SENSE);			// measure current = half cycle delay
    	MotorDrive.ActualCurrent = Cvt_ADC_to_mA(MotorDrive.ADCvalue);
    	printf("%5u, %5u, %5u, %5u, %5u, %5u, %5u\r\n",
    		MotorSensor.RPM,ShaftSensor.RPM,MotorDrive.State,
    		MotorDrive.DACvalue,MotorDrive.ADCvalue,MotorDrive.ActualCurrent,PedalPosition);
    	delay(3);														// finish rest of half cycle
    	BaseDAC.setVoltage(0,false);									//  ... then turn it off
    
    	delay(map(PedalPosition,190,870,100,0));						// pedal controls off time
    }
    

    The map() function flips the sense of the analog voltage coming from the pedal, so that more pedal pressure = higher voltage = lower delay. The pedal voltage produces ADC values from about 185 through 860, with a pleasant sigmoid shape that gives good speed control.

    The maximum motor speed isn’t quite high enough for bobbin winding, but I like what I see so far!

  • Improved Pilot InstaBoost Jumpstarter Clamps

    The Sienna now spends all its time sitting outdoors in an apartment parking lot and gets even less driving (hence, battery-charging) time than we used to give it. Fortunately, Santa being my kind of guy, our Larval Engineer received a Pilot InstaBoost jumpstarter, which is basically a 10 A·h / 40 W·h lithium battery with husky plug & socket connectors, a pair of 10 AWG wires, and big alligator clamps. The package claims a 400 A peak discharge rate, but the tiny inscription on the back of the case reports 200 A; either of those seems mmmm somewhat optimistic to me.

    The customer reviews suggest that the plastic battery clamp handles feature a crappy hinge joint which disintegrates under moderate stress on a cold winter night, firing the spring into the nearest snowbank and rendering the clamp completely useless. The joint consists of a plastic post on each side of the inner handle that protrudes into a hole in the outer handle:

    Battery Clamp - original joint
    Battery Clamp – original joint

    I assigned her some Mandatory Quality Shop Time to improve the joint. She found some brass tubing that fit the existing hole and cut two pieces to length:

    Battery Clamp - cutting brass tube
    Battery Clamp – cutting brass tube

    A 1 inch stainless screw was just barely long enough (that’s Loctite Red in the nut), but the end result certainly looks durable enough:

    Battery Clamp - improved joint
    Battery Clamp – improved joint

    It’s along the same lines as the improvement I applied to my old Park Tool MTB-7 Rescue Tool.

    Apart from that, the clamps look pretty good. There’s even a husky braid between the two jaw pads, ensuring at least one reasonably low resistance joint to the battery post:

    Battery Clamp - jaw strap
    Battery Clamp – jaw strap

    With a bit of luck, we’ll never know how well it works as a jumpstarter. She can use the USB port to keep her phone charged, which may provide enough motivation to keep the thing topped up and ready for use…

    [Update: two days after this post went live, someone found it by searching for:

    how to repair clamps pilot instaboost 400

    You have been warned!]

  • Kenmore 158: Recalibrated Optoisolator Drive

    Because the motor will draw more current during pulsed operation, the ET227 needs more base drive. The existing circuit topped out around 2.5 A, so I reduced the current sampling resistor by a bit:

    Optoisolator Driver
    Optoisolator Driver

    If you care about the exact current, you’d use a 1% resistor, but if you care about the current, you’ll be doing closed-loop feedback to compensate for the transistor gain variations. Compared to those, the resistor doesn’t matter.

    Running the MCP4725 DAC through its range produces a nice graph:

    Current Calibrate - DAC - 270k Hall 2.7k opto
    Current Calibrate – DAC – 270k Hall 2.7k opto

    The X axis comes from the Tek Hall-effect current probe, so the numbers don’t depend on the ferrite toroid & differential amp calibration. They do, of course, require a bit of eyeballometric calibration to extract the flat top from the waveform, as shown by this old waveform:

    Motor current - ADC sample timing
    Motor current – ADC sample timing

    Ya gotta start somewhere.

    The linear fit to those dots gives the DAC value required to produce the observed current, at least for these particular transistors at whatever temperature they’re at in a rather chilly Basement Laboratory.

    Of course, the observed current tops out at 1.2 A: the motor’s peak current during normal linear operation. The line looks so pretty that I’ll assume it continues upward to the maximum 12-bit DAC value of 4095 and the corresponding ET227 current. Working backwards, that will be 3.1 A and should suffice for all but the highest peaks at high line voltage.

  • Kenmore 158: Recalibrated Hall Effect Sensor Amp

    Reducing the differential amp gain fits a higher current into the Arduino’s fixed 5 V ADC range:

    Hall Sensor Differential Amp
    Hall Sensor Differential Amp

    Those are 1% resistors, chosen from the heap for being pretty close to what I needed. Given that it’s an LM324 op amp, we’re not talking instrumentation grade results here.

    The same calibration run that produced the DAC plot gave these values:

    Current Calibrate - ADC - 270k Hall 2.7k opto
    Current Calibrate – ADC – 270k Hall 2.7k opto

    The linear fit gives the actual current, as seen by the Tek probe, for a given ADC reading.

    The trimpot controls the offset voltage at zero current; working backwards, ADC = 0 corresponds to 140 mV, a bit higher than the actual 90 mV. Close enough, at least for a linear fit to eyeballed data, sez I.

    Working forward, the maximum ADC value of 1023 corresponds to 4 A, which should suffice.

  • Kenmore 158: Motor Flyback Diode

    Although small power diodes make fine flyback diodes for relays, the motor can draw several amps during the startup pulse, which will be a bit out of spec for the usual 1N4007-class diodes. Pressing an old 5 A / 200 V stud diode into service produces the ungainly black-and-blue lump eating the end of the green wire:

    Motor flyback diode - installed
    Motor flyback diode – installed

    For completeness, here’s the entire AC line interface part of the schematic:

    AC Power Interface
    AC Power Interface

    The diode’s 200 V limit should suffice, even for cold starts at high line peaks, but, when you build this with new parts, get something rated a bit higher, OK?

    The four NTC power thermistors lie just to the right of the relay, before the bridge rectifier.

  • Kenmore 158: Pulse Drive

    A Circuit Cellar reader sent me a lengthy note describing his approach to slow-motion AC motor drives, designed for an already ancient truck mounted radar antenna back in 1972-ish, that prompted me to try it his way.

    The general idea is to pulse the motor at full current for half a power line cycle with an SCR (rather than a triac) at a variable pulse repetition rate: the high current pulse ensures that the motor will start turning and the variable repetition frequency determines the average speed. As he puts it, the motor will give off a distinct tick at very low speeds and the maximum speed will depend on how the motor reacts to half-wave drive.

    Note that this is not the chopped-current approach to speed control: the SCR always begins conducting at the first positive-going 0 V crossing after the command and continues until the motor current drops to zero. There are no sharp edges generating high-pitched acoustic noise and EMI: silence is golden.

    The existing speed control circuitry limits the peak current and assumes that the motor trundles along more-or-less steadily. That won’t be the case when it’s coasting between discontinuous current pulses.

    When I first looked at running the motor on DC, these measurements showed the expected relationship:

    Kenmore Model 158 AC Motor on DC - Loaded and Unloaded RPM vs Voltage
    Kenmore Model 158 AC Motor on DC – Loaded and Unloaded RPM vs Voltage

    Later on, plotting RPM against current (50 mA/step starting at 550 mA):

    Motor RPM vs Current Steps - Accelerating
    Motor RPM vs Current Steps – Accelerating

    Eyeballometrically, the slowest useful speed will be 2 stitch/s = 120 shaft RPM = 1300 motor RPM. At that speed, under minimal load, the motor runs on about 20 V and draws 550 mA. At that current, the 40 Ω winding drops 22 V, which we’ll define as “about 20 V” for this discussion, so the back EMF amounts to pretty nearly zilch.

    That’s what you’d expect for the fraction of a second while the motor comes up to full speed, but in this case it never reaches full speed, so the motor current during the pulses will be limited only by the winding resistance. At the 200 V peak I’ve been using for the high-line condition, that’s about 5 A peak, although I’d expect 4 A to be more typical.

    So, in order to make this work:

    • the optocoupler driving the base needs more current
    • the differential amp from the Hall effect sensor needs less gain

    Given the ease with which I’ve pushed the hulking ET227 transistor out of its SOA, the motor definitely needs a flyback diode to direct the winding current away from the collector as the transistor shut off at the end of the pulse. Because it’s running from full-wave rectified AC, the winding current never drops to zero: there will definitely be enough current to wreck the transistor.

    The firmware needs reworking to produce discrete pulses at a regular pace, rather than slowly adjusting the current over time, but that’s a simple matter of software…