Posts Tagged M2

Makergear M2: Bed Heating Failure

From a discussion on the Makergear 3D printer forums

A Makergear M2 user with an older printer (dating back to 2012) had a bed heater failure:

all of a sudden I noticed that my bed temps had started dropping

With a 12 V heater, the most likely problem is at the power input connector on the RAMBo board. The wires from the 12 V power brick generally work loose inside their screw terminals, whereupon the absurdly high current heats up the weak joint and destroys the connector. You can find some hideous pictures somewhere on the forum.

Next most likely is a broken wire between the RAMBo and the heater, caused by repetitive stress injury from all that back-and-forth motion. You may be able to find this with a ohmmeter and some wiggle-jiggle action on the cable, but if even one strand remains intact, the resistance will remain very low at the meter’s trivial test current. Pulling the wires out of the braided sheath will be more definitive; the insulation will be wrecked at the break.

Least likely seems to be the connector where the cable from the heater terminates on the RAMBo.

Start by inspecting the connectors; you may find some seriously charred plastic.

Depending on what you find, you may have a zero-dollar repair.

It’s like you’re psychic.

Suffice it to say you’re not the first person to see charred plastic … [grin]

My solution was to move the high-current switching off the RAMBo board to a solid state relay, with the heater power from a separate 40 VDC supply:

M2 - SSR for Improved HBP
M2 – SSR for Improved HBP


Leave a comment

3D Printing: Native G-Code?

From a discussion on the Makergear 3D printer forums

From a new M2 user disillusioned by the learning curve:

Is there a 3D CAD software out there that natively creates .g or .gcode files It’s not just a 3D printing thing.

CAD (computer-aided design) software produces a solid model, which a CAM (computer-aided manufacturing) program then converts into the specific dialect(s) of G-Code required by whatever machine tool(s) will create the widget. You can create the solid model using many different CAD programs and convert it into G-Code with many different CAM programs, each with its own collection of features and warts.

3D printing calls the CAM program a “slicer”, but it’s a different name for the process of converting geometry into machine instructions.

Even in subtractive manufacturing using lathes and mills, you absolutely must understand how the G-Code interacts with the production hardware.

I unfortunately don’t want to learn all the nuances and parameters of the slic3r software

Then you must use a service like Shapeways: you create the model, send it to them, and get a neat widget a few days later. Their laser-sintered powder process provides much better built-in support than you’ll ever get from consumer-grade fused-filament printers, you can select from a wide variety of materials (including metals!), and, as long as you follow their straightforward design guidelines, you’ll never know how the magic happens.

If you intend to create more than a trivial number of widgets, though, the cost in both cycle time and money will begin gnawing at you. In round numbers, I’ve been designing and printing one widget a week for the last seven years, so adding a printer to my basement shop and learning how to use it has been a major win.



Tour Easy: SRAM Grip Bushing

After installing the X.0 shifter, I sprang for new grips:

Tour Easy - SRAM X.0 grip shifter - new grip with bushing
Tour Easy – SRAM X.0 grip shifter – new grip with bushing

They’re 90 mm long, which turned out to be 4 mm shorter than the grips that came with the bike; a close look showed the original ones were cut down from SRAM’s 110 mm grips.

Well, I can fix that:

Tour Easy - SRAM grip bushings
Tour Easy – SRAM grip bushings

Ordinarily, you’d just move the brake levers by 4 mm and declare victory. In this case, moving the right lever would be easy, but the left one is firmly glued in place by the radio’s PTT button:

PTT Button - rounded cap
PTT Button – rounded cap

Believe me, solid modeling is easy compared to redoing that!

The OpenSCAD source code doesn’t amount to much:

// SRAM grip shifter bushings
// Ed Nisley KE4ZNU March 2019

Protrusion = 0.1;           // make holes end cleanly

// Dimensions

ID = 0;
OD = 1;

Bushing = [22.2 + 0.5,31.0,4.0];        // ID = E-Z slip fit

NumSides = 2*3*4;

// Build it!

