COVID-19: Elephant Sighting

As far as this engineer can tell, here’s about all you need to know about the COVID-19 pandemic:

Total Deaths = Total Cases recorded two weeks earlier

This also works forward in time: given the total number of cases “today”, I (and you) can predict the total number of deaths in two weeks, give or take a few days.

Run the numbers for Italy, because it has a relatively long timeline and trustworthy data:

  • 2020-03-01: 1694 cases → 2020-03-15: 1809 deaths
  • 2020-03-02: 2036 cases → 2020-03-16: 2158 deaths
  • 2020-03-03: 2502 cases → 2020-03-17: 2503 deaths

As the numbers become difficult to comprehend, the time difference slows to 16 days instead of 14:

  • 2020-03-06: 4636 cases → 2020-03-22: 4825 deaths
  • 2020-03-07: 5883 cases → 2020-03-23: 6077 deaths

On 2020-03-23, Italy had 63,927 confirmed cases. Prediction: Easter will not be celebrated in the usual manner.

Consider the data for the US, also in March 2020:

  • 2020-03-05: 175 cases → 2020-03-19: 174 deaths
  • 2020-03-06: 252 cases → 2020-03-20: 229 deaths
  • 2020-03-07: 353 cases → 2020-03-21: 292 deaths

Pop quiz: Given that the US has 32,761 total cases as of today (2020-03-22), estimate the total deaths in two weeks.

New York State will have similar statistics, although it’s too soon to draw conclusions from today’s 20,875 confirmed cases.

In addition to the Wikipedia articles linked above, you may find these sites useful:

Exhaustive tracking and mapping from Johns Hopkins (the GUID gets to reach the JHU data):

Comprehensive COVID-19 tracking, with logarithmic graph scales:

More raw data:

CDC National cases, with a per-day graph down the page:

New York State COVID-19 info:

Perhaps more useful for me than you, but the Dutchess County information:

The current recommendation: remain home unless and until you develop COVID-19 symptoms requiring urgent medical attention. Should that happen to me, I fully expect there will be no medical attention to be found and, certainly, all available medical equipment will be oversubscribed.

Speaking strictly as an Olde Farte looking at the data, the future looks downright grim.

On the upside, it’s amazing how little an order to remain home changed my daily routine: so many projects, so little time.

Memo to Self: Wash your hands!

CNC 3018XL: Arduino + Protoneer CNC

If the truth be known, I wanted to do this as soon as I discovered the CAMtool V3.3 board hardwired the DRV8825 PCBs in 1:32 microstep mode:

CNC 3018XL - Protoneer atop Arduino - installed
CNC 3018XL – Protoneer atop Arduino – installed

The Protoneer CNC board has jumpers, so selecting 1:8 microstep mode is no big deal.

As before, I epoxied another row of pins along the I/O header for Makerbot-style endstops:

Protoneer endstop power mod
Protoneer endstop power mod

I’ll probably regret not adding pins along the entire row, but, unlike the MPCNC, the CNC 3018XL won’t ever have hard limit switches. I plugged the Run-Hold switch LEDs into an unused +5 V pin and moved on.

I modified the DRV8825 driver PCBs for fast decay mode:

DRV8825 PCB - Fast Decay Mode wire
DRV8825 PCB – Fast Decay Mode wire

Then set the current to a bit over 1 A:

3018XL - Protoneer setup - Z 1 mm
3018XL – Protoneer setup – Z 1 mm

Six hours later I hauled the once-again-functional CNC 3018XL to my presentation for the ACM:

Spirograph - intricate sample plot - detail
Spirograph – intricate sample plot – detail

Memo to Self: Time to get another Prontoneer board …

CAMtool V3.3 vs. The Fat Fingers of Death

As is my custom, the day before showtime I talked my way through a final full-up dress rehearsal, with the HP 7475A plotter and the CNC 3018XL running their demo plots. As if to justify my attention to detail, the 3018 refused to home, with its X axis motor grinding in a manner suggesting something had gone terribly wrong with its driver.

OK, I can fix that™.

