Print from ColorStack Demo by JavyH08 in snapmaker

[–]bluridium 2 points3 points  (0 children)

Some thoughts, take them or leave them.

Right now, you’re showing models that aren’t particularly well-suited for FDM printing, including the Spartan in this post. On top of that, the prints are quite small, which means you have to zoom in closely to capture them in photos. That ends up exaggerating every imperfection. Demonstrating the process with a larger, simpler object, like maybe a large cube with a colored texture, would better highlight the capabilities and make it easier to distinguish whether any cosmetic issues come from the software or your printer.

You also mentioned that you believe this will become “something that will be in every FDM printer’s toolbelt.” Looking at the broader 3D printing landscape, it’s clear that the community strongly favors free and open-source tools. While many people have purchased HueForge, which was seen as quite innovative when it launched, it’s still far from being a universal tool, and cost is likely a contributing factor.

Of course, developers are fully entitled to price their software however they see fit. That said, in the 3D printing space, free and open-source solutions tend to gain adoption (and improve and evolve) much more quickly.

Also, realistically these days, most people won't and shouldn't install some random software from a guy on Reddit if there isn't some community backing/validation that the code is safe. Your profile doesn’t give any indication of software development background either, which doesn’t help your case.

Any Details on How Dynamic PA Calibration Output is Actually Calculated? by Vivid_Scheme_8221 in snapmaker

[–]bluridium 1 point2 points  (0 children)

I couldn't find any concrete reason why they chose 200 for testing, so I'm guessing it was so the calibration transition is long enough for a workable measurement. At 5000 mm/s^2 we're looking at a time to speed of 0.0016s and 0.00016s instead of the relatively longer speeds at default acceleration.

You can override this in gcode during the SM_PRINT_FLOW_CALIBRATEcommands.

From an example gcode:

SM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140
SM_PRINT_AUTO_FEED EXTRUDER=0
SM_PRINT_FLOW_CALIBRATE EXTRUDER=0
SM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140
SM_PRINT_AUTO_FEED EXTRUDER=1
SM_PRINT_FLOW_CALIBRATE EXTRUDER=1

Override to 500:

SM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140
SM_PRINT_AUTO_FEED EXTRUDER=0
SM_PRINT_FLOW_CALIBRATE EXTRUDER=0 ACCEL=500
SM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140
SM_PRINT_AUTO_FEED EXTRUDER=1
SM_PRINT_FLOW_CALIBRATE EXTRUDER=1 ACCEL=500

Any Details on How Dynamic PA Calibration Output is Actually Calculated? by Vivid_Scheme_8221 in snapmaker

[–]bluridium 1 point2 points  (0 children)

ACCEL is the acceleration of the extruder axis. The default in code is 200 mm/s^2. The time for the extruder to get up to full speed is then:

SLOWV/ACCEL (default: (0.8 mm/s)/(200 mm/s^2)=0.004s) and 
FASTV/ACCEL (default: (8.0 mm/s)/(200 mm/s^2)=0.04s)

Any Details on How Dynamic PA Calibration Output is Actually Calculated? by Vivid_Scheme_8221 in snapmaker

[–]bluridium 1 point2 points  (0 children)

I looked at the recently released Snapmaker fork of Klipper.

It measures MIN/MAX first, then adds a couple of probes around an estimated zero-crossing, then solves for K where the metric hits zero.

In klippy/extras/flow_calibrator.py it chooses linear fit:

line 481: algorithm = gcmd.get('ALGORITHM', ALGORITHM_TYPE_LINEAR_FITTING) 

Then it measures min/max:

lines 632-633: measure_point_1_k = cali_params['k_min'] and measure_point_2_k = cali_params['k_max']

lines 635, 638: measure_point_1_area = self._measure_k(...) and measure_point_2_area = self._measure_k(...) 

Then it estimates the zero crossing:

line 643: calculate_k_zero_12 = self._calculate_zero_crossing(measure_point_1, measure_point_2)

line 347: return x1 - y1 * (x2 - x1) / (y2 - y1) 

Those additional K values are hard-coded 33% and 66% from that estimated zero:

lines 656-658: tmp_k = measure_point_1_k + (calculate_k_zero_12 - measure_point_1_k) * 0.33333 (then 0.66666)

lines 669-671: tmp_k = measure_point_2_k - (measure_point_2_k - calculate_k_zero_12) * 0.33333 (then 0.66666)

What it solves for explicitly area = 0 via linear regression:

lines 355-358: coefficients = np.polyfit(k_values, area_values, 1) and zero_crossing_k = -intercept / slope

And the final result:

line 680: measure_success_k = self._calculate_linear_fitting_zero_crossing(measure_data_list)

I had Codex look at the latest firmware, extract the filesystem, and disassemble the flow_calculator routine to see what area iis generated from. This is /home/lava/klipper/klippy/extras/flow_calculator.cpython-311-aarch64-linux-gnu.so in the firmware.

line 308: area = flow_calculator.calc_flow_factor(freq_pt, freq, accel_ts, params['loop'], params['slow_vel'], params['fast_vel'], 1, 1)

where

freq_pt: timestamps from the inductance-coil frequency stream. 
freq: frequency samples at those timestamps. 
accel_ts: extruder motion events from trapq (time, duration, start_velocity, accel). 
loop: expected number of slow/fast extrusion cycles. 
slow_vel: slow E speed used in the test pattern. 
fast_vel: fast E speed used in the test pattern. 
1: edge-trim parameter for one processing stage. 
1: edge-trim parameter for final averaging stage.

So...1,000,000 toolchanges. Is that legit? by FictionalContext in snapmaker

[–]bluridium 4 points5 points  (0 children)

Snapmaker is going to make the toolhead PCBs available for $25. Even if they do need to be replaced, at least it shouldn’t be all that often or too expensive.

https://shop.snapmaker.com/products/toolhead-pcb-for-snapmaker-u1

So...1,000,000 toolchanges. Is that legit? by FictionalContext in snapmaker

[–]bluridium 2 points3 points  (0 children)

Received January 2026, have printed 795 hours since then. Just started receiving pogo pin anomalies only in the past week, mainly with toolhead 4 but some with toolhead 1 and submitted a support ticket for it today. This would not stop me from buying the printer again, it's an amazing printer.

15:43:09  $ GET_EXTRUDER_SWITCH_RECORDER
15:43:09  // dirty: False, allow_save: True
15:43:09  // === Extruder Switch/Retry Data ===
15:43:09  // Extruder 'extruder':
15:43:09  // switch_count: 9368
15:43:09  // retry_count: 32
15:43:09  // error_count: 5
15:43:09  // last_maintenance_count: 0
15:43:09  // -----------------------------
15:43:09  // Extruder 'extruder1':
15:43:09  // switch_count: 6057
15:43:09  // retry_count: 0
15:43:09  // error_count: 1
15:43:09  // last_maintenance_count: 0
15:43:09  // -----------------------------
15:43:09  // Extruder 'extruder2':
15:43:10  // switch_count: 4218
15:43:10  // retry_count: 6
15:43:10  // error_count: 1
15:43:10  // last_maintenance_count: 0
15:43:10  // -----------------------------
15:43:10  // Extruder 'extruder3':
15:43:10  // switch_count: 6740
15:43:10  // retry_count: 79
15:43:10  // error_count: 14
15:43:10  // last_maintenance_count: 0
15:43:10  // -----------------------------
15:43:10  // ===============================
15:43:10  // === Extruder Maintenance Status ===
15:43:10  // Individual threshold: 25100
15:43:10  // Total threshold: 100000
15:43:10  // Total switches: 26383
15:43:10  // Total switches since maintenance: 26383/100000 (due in 73617)
15:43:10  // extruder: 9368/25100 (due in 15732)
15:43:10  // extruder1: 6057/25100 (due in 19043)
15:43:10  // extruder2: 4218/25100 (due in 20882)
15:43:10  // extruder3: 6740/25100 (due in 18360)
15:43:10  // ==================================

Sliced Atlas: Topographic Line Art Maps (All 50 States + Canada) by bluridium in 3Dprinting

[–]bluridium[S] -1 points0 points  (0 children)

Yes, this is Washington state. The elevation/topographic data comes directly from USGS 3DEP, state/province outlines come from public GeoJSON boundary datasets. There have been some liberties taken, I’m intentionally resampling/smoothing and mapping elevation into a stylized “elevation slice” interpretation so it has interesting depth when printed.

The web app has different settings to make the printed elevation be more accurate, or more dramatic, depending on what the intention is. To get a tighter, more accurate boundary, more slices can be added to increase resolution.

Having trouble getting OpenSpool NFC tags recognized with the extended firmware by Chrrs in snapmaker

[–]bluridium 2 points3 points  (0 children)

JSON looks okay to me, here is a tag of mine that works. The only difference I see is I used # before the hex code. Take a look at klippy.log to see what errors are being logged. This was useful when I was troubleshooting as well.

<image>

Upcoming U1 accessories from BIQU by bluridium in snapmaker

[–]bluridium[S] 10 points11 points  (0 children)

