Wednesday, February 19, 2025
eSun Triangle Print Success!
I re-ran the print of the triangles, this time with a base size of 300μm and eSun Standard Resin. The resin reservoir was a little further away, so this one took about an hour to print. One layer. Well, it's a prototype and I'm not pushing for speed. I've boosted the contrast and overlaid a 50μm grid on it:
Damn my lenses are filthy. Here's what PrusaSlicer thinks it is printing:
The probe, by my CNC console's measurement, needs to be positioned correctly within about 5μm. Getting that better calibrated will result in thinner lines - the 30μm lines (I've made 10μm dot grids before) were just how it turned out rather than a specific aim. But this does show that across 0.6mm the probe height above the stage remains reasonably consistent so that's more data on the stage's parallel flexure design. Also, as the probe was dipped tens of times, the seeking seems to be reasonably consistent.
The microscope image was taken after blasting the thing with UV for 5 minutes. I've given it another 5 before putting it in the sample box.
A few dev notes to self: The "dipify" code is returning to the start of the current line rather than the last plotted point, which needs fixing. I could probably plot a lot more points with one dip, which will speed things up. Might be able to magnify it using a laser to project an image using the "water drop laser microscope" trick, but don't want to submerge one yet.
The idea is to make something that can be folded up into a pyramid. I won't do that with this one, it's a bit of a historical sample that I want to keep and show off!
I have added the PrusaSlicer config and the latest "dipify" python code to the github repo.
Tuesday, February 18, 2025
The Mysterious Case Of The Thinning Resin
Looking carefully at the results of the previous print test, I noted a weird thing: A double line drawn in the resin was solid, while single lines tended to bead up. The beading of the resin like this was observed in the very first resin-dragging probe tests here. I wondered if there might be a line width at which the process of curing the no-name resin causes it to contract. A simple experiment was conducted to see if some new resin did the same thing.
Using a new bottle of eSun Standard Resin, I placed a droplet of resin using a wiped, blunt probe onto a microscope slide. It spread out to 6mm diameter. Then, using a 0.5mm hypodermic I drew out a few trails of resin, and checked with a microscope that very fine trails had been drawn out. I cured the resin, and looked again.
There appears to be a point, somewhere below 10μm, where the resin will pull itself into beads as it cures. However, the eSun stuff seems to be a bit more stable than my earlier no-name batch, so I'll have to re-run the test with the triangles.
Here's a not-very-good screenshot at maximum magnification of my camera setup. I copied a 20μm square from a calibration slide shot through the same lens. You can only just see a fine trail (it's a lot clearer with the naked eye) to the right of the calibration square, which is about as fine as I can go before things blob up.
I really need to find a way to dye the resin to make photography easier. I have tried fluorescein but that does not seem to be resin-soluble. I have no idea what the height is, as I have no way to measure it. This may also be important. Dunno.
So, some fiddling to go, but 10μm features would appear to be possible with the new eSun resin. Stay tuned, folks.
Monday, February 17, 2025
First resin print from object file
Cut to the chase. The base of the centre triangle is 200μm (0.2mm) across. Imaged on a 10% tilt to make the clear resin visible.
Here is the actual test object. Original is as an SVG with 2mm thick lines on a scale of 1mm to 1 micron:
Note that the images are taken after the resin is cured. I wanted to cure them before I moved anything, so no micrograph of them pre-cure. Here's a screenshot from the USB cameras as I was running the right-hand triangles:
I do not have a particularly fantastic view! You can see how the probe is dipped in a relatively thin area of the resin reservoir, and how the folded edge of the reservoir's contact foil retains the resin.
Anyway, the right-hand one was done at a height which I could definitely see resin deposited through the USB microscope. Both resin prints granulated significantly on curing. The left-hand one was done more carefully, lowering the probe by 3μm until some perceivable change happened on the slide. The probe was dipped in resin after every 15 droplets were deposited. Droplets are 18μm apart on the right, 15μm apart on the left.
Viewed with an eyeball, the central triangle on the left is a discrete object with a hollow centre. Something useful may be happening if two lines are deposited close together. For further investigation.
The height of the cured droplets is not readily discernible at 100x magnification with a bench microscope. Better lighting and slider holders are going to be needed to get decent images.
Wow. So much learned with this session.
Sunday, February 16, 2025
Create 16 micron points in GCODE directly from PrusaSlicer
First, how does RepRapMicron's current accuracy compare with a commercial resin printer? These have pixel sizes going down to 25μm, however this is not their print resolution. According to this 2023 paper a modified $10,000+SLA resin printer with 37μm pixels can be persuaded to create a solid feature as small as 100μm wide. That's the with of the "m" in the photo below.
To create the model I've written a simple script that is compatible with Prusaslicer that lets you generate GCODE for a RepRapMicron by slicing a model just as you normally would. I run the PrusaSlicer printer configuration on the scale of 1mm = 1 micron and change the bed, extrusion width, and layer size to suit RepRapMicron. I have not played with infill yet. The printer configuration is set to Mach 3/LinuxCNC and the extruder is basically otherwise ignored.
I've put the python filter and simple script (which, yes, is a bit of a hack and should be done in the python code) up on github. The script now trims out all the "M" commands and movement of the A axis from the GCODE, as these confuse GRBL and are unnecessary.
The latest 0.5mm test line looks like this (I've turned the contrast up) which was created by just bashing the probe into a layer of Sharpie marker:
By my reckoning (scaling the image in Inkscape and using the W/H tools) the scale line is about 30μm wide worst case, which is about right for something poked in Sharpie with a hypodermic every 15μm. The drawn "m" is 120μm high and 95μm wide and the three legs of the "m" are clearly separate, so placement looks to be around 10μm but let's carry on. The original SVG file has the width at 108μm and height of 78μm but does not define the line width.
The left pair of legs on the "m" are 50μm edge-to-edge, and the right pair 66μm. So I feel fairly justified in saying I'm positioning within 16μm with this probe on at least one axis, which I'm happy with.
Tuesday, February 11, 2025
Plotting points, 500μm initial test with hypodermic tip
Time to move on to placing dots of resin configured in useful shapes. I've written some python code to take a GCODE file of a model from PrusaSlicer and break all moves below safe Z height into segments. The maximum and minimum segment lengths are controlled so that they can be set to roughly the size of a resin dot. The code then lowers the probe onto each of the points on that segment.
I put a hypodermic probe on to test it, and used this to poke at a glass slide covered in Sharpie marker:
The marker is half a millimetre - 500μm - long and made up of individual points approximately 15μm apart. Previous etched logos shown on the blog were 400μm tall.
Previously, there have been great big splats every time the probe touches the slide. These were eliminated by changing the probe movement so that it dramatically reduces its feed rate 10μm above the surface of the slide. X & Y acceleration rates were also reduced to 50μm/s/s to reduce vibration, as previously the acceleration was taxing the stepper motors giving a bumpy ride.
I think this is simply reducing vibration in the system as a whole. The probe comes to a stop on XY, then gently touches the surface, giving plenty of time for vibrations to be dampened.
The python code allows the probe to be directed into the resin reservoir after a certain number of points are touched. This is going to make for slow work, as the image above took about 25 minutes to produce. As you can see, the motion is not linear enough for my liking, but it is reasonably consistent as the individual points are adjacent to each other and not randomly scattered about. Things seem to be within 20μm of where I would expect them to be.
I hope to try this out with resin and a fine probe soon, and generate some simple solid artefacts. Positioning without surface contact has so far been more accurate.
I've added the rudimentary python code to github https://github.com/VikOlliver/RepRapMicron/tree/main/gcode_segmentation
Monday, February 10, 2025
Microscope holder
Now I have some idea as to where the microscope goes, I've added a bracket to hold the USB microscope's pole in place on the frame. One less thing I have to screw down to the bench.
I can either swing the mount sideways if it gets in the way of doing things to the print bed, or just pull the whole pole out. Doesn't seem to vibrate when the machine is running. Plan is to make a bracket to hold the microscope I use for watching the initial probe height, then build a base to tuck the electronics in. I'll put the brackets on github when I've made sure the pair don't collide or anything stupid.
I get the feeling I'll need to make a portable package because (a) people are going to want to see Maus at various events, and (b) I want to get this bloody great chunk of plywood off my desk.
Tuesday, February 04, 2025
Preparing Glass Slides For RepRapMicron Micro-Deposition
The RepRapMicron currently works by depositing dots of UV resin approximately 10μm-20μm diameter on a prepared glass microscope slide using a very fine probe. The reservoir for the resin is a piece of carefully folded aluminium foil stuck to one end of the slide. This also serves as a ground contact for calibrating the height of the probe before printing.
Materials
You might as well make a few in one go so you will need:
- Clean glass microscope slides
- Aluminium cooking foil
- 3D UV Printer resin (I have clear standard eSun)
- Metal probe or wire
- Cotton swabs
- Jar lid with smooth corners
- Sheet of printer paper (not shown)
- UV Light to cure resin in some kind of stand
- Tissues to clean any mess
- Scissors, depending on how well you can tear foil
Procedure
First, wash and dry your hands (or wear gloves, your call). Start by tearing or cutting a strip of aluminium foil as wide as your slide. I do this by placing a slide on top of the foil and tearing along the square edge of the glass. If you can't manage that, use scissors.
Using a cotton swab, smooth out the end of the foil strip using a glass slide as a base as best you can, paying particular attention to the short edge.
Carefully place 0.5mm of the short edge of the foil over the side of a microscope slide and hold it firmly in place. Use a swab to fold this tiny free edge over the side of the slide at a right angle.
Turn the foil over and carefully fold the edge right over with the swab. When it is folded along the entire length, press more firmly to ensure it is folded flat.
Looking through a microscope at the foil, this is what we are trying to achieve:
Put a slide on top of the foil, and tear off the excess to leave a nice square with one folded edge.
Using a metal probe or piece of wire, place a tiny drop - I wipe the excess off the tip on the edge of the bottle and use what's left - at one end of the slide.
This is the droplet spread out a bit with the probe. A little goes a very long way as you will be turning it into a layer only a micron or two thick shortly.
Wrap some foil around the end of a swab, and use it to spread the resin over a square area at one end of the slide. Do not go further than this square, as all the resin must be under the aluminium foil.
Put the square of foil smoothly and carefully onto the resin area. The folded edge should be uppermost and on the side of the square facing the middle of the slide.
Place a piece of printer paper over the foil. Cover it completely, with at least 5mm overhang. This paper protects the foil from being scraped, but also absorbs any excess resin that will be squeezed out during burnishing. Rub with a firm, rounded object such as a jar lid or the back of an exceptionally stout fingernail. Pay special attention to the folded edge. It is important to hold the paper firmly in place.
Finally, cure the resin by placing the slide over a UV lamp, illuminating the resin under the foil. Curing time depends on your resin and lamp, I just leave mine there for a minute on a 4W lamp which is definitely overkill.
Store the finished slides in a clean protective container. Should last indefinitely.
Use
In use a tiny droplet of resin is placed on the foil away from the folded edge, and then carefully smeared towards it until the resin just contacts the edge. This ensures that a very thin layer of resin is presented to the probe, and prevents the resin from flooding the slide.
Metriccano spun off as a rapid prototyping tool and educational toy
It has been a very convenient utility, so I've released the Metriccano construction system into the wild as its own thing. Downloadable as Printables #1177182 here as STLs, link on that page to github OpenSCAD source.
Labels: openscad metriccano
Monday, February 03, 2025
Maus C Assembly Photos
I hear there may be another attempt at making a RepRapMicron out there. As I have not done any build instructions yet, I thought I'd post a few photos here from various angles. Marvel at how bad my photography is.
View along -X axis
Labels: assembly, maus, photos, reprapmicron
Maus C uploaded to github
For those wishing to play with Maus C, it is now at https://github.com/VikOlliver/RepRapMicron/tree/main/maus as OpenSCAD files. Early release, subject to change etc. Needs axis drivers and probe parts from the original Maus file.
Labels: flexure, maus, reprapmicron
Maus C working with magnetic slide mount
I stuffed up the slide mount on Maus C, and the probe head was colliding with it. So I redesigned the slide mount entirely to use magnets. This allows the slide to move in two dimensions while still holding it securely, thus allowing more of the slide's surface to be used in tests. The old slide jaws can still be fitted if needed, though slight hack needed for probe clearance. Looks like this:
This indicates that not only is Maus C in a vaguely working state, but that the magnets hold the slide sufficiently well to allow a probe to carve stuff off the slide's surface. Should be plenty robust enough to put drops of resin in place. I did notice a bit of resonance on the Z mount which a bit of strategic foam should dampen down.
Assembly of the thing still needs three arms and a prehensile tail, so I will be looking to make some modifications for captive nuts and so forth. I think the time has come to strip the rude words from the comments and upload to github.
Labels: maus, reprapmicron
Sunday, February 02, 2025
Maus C prototype with all 3 axes
I've refined the X & Y mounts a bit, and had a crack at mounting the Z axis. That allowed testing of the X & Y axes with a calibration slide, which worked nicely on the Y axis, but not as well on the X (that axis driver is slightly suspect) through whatever it was doing was repeatable. A rotation of about 20 microns off-axis was observed at 500 microns deflection, which I will live with for now.
The whole thing still fits under the binocular microscope, but the USB microscope is better for getting an overall view of the build area and tracking movement as I do not have good USB optics on the binocular microscope. I might make a mount for the USB microscope just to make the whole thing more integrated.
Next step though is to install the ground probe and test out the Z axis a bit.
Labels: maus, reprapmicron