Skip to content

V2 Auto/Manual spool winder, diameter sensor and cooler

Advertising
?
Creation quality: 5.0/5 (1 vote)
Evaluation of members on the printability, utility, level of detail, etc.

  • 10.3k views
  • 17 likes
  • 65 downloads

License
3D design format
STL and ZIP Folder details Close
  • 608ZZ_support_x2.stl
  • FILAMENT_GUIDE_V4.zip
  • LiquidCrystalI2C.zip
  • STEP.zip
  • VARSPEED_V7.zip
  • case_V3.stl
  • case_cover_1602.stl
  • case_cover_TFT_V3.stl
  • clutch_base.stl
  • clutch_cover.stl
  • clutch_exploded_view.stl
  • clutch_nema_support.stl
  • clutch_pinion.stl
  • clutch_rotor.stl
  • cooler_base_V4.stl
  • cooler_half_left_V3.stl
  • cooler_half_right_V3.stl
  • cooler_output_support_V3.stl
  • exploded_view.stl
  • gear.stl
  • lower_roller_support.stl
  • nema_knob.stl
  • nema_roller_support_V4.stl
  • nema_spool_support.stl
  • pinion.stl
  • roller_input_support_V4.stl
  • sensor_body_V4.stl
  • sensor_hall_carrier.stl
  • sensor_lever_V3.stl
  • sensor_output_support_V4.stl
  • spool_adapter_x2.stl
  • spool_support.stl
  • spool_support_nut.stl

Learn more about the formats

Last update 2021-09-28 at 07:07
Publication date 2020-12-26 at 11:50
Design number 251002

3D printer file info

3D model description

*
Once assembled my new FelFil extruder (https://cults3d.com/en/3d-model/tool/felfil-evo-extruder-case) I began to design a cheap and affordable spool winder; I had to design a cooler for extruded filament and a digital sensor for filament diameter.
It's modular, you can configure it at your needs. Only winder, winder and cooler with or without diameter sensor.
You can adjust manually the winder speed, but it can be managed directly from FelFil extruder (or others) speed.
With provided adapter the winder can support almost all spools around.

Among downloaded files you'll find STEP.ZIP with all .step required.

The new V7 version of firmware introduces MANUAL/ AUTO running mode and a filament diameter sensor that warns out if diameter is out of tolerance.
MAN/AUTO
If you choose LCD 1602 display you'll find a toggle switch to select AUTO or MAN.
If you choose TFT display you'll find two buttons on screen to select AUTO or MAN.
MAN mode lets you choose speed via the potentiometer while AUTO mode takes input PWM signal from extruder to automatically adjust winding speed relying on its extrusion speed.
RATIOS
Ratios are based on Felfil's range 0-9; with other extruders I'd advice to keep their output this range, otherwise you have to modify all parameters in section "// ratios:" (good luck!).
Furthermore, now the cooler fan speed is proportional to winding speed, utilizing D8 PWM output.

VARSPEED_V7.ZIP contains all necessary software and libraries; if someone get errors compiling due to an old version of LibCrystalI2C, is present an LIBCRYSTALI2C.ZIP with an updated one

In this V2 version you'll find:
- remixed filament diameter sensor (see Credits section)
- remixed cooler
- new spool clutch (yet to test)

Instructions
If you adopt LCD 1602:
- print case_cover_1602
- In VARSPEED_V7.INO change:
/////////////////////////////////////////////////////////////////////////////////////////////////////
#define LCD_TFT true // set to FALSE for LCD 1602
/////////////////////////////////////////////////////////////////////////////////////////////////////
and lead pins to LCD:
** LCD -> RAMPS**
SDA to I2C 20
SCL to I2C 21
V+ to I2C +
GND to I2C -

If you adopt TFT touchscreen:
- print case_cover_TFT
In order to use this display you've to place the Mega prototype between Mega and RAMPS; this way you can solder wirings to TFT without disturbing Mega board.
Warning If you adopt this solution you'll have to put 40mm fan outside case!

The pins you've to lead to tft are:
** TFT -> PROTOTYPE**
LCD_RST to A4
LCD_CS to A3
LCD_RS to A2
LCD_WR to A1
LCD_RD to A0
LCD_D2 to D2
LCD_D3 to D3
LCD_D4 to D4
LCD_D5 to D5
LCD_D6 to D6
LCD_D7 to D7
LCD_D0 to D8
LCD_D1 to D9
SD_SS to D10
SD_D1 to D11
SD_DO to D12
SD_SCK to D13
GND to GND
5V to 5V
3V3 to 3.3V

Firmware instructions
- to use LCD 1602 change
#define LCD_TFT true // set to FALSE for LCD 1602
to
#define LCD_TFT false // set to FALSE for LCD 1602

  • You can switch from AUTO to manual and viceversa touching for some seconds RED or GREEN button

  • adjustable variables:
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    #define LCD_TFT true // set to FALSE for LCD 1602
    /////////////////////////////////////////////////////////////////////////////////////////////////////
    /* DIAMETER SENSOR */
    #define NUMTEMPS 14 //length of lookup table
    #define smooth 50 //exponential smoothing factor, higher is smoother
    // ADC input, diameter output
    static float lut3[NUMTEMPS][2] = {
    {117, 1.14},
    {117, 1.14},
    {122, 1.65},
    {123, 1.75},
    {124, 1.77},
    {126, 1.82},
    {129, 1.87},
    {131, 1.90},
    {134, 1.94},
    {135, 1.95},
    {137, 1.97},
    {139, 2.00},
    {234, 2.3},
    {234, 2.3},
    };
    You can find your values simply opening Arduino IDE Serial Monitor at 57600
    These are my results, for complete description, please refer to awesome Thomas Sanladerer (https://www.youmagine.com/designs/filament-diameter-sensor#information)'s filament diameter sensor (mine is scaled 50% of original).
    /////////////////////////////////////////////////////////////////////////////////////////////////////
    You can change below values at your needs
    // tolerance checkout

    if (temp < 2.4 & (temp > (diameter + tolerance)) || (temp > 0.83 & temp < (diameter - tolerance))) { //out tolerance
    #if IS_TFT
    OutDiameter(String(temp, 2), RED);
    #endif
    digitalWriteFast(led, HIGH); // alarm led ON
    }
    if (temp <= (diameter + tolerance) && temp >= (diameter - tolerance)) { // in tolerance
    digitalWriteFast(led, LOW); // alarm led OFF
    #if IS_TFT
    OutDiameter(String(temp, 2), DARKGREEN);
    #endif
    }
    if (temp > 1.95) { // too much out of tolerance
    #if IS_TFT
    stopped = OutStopDiam(LCD_TFT, is_manual, "THICK", millis());
    #endif
    }
    if (temp < 1.65) { // too much out of tolerance
    #if IS_TFT
    stopped = OutStopDiam(LCD_TFT, is_manual, "THICK", millis());
    #endif
    }
    /////////////////////////////////////////////////////////////////////////////////////////////////////
    const float diameter = 1.75; // filament diameter
    float tolerance = 0.1; // acceptable tolerance
    const float Rol_diam = 72.2; // roller diameter adjust (roller diam 72.2mm, 1 mt = about 13.84 revolutions)
    const float Rol_revPerMeter = 13.85; // counter adjust (roller diam 72.2mm, 1 mt = 13.846 revolutions)
    float maxlenght = 330.0; // max lenght desired
    float timeoutstop = 30000.0; // how many milliseconds of alarm before stop all

  • if in tolerance, filament diameter is shown in GREEN, otherwise in RED

  • if too much out of tolerance a timeout timer starts, see timeoutstop variable

  • if duration of out of tolerance is over timeoutstop variable value the system halts showing the reason (you can only reset)

  • once reached maxlenght the system halts showing SPOOL FULL (you can only reset)

BOM
General
- n. 1 Arduino Mega2560
- n. 1 Ramps 1.4
- n. 2 stepper driver A4988

For TFT:
- n. 1 2.4" TFT LCD Touch Screen
- n. 1 Arduino Mega prototype board

For LCD 1602:
- n. 1 LCD 1602 I2C
- n. 1 Toggle switch SPDT

Common:
- n. 1 power supply 12VDC 5A
- n. 2 Nema 17 stepper motor
- n. 1 DVD stepper
- n. 1 potentiometer 100K linear
- n. 1 knob
- n. 1 40mm fan ball bearing
- n. 1 radial fan 50mm
- n. 2 Dilwe RC car 1/10 exhaust pipe coupler
- n. 1 shaft coupler 5/8mm- M8 nuts
- n. 2 608ZZ ball bearings
- n. 6 623ZZ ball bearing
- n. 1 panel jack
- n. 1 red flashing LED
- n. 1 resistor 1KOhm 1/4W
- n. 1 screw eyelet
- n. 1 spring OD 16mm x 13mm for clutch
- n. 2 M& nuts
- M3 screws, washers and nuts
- M8 threaded rod
- M8 nuts and washers
- M8 self-locking nuts
- PTFE tube 4mm
- pneumatic connectors 6mm threaded
- n. 1 Hall effect sensor

Filament guide V4
- n. 1 Nema17
- n. 1 T8 coupler
- n. 1 T8 screw 88mm
- n. 2 608Z ball bearing
- n. 1 3mm rod 69mm
- n. 1 T8 screw nut
- n. 1 10mm eyelet
- n. 1 M4x10mm screw

Credits
- Foreverwinter (https://www.thingiverse.com/thing:1241566) for its spool support
- Thomas Sanladerer (https://www.youmagine.com/designs/filament-diameter-sensor#information) whose filament diameter sensor is much much better than mine

Credits
- Foreverwinter (https://www.thingiverse.com/thing:1241566) for its spool support
- Thomas Sanladerer (https://www.youmagine.com/designs/filament-diameter-sensor#information) whose filament diameter sensor is much much better than mine

3D printing settings

Layer 0.20mm
Infill 100%

Advertising


Issue with this design? Report a problem.

Would you like to support Cults?

You like Cults and you want to help us continue the adventure independently? Please note that we are a small team of 3 people, therefore it is very simple to support us to maintain the activity and create future developments. Here are 4 solutions accessible to all:

  • ADVERTISING: Disable your banner blocker (AdBlock, …) and click on our banner ads.

  • AFFILIATION: Make your purchases online by clicking on our affiliate links here Amazon.

  • DONATE: If you want, you can make a donation via Ko-Fi πŸ’œ.

  • WORD OF MOUTH: Invite your friends to come, discover the platform and the magnificent 3D files shared by the community!


Sharing and downloading on Cults3D guarantees that designs remain in makers community hands! And not in the hands of the 3D printing or software giants who own the competing platforms and exploit the designs for their own commercial interests.

Cults3D is an independent, self-financed site that is not accountable to any investor or brand. Almost all of the site's revenues are paid back to the platform's makers. The content published on the site serves only the interests of its authors and not those of 3D printer brands who also wish to control the 3D modeling market.

100% secure payment by credit card, PayPal, Apple Pay, Google Pay, etc.
View all payment options.