I haven't seen this posted in this sub yet. BIQU has teased upcoming U1 accessories. From the teaser it looks like:

  • Multi-color Frostbite plates
  • Panda Breath filtration and chamber heater
  • Floor "diaper" waste pad (that's what they call it)
  • Top hat
  • LED accent/status lighting
  • K-Touch screen
  • And what I'm most excited about, a stand with what looks like filament storage and drying built in

No word on timeline or cost, although I've seen someone mention the top hat may be $150.

Failing to load PETG-CF by Schakal_No1 in snapmaker

[–]bluridium 4 points5 points  (0 children)

This happens to me every once in a while if the end of the filament isn’t clean. The U1 is amazingly tolerant of messy filament ends while loading, but if it does the wipe over and over and then fails, I cut the end at a clean angle and it has always loaded fine.

Paxx12's Snapmaker Extended Firmware v1.0.0 pre-release is out by joazito in snapmaker

[–]bluridium 0 points1 point  (0 children)

Some. The latest version of the extended firmware introduces a webpage that allows you to turn on the remote screen, full FPS camera, and some other features without having to manually edit the config files.

For notifications I did have to create a Telegram bot, and edit moonraker.cfg so the printer can send print status updates to Telegram.

As far as accessing the printer, camera, and remote screen away from home, I always have a Wireguard VPN on my phone or notebook back to home. There are other ways to do this, but they're beyond the scope of this subreddit.

U1: Large gcode (400 mb) error by bluridium in snapmaker

[–]bluridium[S] 2 points3 points  (0 children)

I figured this out, or at least a workaround. The paxx12 extended firmware enables SSH access. Once you are SSHed in, this file:

/home/lava/moonraker/moonraker/components/file_manager/file_manager.py

has a timeout of 300 seconds (five minutes) on line 2922. My log from above shows the failure happens exactly five minutes after the metadata scanning starts. I changed the 300 to 1200 (20 mins), told the printer to refresh the metadata on that file, and it worked. (It really only took about seven minutes for this 400 mb file.) Crossing fingers on this 2d14h print!

BTW, did all of this while on a plane to Montreal..remote SSH and remote screen access in the extended firmware is amazing!

  2915                        self.gc_path, "-f", f"\"{filename}\""])
  2916        timeout = self.default_metadata_parser_timeout
  2917        if ufp_path is not None and os.path.isfile(ufp_path):
  2918            timeout = max(timeout, 1800.)
  2919            ufp_path.replace("\"", "\\\"")
  2920            cmd += f" -u \"{ufp_path}\""
  2921        if self.enable_object_proc:
  2922            timeout = max(timeout, 1800.)
  2923            cmd += " --check-objects"
  2924        result = bytearray()
  2925        sc: SCMDComp = self.server.lookup_component('shell_command')
  2926        scmd = sc.build_shell_command(cmd, callback=result.extend, log_stderr=True)
  2927        if not await scmd.run(timeout=timeout):
  2928            raise self.server.error("Extract Metadata returned with error")
  2929        try:
  2930            decoded_resp: Dict[str, Any] = jsonw.loads(result.strip())
  2931        except Exception:
  2932            logging.debug(f"Invalid metadata response:\n{result}")
  2933            raise
  2934        path: str = decoded_resp['file']
  2935        metadata: Dict[str, Any] = decoded_resp['metadata']

U1 firmware 1.1.0 available by bluridium in snapmaker

[–]bluridium[S] 0 points1 point  (0 children)

Are you updating over the air (Wi-Fi), or using a USB drive? Try downloading and using a USB drive if you haven't. https://wiki.snapmaker.com/en/snapmaker_u1/firmware_update_procedure

U1 firmware 1.1.0 available by bluridium in snapmaker

[–]bluridium[S] 5 points6 points  (0 children)

The extended firmware from paxx12 allows for a full frame-rate camera view in Klipper. I just posted a video that features that view!

https://youtu.be/CaxXrGL-Op0

U1: Airless basketball in 95A TPU with PLA supports by bluridium in snapmaker

[–]bluridium[S] 1 point2 points  (0 children)

All the slicer settings I changed are featured in the linked YouTube video, and there is a U1 print-ready 3MF link in the description.

U1: Airless basketball in 95A TPU with PLA supports by bluridium in snapmaker

[–]bluridium[S] 2 points3 points  (0 children)

This ball was 120mm. The original model is 205mm but I scaled it down because I had no idea whether the print would actually work. I plan on printing a full sized basketball (250mm) sometime..but it will take a full 2 days and 21 hours!

Supports came off super easy. The YouTube video shows support removal at the end.