Skip to content

Latest commit

Β 

History

315 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SpoolmanScale

One Scale to rule them all.

Discord ko-fi

Important

SpoolmanScale is a front end, not a database. It needs one of three filament managers running on your network - Spoolman, FilaMan or BamBuddy. That is where your spools live; the scale reads them, weighs them and writes the result back.

No server yet? Any always-on machine will do, a Raspberry Pi included. SpoolmanScale Pro sets one up for you almost entirely through a web UI.

SpoolmanScale is an open-source ESP32-based filament scale with an NFC reader. It works with Spoolman, FilaMan and BamBuddy, and you can switch between them at any time.

Yes, another filament scale – but hear me out, this one might actually earn a spot next to your printer. πŸ˜„

Place a spool on the scale – it reads the NFC tag, pulls the spool data from your filament manager, and lets you update the remaining weight, log a drying date, set a location or archive empty spools. All from a 3.5" touchscreen. No phone needed.

And it writes tags, too. Link a spool to a blank NTAG and the scale puts the spool data on it, so the tag is readable by your printer and by every other tool that speaks OpenSpool.


Download

Firmware is available via the Web Flasher or as a direct download from Releases. Already have a scale? Update it right on the device: Settings β†’ System β†’ Firmware Update β†’ Update via GitHub.

Latest Release

Documentation

Over 100 people are running a SpoolmanScale, and it is tested daily against a Spoolman library of 260+ active spools. If you have an even larger collection, I'd love to hear how it holds up. Questions or trouble? Join the Discord, happy to help.


SpoolmanScale Demo


Features

  • 🏷️ Bambu Lab NFC tags – place a spool on the scale and SpoolmanScale reads it instantly: material, color, vendor, remaining weight and drying history appear automatically. No tapping required
  • πŸ”— Bambu Lab spool linking – SpoolmanScale finds the matching entry automatically by filtering by material type, subtype (e.g. HF, CF, Matte) and color similarity, so you only see spools that actually match your tag
  • πŸ”— Third-party spool linking – place any NTAG sticker β†’ select vendor and material β†’ pick from a filtered list β†’ linked and done
  • ✍️ Writing NFC tags – the scale does not just read tags, it writes them, with every backend and without help from the server. Link a spool and the data goes on the tag right away, silently or after a prompt, whichever you prefer. Notices later on when tag and inventory drift apart and offers to put it right. Four formats: OpenSpool, FilaMan, Anycubic ACE, or erase
  • πŸ“‹ Copy spool – running low? Place a new spool on the scale, tap Copy Spool, and SpoolmanScale creates an identical entry, tags the NFC chip and logs the current weight, all in one step
  • βš–οΈ Live weight (NAU7802) – moving average filter, TARE, live diff against the remaining weight in your database
  • πŸ”€ Three backends – Spoolman, FilaMan or BamBuddy, switchable in the settings. Update remaining weight, set initial and spool weight (per spool / filament / vendor), log drying dates, set locations, archive and restore spools. BamBuddy can keep its own inventory or run against a Spoolman server behind it - the scale works out which and writes to the right one
  • πŸ“ Locations – assign and view storage locations on the scale, with an optional popup when you take a spool off
  • 🌑️ Drying reminder – color-coded last_dried date showing whether a spool needs drying, with thresholds per material or set manually
  • πŸ“± Touchscreen UI (LVGL 8.3, 480Γ—320) – settings menu, confirmation popups, sleep/wake
  • βš™οΈ On-device setup – scan Wi-Fi networks, enter credentials and server address directly on the touchscreen
  • 🌐 Web interface – rebuilt from the ground up as separate pages, in both languages, as usable on a phone as on a desktop. Update the firmware straight from GitHub with the release notes in front of you, switch backends, write tags, read and follow the log. Areas you would rather not expose can be switched off individually
  • 🩺 Self-diagnosis – when something is wrong, the scale says so in plain words instead of a four-character code: a chip that does not answer, an NFC reader that answers but does nothing, a missing calibration, a load cell wired the wrong way round, readings too unsteady to trust. Tap the message and it explains what to do, with a button that takes you there
  • πŸ”„ Firmware updates (OTA) – check and flash directly on the device or from the browser. No PC, no cables. Or upload a firmware file yourself
  • ⚑ Web Flasher – first-time flash via browser over USB. All you need is a browser and a USB cable: niko11111.github.io/SpoolmanScale
  • 🌍 DE / EN language support – chosen on first boot, switchable in settings, and it applies to the web interface as well
  • πŸŒ™ Power management – display dimming, deep sleep, and the display wakes on its own when you put something on the pad
  • πŸͺ΅ SD card logging – insert a microSD card and SpoolmanScale logs what it does. Read it in the browser, live if you want, no disassembly needed
  • ⏰ Small things that add up – timestamps in your own time zone, and the scale answers to spoolmanscale.local so there is no IP address to remember

