Skip to content

Prepare v1.5.2-paxx12-21 - #567

Merged
paxx12 merged 32 commits into
mainfrom
develop
Aug 2, 2026
Merged

Prepare v1.5.2-paxx12-21#567
paxx12 merged 32 commits into
mainfrom
develop

Conversation

@paxx12

@paxx12 paxx12 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

New Features

Screenshots

Filament Manager — reconciles each channel across Official tag data, User-set filament, the active Spoolman spool, and the raw RFID tag (#581):

Filament Manager UI

Camera settings — resolution and framerate presets in firmware-config (#574):

Camera resolution and framerate settings

📋 Changelog

This release includes the following pull requests:

paxx12 added 4 commits July 5, 2026 17:36
* Update firmware to `1.5.0`

Upstream changelog:

- New Features:
  - Added Top Cover features.
  - Added a setup wizard for first-time Top Cover connection.
  - Prompt users to recalibrate Vibration Compensation after the
    Top Cover is connected.
  - Support adjusting the Top Cover fan speed from the Control page.
  - Support viewing the Top Cover air purifier's total operating
    time and filter replacement guidance under
    `Settings` > `Maintenance` > `Usage Statistics`.
  - Added the `Allow auto-refill with different colors` option for
    Auto-Refill, under `Settings` > `Print Preferences`.
  - When spaghetti or foreign objects are detected, users can now
    upload AI detection data to help improve detection accuracy.
  - Added support for German and Hebrew.
  - Added support for the Snapmaker TPU 90A and Snapmaker PLA Silk
    filament types.
- Bug Fixes:
  - Fixed an issue where unexpected circular icons occasionally
    appeared when configuring the toolhead on the Filament Setup
    page.
  - Fixed an issue where the displayed X/Y/Z axis coordinates on
    the Control page could be inaccurate.
- Improvements:
  - Improved system performance to reduce the occurrence of the
    "Timer too close" error.

Note: Top Cover features require Snapmaker Orca V2.3.5, scheduled
for release on July 8, 2026.

* Update firmware to `1.5.1`

Upstream changelog:

- Fixed an issue where the first layer was overly compressed when
  Heated Bed Leveling was not enabled before printing.
…verlays (#560)

Replaces the special-cased `-devel` suffix with a general
`<firmware>[-<profile>]*` syntax for `PROFILE`. The firmware segment
still selects `overlays/firmware-<firmware>/`, but any number of
`-<profile>` suffixes now each pull in `overlays/profile-<profile>/`,
so profiles can be freely combined (e.g. `extended-devel-qemu`).

Splits the former `overlays/devel/` grab-bag into `overlays/profile-devel/`
(Entware) and `overlays/profile-qemu/` (the QEMU dev environment's eth0
hotplug and virtio-touch hwdb overlays, now as two separate overlays
instead of one). Drops the unused `overlays/staging/` placeholder.

Updates `docs/development.md` for the new syntax and directory layout.
These overlays are freely composable add-ons layered onto a firmware
build, not mutually-exclusive profiles, so `profile-devel/` and
`profile-qemu/` become `addon-devel/` and `addon-qemu/`.

Updates the `Makefile` (`ADDON_NAMES`, `ADDON_LIST`,
`INVALID_ADDON_NAMES`, the `profiles` target renamed to `addons`) and
`docs/development.md` to match. The `PROFILE=<firmware>[-<addon>]*`
build variable keeps its name, since it also carries the firmware
selection, not just the addon suffixes.
Turns the addon overlay category into a dedicated `overlays/mods/`
directory, so personal, unmaintained overlays live under a name that
signals they aren't part of the maintained build, and are visually
distinct from `firmware-*` and other overlay categories.

Adds `docs/mods.md` and `overlays/mods/README.md` documenting the rules
for this space:

- A mod directory should be named after its author's GitHub username
  (not the feature it adds), e.g. `overlays/mods/<username>/`, so mods
  from different people don't collide on a name. `devel` and `qemu` are
  the exceptions, since they're maintained mods used by the project's
  own dev environment rather than personal ones.
- Mods are not maintained by this project; keeping one working against
  the latest firmware is the author's responsibility.
- Mods are not guaranteed to work together, or at all in combination
  with other mods.
- Mods do not ship in public releases; they only exist for people who
  build their own firmware from source with `PROFILE=extended-<mod>`.
- A mod that reaches decent maturity can be promoted into
  `overlays/firmware-extended/` through a normal PR.

Updates the `Makefile` (`MOD_NAMES`, `MOD_LIST`, `INVALID_MOD_NAMES`,
the `addons` target renamed to `mods`) and `docs/development.md` to
match, and migrates the existing `devel` and `qemu` addons into
`overlays/mods/devel/` and `overlays/mods/qemu/`.
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: 9abe129 (merge of a395967 into main)
Duration: 3m 47s

Artifact Size
extended-build 254.38 MB

View workflow run

…x12` (#572)

Relocates the RKNN camera AI detection overlay from the maintained
`overlays/firmware-extended/68-app-camera-ai-mpp` into the personal
`overlays/mods/paxx12/60-camera-ai-mpp` mod directory, since it isn't
part of the maintained build.

The `paxx12-ai` camera option is only meaningful when that mod is
built in, so its references in `firmware-extended` are stripped out:
`S99v4l2-mpp-mipi`'s `paxx12-ai` check, the `extended2.cfg` comment
listing it as a valid option, and the `S99detect-rknn stop` calls in
`15_settings_camera.yaml` (which would otherwise fail on a missing
script when the mod isn't built in). Each is reinstated via
`overlays/mods/paxx12/60-camera-ai-mpp/patches/`, using the same
`patches/` mechanism as other overlays (e.g.
`30-feature-ssh/patches/01-check-ssh-config.patch`), so the maintained
tree carries no knowledge of the personal mod.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: 183173f (merge of 0227b99 into main)
Duration: 2m 53s

Artifact Size
extended-build 215.19 MB

View workflow run

Extends `handle_get_settings` in `firmware-config.py` to skip items
whose `if_cmd` shell condition fails, matching the existing `if_cmd`
behavior already used for `status` sections and `actions`/
`quick_actions` items. This lets a setting be hidden until another
setting has a particular value.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: aeb802a (merge of ff2ffa5 into main)
Duration: 2m 50s

Artifact Size
extended-build 215.19 MB

View workflow run

Exposes `camera-internal-resolution` and `camera-usb-resolution` in
`firmware-config`'s Camera settings, following the same preset-based
pattern already used for `camera-internal`/`camera-usb`/`camera-rtsp`.
Both default to `1080p25` and are left commented out in
`extended2.cfg`, like other optional settings.

Internal camera presets vary only fps, since resolution must stay at
1080p for AI detection and related features to work: `1080p30`,
`1080p25`, `1080p15`, `1080p5`. USB presets vary both resolution and
fps: `1080p30`, `1080p25`, `1080p5`, `720p30`, `720p25`, `720p5`,
`360p30`, `360p25`, `360p5` - all 16:9 to match `aspect_ratio: 16:9`
in the moonraker `webcam` sections.

`S99v4l2-mpp-mipi` and `S99v4l2-mpp-usb` now derive WIDTH/HEIGHT/FPS
for `CMD_CAPTURE` from the selected preset, and pass `--buffers` (3
internal, 2 USB) to it.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: 06f6df1 (merge of 8b5f710 into main)
Duration: 2m 52s

Artifact Size
extended-build 215.19 MB

View workflow run

…576)

`unisrv` performs its firmware-update check over HTTPS with `libcurl`,
issuing a `GET` to `https://id.snapmaker.com/api/device/firmware/latest`.
Adds the `40-feature-upgrade-firmware` overlay, which builds
`libfirmware-imposter.so`, an `LD_PRELOAD` shim that interposes
`curl_easy_perform`: it reads the request URL via
`curl_easy_getinfo(CURLINFO_EFFECTIVE_URL)` and, when it matches the
firmware endpoint and `FW_UPDATE_BLOCK` is set, fails the request
immediately with `CURLE_COULDNT_CONNECT` without touching the network. The
shim only activates inside `unisrv`.

The overlay patches `etc/init.d/S90lmd` (the `lmd` launcher that `execv`s
`unisrv`) to unconditionally preload the shim and set `FW_UPDATE_BLOCK=1`,
so the update check is force-disabled for now with no config toggle. The
injection appends to `LD_PRELOAD` rather than replacing it, and the camera
imposter's branch in `60-app-camera/patches/02-disable-native-camera.patch`
is made additive too, so the two compose when both are enabled.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: c2a0ab4 (merge of 93a1fa3 into main)
Duration: 2m 54s

Artifact Size
extended-build 215.19 MB

View workflow run

@tossil

tossil commented Jul 13, 2026

Copy link
Copy Markdown

After I try to reconfigure SpoolMan, I get the following error.

{"coded": "0003-0522-0000-0007", "oneshot": 0, "msg": "[Errno 2] No such file or directory: '/printer_data/config/variables.cfg'"}
Internal error during connect: [Errno 2] No such file or directory: '/printer_data/config/variables.cfg'

Load ordered hooks from /etc/hooks/{klipper,moonraker,lmd}.d before
service actions. Move LMD firmware-imposter and camera-selection behavior
into lmd hooks, avoiding feature patches to stock init scripts.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: afb88bb (merge of 276a71a into main)
Duration: 6m 29s

Artifact Size
extended-build 215.19 MB

View workflow run

Bumps the pinned Fluidd release in `01-install-fluidd.sh` from `v1.37.1`
to `v1.37.2` and updates the `SHA256` of `fluidd.zip` to match the new
release artifact.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: 59cafce (merge of 12ca761 into main)
Duration: 3m 11s

Artifact Size
extended-build 215.19 MB

View workflow run

Bumps the pinned Mainsail release from `v2.17.0` to `v2.18.2` in
`63-app-mainsail/scripts/01-install-mainsail.sh`, updating the `VERSION`
and the `SHA256` checksum of `mainsail.zip` accordingly.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: c19e9b9 (merge of d7369fb into main)
Duration: 3m 28s

Artifact Size
extended-build 215.31 MB

View workflow run

)

Bumps the pinned OpenRFID checkout in `01-install-openrfid.sh` from
`ddd1609e` to `1a6f605d` ("Align RFID reset timeouts with Snapmaker U1
v1.4.0 firmware"), which shortens the `hard_reset` pulse timings and adds
a settle delay after switching channel GPIOs.

This upstreams the local `02-improve-channel-select.patch`, so that
downstream OpenRFID patch can be dropped once this bump lands.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: ffeed22 (merge of 5f52c61 into main)
Duration: 3m 28s

Artifact Size
extended-build 215.31 MB

View workflow run

Add a self-contained single-page web app served from the printer via
nginx at `/filament/` (overlay `68-app-filament-ui`), linked from the
`firmware-config` dashboard as `Filament Manager`.

The page shows every filament channel and reconciles its configuration
across four sources — the printer's Official tag data, User-set filament,
the active Spoolman spool, and the raw RFID tag — reading `filament_detect`
and `print_task_config` over a Moonraker WebSocket subscription with
automatic reconnect. It offers a User Filament editor, a Spoolman spool
picker/filter, and a tag-mismatch resolver.

A bare UID card (third-party or unprogrammed) reports sentinel defaults —
`RGB_1` reads back as `FFFFFF` and temps/diameter/density come back as
zeros — so only the Card UID is trusted and the derived fields are
suppressed unless the tag actually carries filament data.

Applying detected RFID data pushes it straight into `print_task_config`
via `SET_PRINT_FILAMENT_CONFIG` rather than re-reading the tag, which
would otherwise fan out to a Spoolman card-UID resolve and risk
overwriting the tag data.

Also extends `03-enable-fluidd-pointer-events-for-screen.patch` so the
embedded `/filament/` iframe receives pointer events on the touchscreen.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: 7c6a0c8 (merge of 70726ac into main)
Duration: 3m 2s

Artifact Size
extended-build 215.33 MB

View workflow run

Bridges the printer's RFID filament detection with Spoolman so spools are
recognised and tracked automatically, delivered as overlay
`38-feature-spoollink`.

Once enabled, inserting a spool resolves it against Spoolman and loads its
vendor, material, variant, and colour onto the channel without any manual
step. Resolution is by the tag's hardware UID, so it works with any
RFID-detected spool — including blank or non-programmable tags: assign a
spool to a channel once and its UID resolves on every later scan, with
nothing written to the tag. The active spool is reported back to Spoolman so
remaining weight is tracked while printing, and the last-known filament is
cached locally so a spool still loads when Spoolman is briefly unreachable.

Enablement is driven entirely by the Spoolman host set in `firmware-config`
(**Snapmaker Components > Spoolman Integration**): when a host is configured
the Klipper and Moonraker sides are wired up automatically, and clearing it
tears them down again. `SET_SPOOL_ID LANE=<lane> SPOOL_ID=<id>` binds a
specific Spoolman spool to a lane (and its card), or clears it with
`SPOOL_ID=0`.

Structurally this is a Moonraker component (`components/spoollink.py`) that
does the Spoolman lookups and a thin Klipper `[spoollink]` router that hands
it detected cards and applies the result to `print_task_config`; the card
UID ↔ spool association is stored in Spoolman's `card_uids` custom field. The
wire format, custom fields, and resolution flow are documented in
`docs/spoolman.md` and `docs/design/spoolman.md`.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.1-paxx12-test-pr-567
Build: b0d2ae1 (merge of bad8efb into main)
Duration: 2m 54s

Artifact Size
extended-build 215.33 MB

View workflow run

`make extract` always wrote to `tmp/extracted`, so extracting a new
`FIRMWARE_VERSION` silently clobbered the previous extraction and left
no way to keep two versions side by side for comparison. `EXTRACT_DIR`
is now `tmp/extracted-$(FIRMWARE_VERSION)`, matching the convention
the archived `tmp/extracted-*` directories already follow.

`scripts/dev/save-patch.sh` hardcoded `tmp/extracted`, which would have
made it diff against a stale extraction of a different firmware version
once `make extract` started writing elsewhere. It now derives the same
path from `vars.mk` and fails early if the directory is missing.

`extract_squashfs.sh` also drops `rk-rom.img`, `update.img` and the
`rk-unpacked` images other than `rootfs.img` once `rootfs` is unpacked.
Nothing reads them -- `extract` is an inspection target and the build
path uses `BUILD_DIR` instead -- and they cost ~500M per version.
`rootfs.img` is kept as the pristine reference `save-patch.sh` unpacks
`rootfs.original` from. This takes an extraction from 1.1G to ~600M.
Bumps `PKG_VERSION` and `PKG_SHA256` in the `extended-pkg` definition.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.2-paxx12-test-pr-567
Build: eff5cff (merge of be87811 into main)
Duration: 3m 9s

Artifact Size
extended-build 224.79 MB

View workflow run

@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.2-paxx12-test-pr-567
Build: 4504bbc (merge of 29a2326 into main)
Duration: 3m 13s

Artifact Size
extended-build 224.79 MB

View workflow run

@convicte

convicte commented Jul 25, 2026

Copy link
Copy Markdown

Not sure if this has already been looked into but issue reported #567 (comment) still present in the most recent Build: 4504bbc

@Tom950

Tom950 commented Jul 27, 2026

Copy link
Copy Markdown

Not sure if this has already been looked into but issue reported #567 (comment) still present in the most recent Build: 4504bbc

I had that issue once. I disabled spoolman then reenabled it and it cleared up

@glivrea-beep

Copy link
Copy Markdown

Hi, in the meantime thank you for your fantastic work, I would like to ask when the New Version will be released? If I may allow myself I would like to make a suggestion, why not immediately release the pax version of the new original snapmaker firmware version, and between one release and the other official, implement the extra things. Thanks

@convicte

convicte commented Jul 29, 2026

Copy link
Copy Markdown

Not sure if this has already been looked into but issue reported #567 (comment) still present in the most recent Build: 4504bbc

I had that issue once. I disabled spoolman then reenabled it and it cleared up

Tried the following ways to clear it:

  1. Simple power cycle after the update to v1.5.2-paxx12-21 - didn't work
  2. Update with Spoolman enabled from v1.4 stable branch to v1.5.2-paxx12-21 - then disable Spoolman under this latest pull and reenable again after a reboot - didn't work
  3. Revert to previous version 1.4 stable, disable Spoolman there - power cycle the printer - update and then enable Spoolman under this version v1.5.2-paxx12-21 followed by a power cycle - didn't work
  4. Disable Spoolman under this pool, power cycle - try to boot up with Spoolman and AFC disabled - didn't work

Each time this same error:
image

Let me know if I missed any obvious combinations, but ultimately I feel there is something off here needing some attention before the release.

I guess there is some folder path name error perhaps:
image

@convicte

convicte commented Jul 29, 2026

Copy link
Copy Markdown

I think I found the reason for my issue, which is also pottentially self-inflicted or at least not documented use case.

Inside the /extended/klipper/ folder I've found a file which I believe was a part of an early spoolman integration, before it became a part of the mainline branch.
image
Disabling it, by adding a .bak suffix, when the spoolman is toggled to disabled in the firmware-config allowed me to boot up without an error. After a printer reboot I was able to then enable spoolman on v1.5.2-paxx12-21 from the firmware-config and the printer started up with the seemingly working Spoolman integration.

What is a little strange is that some of the previously present capabilities (when this file was being used in v1.4 branch), such as using CHANGE SPOOL and a few other MACROS built into this file are no longer present in the mainline, but perhaps it's irrelevant.

spoolman_multi_tool.txt
This file attached for consideration if there is anything that should be there in the main-line?

Replaces `docs/rfid_support.md` with `docs/design/rfid.md`, which holds the
reader capability matrix, the community app list, and the OpenRFID setup
instructions. The `Readers` table records what each reader detects
(Snapmaker built-in, OpenRFID, and the wasikuss and baze external readers),
including a `SpoolLink` column for whether a reader reports a tag UID when it
cannot parse the tag contents. External readers are folded into the same table
via a `Hardware` column rather than kept in a separate section.

Splits the OpenSpool payload format and field reference into
`docs/design/openspool.md` so the wire format is documented independently of
the readers that consume it.

Adds an `Apps` section to `docs/spoolman.md` covering apps that implement
SpoolLink (the SpoolLink reference apps, SpoolPainter, SpoolKid, SpoolTagger,
and 3DMRP) with a `Legacy Spools` column for apps that convert older tag links
to the current convention, plus an `External Readers` section describing each
reader's SpoolLink behaviour.

App and reader capabilities were verified against each project's source code
where available. Store links, source links with licences, and donation links
are included so users can find and support each project.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.2-paxx12-test-pr-567
Build: 6045f21 (merge of 8cb0b4e into main)
Duration: 2m 55s

Artifact Size
extended-build 224.84 MB

View workflow run

@paxx12

paxx12 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

@convicte Yes, this will conflict, as it will try to overwrite some aspects of the current spoolman integration. Thanks. I will add this to remarks.

Records the external contributions in this release: `.zip` firmware
upload support in `firmware-config` (@Tareku99), Panda Breath `V1.0.4`
bind support (@plastikman), and the investigation that root-caused the
`cavity_led` PWM camera flicker (@djgringoboy2003).
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.2-paxx12-test-pr-567
Build: cc8bc61 (merge of 46377ab into main)
Duration: 2m 10s

Artifact Size
extended-build 224.84 MB

View workflow run

Snapmaker republished V1.5.2 with a new build: `1.5.2.13_20260722102206`
replaces `1.5.2.12_20260715211532`. The wiki version string and changelog
are unchanged, so only `FIRMWARE_FILE` and `FIRMWARE_SHA256` move.

Upstream changelog:

- Fixed an issue introduced in V1.5.0 that could cause the first layer
  to be overly squished when Heated Bed Leveling was not enabled before
  printing.
- Fixed false nozzle diameter mismatch warnings that could prevent
  prints from starting.
- Fixed an issue where nozzle heating remained on after filament
  loading or unloading.
@github-actions

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.2-paxx12-test-pr-567
Build: 3e829e5 (merge of 5405b8d into main)
Duration: 2m 20s

Artifact Size
extended-build 224.84 MB

View workflow run

@NULUSIOS

Copy link
Copy Markdown

1.5.2 (non-beta) released.

@convicte

convicte commented Jul 30, 2026

Copy link
Copy Markdown

1.5.2 (non-beta) released.
#608 has the latest build included already.
Build: 3e829e5 has it available for testing above

`.modal` had `max-height: 80vh` with no overflow handling, and sits
inside a `position: fixed` overlay that doesn't scroll the page. On
short screens, a long `confirm:` message plus `inputs:` fields (e.g.
Panda Breath's enable flow) could push the inputs and Confirm button
past the modal's box, making them unreachable.

Adds `overflow-y: auto` to `.modal` so it scrolls internally instead.
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.2-paxx12-test-pr-567
Build: ab8251d (merge of aa1156c into main)
Duration: 2m 19s

Artifact Size
extended-build 224.85 MB

View workflow run

* Document Spool Studio and the pre-SpoolLink macro conflict in `docs/spoolman.md`

Adds `GeorgHo/SpoolStudio` to the community apps table now that its
v3 beta supports the SpoolLink UID flow, tested against
`v1.5.2-paxx12-21` (#567).

Also adds a `Known Conflicts` note: a leftover hand-wired Spoolman
Klipper include (e.g. a `spoolman_multi_tool`-style macro file from
before SpoolLink existed) can make Klipper fail to start with a
`variables.cfg` not-found error. Documents the rename/remove
workaround, per the remarks paxx12 promised in #567
(issuecomment-5120004375) after convicte root-caused the conflict.

* Add `Reads` and `Support` columns and update SpoolLink app links in `docs/spoolman.md`

Adds a `Reads` column to the Apps table listing which tag formats
each SpoolLink app can parse (OpenSpool, vendor formats, UID-only
fallback), sourced from each project's own README/release notes.

Updates `paxx12-snapmaker-u1/proof-of-concept-spool-link-apps` links
to the renamed `spool-link-apps` repo, and points the SpoolLink
Android/iOS entries at its `v0.1.0` release assets instead of
build-from-source only.

Links GitHub/Codeberg releases for SpoolTagger and 3DMRP in the
Platform column, and adds a `Support the author` column to the
External Readers table for consistency with the Apps table (neither
reader author has a donation link currently, so both show `—`).
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.2-paxx12-test-pr-567
Build: d5efbfa (merge of e171e96 into main)
Duration: 2m 34s

Artifact Size
extended-build 224.85 MB

View workflow run

…ing correctly in fluidd/mainsail (#614)

* Adding moonraker patches
- Cherrypicking mainline mookraker commit b8b28bc through 5b92e52 for metadata.py file
to bring in the new parsing gcode to support AFC features like displaying number of toolchanges,
weight, etc so AFC print dialog can be used.

* Fixing thumbnail generation so they display correctly in fluidd/mainsail
- Thumbnail generation was changed by snapmaker to show on their screen correctly,
this commit updates the thumbnail generation so they are generated correctly to show
in fluidd/mainsail and is still generates the thumbnails in the correct location to
still show on the screen.
* Adding CAN bus rules to always enable CAN bus upon starup

* Adding documentation for canbus

* Moving canbus to afc mods overlay directory
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.2-paxx12-test-pr-567
Build: f28f9c5 (merge of 4664698 into main)
Duration: 2m 39s

Artifact Size
extended-build 224.85 MB

View workflow run

@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

✅ Build Artifacts

Version: 1.5.2-paxx12-test-pr-567
Build: fd45df6 (merge of 8d97e83 into main)
Duration: 2m 13s

Artifact Size
extended-build 224.85 MB

View workflow run

@paxx12
paxx12 merged commit 2a88932 into main Aug 2, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.