Marlin 2.0 i Ramps 1.4 Hotend, Hotend, Bed, Fan Problem

Czyli co i jak podłączyć żeby działało
unitralll
Konto z ograniczeniami
Postów w temacie: 5
Posty: 7
Rejestracja: 27 lut 2022, 14:35
x 2

Marlin 2.0 i Ramps 1.4 Hotend, Hotend, Bed, Fan Problem

Post autor: unitralll »

Witam.
Zmieniam właśnie elektronikę w mojej samoróbce.
Nowa to Arduino mega + Ramps 1,4 po kilku modyfikacjach.

Niestety mam problem z włączeniem wentylatora w konfiguracji EEB
Wszystko poza wentylatorem udało mi się ustawić.
Niestety nawet ręczna definicja wentylatora na wolnym pinie nie daje rezultatu.
Kompilacja przebiega poprawnie ale podczas wysyłania komendy
M107 P1*81
otrzymuję odpowiedź
echo:Unknown command: "M107 P1"

Kod: Zaznacz cały

//
// Heaters / Fans
//

#ifndef MOSFET_A_PIN
  #define MOSFET_A_PIN                        10
#endif
#ifndef MOSFET_B_PIN
  #define MOSFET_B_PIN                         9
#endif
#ifndef MOSFET_C_PIN
  #define MOSFET_C_PIN                         8
#endif
#ifndef MOSFET_D_PIN
  #define MOSFET_D_PIN                         7			// pin 7 jest stale wolny (pin 22 tez)  ?? 
#endif

#define HEATER_0_PIN                MOSFET_A_PIN

#if FET_ORDER_EFB                                 // Hotend, Fan, Bed
  #define HEATER_BED_PIN            MOSFET_C_PIN
#elif FET_ORDER_EEF                               // Hotend, Hotend, Fan
  #define HEATER_1_PIN              MOSFET_B_PIN
#elif FET_ORDER_EEB                               // Hotend, Hotend, Bed	
  #define HEATER_1_PIN              MOSFET_B_PIN
  #define HEATER_BED_PIN            MOSFET_C_PIN


#elif FET_ORDER_EFF                               // Hotend, Fan, Fan
  #define FAN1_PIN                  MOSFET_C_PIN
#elif DISABLED(FET_ORDER_SF)                      // Not Spindle, Fan (i.e., "EFBF" or "EFBE")
  #define HEATER_BED_PIN            MOSFET_C_PIN
  #if EITHER(HAS_MULTI_HOTEND, HEATERS_PARALLEL)
    #define HEATER_1_PIN            MOSFET_D_PIN
  #else
    #define FAN1_PIN                MOSFET_D_PIN
  #endif
#endif


#ifndef FAN_PIN
  #if EITHER(FET_ORDER_EFB, FET_ORDER_EFF)        // Hotend, Fan, Bed or Hotend, Fan, Fan
    #define FAN_PIN                 MOSFET_B_PIN
  #elif EITHER(FET_ORDER_EEF, FET_ORDER_SF)       // Hotend, Hotend, Fan or Spindle, Fan
    #define FAN_PIN                 MOSFET_C_PIN
  #elif FET_ORDER_EEB                             // Hotend, Hotend, Bed
    #define FAN_PIN                  4  // IO pin. Buffer needed		// Albo MOSFET_D_PIN bez bufora po podłaczeniu pinu 7 do sterowania mosfetem.
  #else                                           // Non-specific are "EFB" (i.e., "EFBF" or "EFBE")
    #define FAN_PIN                 MOSFET_B_PIN
  #endif
#endif

Gdzie popełniam błąd?
Jak aktywować ten wentylator

Może ktoś już przerabiał taki problem?
Awatar użytkownika
artur_n
Postów w temacie: 1
Posty: 950
Rejestracja: 20 lis 2017, 21:48
Lokalizacja: RJA
Drukarka: P3Steel, Prusa MK4
x 172

Re: Marlin 2.0 i Ramps 1.4 Hotend, Hotend, Bed, Fan Problem

Post autor: artur_n »

Gdzie podłączasz ten wentylator? Dodatkowe wentylatory w ramps wymagają fan extendera.
Włączenie to komenda M106: https://marlinfw.org/docs/gcode/M106.html
unitralll
Konto z ograniczeniami
Postów w temacie: 5
Posty: 7
Rejestracja: 27 lut 2022, 14:35
x 2

Re: Marlin 2.0 i Ramps 1.4 Hotend, Hotend, Bed, Fan Problem

Post autor: unitralll »

