Tuesday, October 20, 2026

 

RepRapMicron Double Height Layer Slicer Mod

The UV beam sets resin about 6μm wide. Prusaslicer doesn't allow a layer height of more than 6μm for that, but the UV goes on for a lot further. So I have adapted fibre_process.py to use a Z_SCALE constant. This allows the model to be compressed vertically by, say, 50% in Prusaslicer and then be expanded to full height again in the filter to produce the full-height GCODE. Here's a Benchy printed that way:


If you zoom in you'll see that we have lost a bit of vertical resolution. However we have also gained resolution under overhangs, because there is less cumulative UV overshooting the edges. So Benchy's hull has more of a curve to it.

While the use of this is debatable in creating artistic models, for the grunt work of creating more or less planar mechanisms with little if any overhang it means I can print them twice as fast. Possibly more than twice.


Monday, October 19, 2026

 

Chonky Boi Pantograph (much neater)

This one I have more faith in. It turns out that the "Infill before perimeter" box had somehow become unchecked in Prusaslicer. As you can see from the images below, this 950μm long (nearly 1mm) pantograph is significantly better:



I made it 48μm thick (probably slightly over 50 in the real world) which I hope improves durability somewhat. Note that even with the assumption in the slicer that the "extrusion" width is 6μm it does not look like 65% overlap is excessive and the infill doesn't look too dense. I think there are interesting optical effects going on. I am driving the fibre somewhat out of spec after all.

As before, now to attach one end with nail gel, free the rest of it from the Krapton Tape, and see if I can flex it without breaking it. Place your bets please, ladies and gentlemen... 


 

Attempting Pantograph Motion

I'm not holding up high hopes on this. Although I've increased the part thickness to 60μm, and set the perimeter overlap to 25%, the perimeter is still not attaching and it looks a wee bit fragile. If you look carefully at a zoom-in on the top of the micrograph below:


you will see that the stray bit of perimeter flapping around in the breeze is ribbon-like. This means that it was printed vertically, and then detached. Because we're dealing with a light beam and not extruded filament, this means the light beam did not intersect with the infill. Because it is deeper than it is thick, this strongly suggests that it is the first layer. No surprise then that subsequent layers go awry.

I'm beginning to wonder if the print width is less than 9μm. Thinking about it, an optical fibre has  a core and a sheath, so it's quite possible that the UV beam is much narrower than 9μm. I would print single lines and measure them but the bloody things don't stick!

So I have reduced the print width to 6μm and increased the overlap to 65%, and we'll take it from there. Test subject is another Benchy because I'm making them for fund raising. I didn't have to do that for the original RepRap Project, as it was funded - albeit the lowest project funding Dr. Bowyer had ever used. Less, in fact, than the cost of a 3D printer at the time.

Anyhoo the pantograph above has its lower test pad anchored to the Krapton Tape with nail gel. It now has to be prised loose and moved. Place your bets on: Broken during separation, broken during feeble articulation, actually moves, or pings off into the aether?


Saturday, October 17, 2026

 

RepRapMicron And Slightly More Complex Flexures

Still working on the print quality because larger prints seem to have more issues, however this is a print of a parallelogram flexure, otherwise known as a pantograph:


 It is 1180μm long (a little over a millimetre). This particular one is 30μm thick because I'm still playing around trying to get "large" structures printing properly and am just testing the base layers. It is scaling movement to 50% just to keep things visible.

Some of the more astute of you will have noticed a faint resemblance of this print to the flexure system in the RepRapMicron Axis Driver module:

 

The flexure part is ~100mm long. 100x smaller. I think you can see where we're going here.

Now nobody makes M0.03 screws, and the kinematics of assembly are fiddly, so I'm not going to build a direct copy. There are very basic details to be sorted out, like getting it off the build plate and anchoring it down.

I took an even worse print and experimented. To anchor it down, I place a tiny speck of "Gel Polish" UV nail art gel ("Jelly") nearby the print before I detach it, and trail a very, very fine trail up to the part. This stuff is much thicker than 'Top Coat" or 3DP resin, so it is less likely to creep and engulf the part. Before it creeps very far I turn on a UV lamp to solidify it. Then you get this:

Getting the part off the Krapton Tape is best done in a droplet of isopropyl alcohol. This seems to ease it off the Krapton and stops the part moving too quickly and flying off. Then you have a mobile mechanism firmly attached to a substrate and the experimentation can begin. Well, once I have a slightly thicker one anyway.


Thursday, October 15, 2026

 

RepRapMicron Thin Lines And Extruded Text Test

As perimeters come apart, I thought I'd stress-test single lines without fill. To do this I selected some sample text with characters approximately 25μm wide that would all print as single lines, and printed it two layers thick. The first layer 7μm thick, the second 4μm. After gentle washing by dropping IPA from a hypodermic from a height of ~10mm the slide was flooded with UV so that the distribution of printed particles could be determined:


As can be seen, a great many of the individual letters and parts thereof detached during the cleaning process and scattered themselves around the slide, with some letters remaining in regimented rows. 

This indicates that even gentle cleaning can severely disrupt artefacts that otherwise printed successfully. To determine if there was any pattern in which characters stayed attached to the Krapton Tape, I put the slide under the compound microscope and took the following higher resolution image:


Unfortunately, there is little that can be determined, other than O's are moderately more likely to remain attached. SVG Text Extrusion from Prusaslicer given below for comparison.


 


Wednesday, October 14, 2026

 

Benchy Redo

With the benefit of a few days of experience I redid Benchy. This one is 600μm long, making it exactly 1/100th scale. We're getting a cabin with void inside too.

 

 



Tuesday, October 13, 2026

 

Video of Micron-Printed Mechanism Moving

That was easier to detach from the Krapton than anticipated. Check it out on YouTube. My hand shakes like a rattlesnake tail. This had better result in people buying me a coffee!

https://youtu.be/ayUqUoDeVxs




 

Visible Light Micrograph Of Krapton Print

Managed to get a good raking light image of the print on Krapton. I must make a lighting rig that does the raking light properly.


Apparently getting hairs trapped under the Krapton only has a very marginal effect on the output, and does not seem to affect detachment. It appears that a perfect bed and flat surface is optional for UV fibre printing on Krapton at least. 

So with 4μm layers we actually get good adhesion. There is one flyer - top right shows a curly filament. This is the perimeter of the circle bottom centre. I am running with 65% overlap at this point, but obviously the perimeters are not bonding bell enough. Now I have reduced the layer height to 4μm Prusaslicer will let me reduce the extrusion width to 7μm. If I reduce it further it crashes with a "Invalid spacing supplied to Flow::with_spacing()" error. The print is ~20μm thick.

I'll try to get this loose on the Krapton, but don't hold much hope.  I'll probably try a reprint on glass and see if that is detachable. Once I can detach, I can test an actual flexure joint!

If that doesn't work I may cheer myself up by reprinting Benchies with the current settings, just for lols. 

UPDATE: Did another print and nicer photo on the compound microscope:



 


 

Ref: PrusaSlicer Config for UV Fibre printing

Just so it's there, should anyone want to crib. Remember PrusaSlicer runs on 1 unit = 10μm.

Gratuitous latest print done using these settings on Krapton tape under UV:


; prusaslicer_config = begin
; arc_fitting = disabled
; autoemit_temperature_commands = 0
; automatic_extrusion_widths = 0
; automatic_infill_combination = 0
; automatic_infill_combination_max_layer_height = 100%
; avoid_crossing_curled_overhangs = 0
; avoid_crossing_perimeters = 0
; avoid_crossing_perimeters_max_detour = 0
; bed_custom_model =
; bed_custom_texture =
; bed_shape = -15x-15,485x-15,485x485,-15x485
; bed_temperature = 0
; bed_temperature_extruder = 0
; before_layer_gcode =
; between_objects_gcode =
; binary_gcode = 0
; bottom_fill_pattern = rectilinear
; bottom_solid_layers = 2
; bottom_solid_min_thickness = 0
; bridge_acceleration = 0
; bridge_angle = 0
; bridge_fan_speed = 100
; bridge_flow_ratio = 1
; bridge_speed = 10
; brim_separation = 0
; brim_type = no_brim
; brim_width = 0
; chamber_minimal_temperature = 0
; chamber_temperature = 0
; color_change_gcode = M600
; colorprint_heights =
; complete_objects = 0
; cooling = 1
; cooling_perimeter_transition_distance = 0
; cooling_slowdown_logic = uniform_cooling
; cooling_tube_length = 5
; cooling_tube_retraction = 91.5
; custom_parameters_filament = ""
; custom_parameters_print =
; custom_parameters_printer =
; default_acceleration = 0
; default_filament_profile =
; default_print_profile =
; deretract_speed = 0
; disable_fan_first_layers = 3
; dont_support_bridges = 1
; draft_shield = disabled
; duplicate_distance = 6
; elefant_foot_compensation = 0
; enable_dynamic_fan_speeds = 0
; enable_dynamic_overhang_speeds = 0
; end_filament_gcode = "; *END gcode for filament, exposes UV\n"
; end_gcode = ; *END\nM84     ; disable motors\n
; ensure_vertical_shell_thickness = enabled
; external_perimeter_acceleration = 0
; external_perimeter_extrusion_width = 0
; external_perimeter_speed = 100%
; external_perimeters_first = 0
; extra_loading_move = -2
; extra_perimeters = 1
; extra_perimeters_on_overhangs = 0
; extruder_clearance_height = 20
; extruder_clearance_radius = 20
; extruder_colour = ""
; extruder_offset = 0x0
; extrusion_axis = E
; extrusion_multiplier = 1
; extrusion_width = 0.81
; fan_always_on = 0
; fan_below_layer_time = 60
; filament_abrasive = 0
; filament_colour = #29B2B2
; filament_cooling_final_speed = 3.4
; filament_cooling_initial_speed = 2.2
; filament_cooling_moves = 4
; filament_cost = 0
; filament_density = 0
; filament_deretract_speed = nil
; filament_diameter = 1.75
; filament_flush_speed = 0
; filament_flush_volume = 0
; filament_infill_max_crossing_speed = 0
; filament_infill_max_speed = 0
; filament_load_time = 0
; filament_loading_speed = 28
; filament_loading_speed_start = 3
; filament_max_volumetric_speed = 0
; filament_minimal_purge_on_wipe_tower = 15
; filament_multitool_ramming = 0
; filament_multitool_ramming_flow = 10
; filament_multitool_ramming_volume = 10
; filament_notes = ""
; filament_purge_multiplier = 100%
; filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
; filament_retract_before_travel = nil
; filament_retract_before_wipe = nil
; filament_retract_layer_change = nil
; filament_retract_length = nil
; filament_retract_length_toolchange = nil
; filament_retract_lift = nil
; filament_retract_lift_above = nil
; filament_retract_lift_below = nil
; filament_retract_restart_extra = nil
; filament_retract_restart_extra_toolchange = nil
; filament_retract_speed = nil
; filament_seam_gap_distance = nil
; filament_settings_id = "RepRapMicron V0.05"
; filament_shrinkage_compensation_xy = 0%
; filament_shrinkage_compensation_z = 0%
; filament_soluble = 0
; filament_spool_weight = 0
; filament_stamping_distance = 0
; filament_stamping_loading_speed = 20
; filament_toolchange_delay = 0
; filament_travel_lift_before_obstacle = nil
; filament_travel_max_lift = nil
; filament_travel_ramping_lift = nil
; filament_travel_slope = nil
; filament_type = PLA
; filament_unload_time = 0
; filament_unloading_speed = 90
; filament_unloading_speed_start = 100
; filament_vendor = (Unknown)
; filament_wipe = nil
; fill_angle = 45
; fill_density = 15%
; fill_pattern = rectilinear
; first_layer_acceleration = 0
; first_layer_acceleration_over_raft = 0
; first_layer_bed_temperature = 0
; first_layer_extrusion_width = 0
; first_layer_height = 0.7
; first_layer_infill_speed = 30%
; first_layer_speed = 10%
; first_layer_speed_over_raft = 30
; first_layer_temperature = 0
; full_fan_speed_layer = 0
; fuzzy_skin = none
; fuzzy_skin_point_dist = 0.8
; fuzzy_skin_thickness = 0.3
; gap_fill_enabled = 0
; gap_fill_speed = 12
; gcode_comments = 0
; gcode_flavor = mach3
; gcode_label_objects = disabled
; gcode_resolution = 0.0125
; gcode_substitutions =
; high_current_on_filament_swap = 0
; host_type = prusalink
; idle_temperature = nil
; infill_acceleration = 0
; infill_anchor = 600%
; infill_anchor_max = 50
; infill_every_layers = 1
; infill_extruder = 1
; infill_extrusion_width = 0
; infill_first = 0
; infill_overlap = 65%
; infill_speed = 12
; interface_shells = 0
; interlocking_beam = 0
; interlocking_beam_layer_count = 2
; interlocking_beam_width = 0.8
; interlocking_boundary_avoidance = 2
; interlocking_depth = 2
; interlocking_orientation = 22.5
; ironing = 0
; ironing_flowrate = 15%
; ironing_spacing = 0.1
; ironing_speed = 15
; ironing_type = top
; layer_gcode =
; layer_height = 0.4
; machine_limits_usage = time_estimate_only
; machine_max_acceleration_e = 10000,5000
; machine_max_acceleration_extruding = 1500,1250
; machine_max_acceleration_retracting = 1500,1250
; machine_max_acceleration_travel = 1500,1250
; machine_max_acceleration_x = 9000,1000
; machine_max_acceleration_y = 9000,1000
; machine_max_acceleration_z = 500,200
; machine_max_feedrate_e = 120,120
; machine_max_feedrate_x = 500,200
; machine_max_feedrate_y = 500,200
; machine_max_feedrate_z = 12,12
; machine_max_jerk_e = 2.5,2.5
; machine_max_jerk_x = 10,10
; machine_max_jerk_y = 10,10
; machine_max_jerk_z = 0.2,0.4
; machine_max_junction_deviation = 0,0
; machine_min_extruding_rate = 0,0
; machine_min_travel_rate = 0,0
; max_fan_speed = 100
; max_layer_height = 0
; max_print_height = 1200
; max_print_speed = 2000
; max_volumetric_extrusion_rate_slope_negative = 0
; max_volumetric_extrusion_rate_slope_positive = 0
; max_volumetric_speed = 0
; min_bead_width = 85%
; min_fan_speed = 35
; min_feature_size = 25%
; min_layer_height = 0
; min_print_speed = 10
; min_skirt_length = 0
; mmu_segmented_region_interlocking_depth = 0
; mmu_segmented_region_max_width = 0
; multimaterial_purging = 140
; notes =
; nozzle_diameter = 1
; nozzle_high_flow = 1
; only_one_perimeter_first_layer = 0
; only_retract_when_crossing_perimeters = 0
; ooze_prevention = 0
; output_filename_format = [input_filename_base].gcode
; over_bridge_speed = 10
; overhang_fan_speed_0 = 0
; overhang_fan_speed_1 = 0
; overhang_fan_speed_2 = 0
; overhang_fan_speed_3 = 0
; overhang_speed_0 = 15
; overhang_speed_1 = 15
; overhang_speed_2 = 20
; overhang_speed_3 = 25
; overhangs = 1
; parking_pos_retraction = 92
; pause_print_gcode = M601
; perimeter_acceleration = 0
; perimeter_extruder = 1
; perimeter_extrusion_width = 0
; perimeter_generator = classic
; perimeter_speed = 12
; perimeters = 1
; physical_printer_settings_id =
; post_process = /home/vik/uRepRap/UV_head/prusaslicer_filter.sh
; prefer_clockwise_movements = 0
; print_settings_id = RepRapMicron V0.05 - UV Fibre
; printer_model =
; printer_notes =
; printer_settings_id = RepRapMicron V0.05 - UV Fibre
; printer_technology = FFF
; printer_variant =
; printer_vendor =
; raft_contact_distance = 0.1
; raft_expansion = 1.5
; raft_first_layer_density = 90%
; raft_first_layer_expansion = 3
; raft_layers = 0
; remaining_times = 0
; resolution = 0
; retract_before_travel = 2
; retract_before_wipe = 0%
; retract_layer_change = 1
; retract_length = 1
; retract_length_toolchange = 10
; retract_lift = 3.5
; retract_lift_above = 0
; retract_lift_below = 0
; retract_restart_extra = 0
; retract_restart_extra_toolchange = 0
; retract_speed = 40
; scarf_seam_entire_loop = 0
; scarf_seam_length = 20
; scarf_seam_max_segment_length = 1
; scarf_seam_on_inner_perimeters = 0
; scarf_seam_only_on_smooth = 1
; scarf_seam_placement = nowhere
; scarf_seam_start_height = 0%
; seam_gap_distance = 15%
; seam_position = random
; silent_mode = 0
; single_extruder_multi_material = 0
; single_extruder_multi_material_priming = 1
; skirt_distance = 6
; skirt_height = 0
; skirts = 1
; slice_closing_radius = 0.049
; slicing_mode = regular
; slowdown_below_layer_time = 5
; small_perimeter_speed = 12
; solid_infill_acceleration = 0
; solid_infill_below_area = 70
; solid_infill_every_layers = 0
; solid_infill_extruder = 1
; solid_infill_extrusion_width = 0
; solid_infill_speed = 12
; spiral_vase = 0
; staggered_inner_seams = 0
; standby_temperature_delta = -5
; start_filament_gcode = "; Filament gcode\n"
; start_gcode = G61 ; precise movement\n
; support_material = 0
; support_material_angle = 0
; support_material_auto = 1
; support_material_bottom_contact_distance = 0
; support_material_bottom_interface_layers = -1
; support_material_buildplate_only = 0
; support_material_closing_radius = 2
; support_material_contact_distance = 0.2
; support_material_enforce_layers = 0
; support_material_extruder = 1
; support_material_extrusion_width = 0.87
; support_material_interface_contact_loops = 0
; support_material_interface_extruder = 1
; support_material_interface_layers = 3
; support_material_interface_pattern = rectilinear
; support_material_interface_spacing = 0
; support_material_interface_speed = 100%
; support_material_pattern = rectilinear
; support_material_spacing = 2.5
; support_material_speed = 12
; support_material_style = grid
; support_material_synchronize_layers = 0
; support_material_threshold = 0
; support_material_with_sheath = 1
; support_material_xy_spacing = 50%
; support_tree_angle = 40
; support_tree_angle_slow = 25
; support_tree_branch_diameter = 2
; support_tree_branch_diameter_angle = 5
; support_tree_branch_diameter_double_wall = 3
; support_tree_branch_distance = 1
; support_tree_tip_diameter = 0.8
; support_tree_top_rate = 15%
; temperature = 0
; template_custom_gcode =
; thick_bridges = 1
; thin_walls = 1
; thumbnails =
; thumbnails_format = PNG
; toolchange_gcode =
; toolchange_ordering = optimized
; top_fill_pattern = rectilinear
; top_infill_extrusion_width = 0
; top_one_perimeter_type = none
; top_solid_infill_acceleration = 0
; top_solid_infill_speed = 12
; top_solid_layers = 2
; top_solid_min_thickness = 1
; travel_acceleration = 0
; travel_lift_before_obstacle = 0
; travel_max_lift = 0
; travel_ramping_lift = 0
; travel_short_distance_acceleration = 0
; travel_slope = 0
; travel_speed = 40
; travel_speed_z = 40
; use_firmware_retraction = 0
; use_relative_e_distances = 0
; use_volumetric_e = 0
; variable_layer_height = 0
; wall_distribution_count = 1
; wall_transition_angle = 10
; wall_transition_filter_deviation = 25%
; wall_transition_length = 100%
; wipe = 0
; wipe_into_infill = 0
; wipe_into_objects = 0
; wipe_tower = 0
; wipe_tower_acceleration = 0
; wipe_tower_bridging = 10
; wipe_tower_brim_width = 2
; wipe_tower_cone_angle = 0
; wipe_tower_extra_flow = 100%
; wipe_tower_extra_spacing = 100%
; wipe_tower_extruder = 0
; wipe_tower_no_sparse_layers = 0
; wipe_tower_width = 60
; wiping_volumes_matrix = 0
; wiping_volumes_use_custom_matrix = 0
; xy_size_compensation = 0
; z_offset = 0
; prusaslicer_config = end
 


Monday, October 12, 2026

 

Not There Yet But Improved

Well that helped! Obviously still a lot going wrong here, but notice we're now getting at least one perimeter. I have given perimeters a 50% overlap, which is excessive but functional. I am running into problems where Prusaslicer cannot comprehend that a print head can deposit material that is deeper than it is wide - which is the first layer case for this configuration.

Looks like the fibre end blobbed over (oval feature, bottom) which so far has meant I've been moving too slowly. Obviously things fell apart in the top right. A lot of perimeter fragments are visible, so maybe try more overlap? I also appear to have over-compensated for that unknown aspect ratio distortion on the Y axis.

The nice thing to see is the beginning of a double flexure joint in the right-angled feature top centre. You'll need to zoom in for that, but it's much more visible under the binocular microscope, particularly with the UV illumination. Photo taken with my phone as the Svbony has no UV filter and whites out.


 

Prusaslicer bug in Marlin?

From what I can see, Prusaslicer doesn't set the XYZ speed when in Marlin mode all the time. Sometimes it relies on the A Axis speed being set. As I discard all A axis speeds, uh, I kinda end up with the axis speed not being set (or reset). So, patched that and we try again.


 

So Where Does The Fibre Print Go Wrong?

Looking at a test print and an outcome side by side, two things become apparent:

For scale, the round thing is 300μm notional diameter. Y Axis aspect ratio is out by about 1.33

That Y axis distortion is not doing my prints any favours (possibly why the horizontal section disintegrated), and the perimeters are not bonding to the infill. Let's fix those issues...

Here's a zoom-in from a bench microscope (at 90 degrees, sorry):




Sunday, October 11, 2026

 

RepRapMicron Single Narrow Beam

I tried to create a single beam with a flexure joint in it as narrow as I could. We're looking at a flexure 20μm thick and a beam width of 60μm. The beam in the image is about 500μm long, but note that one end is severely dinged up. This happened during the washing process. These things are very delicate and very poorly attached to the slide. That goes double for long, thin bits. Hopefully I can string them together for improved stability. Also this one was only 20μm thick, and thicker is probably more durable - as long as you can get it to stay stuck to the slide!


This object is not attached to the glass, by the way. It came free during the very gentle washing/drying process. I can't see much until the prints are dry because they're too optically close to the surrounding resin/solvent and are basically invisible. I look for the distortions in the fluid surface, which the microscope overhead light brings out quite well. I know there's something there, but have no idea what it is until the solvent dries!

I had to bring print overlap up to 25% and "extrusion" width down to 7μm to make this work.  First layer is now 7μm and subsequent are 4μm. I'm printing at 120μm/s with 100μm/s bridging. Next step I suppose is to have two beams carrying a flexure between them...


Friday, October 09, 2026

 

Built STLs For RepRapMicron UV Fibre Print Head

I've dropped pre-built STL files for the UV fibre print head here https://www.printables.com/model/1871410-high-resolution-resin-print-head-for-reprapmicron

 


 


Wednesday, October 07, 2026

 

UV LED Prusaslicer filter and LED/fibre interconnect models for RepRapMicron

I've added all the stuff I used to generate the UV fibre prints (code and models for the fibre/LED interconnects) here:  https://github.com/VikOlliver/RepRapMicron/tree/main/UV_head

I'll get some instructions and assembly pictures together for the Wiki, but followers will have seen most of it in the blog. Shout up if you need anything to go to the top of the queue.

Gratuitous picture of a slide with the 500μm Benchy printed on it. Spot the Benchy:


 


Tuesday, October 06, 2026

 

RepRapMicron Success! - A decent 500μm (1/2mm) Benchy

Took me a few years, but here we are. This Benchy is 500x258x400μm and took the RepRapMicron PIKA V0.02  2hrs 41min 22sec to print in eSun Standard Resin. This was using the same 125/9 fibre head as before, but with the UV LED controlled by the GRBL Coolant Mist output:


Settings: 30μm/sec print speed, 25% speed first layer, 6μm first layer, 4μm layers, 2 perimeters, 2 top 3 bottom layers, 9μm print width,UV LED, and 56R 5W resistor. If you zoom in to the stern you can see the infill lines.

To rinse off excess resin I plcve the slide flat under the binocular microscope with a pad of tissue underneath. Then a 1ml hypodermic syringe and 0.5mm needle with about 0.6ml of isopropyl alcohol is dropped on and jetted at the print. This is gently air dried with a slow fan.

Yes, some detail is missing because the UV beam sets the resin for a considerable depth downward. This can be avoided by adding a UV dye to the resin, but I haven't done that. Have other plans. You can do it if you want, just use alcoholic turmeric extract. 

I'll take a pause from making lots of stuff to document everything and upload the PrusaSlicer filter, LED holder and so forth, have a coffee (https://ko-fi.com/viksworkshop) or mebbe something a bit stronger :)


 

3DP Resin Improvements With UV Fibre RepRapMicron Head

I've managed to get something more plausible out of ordinary 3D Printer resin. The trick was to move faster with thicker layers. The print is a bit fuzzy because I'm not yet turning the UV LED off while moving. However, here is a cylinder notionally 200μm diameter and 178μm tall (my tallest structure yet):

 

There's probably the odd artefact from me turning the UV on and off manually at the start and end too. I'm running this with a 6μm first layer, 4μm subsequent layers, 2 perimeters, a print speed of 100μm/sec and a maximum travel speed of 250μm/sec - which it might be nice to increase because I can see hairy filaments where the resin has set in fast moves. First layer was at 30% speed btw.

Curiously, I'm not seeing the conical appearance of the Nail Art resin prints, which is good. Even more puzzling is the fact that those overshoot artefacts appeared in Diffraction Limited's  prints but not mine.

Anyhow, now I have something dialled in, I'll  try to get the LED turning on and off. Also might try a more mechanical part and another Benchy just for the lols.


Saturday, October 03, 2026

 

Update UV Source For RepRapMicron Fibre Deposition

The old light source was a bit hit and miss because its alignment with the fibre and the UV LED wasn't perfect. In fact shutting the workbench drawer could cause it to drift. I've purchased some 3W UV LED modules, and connected one of them up to a 5V power supply. With a modified adaptor, this now screws everything firmly together. Here's a low-light macro photo of the UV beam hitting a fluorescent translucent plastic rod:


There should be enough UV in that to cure the resin. The star-shaped LED base is an aluminium PCB with notches in, which takes M3 screws quite nicely:


The RAMPS board power outputs are at 12V, so I can't directly run this module off them. The UV LED in the stage runs at a much lower current, so I can get away with a small series resistor, but this thing is taking about a Watt. I'll have to wait until the stores open, then I'll go in search of a 5W 68R resistor to put in series. After that I'll be able to control the UV LED from GCODE.


Thursday, October 01, 2026

 

Nail Art vs 3DP Resin

I've been having little luck using the fibre process to create objects in 3D Printer Resin. At best I get a few fragments. They're either falling apart when I drop IPA on them, or not sticking to the slide surface properly. I very carefully ran a print at 1μm/sec with a 4μm first layer, and the Nail Art resin stuck while the 3DP resin didn't.

The object was a 100μm diameter minimug, with an attempt at two layers on the wall. Either the walls washed away completely or never got created. Here's the surviving base together with what PrusaSlicer thinks should be there: 

I'm using an improved fibre holder rather than the zip ties for added stability (photo below, on the left). 

Now, it could be that I'm attempting layers that are too thin, or just moving too fast for the resin to cure, but that's for further experimentation. The takeaway so far is that Nail Art produces something and 3DP resin produces nothing so my material choice going forward is clear.

They are important factors though. If I'm using enough UV but not using it right, I won't need to wire up this fearsome array of 3W UV LEDS:

 

I think that might contravene local directed energy weapons treaties...
 


This page is powered by Blogger. Isn't yours?

Subscribe to
Posts [Atom]