Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
The transplanted protection PCB goes between the tabs, with a nickel strip snippet because I didn’t cut the old strip in the right place:
Fly6 – battery replacement – PCB
The PCB goes under a manila paper layer, the ends get similar caps, and the whole affair receives an obligatory Kapton tape wrap:
Fly6 – battery replacement – endcap
Reassembly is in reverse order. I now know the Fly6 will reset / start up when the battery connector snaps into place, but, because it emits identical battery-charge beeps when it starts and shuts off, there’s no way to tell what state it’s in. I don’t see any good way to install the ribbon cable from the LED PCB before plugging in the battery, so just blindly press-and-hold the power button to shut it off.
After an overnight charge, it makes videos of my desk just fine and will, I expect, do the same on the bike.
Now that I’ve taken the thing apart, I should open it up and tinker with the (glued-down) camera focus adjustment to discover whether:
It’s slightly nearsighted and, thus, correctable or
GCMC includes single-stroke fonts derived from Hershey fonts, so I added a legend to the Spirograph Shakedown generator:
MPCNC – GCMC Text – 3000 mm-min
Obviously, plotting 2.5 mm tall characters at 3000 mm/min = 50 mm/s isn’t a Good Idea on a less-than-absolutely-rigid CNC machine.
Slowing down to 250 mm/min = 4.2 mm/s produces much better results:
MPCNC – GCMC Text – 250 mm-min
A closer look, albeit with less-than-crisp focus:
MPCNC – GCMC Text – 250 mm-min – detail
This isn’t a conclusive test, but it reminds me that Speed Kills.
The green plotter pen started life with a standard 0.3 mm felt nib, but it’s worn somewhat wider over the intervening years decades. Those 2.5 mm characters would look better coming from a narrow ceramic pen, which would require a pen change before doing the legend; using 4 mm characters would produce better results.
The line spacing is 110% of the font X height, which obviously isn’t quite enough. Something on the order of 150% should look better.
This GCMC code (including those mods) produces the legend:
Both bCNC and GCMC include Spirograph generators with more-or-less fixed patterns and sizes, because the code serves to illustrate the software’s capabilities:
MPCNC – bCNC Spirograph patternsGGMC Cycloids test patterns
The perspective makes a 29×19 inch sheet of paper (made from three B sheets and one A sheet) look not much larger than the 17×11 inch B size sheets in the first two pictures. IRL, it’s a billboard!
The code enumerates the possible gear tooth counts in a pair of vectors from which you select the desired stator and rotor gears using integer subscripts. Because I eventually scale the results to fit the plot area, there’s no need to keep track of actual gear pitch diameters.
Similarly, the pen offset from the center of the rotor gear is a pure number, which you can think of as the ratio of the offset to the rotor diameter. It can have either sign and may exceed unity, as needed, either of which would be difficult with a physical gear.
Figuring the number of rotor turns required to complete the pattern requires reducing the gear ratio to a fraction with no common factors, so I wrote a Greatest Common Divisor function using Euclid’s algorithm adapted for GCMC’s bitwise tests and shifts.
With those values in hand, a loop iterates around the entire pattern to produce a list of XY coordinates in normalized space. Because the formula doesn’t have the weird properties of the Superformula I used with the HP 7475 plotter, I think there’s no need to prune the list to eliminate tiny moves.
Scaling the entire plot requires keeping track of the actual extents along both axes, which happens in the loop generating the normalized coordinates. A pair of gears producing an odd number of lobes can have different extents in the positive and negative directions, particularly with only a few lobes (3, 5, 7 …):
Spirograph – 3 lobes – QnD Simulator
So I accumulate all four, then scale based on the absolute maximum; I added scalar min() and max() functions.
Converting the list of scaled points into G-Code turns out to be a one-liner using GCMC’s tracepath() library function. Previewing the results in a Web-based simulator helps weed out the duds.
The code needs cleanup, in particular to let a Bash script set various parameters, but it’s a good start.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The MPCNC instructions recommend running it for a while, taking it apart, then putting it back together, so all the parts have a chance to relax and get used to working together. To that end, I figured doing some full platform plots would run the rollers over the entire length of the rails:
MPCNC – Full-platform Spirograph – first pass
I taped three B-size sheets together, with an A-size sheet in the far right corner, into a 29×19 inch sheet to put borders around the MPCNC’s 28×18 inch work area. The tape is on the top surface to prevent embarrassing accidents where the pen snags on an edge, at the cost of blurry lines where the ink doesn’t stick quite right.
The far left corner of the paper washes up on the tool length probe’s base, but the pen position turns out to be so repeatable (it should be!) you can swap them with gleeful abandon and get good results:
MPCNC – Full-platform Spirograph – multicolor
The pen rumbles along at 12000 mm/min = 200 mm/s = 7.8 inch/s with no hint of wobblulation. Most likely, those big loops aren’t particularly challenging, although watching the big central assembly whip around a tight curve can be startling.
I modified the pen holder for 3-point support, as the recess for the pen flange isn’t quite deep enough:
MPCNC – Pen holder – 3 point grip
Good old masking tape holds the pens securely enough for now.
The glass plate I’d been using for B-size plots doesn’t cover the full area, but I’d set the Z axis limit switch to trip just before the bottom of the rails whacked into the glass. Extending the travel by 5 mm required a snippet of black tape:
MPCNC – Z axis switch – table limit
The patterns come from a scratch-built Spirograph generator, because I wanted to review what’s new in GCMC. More on the software tomorrow …
GCMC includes cycloids.gcmc, a test program producing a fixed set of hypotrochoids and epitrochoids, more commonly known as Spirograph patterns:
GGMC Cycloids test patterns
I’m using them to get familiar with bCNC’s Workspace Coordinate System settings and to exercise the MPCNC hardware; ya gotta plot before you can cut.
Most came out fine, but some showed distinct wobbles:
MPCNC – Cycloid wobble – star
Tight curves and higher speeds produce more wobbles:
MPCNC – Cycloid wobble – loops
You’d probably never feed a wood router over 6000 mm/min = 240 inch/min, so this isn’t as much of a problem as it might appear. Also, I expect a few pounds of router will have fewer wobbulations than a weightless pen hung on a thin plastic mount:
You can’t see the nib inside the cap, but you get the idea.
Flattening the top and adding a snippet of masking tape produces a better outcome:
MPCNC – Reshaped Tool Probe switch
I aligned the flat section so it’s parallel to the platform when the switch activates.
Stipulated: plotter pens aren’t a good test for tool length probing, because they have a locating flange to ensure a consistent position in the pen holder and a rigidly controlled flange-to-tip length:
HP 7475A Plotter Pen Body – in holder
What’s going on here involves configuring and testing bCNC’s overall tool change process: not using cutting tools preserves both sanity and hardware!