MOSFET_D_PIN 7
Problem polega na tym że w każdej konfiguracji z FAN, jest on podpięty do MOSFET_B_PIN
Ale w plików konfiguracyjnych wynika, że przy użyciu konfiguracji bez wentylatora podpina się go zamiast serva 4.
To również nie działa.

Dlatego chcę wykorzystać wolny pin PWM 7 jako MOSFET_D_PIN

Dodam, że używam również czujnika 3D do poziomowania stołu.
unitralll
Konto z ograniczeniami
Postów w temacie: 5
Posty: 7
Rejestracja: 27 lut 2022, 14:35
x 2

Re: Marlin 2.0 i Ramps 1.4 Hotend, Hotend, Bed, Fan Problem

Post autor: unitralll »

Dla komend M106 i M107 otrzymuję identyczny komunikat. Co oznacza że FAN nie został zainicjowany i Marlin nie obsługuje komend M106 i M107
unitralll
Konto z ograniczeniami
Postów w temacie: 5
Posty: 7
Rejestracja: 27 lut 2022, 14:35
x 2

Re: Marlin 2.0 i Ramps 1.4 Hotend, Hotend, Bed, Fan Problem

Post autor: unitralll »

Przeczytałem prawie wszystko na temat fan extendera i nie to mnie interesuje.

Napiszę najprościej jak potrafię co potrzebuję osiągnąć.
Wykorzystać MOSFET_A_PIN MOSFET_B_PIN MOSFET_C_PIN i MOSFET_D_PIN do sterowania grzałkami i wentylatorami chłodzenia wydruku.
MOSFET_A_PIN - Hotend 1
MOSFET_B_PIN - Hotend 2
MOSFET_C_PIN - BED
MOSFET_D_PIN - Wentylator chłodzenia wydruku.
Może być dowolna inna kolejność.

Mam 2 extrudery i wspólny wentylator do chłodzenia wydruku.

Wentylatory chłodzenia extruderów są podłaczone na stałe do zasilania (nie przeszkadza mi to wcale)

Elektronika ma swoje wentylatory - również podłączone na stałe.

Prz yręcznej konfiguracji pinów w w/w opisany sposób otrzymuję błą z Marlina

Kod: Zaznacz cały

In file included from D:\Users\Unitral\Desktop\Marlin-bugfix-2.0.x\Marlin_v3\src\inc\MarlinConfig.h:50:0,
                 from D:\Users\Unitral\Desktop\Marlin-bugfix-2.0.x\Marlin_v3\src\HAL\AVR\HAL_SPI.cpp:34:
D:\Users\Unitral\Desktop\Marlin-bugfix-2.0.x\Marlin_v3\src\inc\SanityCheck.h:99:4: error: #error "Thermal Runaway Protection for the bed is now enabled with THERMAL_PROTECTION_BED."
   #error "Thermal Runaway Protection for the bed is now enabled with THERMAL_PROTECTION_BED."
    ^~~~~
Jeśli korzystam z oryginalnej pinologii to Kontroler nie rozpoznaje komend M106 i M107
unitralll
Konto z ograniczeniami
Postów w temacie: 5
Posty: 7
Rejestracja: 27 lut 2022, 14:35
x 2

Re: Marlin 2.0 i Ramps 1.4 Hotend, Hotend, Bed, Fan Problem

Post autor: unitralll »

Problem rozwiązałem.
Powodem braku obsługi wentylatora okazał się błąd w jednym z plików w skopiowanym katalogu Marlin 2.0.x
Po stworzeniu nowego projektu i ponownym skopiowaniu plików z pierwotnego archiwum problem się rozwiązał.


Teraz mam za to inny ciekawy problem.
A mianowicie w Repetier-Host (najnowszym) znika z submenu "kontrola ręczna" możliwość sterowania temperaturą stołu po ponownym połączeniu.
Działa po restarcie i połączeniu USB, ale po rozłączeniu fizycznym usb lub z poziomu Repetiera i ponownym połączeniu znika pasek temperatury stołu.
Z poziomu G-code i wyświetlacza dalej można kontrolować stół, natomiast repetier nie ma tej możliwości.
Sprawdzałem na 2 różnych Megach z różną konfiguracją i zawsze jest tak samo.

Nie znalazłem nigdzie opisu podobnego przypadku.

Ale znalazłem przyczynę takiego zachowania.

Okazuje się, że jest nią zbyt iska temperatura na czujniku stołu - ninitemp dla stołu jest domyślnie chyba na 15stopni a w moim warsztacie przeważnie jest coś około 7 stopni.
Po zmianie w/w parametru na 0 wszystko działa jak powinno.
ODPOWIEDZ

Wróć do „Elektronika sterująca, wyświetlacze”