SkillAgentSearch skills...

OpenSpool

RFID for 3d printer filament

Install / Use

/learn @spuder/OpenSpool

README

<p align=center> <img src="./images/OpenSpoolLogoMedium1.png" width="200"> </p>

OpenSpool

Your filament wants to be free

Discord Reddit


📖 OpenSpool.io

Checkout the official documentation on https://openspool.io 👈


<p align="center"> <img src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExcWxoemp6bTdmNm02c2t5cnF4MGU3M2Znb3d3MWQ1c2E5NnF6YTBkZCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/BmAJiIJ0wcBnsKGBBL/giphy.gif" alt="Centered GIF"> </p>

Adhere NFC stickers on all your filament. Build an ESP32 OpenSpool reader and place it next to your printer. Touching the filament to the reader will automatically update your Bambu Printer filament settings. Almost as seamlessly as if you were using Bambu filament with an AMS.

🖨️ Protocol

| Protocol | Read | Write | Type | | --------- | ------------- | ------------- | ----------------- | | OpenSpool | ✅ | ✅ | NTAG 215/216 | | TigerTag | 🚧 In progress | 🚧 In progress | NTAG 213 | | Bambu | 🚧 In progress | ❌ | MiFare Classic 1k | | OpenTag3D | 🚧 In progress | 🚧 In progress | NTAG 213/215/216 | | Creality | 🗓️ Planned | 🗓️ Planned | MiFare Classic 1k | | PrusaRFID | ❓ | ❓ | ❓ | | Elegoo | 🔍 Researching | 🔍 Researching | ❓ | | Anycubic | 🔍 Researching | 🔍 Researching | ❓ |

🧬 OpenTag3D Protocol

Many 3d printer filament companies are uniting around an open standard called OpenTag3D. It planned to be finalized in early-mid 2025. OpenSpool will support OpenTag formatted tags as soon as it is finalized. See here for more information.

🧬 OpenSpool Protocol

OpenSpool aims to use the simplest possible protocol for RFID tags. All you need is a NTAG215/216

NDEF Record

Example record stored on NFC tag.

type = `application/json`  
payload = 
{
    "protocol": "openspool",
    "version": "1.0",
    "type": "PLA",
    "color_hex": "FFAABB",
    "brand": "Generic",
    "min_temp": "220",
    "max_temp": "240"
}
<p align=center> <img src="./images/phone2.png" width="200"> </p>

Web Preview

Spool information can be seen using your phone.

<p align=center> <img src="./images/NFC2.png" width="200"> </p>
https://openspool.io/tag_info?color_hex=FFAABB&type=PLA&brand=Generic&min_temp=220&max_temp=240&protocol=openspool&version=1.0

🐼 Integrations

Currently, OpenSpool works with Bambu printers over MQTT. Other integrations are planned. Pull Requests welcome

| Integration | Supported | | ------------------- | ------------- | | Bambu | ✅ | | OctoPrint | 🚧 In Progress | | Prusa Connect | 🗓️ Planned | | SpoolMan | 🗓️ Planned | | Klipper / Moonraker | 🗓️ Planned | | Anker | ❔ |

Bambu Bambu X1C printers running 1.08.05.00 or newer must enable LAN Mode and Developer Mode for the OpenSpool reader to work. Additional information on bambu's blog.

All other Bambu Printers and X1C printers running firmware older than 1.08.05.xx do not need to enable Developer Mode.

🔧 Hardware

The OpenSpool schematics will always be free. If you don't want to source the parts yourself, you can buy a kit on tindie.com.

<a href="https://www.tindie.com/stores/spuder/?ref=offsite_badges&utm_source=sellers_spuder&utm_medium=badges&utm_campaign=badge_small"><img src="https://d2ss6ovg47m0r5.cloudfront.net/badges/tindie-smalls.png" alt="I sell on Tindie" width="200" height="55"></a>

Bill of Materials

| Image | Hardware | Link 1 | Link 2 | | - | - | - | - | | <img src="./images/PCB_v3.1.png" alt="" height="200"> | OpenSpool Mini PCB v3.1 * | Gerber Files | | | <img src="./images/OpenSpoolMini.png" alt="" height="200"> | OpenSpool Mini Enclosure (3D Printed) | MakerWorld | | | <img src="./images/wemos-d1minis3.png" alt="" height="200"> | Wemos D1 Mini s3 | | AliExpress | | <img src="./images/pn532-small.png" alt="" height="200"> | PN532 (Small)| Amazon | AliExpress | | <img src="./images/NFC.png" alt="" height="200"> | NTAG 215/216 (13.56Mhz NFC Tags >500 bytes) | Amazon | | | <img src="./images/LED1.png" alt="" height="200"> | WS2812B LED | Amazon | | | <img src="./images/Headers1.png" alt="" height="200"> | 2.54mm Straight Headers | Amazon | | | <img src="./images/Headers2.jpg" alt="" height="200"> | 2.54mm Right-Angle Headers | Amazon | | | <img src="./images/jumper1.png" alt="" height="200"> | Female-Female jumper wire | Amazon | | | <img src="./images/resistor.jpg" alt="" height="200"> | 1206 10k SMD Resistor * | Amazon | | | <img src="./images/mosfet.jpg" alt="" height="200"> | BSS138 MOSFET * | Amazon | |

If you are unable to find a Wemos D1 Mini s3, you can still buy an s2, as it is pin compatable. However, be advised the s2 has less memory and may experience occasional disconnects from the printer.

| Image | Hardware | Link 1 | Link 2 | | ------------------------------------------------------------------- | ----------------------------------- | --------------------------------- | ------------------------------------------------------------------ | | <img src="./images/wemos-d1mini.png" alt="" height="200"> | Wemos D1 Mini S2 (Beware of Fakes!) | Amazon | AliExpress |


It is recommend to assemble OpenSpool using the custom PCB. You can send the Gerber files included in this repository to a PCB fabricator, such as OSH Park.

Without Custom PCB

OpenSpool can be assembled without fabricating the custom PCB. In place of the MOSFET and resistor, you will need the following components:

| Image | Hardware | Link 1 | Link 2 | | - | - | - | - | | <img src="./images/LLC1.png" alt="" height="200"> | 3.3v - 5v Logic Level Converter | Amazon | | | <img src="./images/MiniBreadboard.jpg" alt="" height="200"> | Mini Breadboard | Amazon | |

You can use any breadboard or splicing tool to connect the wires, however the linked mini breadboard is recommended as it is small enough to fit inside the enclosure.

🛠️ Assembly

Once you have all of the parts, you can begin assembly.

With Custom PCB

  1. Solder the following components onto the PCB:
    1. Two 10k resistors
    2. One BSS138 MOSFET
    3. Four sets of 8 straight headers, into the two pairs of columns on the top of the PCB
    4. One set of 8 right-angle headers into the row of vias just below the OpenSpool logo on the BACK side of the PCB
    5. Three right-angle headers in the top-left corner of the PCB
  2. Solder eight right-angle headers onto the top side of the PN532
  3. Solder three straight headers onto the LED. Make sure to solder them onto the side with the "Din" pin
  4. Place the Wemos D1 onto the headers and solder it on. The top of the Wemos D1 should face up, with the USB-C port facing the bottom of the PCB
  5. Use jumper wires to connect both the PN532 and the LED to their respective headers
  6. Flip the toggle switches on the PN532 to enable SPI mode (see image below)
<img src="./images/PN532-4.jpg" width="300">

Without Custom PCB

If you are not using the custom PCB, you will need to connect the wires to each pin manually. Below is the wiring diagram:

<img src="./images/OpenSpoolMiniWiringDiagram.png" width="500">

🤖 Firmware

The recommended method to install firmware is by navigating to openspool.io in Chrome/Edge and using the web based programming tool.

Alternatively the firmware can be installed with make commands as shown below.

OSX/Linux

brew install esphome

git clone https://github.com/spuder/OpenSpool
cd OpenSpool/firmware

Press and hold the D0 button while pressing the reset button on the Wemos D1 Mini.
A new USB serial device will appear.

ls /dev/cu*

Upload firmware and restart

USB_ADDRESS=/dev/cu.usbmodemXXXXX make lolin_s2_mini

or

USB_ADDRESS=/dev/cu.usbmodemXXXXX make lolin_s3_mini

🛜 First Time Configuration

A new Wi-Fi network will appear called OpenSpool, join the network, navigate to 192.168.4.1, insert your Wi-Fi credentials and reboot.

You can then navigate to the web interface at openspool-xxxxxx.local or IP address.

🎛️ Configuration

On first boot, you will need to specify your 3d printer IP Address, Serial Number and LAN Access Code.

Do not put your printer into LAN Only Mode, it is not required.

After changing these 3 settings, you will need to reboot the ESP32. Upon successful connection to the 3d printer, you will observe a checkmark next to MQTT in the web interface.

Factory Reset

Press and hold the D0 button for 10 seconds. This will erase Wi-Fi creden

View on GitHub
GitHub Stars693
CategoryDevelopment
Updated49m ago
Forks33

Languages

C++

Security Score

85/100

Audited on Mar 25, 2026

No findings