Marlin 2 bugfix & Filament Durchmesser 29. March 2020 04:43 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
In file included from f:\temp\arduino_build_880531\sketch\src\hal\hal_avr\hal.h:21:0, from f:\temp\arduino_build_880531\sketch\src\hal\hal.h:26, from f:\temp\arduino_build_880531\sketch\src\inc\marlinconfig.h:30, from f:\temp\arduino_build_880531\sketch\src\module\thermistor/thermistors.h:24, from f:\temp\arduino_build_880531\sketch\src\module\temperature.h:28, from f:\temp\arduino_build_880531\sketch\src\module\temperature.cpp:27: f:\temp\arduino_build_880531\sketch\src\module\temperature.cpp: In member function 'void Temperature::init()': f:\temp\arduino_build_880531\sketch\src\hal\shared\marduino.h:48:34: warning: left shift count >= width of type [-Wshift-count-overflow] #define SBI(A,B ) (A |= (1 << (B ))) ^ f:\temp\arduino_build_880531\sketch\src\hal\hal_avr\hal.h:363:34: note: in expansion of macro 'SBI' #define HAL_ANALOG_SELECT(ind) SBI(DIDR0, ind); ^~~ f:\temp\arduino_build_880531\sketch\src\module\temperature.cpp:1828:5: note: in expansion of macro 'HAL_ANALOG_SELECT' HAL_ANALOG_SELECT(FILWIDTH_PIN); ^~~~~~~~~~~~~~~~~
Re: Marlin 2 bugfix & Filament Durchmesser 29. March 2020 06:54 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Folgende zusätzliche Anpassungen habe ich in Marlin gemacht um mit Sensor kompilieren zu können : (pins_MELZI_CREALITY.h) #if ENABLED(FILAMENT_WIDTH_SENSOR)Zur Compilerwarnung siehe hier: [arduino.stackexchange.com]#undef FILWIDTH_PIN#define FILWIDTH_PIN 29 #endif
Re: Marlin 2 bugfix & Filament Durchmesser 29. March 2020 08:32 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
#define FILAMENT_WIDTH_SENSOR #if ENABLED(FILAMENT_WIDTH_SENSOR) #define FILAMENT_SENSOR_EXTRUDER_NUM 0 // Index of the extruder that has the filament sensor. :[0,1,2,3,4] #define MEASUREMENT_DELAY_CM 14 // (cm) The distance from the filament sensor to the melting chamber #define FILWIDTH_ERROR_MARGIN 1.0 // (mm) If a measurement differs too much from nominal width ignore it #define MAX_MEASUREMENT_DELAY 20 // (bytes) Buffer size for stored measurements (1 byte per cm). Must be larger than MEASUREMENT_DELAY_CM. #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA // Set measured to nominal initially // Display filament width on the LCD status line. Status messages will expire after 5 seconds. #define FILAMENT_LCD_DISPLAY #endif
Re: Marlin 2 bugfix & Filament Durchmesser 29. March 2020 14:17 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
359 // ADC
360 #ifdef DIDR2
361 #define HAL_ANALOG_SELECT(ind) do{ if (ind < 8) SBI(DIDR0, ind); else SBI(DIDR2, ind & 0x07); }while(0)
362 #else
363 #define HAL_ANALOG_SELECT(ind) SBI(DIDR0, ind);
364 #endif
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 08:04 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 08:38 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 09:06 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
PIN: 29 Port: A2 Input = 0
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 10:25 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 12:49 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
PIN: 25 Port: A6 (A 6) FILWIDTH_PIN Analog in = 984 . TEMP_BED_PIN Analog in = 984
#if ENABLED(FILAMENT_WIDTH_SENSOR) #define FILWIDTH_PIN MISO_PIN #endif
PIN: 29 Port: A2 (A 2) Analog in = 977 Input = 1 PIN: 29 Port: A2 (A 2) Analog in = 727 Input = 1 PIN: 29 Port: A2 (A 2) Analog in = 543 Input = 1 PIN: 29 Port: A2 (A 2) Analog in = 891 Input = 1 PIN: 29 Port: A2 (A 2) Analog in = 19 Input = 0
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 14:05 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
1806 #if ENABLED(FILAMENT_WIDTH_SENSOR) 1807 HAL_ANALOG_SELECT(FILWIDTH_PIN); 1808 #endifhier, Seite 259 unter 21.9.5
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 14:34 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Quote
AlterBastler
Auf Deine Verantwortung, nur als Vorschlag:
Ersetze mal hier in der temperature.cpp FILWIDTH_PIN durch 2
1806 #if ENABLED(FILAMENT_WIDTH_SENSOR) 1807 HAL_ANALOG_SELECT(FILWIDTH_PIN); 1808 #endifhier, Seite 259 unter 21.9.5
[ww1.microchip.com]
Herzl. Grüße
P.S. Dass Du beim Löten eine Brücke gebaut hast, kannst Du ausschliessen?
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 14:42 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
>>> m43 i SENDING:M43 I PIN: 0 Port: B0 (A31) E0_DIR_PIN Output = 0 PIN: 1 Port: B1 (A30) E0_STEP_PIN Output = 0 PIN: 2 Port: B2 (A29) Z_DIR_PIN Output = 1 PIN: 3 Port: B3 (A28) Z_STEP_PIN Output = 0 TIMER0A PWM: 0 WGM: 3 COM0A: 3 CS: 3 TCCR0A: 3 TCCR0B: 3 TIMSK0: 5 overflow interrupt enabled PIN: 4 Port: B4 (A27) AVR_SS_PIN Output = 0 TIMER0B PWM: 128 WGM: 3 COM0B: 3 CS: 3 TCCR0A: 3 TCCR0B: 3 TIMSK0: 5 compare interrupt enabled overflow interrupt enabled . FAN_PIN Output = 0 TIMER0B PWM: 128 WGM: 3 COM0B: 3 CS: 3 TCCR0A: 3 TCCR0B: 3 TIMSK0: 5 compare interrupt enabled overflow interrupt enabled . SS_PIN Output = 0 PIN: 5 Port: B5 (A26) AVR_MOSI_PIN Input = 0 . DOGLCD_MOSI Input = 0 . MOSI_PIN Input = 0 PIN: 6 Port: B6 (A25) AVR_MISO_PIN Input = 1 TIMER3A PWM: -25536 WGM: 0 COM3A: 0 CS: 2 TCCR3A: 0 TCCR3B: 2 TIMSK3: 2 non-standard PWM mode compare interrupt enabled . MISO_PIN Input = 1 TIMER3A PWM: -25536 WGM: 0 COM3A: 0 CS: 2 TCCR3A: 0 TCCR3B: 2 TIMSK3: 2 non-standard PWM mode compare interrupt enabled PIN: 7 Port: B7 (A24) AVR_SCK_PIN Input = 0 TIMER3B PWM: 0 WGM: 0 COM3B: 0 CS: 2 TCCR3A: 0 TCCR3B: 2 TIMSK3: 2 non-standard PWM mode . DOGLCD_SCK Input = 0 TIMER3B PWM: 0 WGM: 0 COM3B: 0 CS: 2 TCCR3A: 0 TCCR3B: 2 TIMSK3: 2 non-standard PWM mode . SCK_PIN Input = 0 PIN: 8 Port: D0 (A23) RXD0 Input = 1 PIN: 9 Port: D1 (A22) TXD0 Input = 0 PIN: 10 Port: D2 (A21) BTN_EN2 Input = 1 PIN: 11 Port: D3 (A20) BTN_EN1 Input = 1 PIN: 12 Port: D4 (A19) HEATER_BED_PIN Output = 0 TIMER1B PWM: 0 WGM: 4 COM1B: 0 CS: 2 TCCR1A: 0 TCCR1B: 10 TIMSK1: 2 non-standard PWM mode PIN: 13 Port: D5 (A18) HEATER_0_PIN Output = 0 TIMER1A PWM: 2000 WGM: 4 COM1A: 0 CS: 2 TCCR1A: 0 TCCR1B: 10 TIMSK1: 2 non-standard PWM mode compare interrupt enabled PIN: 14 Port: D6 (A17) E0_ENABLE_PIN Output = 1 TIMER2B PWM: 0 WGM: 1 COM2B: 1 CS: 4 TCCR2A: 1 TCCR2B: 4 TIMSK2: 0 . X_ENABLE_PIN Output = 1 TIMER2B PWM: 0 WGM: 1 COM2B: 1 CS: 4 TCCR2A: 1 TCCR2B: 4 TIMSK2: 0 . Y_ENABLE_PIN Output = 1 PIN: 15 Port: D7 (A16) X_STEP_PIN Output = 0 TIMER2A PWM: 0 WGM: 1 COM2A: 1 CS: 4 TCCR2A: 1 TCCR2B: 4 TIMSK2: 0 PIN: 16 Port: C0 (A15) BTN_ENC Input = 1 PIN: 17 Port: C1 (A14) LCD_PINS_ENABLE Output = 0 PIN: 18 Port: C2 (A13) X_MIN_PIN Input = 0 . X_STOP_PIN Input = 0 PIN: 19 Port: C3 (A12) Y_MIN_PIN Input = 0 . Y_STOP_PIN Input = 0 PIN: 20 Port: C4 (A11) Z_MIN_PIN Input = 0 . Z_STOP_PIN Input = 0 PIN: 21 Port: C5 (A10) X_DIR_PIN Output = 1 PIN: 22 Port: C6 (A 9) Y_STEP_PIN Output = 0 PIN: 23 Port: C7 (A 8) Y_DIR_PIN Output = 1 PIN: 24 Port: A7 (A 7) Analog in = 982 Input = 0 PIN: 25 Port: A6 (A 6) Analog in = 985 Input = 0 PIN: 26 Port: A5 (A 5) Z_ENABLE_PIN Output = 1 PIN: 27 Port: A4 (A 4) SERVO0_PIN Output = 0 PIN: 28 Port: A3 (A 3) LCD_PINS_RS Output = 0 PIN: 29 Port: A2 (A 2) Analog in = 77 Input = 0 PIN: 30 Port: A1 (A 1) LCD_PINS_D4 Output = 1 PIN: 31 Port: A0 (A 0) LCD_SDSS Input = 0 . SDSS Input = 0
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 14:50 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 14:55 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Quote
AlterBastler
Entschuldige die Frage, aber der ProMicro und das CReality haben eine gemeinsame Masse?
Herzl. Grüße
Re: Marlin 2 bugfix & Filament Durchmesser 30. March 2020 15:45 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Re: Marlin 2 bugfix & Filament Durchmesser 31. March 2020 10:13 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Analog pins Analog inputs are always assigned using an index from 0-15. Marlin doesn’t need to know their digital pin numbers.
#if ENABLED(FILAMENT_WIDTH_SENSOR) #define FILWIDTH_PIN 2 #endif
// Convert raw measurement to mm
static inline float raw_to_mm(const uint16_t v) { return v * 3.0f * RECIPROCAL(float(MAX_RAW_THERMISTOR_VALUE)); }
static inline float raw_to_mm() { return raw_to_mm(raw); }
Re: Marlin 2 bugfix & Filament Durchmesser 31. March 2020 13:30 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2 bugfix & Filament Durchmesser 31. March 2020 15:46 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Re: Marlin 2 bugfix & Filament Durchmesser 01. April 2020 09:25 |
Registrierungsdatum: 6 Jahre zuvor Beiträge: 143 |
Re: Marlin 2 bugfix & Filament Durchmesser 01. April 2020 12:09 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Ich habe am Ausgang vom Arduino gemessen , am Eingang vom Board, am Pin vom Chip (Mega1284p) - die Spannung ist stabilQuote
Wintex
Das kann aber nicht zufällig mit rauschen / elektrostatischen Lärm zu tun haben die beim Arduino mittels "pinMode(x, INPUT_PULLUP) x=der Pin ausschaltbar ist.
void FilamentWidthSensor::init() { pinMode(29, INPUT_PULLUP); const int8_t ratio = sample_to_size_ratio(); LOOP_L_N(i, COUNT(ratios)) ratios = ratio; index_r = index_w = 0; }
PIN: 29 Port: A2 (A 2) Analog in = 0 Input = 0 >>> m43 p29 SENDING:M43 P29 PIN: 29 Port: A2 (A 2) Analog in = 0 Input = 0 >>> m43 p29 SENDING:M43 P29 PIN: 29 Port: A2 (A 2) Analog in = 1023 Input = 0 >>> m43 p29 SENDING:M43 P29 PIN: 29 Port: A2 (A 2) Analog in = 0 Input = 0 >>> m43 p29 SENDING:M43 P29 PIN: 29 Port: A2 (A 2) Analog in = 0 Input = 0 >>> m43 p29 SENDING:M43 P29 PIN: 29 Port: A2 (A 2) Analog in = 0 Input = 0
Re: Marlin 2 bugfix & Filament Durchmesser 04. April 2020 06:22 |
Registrierungsdatum: 6 Jahre zuvor Beiträge: 143 |
Re: Marlin 2 bugfix & Filament Durchmesser 04. April 2020 11:48 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Quote
Wintex
Hab mir den Filament-Durchmesser-Sensor auf Thingiverse mal angesehen, frage mich wie empfindlich der auf Staub oder ähnliches reagiert?
Re: Marlin 2 bugfix & Filament Durchmesser 04. April 2020 13:50 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2 bugfix & Filament Durchmesser 04. April 2020 15:27 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Re: Marlin 2 bugfix & Filament Durchmesser 05. April 2020 05:33 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Quote
AlterBastler
Teste doch mal, ob die Schwankungen bei Anlegen einer konstanten Spannung
auch auftreten. Es könnte ja an einer ungünstigen Beschaltung des AREF-Pins liegen.
Herzl. Grüße
Re: Marlin 2 bugfix & Filament Durchmesser 05. April 2020 10:54 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2 bugfix & Filament Durchmesser 05. April 2020 11:55 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Re: Marlin 2 bugfix & Filament Durchmesser 05. April 2020 12:10 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |
Re: Marlin 2 bugfix & Filament Durchmesser 05. April 2020 15:08 |
Registrierungsdatum: 4 Jahre zuvor Beiträge: 24 |
Re: Marlin 2 bugfix & Filament Durchmesser 05. April 2020 15:53 |
Registrierungsdatum: 10 Jahre zuvor Beiträge: 1.610 |