Hardware

Component Model Link
MCU + Display WT32-SC01 Plus (ESP32-S3, 480Γ—320, ST7796) AliExpress
Debug Board (not necessary) ZXACC-ESPDB AliExpress
NFC Reader PN532 AliExpress
Scale ADC NAU7802 (Adafruit recommended) AliExpress
Load Cell YZC-133 2 kg beam cell (5 kg works too) AliExpress
USB-C Panel Mount 90Β° 30 cm, Left/Right Angled, full USB-C PD + data AliExpress
Connector Cables STEMMA QT / JST cables AliExpress
Connector Cables (easier assembly) Micro JST 1.0 SH 5-pin Amazon

The 3D printable enclosure is available on MakerWorld: πŸ‘‰ makerworld.com/@FormFollowsF

MakerWorld

πŸ“– A detailed build guide, wiring diagrams and setup instructions are available in the SpoolmanScale Documentation

Documentation

Getting Started

1. Order parts & print the enclosure Order from the hardware list and print the enclosure while you wait for shipping.

2. Flash the board first Before assembling, flash via the Web Flasher. Verify it works before wiring.

3. Wire & assemble Full wiring tables and assembly tips: SpoolmanScale Documentation

4. Calibrate Settings β†’ Scale β†’ Calibration. Done.


Server Setup

On first boot the scale asks which filament manager you use and then only shows the steps that apply.

Spoolman

SpoolmanScale uses Spoolman's extra fields to store NFC tag UIDs and drying dates. Both are created automatically during first-time setup:

Field Type Used for
tag Text NFC tag UID (Bambu UUID or NTAG UID)
last_dried DateTime Last drying date

Which field holds the UID is your choice: tag is the default, nfc_id is what FilaMan and nfc2klipper use, and card_uids is SpoolLink's list format for the Snapmaker U1. Reading always covers all three, so switching never hides a spool.

Coming with Spoolman 0.27.0: Spoolman is getting tag handling of its own, where tags belong to the spool instead of sitting in an extra field, a spool can carry several, and a scan at the scale can open that spool in your browser. It is not released there yet - SpoolmanScale supports it from day one.

Recommended add-on: OpenSpoolMan OpenSpoolMan connects to your Bambu printer via MQTT and reads which filament is loaded in which AMS tray. It uses the same extra.tag field, so if your spools are already linked in SpoolmanScale, OpenSpoolMan will recognize them instantly.

FilaMan

No extra fields needed. Tags are written to FilaMan's native rfid_uid field, and spools you imported from Spoolman are recognised by their old tag and migrated across on the first scan.

FilaMan needs an API key and a device token. Both are entered through the scale's built-in webserver, same page as the firmware update. The scale has a button that takes you straight there.

An API key inherits the permissions of the user who created it. If you would rather not hand the scale an admin key, create a separate user with a limited role. The exact list of permissions SpoolmanScale needs is behind the ℹ️ button on that page.

FilaMan reaches furthest into the tag features. It can send the scale a write job together with the tag contents, which you confirm on the device, and it can ask the scale to read a tag and take the data into its inventory. Lift a freshly weighed spool off the pad and the scale offers to hand it to FilaMan for the next printer that loads a tray, so you do not have to assign it by hand.

