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!
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:














