2021-07-22 00:40:40 +02:00
|
|
|
# Hall filament width sensor
|
|
|
|
|
2021-12-27 18:41:31 +01:00
|
|
|
This document describes Filament Width Sensor host module. Hardware used for
|
|
|
|
developing this host module is based on two Hall linear sensors (ss49e for
|
|
|
|
example). Sensors in the body are located opposite sides. Principle of operation:
|
|
|
|
two hall sensors work in differential mode, temperature drift same for sensor.
|
|
|
|
Special temperature compensation not needed.
|
2020-02-04 13:15:30 +01:00
|
|
|
|
2021-12-27 18:41:31 +01:00
|
|
|
You can find designs at [Thingiverse](https://www.thingiverse.com/thing:4138933),
|
|
|
|
an assembly video is also available on [Youtube](https://www.youtube.com/watch?v=TDO9tME8vp4)
|
2020-02-04 13:15:30 +01:00
|
|
|
|
2021-12-27 18:41:31 +01:00
|
|
|
To use Hall filament width sensor, read
|
|
|
|
[Config Reference](Config_Reference.md#hall_filament_width_sensor) and
|
|
|
|
[G-Code documentation](G-Codes.md#Hall_Filament_Width_Sensor_Commands).
|
2020-02-04 13:15:30 +01:00
|
|
|
|
|
|
|
|
2021-12-27 18:41:31 +01:00
|
|
|
## How does it work?
|
2020-02-04 13:15:30 +01:00
|
|
|
|
2021-12-27 18:41:31 +01:00
|
|
|
Sensor generates two analog output based on calculated filament width. Sum of
|
|
|
|
output voltage always equals to detected filament width. Host module monitors
|
|
|
|
voltage changes and adjusts extrusion multiplier. I use aux2 connector on
|
|
|
|
ramps-like board analog11 and analog12 pins. You can use different pins and
|
|
|
|
differenr boards.
|
2020-02-04 13:15:30 +01:00
|
|
|
|
|
|
|
## Template for menu variables
|
2021-10-23 21:03:45 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
[menu __main __filament __width_current]
|
|
|
|
type: command
|
|
|
|
enable: {'hall_filament_width_sensor' in printer}
|
|
|
|
name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter}
|
|
|
|
index: 0
|
|
|
|
|
|
|
|
[menu __main __filament __raw_width_current]
|
|
|
|
type: command
|
|
|
|
enable: {'hall_filament_width_sensor' in printer}
|
|
|
|
name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw}
|
|
|
|
index: 1
|
|
|
|
```
|
2020-02-04 13:15:30 +01:00
|
|
|
|
|
|
|
## Calibration procedure
|
2021-10-23 20:35:35 +02:00
|
|
|
|
2021-12-27 18:41:31 +01:00
|
|
|
To get raw sensor value you can use menu item or **QUERY_RAW_FILAMENT_WIDTH**
|
|
|
|
command in terminal.
|
2020-02-04 13:15:30 +01:00
|
|
|
|
2021-10-23 21:03:45 +02:00
|
|
|
1. Insert first calibration rod (1.5 mm size) get first raw sensor value
|
2020-02-04 13:15:30 +01:00
|
|
|
|
2021-10-23 21:03:45 +02:00
|
|
|
2. Insert second calibration rod (2.0 mm size) get second raw sensor value
|
2020-02-04 13:15:30 +01:00
|
|
|
|
2021-10-23 21:03:45 +02:00
|
|
|
3. Save raw sensor values in config parameter `Raw_dia1` and `Raw_dia2`
|
2020-02-04 13:15:30 +01:00
|
|
|
|
|
|
|
## How to enable sensor
|
2021-10-23 20:35:35 +02:00
|
|
|
|
2021-10-23 21:03:45 +02:00
|
|
|
By default, the sensor is disabled at power-on.
|
|
|
|
|
2021-12-27 18:41:31 +01:00
|
|
|
To enable the sensor, issue **ENABLE_FILAMENT_WIDTH_SENSOR** command or
|
|
|
|
set the `enable` parameter to `true.`
|
2020-06-16 19:36:49 +02:00
|
|
|
|
|
|
|
## Logging
|
2021-10-23 20:35:35 +02:00
|
|
|
|
2021-10-23 21:03:45 +02:00
|
|
|
By default, diameter logging is disabled at power-on.
|
|
|
|
|
2021-12-27 18:41:31 +01:00
|
|
|
Issue **ENABLE_FILAMENT_WIDTH_LOG** command to start logging and issue
|
|
|
|
**DISABLE_FILAMENT_WIDTH_LOG** command to stop logging. To enable logging
|
|
|
|
at power-on, set the `logging` parameter to `true`.
|
2021-10-23 21:03:45 +02:00
|
|
|
|
|
|
|
Filament diameter is logged on every measurement interval (10 mm by default).
|