Ein DIY Flat-Field Panel für die Astrofotografie mit Arduino Nano, Servo-Klappe und EL-Folie. Gesteuert über ASCOM CoverCalibrator (Platform 7) für den Einsatz in N.I.N.A. und anderer Astro-Software.
Credits:
Ursprüngliches Konzept, Schaltung und Hardware-Design: Moritz Mayer / Dark Matters Discord https://discord.gg/darkmatters
Das FlipFlat Panel kombiniert einen motorisierten Deckel (Flip) mit einem dimmbaren Flat-Field-Panel (Flat) in einem Gerät. Es kann über N.I.N.A., ASCOM-kompatible Software oder die mitgelieferte Desktop-App gesteuert werden.
- Cover-Steuerung: Servo öffnet und schließt den Deckel automatisch
- Helligkeit: EL-Folie stufenlos dimmbar (0-255) über MOSFET-PWM
- ASCOM CoverCalibrator: Vollständige ICoverCalibratorV2-Implementierung für Platform 7
- Desktop-App: Eigenständige Steuerungs-App mit Serial- und ASCOM-Modus
- N.I.N.A. kompatibel: Automatisierte Flat-Frame-Aufnahme
| Bauteil | Beschreibung |
|---|---|
| Arduino Nano (Rev3) | Mikrocontroller, USB-Seriell |
| Servo | Flip-Mechanismus für den Deckel |
| EL-Folie + Inverter | Gleichmäßige Ausleuchtung als Flat-Field-Quelle |
| IRFZ44N MOSFET | Schaltet/dimmt den EL-Inverter per PWM |
| 10kΩ Widerstand | Pull-Down am MOSFET Gate |
| 12V DC Netzteil | Stromversorgung für den EL-Inverter |
| Arduino Pin | Funktion | Beschreibung |
|---|---|---|
| Pin 8 | Servo | Manuelle Pulse (kein Timer1, um PWM auf Pin 9 zu erhalten) |
| Pin 9 | MOSFET Gate | PWM-Ausgang für EL-Folie Helligkeit |
| USB | Serial | 57600 Baud, Steuerungsprotokoll |
Der IRFZ44N MOSFET schaltet die Masse-Seite des EL-Inverters. Ein 10kΩ Pull-Down-Widerstand am Gate sorgt dafür, dass die EL-Folie beim Arduino-Start dunkel bleibt.
Fertige Gerberdatei für zum Beispiel JLCPCB. Die Platine hat einen verbauten Stepdown von 12V auf 5V für den Servo. Stand jetzt, den 06.05.2026, ist die Paltine noch nicht final getestet.
Das Projekt besteht aus drei Komponenten:
FlipFlatPanel/
├── 01_Firmware/ Arduino Nano Firmware (v3.0)
│ └── FlipFlatPanel_v3.ino
├── 02_AscomDriver/ ASCOM CoverCalibrator Treiber
│ └── CoverCalibratorHardware.cs
├── 03_ControllerApp/ Desktop-Steuerungs-App (WPF)
│ ├── FlipFlatPanel.Controller.csproj
│ ├── App.xaml / App.xaml.cs
│ └── MainWindow.xaml / MainWindow.xaml.cs
└── docs/ Dokumentation
- Öffne
01_Firmware/FlipFlatPanel_v3.inoin der Arduino IDE - Board: Arduino Nano
- Prozessor: ATmega328P (oder "Old Bootloader" je nach Nano-Version)
- COM-Port auswählen
- Hochladen
Test im Serial Monitor (57600 Baud, Newline):
COMMAND:PING → RESULT:PING:OK:16c5e400-a3b1-11ed-87cd-0800200c9a66
COMMAND:OPEN → RESULT:OPEN:offen
COMMAND:CLOSE → RESULT:CLOSE:geschlossen
COMMAND:SETBRIGHTNESS:128 → RESULT:SETBRIGHTNESS:128
Download Ascom-FlipFlatPanel_AscomDriver_Setup_1.0.1.exe
Download FlipFlatPanel_Controller_Setup_1.2.1.exe
oder
Voraussetzungen:
- Visual Studio 2022 Community (mit .NET Desktop-Entwicklung)
- .NET 8.0 SDK
Schritte:
- Öffne
03_ControllerApp/FlipFlatPanel.Controller.csprojin Visual Studio - Erstellen → Projektmappe erstellen (F6)
- Starten mit F5
Funktionen der App:
- Direkt-Modus (Serial): Kommuniziert direkt mit dem Arduino zum Testen
- ASCOM-Modus: Steuert über den installierten ASCOM-Treiber
- Helligkeits-Direkteingabe: Exakte Werte per Textfeld + Enter
- Protokoll-Fenster: Zeigt alle gesendeten Befehle und Antworten
Voraussetzungen:
- ASCOM Platform 7.x (Download)
- Visual Studio 2022 mit ASCOM Platform 7 Templates Extension
Schritte:
- Visual Studio → Neues Projekt → ASCOM Platform 7 Driver
- Device Class: CoverCalibrator
- Vendor/Organization: FlipFlatPanel
- Device Name/Model: FlipFlatPanel
- Erstellen
- Die generierte
CoverCalibratorHardware.csdurch die Datei aus02_AscomDriver/ersetzen - NuGet-Paket System.IO.Ports hinzufügen
- Erstellen (F6)
- Als Administrator registrieren:
FlipFlatPanel.exe /register
Baudrate: 57600, 8N1, Zeilenende: \n
| Befehl | Antwort | Beschreibung |
|---|---|---|
COMMAND:PING |
RESULT:PING:OK:<GUID> |
Verbindungstest |
COMMAND:INFO |
RESULT:INFO:FlipFlatPanel Firmware v2.0 |
Firmware-Info |
COMMAND:OPEN |
RESULT:OPEN:offen |
Cover öffnen |
COMMAND:CLOSE |
RESULT:CLOSE:geschlossen |
Cover schließen |
COMMAND:POSITION |
RESULT:POSITION:<status> |
Aktueller Cover-Status |
COMMAND:BRIGHTNESS |
RESULT:BRIGHTNESS:<0-255> |
Aktuelle Helligkeit |
COMMAND:SETBRIGHTNESS:<0-255> |
RESULT:SETBRIGHTNESS:<0-255> |
Helligkeit setzen |
COMMAND:MAXBRIGHTNESS |
RESULT:MAXBRIGHTNESS:255 |
Maximale Helligkeit |
Ungültige Befehle werden mit ERROR:INVALID_COMMAND beantwortet.
- ASCOM-Treiber registrieren (siehe oben)
- N.I.N.A. starten
- Geräte → Flatpanel → ASCOM CoverCalibrator wählen
- FlipFlat Panel auswählen
- In den Eigenschaften den COM-Port einstellen
- Verbinden
Für automatisierte Flat-Frames kann N.I.N.A. den Deckel öffnen, die Helligkeit einstellen und nach der Aufnahme wieder schließen.
Die Firmware verwendet manuelle Pulse statt der Arduino Servo-Library, da diese Timer1 belegt und damit den PWM-Ausgang auf Pin 9 stört. Stattdessen wird ein 700ms-Burst von 50Hz-Pulsen gesendet, was für zuverlässige Servo-Bewegung sorgt, ohne die Helligkeitssteuerung zu beeinträchtigen.
Der Treiber implementiert das ICoverCalibratorV2-Interface (Platform 7) mit:
Connect()/Disconnect()(asynchron, Platform 7)ConnectedProperty (Rückwärtskompatibilität, Platform 6)OpenCover()/CloseCover()/HaltCover()CalibratorOn(brightness)/CalibratorOff()CoverState/CoverMovingCalibratorState/CalibratorChangingBrightness/MaxBrightness
Falls der Servo nicht den gewünschten Winkel erreicht, können die Pulsbreiten in der Firmware angepasst werden:
const int SERVO_PULSE_OPEN = 2500; // Mikrosekunden (1000-2500)
const int SERVO_PULSE_CLOSE = 540; // Mikrosekunden (540-1000)| Problem | Lösung |
|---|---|
| Servo reagiert nicht | Firmware v3.0 flashen; Pulsbreiten prüfen |
| EL-Folie leuchtet nicht | MOSFET-Verdrahtung prüfen; COMMAND:SETBRIGHTNESS:255 testen |
| ASCOM-Timeout | COM-Port prüfen; Serial Monitor schließen |
| Treiber nicht in N.I.N.A. | /register als Administrator ausführen |
| Arduino wird nicht erkannt | CH340/FTDI Treiber installieren |
MIT License - siehe LICENSE Datei.
Pull Requests und Issues sind willkommen! Bitte beachte:
- Firmware-Änderungen müssen die Pin-Belegung beibehalten
- Das serielle Protokoll muss abwärtskompatibel bleiben
- ASCOM-Treiber-Änderungen müssen mit ConformU getestet werden



