Microscope 60 LED Ring Light Adapter

The Barbie-themed microscope light I built from an angel eye LED ring worked fine for the last six years (!), but a much brighter ring with 60 aimed 5 mm LEDs for $17 delivered from a US seller caught my eye:

Microscope 60 LED ring light - in use

Microscope 60 LED ring light – in use

Although this ring looks much more professional, it didn’t quite fit the microscope, being designed for a round snout rather than a squarish one. This snout has a 47-ish mm threaded ring intended for filters & suchlike, so I built an adapter between that and the 60 mm ID of the LED ring:

Microscope 60 LED Ring Light Adapter - top - Slic3r

Microscope 60 LED Ring Light Adapter – top – Slic3r

The ring came with three long knurled screws which I replaced with much tidier M3 socket-head screws going into those holes:

Microscope 60 LED ring light - assembled - top

Microscope 60 LED ring light – assembled – top

The part going into the snout threads is deliberately (honest!) a bit small, so I could wrap it with soft tape for a good friction fit. The Barbie Ring didn’t weigh anything and I wound up using squares of double-sticky foam tape; it could come to that for this ring, too.

The adapter features a taper on the bottom for no particularly good reason, as the field-of-view tapers inward, not outward:

Microscope 60 LED Ring Light Adapter - bottom - Slicer

Microscope 60 LED Ring Light Adapter – bottom – Slicer

Seen from the bug’s POV, it’s a rather impressive spectacle:

Microscope 60 LED ring light - assembled - bottom

Microscope 60 LED ring light – assembled – bottom

The control box sports a power switch and a brightness knob. Come to find out the ring is actually too bright at full throttle; a nice problem to have.

That was easy!

The OpenSCAD source code as a GitHub Gist:




1 Comment

Cylindrical Cell Adapters

An octet of Eneloop AAA cells arrived, I wanted to measure their as-delivered charge (the package says “Factory Charged With SOLAR ENERGY”, so you know it’s good), and discovered I’d given away my AAA cell holders. You can actually get inter-series adapters on eBay, but what’s the fun in that? Plus, I didn’t want to delay gratification for a month; you know how it is.


AAA to AA Adapter - top - Slic3r

AAA to AA Adapter – top – Slic3r

It’s basically an AA-size sleeve that fits over the AAA cell, with a lathe-turned brass post conducting juice from the + terminal of the inner cell outward:

AAA to AA Adapter - parts

AAA to AA Adapter – parts

Not much to look at when it’s assembled:

AAA to AA Adapter - assembled

AAA to AA Adapter – assembled

The AAA cell fits deliberately loose, because this goes into a metal clip holding everything firmly in place for the battery tester:

AAA to AA Adapter - in use

AAA to AA Adapter – in use

The source code tabulates the sizes of several cylindrical cells, exactly zero other pairs of which have been tested; I expect most won’t work correctly. In particular, the table entries should include the contact button OD and thickness for each cell, so that I can turn out the proper terminal for each pair of cells. If I ever need a different adapter, I’ll beat some cooperation out of that, too.

Discovered I needed an adapter after breakfast, started testing cells after lunch. Life is good!

The OpenSCAD source code as a GitHub Gist:

The original doodle:

AAA to AA Adapter - sketch

AAA to AA Adapter – sketch


Some Things Last: 100 W Incandescent Bulb

The light switch for our attic turns on a single ceramic socket at the top of the stairs. The bulb burned out a few days ago:

Long-lasting 100 W Incandescent Bulb

Long-lasting 100 W Incandescent Bulb

To the best of my knowledge, that bulb has been in service since we moved in almost two decades ago. Most likely, it was installed when the house was built in 1955, because it matches several new-old-stock bulbs in a battered box that Came With The House™.

To be fair, the attic light doesn’t see much service, but … it’s been a great cost-performer!

The attic temperatures range from well below 0 °F in the winter to well above 120 °F in the summer, so it’s no place for CFL or LED bulbs. I swapped in a 60 W bulb from my heap, although I doubt it’ll be good for another half-century.

Leave a comment

Sharing the Road on NYS Bike Route 9: Right Hook

I’m towing a trailer of groceries southbound on Rt 376 (a.k.a. Hooker Avenue in this section), intending to turn right onto Zack’s Way for a library stop.

T=0.00 s, car @ 26.4 mph, me @ 19.8 mph

The transverse cracks through the asphalt are a convenient 60 ft apart, with the last one 20 ft from the stop line, and the frame numbers tick along at 60 frame/sec, so you can easily compute distances, times, and speeds.

I’ll be turning right at the intersection. The light is green.

Zacks Way - Right Hook 2017-04-11 - 0624

Zacks Way – Right Hook 2017-04-11 – 0624


T= 2.07 s, car @ 26.7 mph, me @ 19.7 mph

Now I can see the car’s right turn signal, so this might not end well. I can’t jam on the brakes and avoid a collision by dumping the bike at speed; I’ll slide under the car in the middle of the turn.

Zacks Way - Right Hook 2017-04-11 - 0748

Zacks Way – Right Hook 2017-04-11 – 0748

T=4.15 s, 15.2 mph

I’m 20 feet from the stop line and, suddenly, the driver also realizes this might not end well.

What he doesn’t know is that my trajectory must use the traffic lane: the shoulder around the corner is deteriorated, with several potholes, and vanishes completely where the intersection paving ends.

Zacks Way - Right Hook 2017-04-11 - 0873

Zacks Way – Right Hook 2017-04-11 – 0873

T=5.05 s

The driver is turning wide, into the opposing traffic lane, but if I weren’t lining up for the turn, we’d be on a collision course. My line will take me just to the left of the seemingly tiny, but very deep, pothole just ahead.

Zacks Way - Right Hook 2017-04-11 - 0927

Zacks Way – Right Hook 2017-04-11 – 0927

T=7.15 s

Leaning hard into the turn, but our paths won’t cross.

Zacks Way - Right Hook 2017-04-11 - 1053

Zacks Way – Right Hook 2017-04-11 – 1053

T=7.37 s

I’m back upright in the middle of the lane, with the shoulder ending in a pothole to my right.

Zacks Way - Right Hook 2017-04-11 - 1066

Zacks Way – Right Hook 2017-04-11 – 1066

T=8.31 s

Remember, I’m wearing a fluorescent (“safety”) orange shirt, running a blinky light (which is also the rear camera), and towing a trailer with a fluttering flag: I am not inconspicuous!

Zacks Way - Right Hook 2017-04-11 - 1123

Zacks Way – Right Hook 2017-04-11 – 1123

In case there’s any question:

Zacks Way - Right Hook 2017-04-11 - rear

Zacks Way – Right Hook 2017-04-11 – rear

The rest of the ride proceeded without incident …

Leave a comment

3D Printer Design Conversation: Part 5

The final installment of musings about building a large-format 3D printer …

(Continued from yesterday)

Perhaps they saw your blog post?

The old-old (original) high-resistance Kysan motor costs something like $45 and, apart from minor cosmetic differences, looks /exactly/ the same as the old-new low-resistance motor. If you were picking motors and didn’t quite understand why you needed a low-resistance winding, which would you pick? Hence, my insistence on knowing the requirements before plunking down your money.

To be fair, I didn’t understand that problem until the Thing-O-Matic rubbed my nose in it. With all four motors. Vigorously.

So, yeah, I think I had a part in that.

comes back to the same numbers over and over

The new-new leadscrews have something like half the pitch of the old-new and old-old threads; I don’t recall the number offhand. In any event, that gives you twice the number of motor steps per millimeter of motion and roughly twice the lifting force. This is pretty much all good, even though it may reduce the maximum Z axis speed (depends on your settings & suchlike).

When it moves upward by, say, 5 mm and downward by 5 mm, you’re measuring position repeatability. That level of repeatability is pretty much a given (for the M2, anyhow), but it doesn’t involve stiction & suchlike.

Can you move the platform up by 0.01 mm, then down by 0.01 mm, and measure 0.01 mm change after each motion?

Do larger increments track equally well in both directions?

Move upward a few millimeters, then step downward by 0.01 mm per step. Does the measurement increase by 0.01 mm after each step?

Repeat that by moving downward, then upward in 0.01 mm increments.

If the platform moves without backlash & stiction in both directions with those increments, it’s a definite improvement.

I wish I knew more
everything you learned is burned into your head forever

The way to learn more is exactly what you’re doing.

Two things I learned a long time ago:

1. Whenever you have two numbers, divide them and ask whether the ratio makes sense.

2. Whenever you don’t understand a problem, do any part of it you do understand, then look at it again.

Also, write everything down. When you come back later, you won’t remember quite how you got those results.

Which is precisely why I have a blog. I search with Google (site:softsolder.com microstepping) and /wham/ I get a quick refresher on what I was thinking. That’s why I keep link-whoring URLs: that’s my memory out there!

You’ll sometimes find scans of my scrawled notes & doodles. They won’t mean anything to you, but they remind me what I do to get the answers in that blog post.

modern controllers utilize much higher voltage and current bursts

More or less. Microstepping drivers apply a relatively high voltage, far in excess of what the winding can tolerate as a DC voltage, then regulate the current to a value that produces the appropriate waveform.

This may be helpful:


The mass of the bed APPEARS to be cancelling out any magnetic or mechanical stiction.

That can’t be true in both directions: the gravity vector points downward and the results aren’t symmetric. I think you’re reading noise. If the sequences of motions I described don’t produce the results I described, then you’re /definitely/ measuring noise.