difference() {
    cylinder(d=Bushing[ID],h=Bushing[LENGTH] + 2*Protrusion,$fn=NumSides);

I loves me my 3D printer …


1 Comment

3D Printing: Slow Hot End Temperature Oscillations

From a discussion on the Makergear 3D printer forums

A Makergear M2 user encountered a temperature control problem:

Problem: Temperature fluctuation on the hotend +/- 7 degrees C when set in the controls. A little more extreme when printing (~+/- 15).

Slow cycling like that indicates the hot end’s PID loop coefficients don’t match reality.

Preheat the extruder to maybe 200 °C, run a PID calibration (M303), store the results in EEPROM (M500), and that should do the trick.

PID coefficients depend on the hot end’s physical condition, so you should re-do the calibration whenever anything changes on the hot end. Even removing & reinstalling the same hardware will change the contact points between, say, the thermistor and its hole in the hot end.

A dab of good heatsink compound on the thermistor should stabilize its contact with the hot end, although that will change the reported temperature and PID coefficients. Probably doesn’t make any real difference, but I felt better:

M2 - Thermistor with heatsink compound
M2 – Thermistor with heatsink compound

Which prompted a question from a user who regularly swaps entire hot ends to change nozzle diameters:

run a pid cal when I set my starting height each time I switch?

Assuming you swap entire hot ends, including their thermistor & heater, then you can calibrate each one, write down its PID values, manually set ’em with M301 when you install it, then use M500 to store ’em in EEPROM.

Because you bend those fragile thermistor wires every time you swap hot ends, keep a couple thermistors on hand. You’ll need ’em.


Leave a comment

3D Printing: Peculiar Octopi Problem

From a discussion on the Makergear 3D printer forums

A Makergear M2 user had a strange problem:

Octopi claims the serial connection went down.

LED2 was blinking red, rapidly, and LED3 was shining with a steadfast red light.

LED2 shows the extruder heater PID loop is running and LED3 shows the extruder fan is on:

You just never noticed the blinkiness before … [grin]

Because the extruder heater is still running, the firmware hasn’t detected a (possibly bogus) thermal runaway or any other fatal problem. It’s just waiting for the next line of G-Code, but Octopi isn’t sending it.

Casually searching the GitHub issues, there’s a report of intermittent serial problems from last year:

Which points to the FAQ: … eption/228

Look at the Octopi Terminal log to see if the conversation just before the failure matches those descriptions.

Assuming you haven’t updated the printer firmware or anything on the Octopi, then something physical has gone wrong.

First and least obviously, the Pi’s MicroSD card has probably started to fail: they’re not particularly durable when used as a mass storage device and “the last couple of years” is more than you should expect. Download a fresh Octopi image, put it on a shiny-new, good-quality card (*), and see if the situation improves.

Then I’d suspect the Pi’s power supply, even though you’re using the “official rpi power supply”. All of those things contain the cheapest possible electrolytic capacitors, running right on the edge of madness, and produce bizarre errors when they begin to go bad. Get a good-quality wall wart (**), ideally with a UL rating, and see if the situation improves.

While you’re buying stuff, get a good-quality USB cable (***) to replace the one that (assuming you’re like me) you’ve been saving for the last decade Just In Case™. Use the shortest cable possible, because longer does not equal better.

After that, the problems get truly weird. Apply some tweakage and report back.

(*) This is harder to do than you might think. You may safely assume all cards available on eBay and all “Sold by X, Fulfilled by Amazon” cards will be counterfeit crap. I’ve been using Samsung EVO / EVO+ cards (direct from Samsung) with reasonable success: … sk-memory/ … ification/ … 22y+zq29p/

The card in question eventually failed, so having a backup card ready to go was a Good Idea™.

(**) Top-dollar may not bring top quality, but Canakit has a good rep and costs ten bucks through Prime.

(***) Amazon Basics cables seems well-regarded and work well for what I’ve needed.

, ,

Leave a comment

Juki TL-2010Q Needle LEDs: Simple Cable Clip

A straightforward cable clip:

TL-2010Q Needled COB LED - cable clip
TL-2010Q Needled COB LED – cable clip

It looks better than the previous hack bent from a snippet of PET clamshell:

Juki TL-2010Q Needle LEDs - cable clip
Juki TL-2010Q Needle LEDs – cable clip

Ream out the holes with suitable drills, clean out the slot using Tiny Bandsaw™, and it’s all good.

In retrospect, the slot isn’t worth the effort, because it doesn’t open wide enough to admit the cable and doesn’t provide any clamping force; a simple block with two holes would do as well. If the heatsink didn’t already have a 3 mm screw in play, I’d use an adhesive-backed clip from the early Kenmore LEDs.

The OpenSCAD source code isn’t much to look at:

// Cable clip
// Reoriented into build position, because we only need one

ClipWall = 3*ThreadWidth;
Clip = [15.0,10.0,CableOD + 2*ClipWall];

module CableClip(CableOD = 2.0) {

ClipSides = 4*3;
ClipRadius = Clip.y/2;
ScrewOD = 3.0;
ClipOC = Clip.x - ClipRadius - CableOD/2 - ClipWall;

        difference() {
          union() {
              cube([Clip.x - ClipRadius,Clip.y,Clip.z],center=true);
          translate([0,0,-(Clip.z/2 + Protrusion)])
              PolyCyl(ScrewOD,Clip.z + 2*Protrusion,8);
          translate([ClipOC - Clip.x/2,0,0])


Leave a comment

SJCAM M20 Camera: Tour Easy Seat Mount

The general idea is to replace this:

M20 in waterproof case - Tour Easy seat
M20 in waterproof case – Tour Easy seat

With this:

SJCAM M20 Mount - Tour Easy side view
SJCAM M20 Mount – Tour Easy side view

Thereby solving two problems:

  • Pitifully small battery capacity
  • Wobbly camera support

The battery is an Anker PowerCore 13000 Power Bank plugged into the M20’s USB port. Given that SJCAM’s 1 A·h batteries barely lasted for a typical hour of riding, the 13 A·h PowerCore will definitely outlast my legs. The four blue dots just ahead of the strap around the battery show it’s fully charged and the blue light glowing through the case around the M20 indicates it’s turned on.

The solid model has four parts:

SJCAM M20 Mount - Fit layout
SJCAM M20 Mount – Fit layout

Which, as always, incorporates improvements based on the actual hardware on the bike.

A strap-and-buckle belt harvested from a defunct water pack holds the battery into the cradle and the cradle onto the rack, with a fuzzy velcro strip stuck to the bottom to prevent sliding:

SJCAM M20 Mount - Tour Easy rear view
SJCAM M20 Mount – Tour Easy rear view

The shell around the camera is basically a box minus the camera:

SJCAM M20 Mount - Show - shell
SJCAM M20 Mount – Show – shell

The shell builds as three separate slabs, with the center section having cutouts ahead of the camera’s projections to let it slide into place:

SJCAM M20 Mount - Show - shell sections
SJCAM M20 Mount – Show – shell sections

The new shell version is 30.5 mm thick, so a 40 mm screw will stick out maybe 5 mm beyond the nylon locknut. I trust the screws will get lost in the visual noise of the bike.

A peg sticking out behind the USB jack anchors the cable in place:

SJCAM M20 Mount - Show - shell sections - USB side
SJCAM M20 Mount – Show – shell sections – USB side

The front slab and center top have curves matching the M20 case:

SJCAM M20 Mount - Show - shell sections - button side
SJCAM M20 Mount – Show – shell sections – button side

The camera model has a tidy presentation option:

SJCAM M20 Mount - Show - M20 body
SJCAM M20 Mount – Show – M20 body

And an ugly option to knock the protruberances out of the shell:

SJCAM M20 Mount - Show - M20 body - knockouts
SJCAM M20 Mount – Show – M20 body – knockouts

The square-ish post on the base fits into an angled socket in the clamp around the seat rail:

SJCAM M20 Mount - Show - clamp
SJCAM M20 Mount – Show – clamp

The numbers correspond to the “Look Angle” of the socket pointing the camera toward overtaking traffic. The -20° in the first clamp shows a bit too much rack:

SJCAM M20 Mount - first ride - traffic - 2019-02-06
SJCAM M20 Mount – first ride – traffic – 2019-02-06

It may not matter, though, as sometimes you want to remember what’s on the right:

SJCAM M20 Mount - first ride - 2019-02-06
SJCAM M20 Mount – first ride – 2019-02-06

FWIW, the track veering off onto the grass came from a fat-tire bike a few days earlier. Most of the rail trail had cleared by the time we tried it, with some ice and snow in rock cuts and shaded areas.

Contrary to the first picture, I later remounted the camera under the seat rail with its top side downward. The M20 has a “rotate video” mode for exactly that situation, which I forgot to turn off in the fancy new mount, so I rotated the pix afterward.

A 3 mm screw extends upward through the hole in the socket to meet a threaded brass insert epoxied into the shell base, as shown in the uglified M20 model. Despite appearances, the hole is perpendicular to both the socket and the shell, so you can tweak the Look Angle without reprinting the shell.

All in all, the mount works well. We await better riding weather …

The OpenSCAD source code as a GitHub Gist: