Advance warning
This is a bit fiddly, as I got it working to my satisfaction but haven't really finessed it to be easy for someone else to get going. That said, if you have a little electronics and tinkering skills, it should be OK. Any issues, start a discussion and I'll try to help!
Assumptions
- All your empty reels are the same weight
- All your filament is near the same density as mine (PLA @ 1.24 grams/cubic centimetre)
- Your filament is 1.75mm diameter
- The OLED display is at I2C address 0x3c (also referred to as 0x78)
- Access to a kitchen scale that can measure with 5 gram or better resolution (or you can convert to grams)
If the above is not true, you'll need to adjust/extend the source code and compile your own version. I can provide some pointers on how to modify to suit your setup, if needed.
The code is here on GitHub. Although it is for VSCode+PlatformIO, it should be fairly easy to get it going with the Arduino IDE.
Things to print
No special settings are needed, but you can increase the infill or wall count on the Stand if you like.
One of each of these:
- Stand
- StandCover
- EndCover
- ReelHolder
Things to buy
- 5kg load cell and HX711 ADC module (AliExpress)
- Miscellaneous screws and T-Nuts
- 2 * M5x30 (load cell to main stand)
- 2 * M4x20 (load cell to reel holder)
- 2 * M2x4 (Secure End Cover and display to ReelHolder
- 2 * M5x10? (holds base to frame)
- 2 * M5 T-Nuts
- 2 * 608ZZ “Skateboard bearings” (22mm x 8mm x 7mm) (eBay)
- Arduino Nano (AliExpress)
- 0.96" OLED Display (I2C/IIC, SSD1306), in your preferred display colour (AliExpress)
- Thin wire for connection between the Nano, HX711 and OLED display. I use 30AWG "Kynar" wire-wrap wire.
Preparation
- Read through all the instructions below to see if they make sense to you. If not, send me a message or start a discussion here.
- Unzip the ZIP file to get the firmware HEX file
- Program the Arduino Nano with the ReelHolderFirmware.hex file
- Or, message me to encourage me to figure out how to put the code onto GitHub so you can build it yourself
- Make sure you can talk to the Nano via the USB serial port
- Figure out how to get a 5V supply to the Nano once it is all assembled, as you won't be able to power it via a USB cable
- Pre-solder wires onto the OLED display
Assemble (Phase 1)
- Use the M5 and M4 screws to secure the load cell to the ReelHolder and Stand
- EndCover and four M2 screws in to secure the OLED display in place
- Guide the wires from the OLED and Load Cell to the Arduino + HX711 board
Soldering
Do this once the wires are all in their final place (don't melt the plastic!)
- 5V Supply for the Nano
- Power and Data from the Nano board to the OLED display
- SDA to Nano A4
- SCL to Nano A5
- Note these are “A” pins, not the “D” ones
- Power and data from the Nano to the HX711 board
- DOUT to Nano D2
- SCK to Nano D3
- Load cell excitation and signal between the HX711 and load cell
Assembly (Phase 2)
- Put on the two bearings
- (at this point, everything supported/weighed by the load cell should be assembled)
- Leaving the Nano and HX711 “dangling”, mount securely to the T-Slot frame, or figure out how to hold it while doing the calibration steps…
One-time Calibration and Setup
- Using the USB-Serial feature of the Nano, connect your PC to its COM port
- Press “?" to get some hints of the commands available
- Ensure there is no additional weight on the ReelHolder, apart from the display, screws, and bearings
- Press ‘z’ to Zero the scale
- Weigh full reel in grams, including the labels and reel itself
- Put the full reel on the ReelHolder
- Type the weight of the reel in grams, then press “c” to calibrate the conversion factor for the load cell at that weight. Integer (no decimal point) values only.
- e.g. If your full reel was 1445 grams, then you'd type “1445c” (no enter required)
- A partially full reel is fine, but more is better for accuracy
- Weigh an empty reel in grams
- Type the weight of the empty reel in grams, then press “r”
- e.g. If your empty reel was 250 grams, you'd type “250r”
- Press ‘s’ to save the calibration and empty reel weights to permanent memory (EEPROM)
- Repeat one/both of the above in the future, if they change
Testing
- An empty reel should read “0 m” (or thereabouts)
- No reel will read negative distance (mine is about “-79 m”)
- A 1kg reel will read about “330 m”
Assembly (Phase 3 - final phase)
- Coax the nano and HX711 into their nooks
- Push on the StandCover
- Remove USB cable and wire the 5V supply to what you figured out earlier
Notes
- While printing the weight will vary by a few metres as the filament is tugged from the spool.
- If I'm doing a print that is going to come close to using up the displayed length, I allow 2-3 metres of “just in case”, as the tension between the spool and extruder does affect the reading – even when the printer is idle.
The author marked this model as their own original creation.