Turn off the power, verify the leadscrew turns smoothly by hand, check all the connections & connectors, then pull the DRV8825 PCB to see if anything looks obviously wrong. It didn’t, so I carefully re-plugged the driver and moved the whole affair to the Electronics Workbench for further study.

I turned on the scope and Tek current probes, then turned on the 3018 power supplies, whereupon a great cloud of Magic Smoke emerged from the CAMtool board and filled the Basement Laboratory with the acrid smell of Electrical Death.

It seems I carefully and meticulously re-plugged the DRV8825 PCB into its socket exactly one pin too high, which, among other Bad Things, connects the +24 V motor power supply to the driver GND pin.

Obviously, this did not end well:

CAMtool V3.3 - blown stepper fuse
CAMtool V3.3 – blown stepper fuse

The fuse, put under considerable stress, vented smoke & debris in all directions across the board; note the jets above the white motor connector. Surprisingly, the 1 kΩ resistor just below it is in fine shape, as is the rather blackened electrolytic cap.

The fuse measures the same 150-ish mΩ as the fuses in the other two axes, but I doubt it’s actually a fuse any more.

Astonishingly, the Arduino clone on the board worked fine, so I could extract the GRBL configuration.

Memo to Self: Never plug things in with your head upside down!

Crock Pot Base Screw

While washing our ancient electric crock pot (“slow cooker”), I wondered how corroded the inside of the steel shell had become. A simple nut secured the base plate and unscrewed easily enough, whereupon what I thought was a stud vanished inside the shell.

The shell wasn’t rusty enough to worry about, but the stud turned out to be a crudely chopped-off thumbscrew on a springy rod pulling the base toward the ceramic pot:

Crock Pot Base - OEM thumbscrew
Crock Pot Base – OEM thumbscrew

Evidently, they pulled the thumbscrew through the base, tightened the nut, then cut off the thumbscrew flush with the nut.

I desperately wanted to drill a hole in a new thumbscrew and repeat the process, but I no longer have a small drawer full of assorted thumbscrews. So I must either lengthen the existing thread just enough to complete the mission or build a screw from scratch.

The thumbscrew is threaded 10-24, I have a bunch of 10-32 threaded inserts, so pretend they have the same thread diameter and tap one end to 10-24:

Crock Pot Base - tapping insert
Crock Pot Base – tapping insert

Jam the new threads on the thumbscrew and jam a 10-32 setscrew into the un-wrecked end:

Crock Pot Base - thumbscrew extender
Crock Pot Base – thumbscrew extender

You can see the surface rust in there, right?

Make a Delrin bushing to fit around the insert poking through the base:

Crock Pot Base - drilling Delrin button
Crock Pot Base – drilling Delrin button

Reassemble the internal bits with permanent Loctite, top with a nyloc nut, and it’s only a little taller than the original nut:

Crock Pot Base - assembled
Crock Pot Base – assembled

The setscrew let me hold the new “stud” in place while torquing the nut, plus it looks spiffy.

Memo to Self: If it ain’t broke, don’t look inside. Hah!

Surprisingly, both Amazon and eBay lack useful thumbscrew assortments …

Walnut Husk Fly Damage

A recent Amazon purchase of three 3 lb bags of walnuts from a known-good seller arrived with many damaged nuts:

Damaged walnuts - detail
Damaged walnuts – detail

The damage matches what I read about Walnut Husk Fly infestations: shriveled kernels and terrible taste.

In round numbers, I found 8 oz of damaged nuts in each 3 lb bag, enough to ruin the entire batch. The seller immediately refunded the purchase price for all three bags, so there’s that.

It’s definitely not one of the counterfeit products plaguing Amazon, but I wonder why that lot didn’t fail incoming inspection.

I’m loathe to buy more walnuts for a while, though.

Memo to Self: Always inspect incoming purchases, even from reputable sellers!

DRV8825 Stepper Driver: Forcing Fast Decay Mode in a (Likely) Counterfeit Chip

The DRV8825 stepper driver chip defaults to mixed decay mode, which TI defines thusly:

Mixed decay mode begins as fast decay, but at a fixed period of time (75% of the PWM cycle) switches to slow decay mode for the remainder of the fixed PWM period. This occurs only if the current through the winding is decreasing (per the indexer step table); if the current is increasing, then slow decay is used.

The 24 V supply on the CNC 3018-Pro provides too much voltage for the motors, because slow decay mode can’t handle those rising slopes:

3018 XY - Mixed Fast - 24V - 10mm-min 12V 1A-div
3018 XY – Mixed Fast – 24V – 10mm-min 12V 1A-div

Note that “rising” means the current increases with either polarity from 0 A at the midline. The DRV8825 uses a MOSFET H-bridge to drive winding current in either direction from the +24 V motor supply voltage.

Both traces show motor winding current at 1 A/div, with the XY axes creeping along at 10 mm/min (thus, 7.1 mm/min each). The upper trace is the X axis, with a stock DRV8825 module in mixed decay mode. The lower trace is the Y axis, with its DRV8825 hacked into fast decay mode.

The basic problem, about which more later, comes from the current rising too fast during each PWM cycle:

V = L di/dt
di/dt = 24 V / 3 mH = 8 kA/s

The first 1:32 microstep away from 0 calls for 5% of max current = 50 mA at a 1 A peak. The DRV8825 datasheet says the PWM typically runs at 30 kHz = 33 µs/cycle, during which the current will change by 270 mA:

267 mA = 8 kA/s × 33.3 µs

Some preliminary measurements suggest these (probably counterfeit) DRV8825 chips actually run at 16 kHz = 66 µs/cycle:

3018 X - ripple 1 step - 18V - A0 B-90 500mA-div
3018 X – ripple 1 step – 18V – A0 B-90 500mA-div

During those cycles the current can increase by more than 500 mA. The first scope picture shows an abrupt increase to maybe 700 mA, so, yeah, that’s about right.

Having the wrong current in one winding means the motor isn’t positioned correctly during those microsteps. The 3018-Pro runs at (an absurd) 1600 µstep/mm, so being off by even a full step isn’t big deal in terms of positioning.

The real problem comes from running nearly 1 A through both windings. Those little motors run really hot: they’re dissipating twice what they should be.

Anyhow, the pin layout shows the DRV8825 DECAY mode selection on pin 19:

DRV8825 pinout
DRV8825 pinout

Which sits on an inconveniently skinny little PCB pad, fifth from the left on the bottom:

DRV8825 PCB - open Decay pin
DRV8825 PCB – open Decay pin

Memo to Self: Don’t make that mistake when you lay out a PCB. Always put a little pad or via on a disconnected pin, so as to have a hand-soldering target big enough to work with.

The objective is to pull the pin high:

DRV8825 DECAY pin settings
DRV8825 DECAY pin settings

Pin 15, in the lower left corner, provides the output of a 3.3 V linear regulator, with its PCB trace connected to the left side of the ceramic cap:

DRV8825 PCB - Decay pin wired low
DRV8825 PCB – Decay pin wired low

On the scale of TSSOP packages, even 30 AWG Wire-Wrap wire looks like a bus bar!

Those are two different PCBs. The crappy TI logos, not easily visible in those low-res pix, on both ICs suggest they’re by-now-typical counterfeits, so seeing a factor-of-two difference in PWM frequency isn’t surprising.

Exhibit Hand-Out Cards: QR Version

I’ve finally had it beaten into my head: any public exhibition requires paper handouts, if only for younger folks who are too shy to ask questions. Paper may seem obsolete, but it serves as a physical reminder long after the sensory overload of a busy event fades away.

Hence, I made up cards describing my exhibits at the HV Open Mad Science Fair, each sporting a QR code aimed at far more background information than anybody should care about:

Mad Science Fair - handout cards
Mad Science Fair – handout cards

The QR codes come from one-liners:

qrencode -s 5 -d 300 -o dso150.png

So, go ahead, shoot ’em with your phone:

  • Blog search QR code: astable
  • Blog search QR code: bowl-of-fire
  • Blog search QR code: dso150
  • Blog search QR code: halogen
  • Blog search QR code: hp7475a
  • Blog search QR code: tubes

Memo to Self: put the cards in the Big Box o’ Stuff the night before.