25 static_assert(
toolCount < 15,
"Up to 14 valid slots (+1 parking) is supported in EEPROM storage");
28 static constexpr
const uint16_t fsensorDebounceMs = 2;
39 static constexpr
const uint16_t findaDebounceMs = 100;
44 static constexpr
const uint16_t buttonADCLimits[
buttonCount][2] = { { 0, 50 }, { 80, 100 }, { 160, 180 } };
104 static constexpr
U_mm cutLength = 8.0_mm;
106 static constexpr
U_mm fsensorToNozzleAvoidGrind = 5.0_mm;
117 .stepsPerUnit = (200 * 8 / 19.147274),
125 .accel = 800.0_mm_s2,
128 static constexpr U_mm_s pulleyUnloadFeedrate = 95._mm_s;
132 static constexpr
U_mm_s pulleySlowFeedrate = 20._mm_s;
142 .stepsPerUnit = (200 * 8 / 8.),
152 .accel = 200.0_mm_s2,
155 static constexpr U_mm SelectorSlotDistance = 14.0_mm;
181 static constexpr U_mm_s selectorFeedrate = 45._mm_s;
182 static constexpr U_mm_s selectorHomingFeedrate = 30._mm_s;
192 .stepsPerUnit = (200 * 16 / 360.),
200 .accel = 500.0_deg_s2,
203 static constexpr U_deg IdlerSlotDistance = 40.0_deg;
227 static constexpr U_deg idlerParkPositionDelta = -IdlerSlotDistance + 5.0_deg / 2;
229 static constexpr U_deg_s idlerFeedrate = 300._deg_s;
230 static constexpr U_deg_s idlerHomingFeedrate = 265._deg_s;
241 static constexpr uint32_t tmc2130_PWM_AMPL = 240;
242 static_assert(tmc2130_PWM_AMPL <= 255,
"tmc2130_PWM_AMPL out of range");
244 static constexpr uint32_t tmc2130_PWM_GRAD = 4;
245 static_assert(tmc2130_PWM_GRAD <= 255,
"tmc2130_PWM_GRAD out of range");
247 static constexpr uint32_t tmc2130_PWM_FREQ = 0;
248 static_assert(tmc2130_PWM_FREQ <= 3,
"tmc2130_PWM_GRAD out of range");
250 static constexpr uint32_t tmc2130_PWM_AUTOSCALE = 1;
251 static_assert(tmc2130_PWM_AUTOSCALE <= 1,
"tmc2130_PWM_AUTOSCALE out of range");
259 static_assert(tmc2130_PWM_AUTOSCALE <= 3,
"tmc2130_freewheel out of range");
Define Debug mode to add additional serial output.
Definition: axis.h:6
static constexpr U_deg idlerSlotPositions[toolCount+1]
Idler offset from home to slots.
Definition: config.h:208
static constexpr const uint16_t VCCADCThreshold
Definition: config.h:50
static constexpr U_mm selectorSlotPositions[toolCount+1]
Selector offset from home min to slot 0.
Definition: config.h:162
static constexpr AxisConfig selector
End: Pulley axis configuration.
Definition: config.h:136
static constexpr uint32_t tmc2130_coolStepThreshold
End: Idler configuration.
Definition: config.h:238
static constexpr IdlerLimits idlerLimits
Idler motion limits.
Definition: config.h:197
static constexpr const uint16_t buttonADCMaxValue
used in unit tests
Definition: config.h:45
static constexpr U_deg IdlerOffsetFromHome
Idler distance between two slots.
Definition: config.h:204
static constexpr U_mm SelectorOffsetFromMax
Selector distance between two slots.
Definition: config.h:156
static constexpr U_mm maximumBowdenLength
~341.0_mm - Minimum bowden length.
Definition: config.h:97
static constexpr U_mm cuttingEdgeToFinda
Cutting retraction distance (filament should be flush with outlet)
Definition: config.h:88
static constexpr U_mm findaToCoupler
Cutting edge to Midpoint of FINDA should be 22.85_mm.
Definition: config.h:91
static constexpr U_mm_s pulleyLoadFeedrate
Definition: config.h:131
static constexpr uint8_t blockBufferSize
Size for the motion planner block buffer size.
Definition: config.h:68
static constexpr U_mm minimumBowdenLength
~360.0_mm - Default Bowden length.
Definition: config.h:96
static constexpr U_mm fsensorUnloadCheckDistance
Check the state of FSensor after this amount of filament got (hopefully) pulled out while unloading.
Definition: config.h:108
static constexpr SelectorLimits selectorLimits
Selector motion limits.
Definition: config.h:149
static constexpr U_mm couplerToBowden
FINDA Coupler side to coupler screw.
Definition: config.h:92
static constexpr const uint16_t buttonsDebounceMs
tuned with a pack of highly trained monkeys :)
Definition: config.h:43
static constexpr uint16_t maxStepFrequency
Max step frequency 40KHz.
Definition: config.h:62
static constexpr U_deg idlerIntermediateSlotPositions[toolCount+1]
Intermediate positions for Idler's slots: 0-4 are the real ones, the 5th index is the idle position.
Definition: config.h:218
static constexpr const uint8_t VCCADCReadCnt
Number of ADC reads to perform, only the last one being used.
Definition: config.h:54
static constexpr U_mm maximumFeedToFinda
allow for some safety margin to load to FINDA
Definition: config.h:102
static constexpr AxisConfig idler
End: Selector configuration.
Definition: config.h:186
static constexpr U_mm feedToFinda
~1000.0_mm - Maximum bowden length.
Definition: config.h:101
static constexpr U_mm filamentMinLoadedToMMU
Definition: config.h:85
static constexpr U_mm cuttingEdgeRetract
Eject should ignore FilamentMinLoadedToMMU and retract.
Definition: config.h:87
static constexpr uint16_t minStepRate
Minimum stepping rate 120Hz.
Definition: config.h:65
static constexpr uint8_t dropSegments
Do not plan moves equal or shorter than the requested steps.
Definition: config.h:59
static constexpr U_mm defaultBowdenLength
FINDA Coupler screw to bowden mmu side (in coupling).
Definition: config.h:95
static constexpr uint16_t ledBlinkPeriodMs
Definition: config.h:35
static constexpr U_mm pulleyToCuttingEdge
Distances.
Definition: config.h:82
static constexpr PulleyLimits pulleyLimits
Pulley motion limits.
Definition: config.h:122
static constexpr U_mm SelectorOffsetFromMin
Selector offset from home max to slot 0.
Definition: config.h:157
static constexpr U_mm cuttingEdgeToFindaMidpoint
FINDA trigger distance +1.0_mm tolerance.
Definition: config.h:90
static constexpr U_mm ejectFromCuttingEdge
Limit of retraction.
Definition: config.h:86
static constexpr uint8_t stepTimerFrequencyDivider
Step timer frequency divider (F = F_CPU / divider)
Definition: config.h:71
static constexpr AxisConfig pulley
Begin: Pulley axis configuration.
Definition: config.h:111
static constexpr U_mm findaTriggerDistance
Cutting edge to FINDA MMU side -1mm tolerance should be ~18.5. FINDA shouldn't trigger here.
Definition: config.h:89
static constexpr uint8_t feedToBondtechMaxRetries
Max retries of FeedToBondtech used in LoadFilament.
Definition: config.h:79
static constexpr uint8_t selectorCutIRun
660mA
Definition: config.h:146
static constexpr const uint8_t VCCADCIndex
ADC index of scaled VCC input.
Definition: config.h:49
static constexpr const uint8_t buttonsADCIndex
ADC index of buttons input.
Definition: config.h:46
static constexpr uint32_t tmc2130_freewheel
Definition: config.h:258
static constexpr U_mm fsensorToNozzle
~20mm from MK4's filament sensor through extruder gears into nozzle
Definition: config.h:105
static constexpr uint16_t stepTimerQuantum
Definition: config.h:76
static constexpr const uint8_t toolCount
Definition: config.h:24
static constexpr U_mm pulleyHelperMove
Helper move for Load/Unload error states - when the MMU should slowly move the filament a bit.
Definition: config.h:103
static constexpr const uint8_t buttonCount
number of buttons currently supported
Definition: config.h:42
Axis configuration data.
Definition: axis.h:24
bool dirOn
direction ON state (for inversion)
Definition: axis.h:25
Phisical limits for an axis.
Definition: axis.h:47
Unit< long double, B, Lenght > lenght
Longest move that can be performed by the axis.
Definition: axis.h:49
Generic unit type for compile-time conformability testing.
Definition: unit.h:42