From back in the Thing-O-Matic days:


E3D hot end setups vs MakerGear’s?

No opinion.

I’d want that groovemount post in an all-metal socket, though, rather than the traditional plastic, to get solid positioning and tolerance control. Makergear has the right idea with the aluminum V4 heater block mount.

, , , ,


3D Printer Design Conversation: Part 4

Continued musings about building a large-format 3D printer …

(Continued from yesterday)

taking your challenge and am starting by cloning the M2

That gives you an existence theorem: you know exactly what you want to end up with.

AFAICT, few of the M2’s parts bear standardized numbers you can simply order from a reputable seller. Makergear knows what it’s buying (obviously!), but they’re under no obligation to help out: you must reverse engineer the requirements, find a suitable part, find a supplier, then buy one item.

Let me know how that works out for cost & performance; “cost” should include a nonzero value for your time and “performance” should have numbers you can verify. I (obviously) think the build will be a dead loss on both counts (*), but good data will be interesting.

(*) Albeit useful for educational purposes, which I’ve used to justify many absurd projectst!

How the heck do you read out the current (estimated, obviously) X Y Z position absolute to the machine coordinates?

Perhaps M114 or M117?

My overall list may be helpful, although the RepRap Marlin reference has more detail on their command set:


The LinuxCNC (and, perhaps, Machinekit) G-Code languages give you access to built-in variables and extend G-Code into a true scripting language. Marlin evolved differently and doesn’t support that sort of thing.

G-Code is pretty much a write-only language, but you can do some interesting things:


I use the gcmc compiler whenever I can for actual CNC machining:


Works for me, anyhow, although I don’t do much CNC these days.

move my nozzle up .01 at a time

Stiction / microstep errors / command resolution prevent that:


The only way to measure the nozzle position is to measure a finished part with a known height, because any variation comes from the first layer offset. That’s if you have Z=0 at the platform, of course, rather than whatever offset you get by defining Z=0 at some random height based on jamming business cards / feeler gages / special Japanese rolling papers under the snout. [ptui & similar remarks]

For example:


You need numbers. Lots of numbers. [grin]

strip basic tools out of the control interface

Yet another reason I don’t use S3D: that “Simplify” thing gets in the way of my obsessive need for control.

(Continues tomorrow)

, , , ,


3D Printer Design Conversation: Part 3

More musings in response to questions about building a large-format 3D printer.

(Continued from yesterday)

make a direct clone of the M2. No thinking required.

The present-day M2 has survived four years of rather fierce Darwininan winnowing, so it’s a much better thought-out product than, ahem, you may think just by looking at it.

To build a one-off duplicate, you’ll spend as much money collecting the parts as you would to just buy another M2 and start printing.

Should you buy cheap parts to save money, without considering the requirements, you’ll get, say, the same Z-axis motor Makergear used on the original M2, the complete faceplant of Thing-O-Matic electronics, or crap from eBay described as being kinda-sorta what you want.

Sometimes crap from eBay can be educational, of course:


I encourage thinking, particularly with numbers, because it leads to understanding, rather than being surprised by the results.

increase the rigidity of the X and Y axis

In round numbers, deflection varies as the fourth power of length: enlarge a frame member by 50% and it becomes five times bendier. If your design simply scales up the frame, it won’t hold the tolerances required to produce a good object.


If you add more mass (“stiffening”) to the Y axis, then the Z axis motor (probably) can’t accelerate the new load upward with the original firmware settings and the Y axis motor may have trouble, too. Perhaps you should measure the as-built torque to support your design:


Reduce the acceleration and lower the print speed? Use bigger motors (if you can find a Z motor with the correct leadscrew) and lose vertical space? Make the frame taller and lose stiffness? Use two Z motors (like the RepRap Mendels) and get overconstrained vertical guides? Try building a kinematic slide and lose positioning accuracy? Your choice!

If your intent is to print more parts at once, buy more M2 printers, which will not only be cheaper, but also give you more throughput, lower the cost of inevitable failures, good redundancy, and generally produce better results. Some of the folks on the forum run a dozen M2s building production parts; they’re not looking for bigger print volumes to wreck more parts at once.

Conversely, if your intent is to learn how to build a printer, then, by all means, think about the design, run the numbers, collect the parts, then proceed. It sounds like a great project with plenty of opportunity for learning; don’t let me discourage you from proceeding!

However, I’ll be singularly unhelpful with specific advice, because I’m not the guy building the printer. You must think carefully about what you want to achieve, figure out how to get there, and make it happen.

To a large extent, searching my blog with appropriate keywords will tell you exactly what I think about 3D printing, generally with numbers to back up the conclusions. Get out your calculator, fire up your pencil, and get started!

(Continues tomorrow)

, , , ,