Skip to main content

Youtube - Nevermore Controller

Hier entsteht das Installationstutorial für den Nevermore Controller. Vielen Dank an den Ersteller: SanaaHamel

Die folgende Anleitung beinhaltet nur die Einrichtung der elektronischen Komponenten. Der ein Filtersystem wird zeitnah ergänzt:

- Aufbauanleitung Stealthmax Filtersystem: Link folgt demnächst
- Aufbauanleitung Paean Filtersystem: Link folgt demnächst

a) Standard Konfiguration mit Raspberry Pi Pico
Benötigte Hardware

Diese Bauteile werden für den Nevermore Controller benötigt:

Zwingende Komponenten:
1. Über Amazon:
1x Pico W: https://amzn.to/3vktXTN oder Pico W mit Pinleiste: https://amzn.to/3vktXTN
2x BMP240: https://amzn.to/3NHYp0E
2x SGP40: derzeitig nicht bestellbar
Jumper Wire (female to female): https://amzn.to/3RKTQ8c

2. Über Aliexpress:

2x SGP40/BMP240 (2in1 PCB): https://s.click.aliexpress.com/e/_Dmkhbk5
oder
2x SGP40: https://s.click.aliexpress.com/e/_DmCfMXf
2x BME240 (3xBME240 3.3V): https://s.click.aliexpress.com/e/_Dndm8PX

Optionale Komponenten (abhängig vom Einsatzzweck):
Display: https://amzn.to/3tDxj3O
Display: https://www.aliexpress.com/item/1005006111616872.html
PWM Fan bspw 5V Noctua: https://amzn.to/3SkVwp4

 

Anschlussbelegung

In dieser Anordnung werden die Sensoren (BME und SGP) durch eine Pinleiste übereinandergestapelt. Der Plastikabstandshalter soll zwischen den Platinen platziert werden. Stelle sicher, dass der SGP40-Sensor nach außen gerichtet ist, um eine optimale Detektion zu gewährleisten. Der Sensor des lilafarbenen Sensors kann zwischen dernLeiterplatten montiert sein.

image.png

Verkabelung testen

Um die Verkabelung der Sensoren zu prüfen habe ich ein Micropythonskript geschrieben. Um den I2C-Bus zu überprüfen, gehe wie folgt vor:

1. Lade MicroPython auf den Raspberry Pi Pico herunter und flashe es.
Link: https://www.raspberrypi.com/documentation/microcontrollers/micropython.html

2. Lade Thonny herunter und installiere es.
 Link: https://thonny.org

3. Starte Thonny und wähle deinen Raspberry Pi Pico aus.

image.png

4. Kopiere und füge diesen Code ein:

import machine

# create first i2c bus (Exhaust)
sda_exhaust = machine.Pin(18)
scl_exhaust = machine.Pin(19)
i2c_exhaust = machine.I2C(1, sda=sda_exhaust, scl=scl_exhaust, freq=400000)

# create second i2c bus (Intake)
sda_intake = machine.Pin(20)
scl_intake = machine.Pin(21)
i2c_intake = machine.I2C(0, sda=sda_intake, scl=scl_intake, freq=400000)

def scan_i2c_bus(i2c, bus_name):
    print(f'Scan i2c bus {bus_name}...')
    devices = i2c.scan()

    if len(devices) == 0:
        print(f"No i2c device found on {bus_name} bus!")
    else:
        print(f'i2c devices found on {bus_name} bus:', len(devices))

        for device in devices:
            print("Decimal address: ", device, " | Hexa address: ", hex(device))

# Scan I2C-Bus
scan_i2c_bus(i2c_exhaust, "Exhaust")
scan_i2c_bus(i2c_intake, "Intake")

5. Überprüfe die Antwort: Wenn die Meldung "Kein I2C-Gerät gefunden" erscheint, solltest du die Verkabelung überprüfen oder den Chip ersetzen. Bei Nutung von zwei Sensorstacks müssen insgesamt vier Adresse angezeigt werden.

image.png

Controllersoftware installieren
  1. Kontrollerfirmware downloaden und auf den Pico flashen.

  2. Software über SSH auf den Klipper-Kontroller (Raspberry Pi) installieren
    cd ~
    git clone https://github.com/SanaaHamel/nevermore-controller
    cd nevermore-controller
    ./install-klipper-module.bash

    Wenn du Mainsail OS verwendest, wird dich das Installationsskript fragen, ob du Bluetooth aktivieren möchtest. Tu dies und starte dann deinen Klipper-Host neu. (z.B. sudo reboot)

  3.  Überprüfe die Protokolldatei deines Druckers. Wenn alles gut gelaufen ist, solltest du so etwas sehen:
    ....
    [11:27:13:976834] nevermore - discovered controller 28:CD:C1:09:64:8F
    [11:27:13:981190] nevermore - connected to controller 28:CD:C1:09:64:8F
    ...
  4. Aktualisierung des Pico
    Wenn du eine OTA-fähige UF2 auf deinen Controller geflasht hast, kannst du ihn drahtlos aktualisieren. Der Prozess ist einfach:
    cd ~/nevermore-controller
    git pull
    ./tools/update_ota.py

    Wenn du update_ota.py ausführst, werden fehlende Abhängigkeiten installiert. Dies kann beim ersten Mal je nach Leistungsfähigkeit des Computers eine Weile dauern.

    Wenn du mehrere Controller in Reichweite hast, kannst du mit --bt-address angeben, welchen du aktualisieren möchtest. Z.B. ./tools/update_ota.py --bt-address XX:XX:XX:XX:XX:XX

    Siehe ./tools/update_ota.py --help für alle Optionen.

     

    HINWEIS: Der Controller startet automatisch neu, wenn er 60 Sekunden lang im Bootloader-Modus untätig bleibt.

     

    Insgesamt solltest du eine ähnliche Ausgabe wie folgende sehen:

    Tool environment seems up to date.
    This program will attempt to update a Nevermore controller.
    -------------------------------------------------------------------------
    
    discovering Nevermores...
    connecting to XX:XX:XX:XX:XX:XX
    current revision: v0.7.0
    sending reboot-to-OTA command...
    connecting to device...
    requesting device info...
    sync w/ device...
    trying to update bootloader...
    requesting device info...
    img size: 364544
    erasing tail [0x10059000, 0x1005a000]...
    updating: 100%|██████████████████████████████████████████████████████████████████████| 356k/356k [00:02<00:00, 129kb/s]
    # I've already updated this controller, so nothing changed
    update modified 0 of 364544 bytes (0.00%)
    updating main image...
    requesting device info...
    img size: 390912
    erasing tail [0x100bb000, 0x10200000]...
    updating: 100%|██████████████████████████████████████████████████████████████████████| 384k/384k [00:03<00:00, 120kb/s]
    update modified 0 of 393216 bytes (0.00%)
    finalising...
    rebooting...
    update complete.
    waiting for device to reboot (1 seconds)...
    connecting to XX:XX:XX:XX:XX:XX to get installed version
    (this may take longer than usual)
    NOTE: Ignore logged exceptions about `A message handler raised an exception: 'org.bluez.Device1'.`
          This is caused by a bug in `bleak` but should be benign for this application.
    previous version: v0.7.0  # whatever version was installed
     current version: v0.7.0  # in this example it tried to update to the same version
  5. Falls es nicht geklappt hat, dann schaue in die FAQ von Sanaa.
  6. Füge in deine Printer.cfg ein.
     
     [Nevermore] 
b) Komfort PCB (Isiks Tech) - folgt bald
Benötigte Hardware

folgt bald

Anschlussbelegung

folgt bald

Verkabelung testen

folgt bald

c) Waveshare Touch Display with RP2040 - folgt bald
Benötigte Hardware

folgt bald

Anschlussbelegung

folgt bald

Verkabelung testen

folgt bald