Because both write to the same field, a spool you link to an NTAG here is recognised by FilaMan's own smartphone app as well - scan the sticker with your phone and the spool comes up.

Recommended add-on: Bambu Usage Tracker For anyone running Bambu spools: it counts filament as it is printed and books it against the right spool, so your inventory stays right without weighing after every job.

BamBuddy

BamBuddy needs an API key, entered on the same page as the FilaMan credentials.

It can keep its inventory in its own database or use a Spoolman server behind it. The scale detects which of the two it is talking to and says so in the status bar, because a few things differ: with Spoolman behind it, tare values and the drying date are stored the Spoolman way.

One thing only BamBuddy can do: create a spool straight from a Bambu tag. Material, brand, colour and temperatures come off the tag, and the new spool is linked to it in the same step.


Roadmap

In progress

  • πŸ–¨οΈ FilaMan printers & AMS – handing a weighed spool to the next printer that loads a tray is in. Two plugins are on their way to build on it: one that shows what sits in which AMS slot, and the Bambu Usage Tracker, which counts filament as it is printed so your inventory stays right without weighing after every job
  • 🏷️ Spoolman's own tag handling – arriving with Spoolman 0.27.0, supported here from day one. Tags belong to the spool, several per spool are normal, and the scale registers as a reader so a scan can open the spool in your browser
  • 🧩 More of BamBuddy – the groundwork is done and everything you can do with Spoolman you can do here. What else belongs on a scale is what we are working out now, and requests are welcome
  • 🧹 First-time setup polish – language and time zone have their own welcome screen; Wi-Fi and the server address still borrow the settings screens

Also in the works

  • πŸ–₯️ SpoolmanScale Pro – not yet a Spoolman or FilaMan user? No Raspberry Pi at home, and the words "terminal", "SSH", "Docker" and "YAML" make you want to close the tab? That's exactly what SpoolmanScale Pro is for. A Pi Zero 2W inside the same enclosure, or any other Pi outside, running Spoolman or FilaMan locally, set up almost entirely through a web UI. Only a few commands to get the Pi up and running, that's it. Sneak peek: github.com/Niko11111/SpoolmanScalePro-Pi

  • πŸ“¦ SpoolmanScale Pro, pre-assembled – want all of that, but don't know how to solder and just want something that works straight out of the box? I'm considering a small production run of fully assembled, ready-to-use SpoolmanScale Pro units. No soldering, no setup headaches, just plug it in. Nothing is decided yet, a lot still needs to be figured out, and it all depends on interest. Would a finished, assembled unit be worth it to you? Let me know in the Discord or drop a comment on MakerWorld!

Community requests & ideas

  • More ideas welcome – open an issue or join the Discord!

Support This Project

A lot of my free time – time I could have spent with my family – has gone into building SpoolmanScale. If you enjoy using it, please help spread the word:

  • ⭐ Star this repo on GitHub – it helps more people discover the project
  • ⭐⭐⭐⭐⭐ Rate 5 stars & boost on MakerWorld – every like, rating and boost helps: makerworld.com/@FormFollowsF
  • β˜• Support on Ko-fi – even a single euro makes a difference: ko-fi.com/formfollowsfunction
  • πŸ’¬ Join the Discord – share your build, report issues, or just say hi: discord.gg/xadskCrPFu

Have a feature request? Post it in the Discord or open an issue – I read every one of them and do my best to make it happen.

Thank you for your support. It means a lot. πŸ™


Credits

@Simon-CR contributed large parts of this release: the web interface rebuilt as separate pages with access gates, writing NFC tags from the browser, both halves of FilaMan's device tag protocol, and the firmware page that checks GitHub for updates and says what is running. Plenty of ideas for what comes next, too - thank you.

The codebase was refactored with major help from @DanielNagy, which made the multi-backend architecture possible in the first place.

Inspiration


Not affiliated with Spoolman, FilaMan or BamBuddy. Uses their REST APIs.

About

SpoolmanScale is an open-source ESP32-based filament scale with NFC reader, integrating directly with Spoolman. Hardware complete, firmware in Public-Beta.

Resources

Stars

61 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages