Auvon TENS/EMS: Modulation Waveforms

These scope screen shots use the same test setup as the pulse measurements:

Auvon AS8016 - test setup
Auvon AS8016 – test setup

The sweep speeds run much slower to capture the complete envelope, which can be up to a minute long, with enough left over to show the end of the previous sequence and the start of the next. The Moire patterns come from the scope sampling rate, the display resolution, or changes in the pulse repetition frequency. Blame Siglent for not making the scope’s digital data accessible through the network; screen shots are the best I can do.

The descriptive headings for each screen shot come from The Auvon AS8016 Fine Manual, a PDF version of which you can get from Auvon’s support staff by asking nicely. I identify the modes as Mxx, rather than their Pxx, for reasons that made sense at the time.

Patterns 1 through 16 correspond to the TENS (Transcutaneous Electrical Nerve Stimulation) label and are intended for pain relief / suppression; they should not make your muscles twitch.

P1 – Continuous comfortable tingling.

Continuous 200 µs pulse at 87 Hz

Auvon M01 Pulse
Auvon M01 Pulse

P2 – Comfortable tingling and pulsing sensation.

Continuous 100 µs pulse at 48 Hz

Auvon M02 Mod
Auvon M02 Mod

P3 – Comfortable rhythmic tingling.

Blocks of 300 ms on/200 ms off, with 150 µs pulse at 48 Hz

Auvon M03 Mod
Auvon M03 Mod

P4 – Continuous comfortable tingling.

Continuous 100 µs pulse at 48 Hz

Auvon M04 Pulse
Auvon M04 Pulse

P5 – Comfortable and slow tingling firstly, then the frequency is significantly increased, and it becomes a noticeable tingling sensation.

Continuous 250 µs pulses, stepping from 10 to 102 Hz and back down

Auvon M05 Pulse
Auvon M05 Pulse

P6 – Low frequency beating with a slight tingling sensation.

Continuous 250 µs pulses at 2 Hz

Auvon M06 Mod
Auvon M06 Mod

P7 – Low frequency slight beating firstly and then continuous comfortable tingling.

Bursts of 150 µs pulses for 3 s separated by isolated 200 µs pulses

Auvon M07 Mod
Auvon M07 Mod

P8 – Low frequency slight beating firstly and then comfortable pulsing sensation.

Bursts of 150 µs pulses for 3 s separated by isolated 200 µs pulses. Seems identical to P7, although the bursts may be slightly different.

Auvon M08 Mod
Auvon M08 Mod

P9 – Comfortable tingling from shallow to deep with 3-4 seconds pause.

Auvon M09 Mod
Auvon M09 Mod

P10 – Comfortable pulsing sensation from shallow to deep with 3-4 seconds pause.

Auvon M10 Mod
Auvon M10 Mod

P11 – Variable comfortable tingling, slight beating and scrapeing [sic] sensation.

Auvon M11 Mod
Auvon M11 Mod

P12 – Comfortable slight tingling from shallow to deep with 3-4 seconds pause.

Auvon M12 Mod
Auvon M12 Mod

P13 – Comfortable tingling and pulsing sensation from shallow to more deep with 3-4 seconds pause.

Auvon M13 Mod
Auvon M13 Mod

P14 – Rhythmic continuous beating.

Much higher voltage pulses!

Auvon M14 Mod
Auvon M14 Mod

P15 – Rhythmic scrapeing [sic] sensation.

Auvon M15 Mod
Auvon M15 Mod

P16 – Quick slight beating first, then comfortable tingling.

Auvon M16 Mod
Auvon M16 Mod

Patterns 17 through 24 sport the EMS (Electrical Muscle Stimulation) label and should make your muscles twitch in various ways.

P17 – Low frequency slight beating.

Continuous 250 µs pulse with idle time at 4.8 Hz.

Auvon M17 Pulse
Auvon M17 Pulse

P18 – Low frequency beating.

Continuous 250 µs pulse at 6.8 Hz.

Auvon M18 Pulse
Auvon M18 Pulse

P19 – Beating from low frequency to a little high frequency.

Auvon M19 Mod
Auvon M19 Mod

P20 – Muscle twitches at a very low frequency. It feels like a tapping massage.

Continuous 250 µs pulse at 13.5 Hz.

Auvon M20 Pulse
Auvon M20 Pulse

P21 – This program activates the muscle in a short tingling cycle. It is smoother than P1/P2.

Auvon M21 Mod
Auvon M21 Mod

P22 – This program gently warms up the muscles prior to exercise; it feels like a rhythmic massage. Increase intensity until you get a strong but comfortable muscle movement.

Auvon M22 Mod
Auvon M22 Mod

P23 – This program uses a pulse frequency appropriate to fast twitching muscle fibers. It improves their anaerobic capacity and is used for improving maximum muscle strength.

Auvon M23 Mod
Auvon M23 Mod

P24 – This program gently warms up the muscles prior to exercise; it feels like a rhythmic beating and comfortable tingling. Increase intensity until you get a strong but comfortable muscle movement.

Auvon M24 Mod
Auvon M24 Mod

Despite the icons on the unit’s display, the manual suggests you can apply pretty nearly any pattern to any muscle, but now we all know what’s coming out of those jacks …

Auvon TENS/EMS: Pulse Waveforms

The Auvon AS8016 TENS/EMS unit produces bipolar pulses with no net DC offset, so the UI controls the negative and positive amplitudes equally. The range has 20 steps, with the screen shots here set to 10 units. The actual output voltage depends on the mode, with some modes producing a peak voltage well above the others at the same UI setting.

It’s worth noting the effect comes from current passed through skin and muscle, rather than voltage applied to it. The test setup uses a 500 Ω resistance to make the current vary linearly with the voltage (which is definitely not the case with human bodies): a 20 V pulse passes 40 mA through the resistor:

Auvon AS8016 - test setup
Auvon AS8016 – test setup

The simplest bipolar pulses always start with the negative phase. The shortest pulse width is 100 µs:

Auvon M02 Pulse
Auvon M02 Pulse

And 150 µs:

Auvon M03 Pulse
Auvon M03 Pulse

And 200 µs:

Auvon M01 Pulse
Auvon M01 Pulse

Up to 250 µs:

Auvon M06 Pulse
Auvon M06 Pulse

Some modes have a short zero-voltage pause between the negative and positive phases:

Auvon M17 Pulse
Auvon M17 Pulse

The pause can be the same duration as the negative and positive phases:

Auvon M14 Pulse
Auvon M14 Pulse

Some modes have pulses starting with the positive phase, others switch the leading phase during the course of the output modulation.

My casual survey of the consumer-grade field suggests the pulse waveform has less to do with well-tested effects and more to do with marketing or straight-up woo, but I admit to being a cynic.

Auvon TENS/EMS: Lead Identification

One of Santa’s myriad helpers recently handed me an Auvon AS8016 TENS/EMS Unit. The manual is, shall we say, light on tech details, but some casual searching turns up the general specs for medical-grade units found in physical therapy offices, plus adjacent Rule 34 compliant (i.e. NSFW) offerings.

Being that type of guy, I had to look at the electricity. Somewhat to my surprise, the reference load turns out to be a pure 500 Ω resistance, which is easy enough to cobble up from a pair of 1 kΩ resistors:

Auvon AS8016 - test setup
Auvon AS8016 – test setup

The alligator clips crunched around the 2 mm pins are not appropriate for even a brutal e-stim session; they’re from the Small Drawer of Test Connectors, to which they shall return unblooded.

The red Sharpie highlight around one pin identifies the center conductor of the two-wire cable, as determined by simple continuity testing:

Auvon AS8016 - marked cable
Auvon AS8016 – marked cable

The 22 mil = 0.5 mm wire (from the Little Tin o’ Snippets) fits snugly into the coaxial connector’s center contact; one could probably slip a rounded shim between the shell and the outer contact, perhaps to debug an intermittent connection. Note that the connectors on both ends of the wires are not standardized among various TENS/EMS manufacturers.

The AS8016 has two pairs of connectors:

Auvon AS8016 - wire jacks
Auvon AS8016 – wire jacks

The A1 and A2 jacks are wired in parallel, as are the B1 and B2 jacks, with the A pair galvanically isolated from the B pair. You can set the modes / programs / pulse parameters differently for A and B. Although the manual doesn’t mention it, using the A and B channels (perhaps with the same settings) prevents a galvanic connection (and thus any current) from flowing between the A and B electrodes; this seems important for electrode pairs placed on opposite sides of your body to prevent current through your heart.

The pulses have no DC component, so the actual wire polarity doesn’t really matter, but a foolish consistency definitely simplifies going back to re-measure things. Subsequent waveforms show the voltage with respect to the unmarked (outer) conductor.

Suppressing the DC bias prevents ionic migration between / under the electrode pads. The classic RC-equivalent output circuit uses a series capacitor, resulting in an asymmetric pulse waveform with zero net DC voltage:

Capacitor Coupled Pulse
Capacitor Coupled Pulse

There’s no DC path between the center and outer conductors, but in this day and age the circuitry could be a completely isolated bipolar FET driver:

Auvon M01 Pulse
Auvon M01 Pulse

With all that sorted out, I can make measurements!

Christmas Bonus

An email arrived yesterday:

Subject: [redacted] review blog invitation about bluetooth programmer

Message: Hi dear,

Thanks for taking time to read this email.

I am Colleen from [redacted] brand, we sell two way radio on Amazon. I learned that you have wrote two way radio review blog before and I think your blog was written well.

Now we have a product named bluetooth programmer that need to be reviewed. […] We would like to invite you to write a review blog about it.

Your can earn $2 from each product sold! We promise it. Just put the link we provided you in your blog and the Amazon backstage will count the data. And we will pay you $2 for per product sold by your link through PayPal on the 30th of every month. (Please provide your PayPal account)

If you are willing to help us write a blog, please tell us if you have a radio and your address we will send you the product for free to review.

You can view more detailed information through this link:

[redacted]

Perhaps this “review” caught their eye:

Baofeng UV-5RE radio - overview
Baofeng UV-5RE radio – overview

Or maybe it was my opinion of the Baofeng intermod problem?

Most likely, it’s just the result of an ordinary web search.

You might think everybody would know about Amazon’s crackdown on out-of-band review kickback scams, but either word hasn’t gotten around or the rewards still exceed the penalties. I think the latter applies, particularly when the offender (or its parent company) can spin up another randomly named Amazon seller with no loss of continuity.

“Earning” two bucks on a few purchases during the course of a year won’t move my Quality of Life needle, so I reported them to Amazon and that might be that.

For future reference, the chat with Amazon’s Customer Support rep produced a deep-ish link to their otherwise un-discoverable “Report Something Suspicious” page; the randomly named nodeld is a nice touch.

Speaking of randomly named sellers, it’s highly likely any Brand Name you remember from the Good Old Days has been disconnected from the tool / hardware / service you remember. Perusing a snapshot of the who-owns-who tool landscape as of a few years ago may be edifying: I didn’t know Fluke and Tektronix now have the same corporate parent.

Enjoy unwrapping your presents and playing with your toys …

Bafang Battery Charge Port: Battery Reset Tool

A lithium battery management system can (and should!) disable the battery output to prevent damage from overcurrent or undervoltage, after which it must be reset. The inadvertent charge port short may have damaged the BMS PCB, but did not shut down the battery’s motor output, which means the BMS will not should not require resetting. However, because all this will happen remotely, it pays to be prepared.

A description of how to reset the BMS in a similar battery involves poking bare hot wires into the battery terminals, which IMO is akin to Tickling The Dragon’s Tail. The alert reader will note that the “Shark” battery shown on that page has its terminal polarity exactly opposite of the “Ultra Slim Shark” battery on our bikes. Given the energies involved, eliminating any possible errors makes plenty of sense.

The battery connector looks like this:

Bafang battery - Ultra-Slim Shark connector
Bafang battery – Ultra-Slim Shark connector

For this battery, the positive terminal is on the right, as shown by the molded legend and verified by measurement.

A doodle with various dimensions, most of which are pretty close:

Bafang battery - connector dimension doodle
Bafang battery – connector dimension doodle

Further doodling produced a BMS reset adapter keyed to fit the battery connector in only one way:

Bafang battery - adapter doodle
Bafang battery – adapter doodle

Which turned into the rectangular lump at the top of the tool kit, along with the various shell drills and suchlike discussed earlier:

Bafang battery tools
Bafang battery tools

Looking into the solid model from the battery connector shows the notches and projections that prevent it from making incorrect contact:

Battery Reset Adapter - show front
Battery Reset Adapter – show front

The pin dimensions on the right, along with a mysterious doodle that must have meant something at the time :

Bafang battery - adapter pin doodle
Bafang battery – adapter pin doodle

The pins emerged from 3/16 inch brass rod, with pockets for the soldered wires:

Bafang battery - reset tool - pins
Bafang battery – reset tool – pins

The wires go into a coaxial breakout connector that’s hot-melt glued into the recess. The coaxial connectors are rated for 12 V and intended for CCTV cameras, LED strings, and suchlike, but I think they’re good for momentary use at 48 V with minimal current.

I printed the block with the battery connector end on top for the best dimensional accuracy and the other end of the pin holes held in place by a single layer of filament bridging the rectangular opening:

Bafang battery - reset tool - hole support layer
Bafang battery – reset tool – hole support layer

I made a hollow punch to cut the bridge filaments:

Bafang battery - reset tool - pin hole punch
Bafang battery – reset tool – pin hole punch

The holes extend along the rectangular cutout for the coaxial connector, so pressing the punch against the notch lines it up neatly with the hole:

Bafang battery - reset tool - hole punching
Bafang battery – reset tool – hole punching

Whereupon a sharp rap with a hammer clears the hole:

Bafang battery - reset tool - hole cleared
Bafang battery – reset tool – hole cleared

A dollop of urethane adhesive followed the pins into their holes to lock them in place. I plugged the block and pins into the battery to align the pins as the adhesive cured, with the wire ends carefully taped apart.

After curing: unplug the adapter, screw wires into coaxial connector, slobber hot melt glue into the recess, squish into place, align, dribble more glue into all the gaps and over the screw terminals, then declare victory.

It may never be needed, but that’s fine with me.

[Update: A few more doodles with better dimensions and fewer malfeatures appeared from the back of the bench.]

Bafang battery - adapter better doodle
Bafang battery – adapter better doodle
Bafang battery - adapter dimension doodle
Bafang battery – adapter dimension doodle
Bafang battery - connector key doodle
Bafang battery – connector key doodle

The OpenSCAD source code as a GitHub Gist:

// Adapter to reset Bafang battery management system
// Ed Nisley KE4ZNU Dec 2021
Layout = "Block"; // [Show, Build, Pins, Block, CoaxAdapter, Key]
Gap = 4.0;
/* [Hidden] */
ThreadThick = 0.25;
ThreadWidth = 0.40;
HoleWindage = 0.2;
Protrusion = 0.1; // make holes end cleanly
inch = 25.4;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(d=(FixDia + HoleWindage),h=Height,$fn=Sides);
}
ID = 0;
OD = 1;
LENGTH = 2;
//----------------------
// Dimensions
WallThick = 3.0;
PinSize = [3.5,4.75,9.0 + WallThick]; // LENGTH = exposed + wall
PinFerrule = [3.5,4.75,10.0]; // larger section for soldering
PinOC = 18.0;
PinOffset = [-9.0,0,9.0];
Keybase = 4.0; // key bottom plate thickness
KeyBlockSize = [15.0,50.0,15.0];
CoaxSize = [35.0,15.0,11.0];
CoaxGlue = [0,2*2,1];
// without key X section
BlockSize = [CoaxSize.x + WallThick + PinFerrule[LENGTH],KeyBlockSize.y,KeyBlockSize.z + WallThick];
echo(BlockSize=BlockSize);
//----------------------
// Battery connection pin
// Used to carve out space for real brass pin
// Long enough to slide ferrule through block
module Pins() {
for (j=[-1,1])
translate(PinOffset + [0,j*PinOC/2,0])
rotate([0,90,0])
rotate(180/6) {
PolyCyl(PinSize[ID],BlockSize.x,6);
translate([0,0,PinSize[LENGTH]])
PolyCyl(PinSize[OD],BlockSize.x,6);
}
}
//----------------------
// Coaxial socket adapter nest
// X=0 at left end of block, Z=0 at bottom
// includes glue, extends rightward to ensure clearance
module CoaxAdapter() {
translate([0,0,CoaxSize.z])
cube(CoaxSize + CoaxGlue + [CoaxSize.x,0,CoaxSize.z],center=true);
}
//----------------------
// Block without key
// X=0 at connector face, Z=0 at bottom of block
module BareBlock() {
difference() {
translate([BlockSize.x/2,0,BlockSize.z/2])
cube(BlockSize,center=true);
Pins();
translate([BlockSize.x,0,Keybase])
CoaxAdapter();
}
translate([BlockSize.x - CoaxSize.x,0,BlockSize.z/2]) // bridging layer
cube([ThreadThick,BlockSize.y,BlockSize.z],center=true);
}
//----------------------
// Complete block
module Block() {
BareBlock();
BatteryKey();
}
//----------------------
// Battery connector key shape
// Chock full of magic sizes
// Polygons start at upper left corner
module BatteryKey() {
// base outline
kb = [[-15,KeyBlockSize.y/2],[0,KeyBlockSize.y/2],[0,-KeyBlockSize.y/2],[-15,-KeyBlockSize.y/2]];
// flange cutout
kf = [[kb[0].x,20],[-3,20],[-3,15],[-8,15],[-8,-15],[-3,-15],[-3,-20],[kb[0].x,-20]];
// sidewalls
kw = [[-15,KeyBlockSize.y/2],[0,KeyBlockSize.y/2],[0,20],kf[0]];
linear_extrude(height=Keybase)
difference() {
polygon(kb);
polygon(kf);
}
linear_extrude(height=KeyBlockSize.z)
polygon(kw);
mirror([0,1,0])
linear_extrude(height=KeyBlockSize.z)
polygon(kw);
translate([0,0,KeyBlockSize.z])
linear_extrude(height=BlockSize.z - KeyBlockSize.z)
polygon(kb);
}
//----------------------
// Build it
if (Layout == "Block") {
BareBlock();
}
if (Layout == "Pins") {
Pins();
}
if (Layout == "Key") {
BatteryKey();
}
if (Layout == "CoaxAdapter") {
CoaxAdapter();
}
if (Layout == "Show") {
Block();
color("Brown",0.3)
Pins();
}
if (Layout == "Build") {
rotate([0,90,0])
translate([-BlockSize.x,0,0])
Block();
}

Bafang Battery Charge Port: Shell Drills

Continuing to mull the problem of removing a brass nugget fused to the center pin of the Bafang battery’s charge port without the risk of causing further damage suggested a shell drill fitting over the pin and guided by an insulating bushing:

Bafang battery - shell drill test fit
Bafang battery – shell drill test fit

That’s our undamaged battery, now sporting labels inspired by my friend’s mishap.

The first pass was a 3 mm (actually, 1/8 inch) brass tube rammed into a printed handle descending from the Sherline Tommy Bar handles:

Bafang battery - brass shell grinder - grit load
Bafang battery – brass shell grinder – grit load

The black stuff is coarse grinding compound held on by a dot of oil, with a pair of notches filed into the tip for a little griptivity.

This worked surprisingly well, at least if you weren’t in much of a hurry, although the grinding compound also erodes the drill:

Bafang battery - brass shell grinder - tip wear
Bafang battery – brass shell grinder – tip wear

I hadn’t thought this through enough to realize there’s no good way to convince the grit to not work its way up into the acetal bushing and jam the rod. While this might be good for final polishing, it’s not going to work well against the nugget, so it’s time for a harder drill with real teeth.

Drilling a 2.3 mm hole into the end of some non-hardened 3 mm (for real!) ground rod provided enough clearance for the charge port pin and a pair of cross-drilled holes laid the groundwork for a shell drill:

Bafang battery - steel shell drill - raw holes
Bafang battery – steel shell drill – raw holes

I filed the end off down to leave about 3/4 of the holes, then applied a Swiss pattern file with a safe edge to cut some relief behind the tips:

Bafang battery - shell drill detail
Bafang battery – shell drill detail

It would be better to harden the end of the rod, but this is a single-use tool.

Ram the shank into another printed handle:

Bafang battery - shell drill - guide
Bafang battery – shell drill – guide

The new drill is long enough to reach past the wounded end of the pin and short enough to not bottom out inside the connector.

A few minutes of twirling and re-filing the tiny teeth improved the cut enough to produce a convincing result in the simulated connector:

Bafang battery - shell drill - test results
Bafang battery – shell drill – test results

I’m reasonably sure the ID of the acetal bushing won’t fit over the nugget, but that’s easy enough to drill out while leaving an insulating shell.

The charge port’s center pin probably can’t withstand too much torque, so the drill must take small cuts.

Vacuuming out the chips while cutting will be critical, as you don’t want an accumulation of conductive chaff down in the hole!

Bafang Battery Charge Port: Mechanical Simulator

Rather than poke things into the undamaged charge port of our battery, I built a quick-and-dirty mechanical duplicate:

Bafang battery - charge port simulator
Bafang battery – charge port simulator

The “center pin” is a snippet of what’s almost certainly 5/64 inch brass tube measuring Close Enough™ to 2.1 mm, with a few millimeters of 3/32 inch tube soldered on the end to simulate the nugget.

The aluminum rod has a 5.5 mm hole matching the coaxial jack’s diameter and depth, with a smaller through hole for the “pin” and a dab of Loctite bushing adhesive.

Then I turned the end of a 3/8 inch acetal rod down to a 5.5 mm bushing that completely fills the jack:

Bafang battery - guide bushing - dummy jack
Bafang battery – guide bushing – dummy jack

It has a 3 mm hole down the middle to aim homebrew shell drills directly at the pin, while preventing a short to the side contact.

The first test looked encouraging:

Bafang battery - shell drill - test results
Bafang battery – shell drill – test results

The nugget in the damaged jack is definitely larger than my soldered brass tube, but this was in the nature of exploratory tinkering while mulling the problem.