IT security, FreeBSD, Linux, mail server hardening, post-quantum crypto, DNS, retro computing & hands-on hardware hacks. Privater Tech-Blog seit 2003.

Schlagwort: DIY

TC1 Multifunction Tester: Open-Source Firmware flashen, kalibrieren und die Stolperfallen dabei

TC1 Multi-function Tester mit originaler M-Tester Firmware auf dem Display

Es gibt diese kleinen Bauteiltester aus China, die für 15 bis 20 Euro auf AliExpress oder Amazon rumschwirren. Der TC1, auch bekannt als LCR-TC1. Transistoren, Widerstände, Kondensatoren, MOSFETs, Dioden. Bauteil in den ZIF-Sockel stecken, Knopf drücken, fertig. Für den Preis eigentlich erstaunlich brauchbar. Aber die originale Firmware ist halt, sagen wir mal, solide Mittelklasse. Die Messgenauigkeit geht in Ordnung, aber nicht mehr, und die Zahl der erkannten Bauteile ist überschaubar. In der Open-Source-Welt gibt es zwei Firmware-Varianten für diese Tester: Die k-firmware als stabiles Original und die m-firmware von madires als aktiv weiterentwickelter Rewrite. Präzisere Messungen, mehr erkannte Bauteile, bessere IR-Protokollunterstützung, flexiblere Konfiguration und ein sauberes Menü mit Kalibrierung. Also habe ich mich drangesetzt.

Was als „schnell mal neue Firmware drauf“ geplant war, wurde ein mehrtägiger Abstieg in die Untiefen von STC-Microcontrollern, falschen Pinouts und parasitärer Stromversorgung. Aber der Reihe nach.

Was steckt im TC1?

PCB-Rueckseite des TC1 mit ATmega324PA Hauptprozessor und STC15L104W Power-Management-Chip

Auf der Rückseite der Platine sitzen zwei Chips, die man kennen muss:

Nahaufnahme des ATmega324PA-U-TH Chips auf der TC1-Platine

U1: ATmega324PA — der Hauptprozessor. Ein Atmel AVR im TQFP-44 Gehäuse, 32 KB Flash, 2 KB SRAM, 1 KB EEPROM. Hier läuft die eigentliche Tester-Firmware. Wird über ISP (In-System Programming) geflasht, also braucht man einen Programmer.

Nahaufnahme des STC15L104W (U4) Power-Management-Chips im SOP-8 Gehaeuse

U4: STC15L104W — ein winziger 8051-kompatibler Mikrocontroller im SOP-8 Gehäuse von STC Micro. Der macht das Power-Management: Einschalten per Tastendruck, automatisches Abschalten nach Timeout. Klingt trivial, ist aber der Chip, der mir die meisten Kopfschmerzen bereitet hat.

Beide Chips brauchen neue Firmware. Die m-firmware liefert die Hex-Dateien für beide: ComponentTester.hex für den ATmega und u4.hex für den STC. Klingt einfach. War es nicht.

Erster Versuch: Backup der Original-Firmware

Bevor man irgendwas überschreibt, will man natürlich ein Backup. Gute Idee, klappt nur nicht. Die Lock Bits des ATmega sind auf 0xC0 gesetzt. Das bedeutet: Lesen des Flash-Inhalts ist gesperrt. Man kann die Firmware löschen und neu schreiben, aber nicht auslesen. Kein Backup möglich. Also Augen zu und durch.

U4 flashen: Der schwierigste Teil

Der STC15L104W hat einen eingebauten UART-Bootloader. Klingt praktisch. Man braucht theoretisch nur einen USB-TTL Adapter, sendet das Hex-File und der Chip programmiert sich selbst. Theoretisch. In der Praxis muss der Chip für den Bootloader einen sauberen Power-Cycle bekommen, also Strom weg, Strom wieder an. Und genau hier fängt das Drama an.

Im eingelöteten Zustand liegt VCC des STC über den Button-Schaltkreis auf GND. Der Bootloader startet schlicht nicht. Der Chip muss raus.

Atten ST-862D Heissluft-Rework-Station zum Ausloeten des STC15L104W
Sugon T3602 Dual-Channel Loetstation mit Temperaturanzeige auf dem Arbeitsplatz

Also Atten ST-862D Heißluftstation raus, SOP-8 Chip bei 280°C vorsichtig von der Platine gehoben, Pads sauber gemacht. Zum späteren Wiedereinlöten dann die Sugon T3602. Für solche SMD-Arbeiten will man vernünftiges Werkzeug, mit einem 15-Euro-Lötkolben aus dem Baumarkt wird das nichts.

Der CH341 und seine 5V-Lüge

Erster Versuch: CH341 USB-TTL Adapter. Steht „3.3V“ drauf, also sollte das passen. Der STC15L104W ist ein 3.3V-only Chip, 5V auf den Datenleitungen wären sein Todesurteil. Also Multimeter dran, TX-Pin messen und… 5V. Auf dem TX-Pin. Trotz „3.3V“-Stellung. Der CH341 hat zwar einen 3.3V Spannungsregler für VCC, aber die Logikpegel auf TX bleiben bei 5V. Das steht nirgendwo auf dem Board, nirgendwo im Datenblatt des Adapters. Man muss es wissen oder messen.

Hätte ich nicht nachgemessen, wäre der STC jetzt Elektroschrott. Lektion gelernt: Immer nachmessen, nie dem Aufdruck vertrauen.

FT232RL USB-TTL Adapter mit Jumper auf 3.3V fuer das STC15L104W Flashing

Also einen FT232RL USB-TTL Adapter bestellt. Der hat einen echten 3.3V/5V Jumper, der tatsächlich auch die Logikpegel umschaltet. Nachgemessen: TX bei 3.3V. Endlich.

Das Pinout-Desaster

Jetzt wirds peinlich. Ich habe stundenlang versucht, den STC über Pin 1 (P3.4) und Pin 3 (P3.5) anzusprechen. Keine Reaktion. Kein Bootloader. Nichts. Irgendwann habe ich nochmal das Datenblatt studiert und festgestellt: P3.4 und P3.5 sind GPIO-Pins. Die UART-Pins (RXD/TXD) liegen auf P3.0 und P3.1, also Pin 5 und Pin 6. Das SOP-8 Pinout:

        ┌──────────┐
Pin 1  │● P3.4    │  Pin 8  (P3.3)
Pin 2  │  VCC     │  Pin 7  (P3.2)
Pin 3  │  P3.5    │  Pin 6  ← TXD (P3.1)
Pin 4  │  GND     │  Pin 5  ← RXD (P3.0)
       └──────────┘

Stunden. Am falschen Pin. Das sind so Momente, in denen man kurz aufstehen und was trinken gehen sollte. Keine Ahnung, warum ich die falschen Pins unbedingt wollte… Ich hab auf das Datenblatt geschaut und… na, vielleicht war die Brille dreckig, keine Ahnung. „Leider“ kamen da auch sinlose Daten bei zustande, was erst nach einer falschen Baudrate ausgesehen hat; vielleicht ist das eine gute Ausrede, warum ich da so lange hängen geblieben bin?!

Parasitäre Stromversorgung und der Breadboard-Aufbau

Ausgeloeteter STC15L104W auf Breadboard verkabelt mit FT232RL Adapter zum Flashen

Das nächste Problem: Der STC-Bootloader braucht einen Power-Cycle zum Starten. Also VCC abziehen, Flash-Tool starten, VCC wieder anlegen. Sollte klappen. Tat es aber nicht zuverlässig. Warum? Der Chip versorgt sich über die TX/RX-Datenleitungen parasitär mit Strom. Selbst wenn VCC getrennt ist, reicht der Strom über die Schutzdioden in den I/O-Pins, um den Chip am Leben zu halten. Kein sauberer Power-Cycle, kein Bootloader.

Die Lösung: Beim Power-Cycle ALLE Drähte trennen, nicht nur VCC. Erst das Flash-Tool starten (wartet auf den Chip), dann alle Leitungen gleichzeitig einstecken. Dazu ein 220 Ohm Serienwiderstand auf der TX-Leitung als Schutz und ein 100nF Stützkondensator zwischen VCC und GND für eine stabile Versorgung.

Geflasht habe ich unter Linux mit stcgal:

stcgal -P stc15 -p /dev/ttyUSB1 -l 2400 -b 4800 -t 12000 u4.hex

Der Trick ist die niedrige Baudrate (-l 2400 für die initiale Kommunikation, -b 4800 zum Flashen) und das erhöhte Timeout (-t 12000). Zur Verifikation habe ich das Ganze nochmal mit STC-ISP v6.96S unter Windows (VirtualBox) gegengeprüft. Beides erfolgreich. Chip wieder eingelötet, weiter gehts.

U1 flashen: Der einfache Teil

Arduino Uno als ISP-Programmer mit Dupont-Kabeln an den Digital-Pins
Arduino Uno Power-Seite mit VCC und GND Verkabelung fuer ISP-Programmierung

Der ATmega324PA wird über ISP programmiert. Als Programmer dient ein ganz normaler Arduino Uno mit dem ArduinoISP-Sketch. Den lädt man in der Arduino IDE über File → Examples → ArduinoISP auf den Uno. Dann die Pins verbinden: MOSI (D11), MISO (D12), SCK (D13), RESET (D10) vom Arduino an den J4-Header auf der TC1-Rückseite, plus VCC und GND.

ISP-Kabel am J4-Header auf der TC1-Platinenrueckseite angeschlossen
Seitenansicht des TC1 mit angeschlossenem ISP-Kabel am J4-Header

Auf der TC1-Platine gibt es ein J4-Pad für ISP. Ich habe da einen Pin-Header aufgelötet, das macht das Leben bei zukünftigen Updates deutlich einfacher. Dann mit avrdude:

avrdude -c avrisp -p m324pa -P /dev/ttyACM0 -b 19200 -U flash:w:ComponentTester.hex:i

Das ging durch. Erster Versuch. Nach dem STC-Drama fühlte sich das fast verdächtig einfach an.

„Kas Rh- _BB“ — Was zur Hölle?

Nach dem Flashen das Display eingeschaltet und… „Kas Rh- _BB“ statt „Bat 3.83V ok“. Die Zeichen sahen aus wie ein kaputtes Font-Rendering. Stundenlang habe ich nach SPI-Fehlern gesucht, den Display-Treiber hinterfragt (ST7735 vs. SEMI_ST7735), die Pin-Belegung dreimal geprüft. Nichts half.

Die Lösung war so simpel wie ärgerlich: „Kas“ ist der Anfang von „Kaseikyo“, einem IR-Protokollnamen. Die m-firmware speichert Strings standardmäßig im EEPROM (DATA_EEPROM in der config.h). Aber ich hatte nur die .hex-Datei geflasht, nicht die .eep-Datei fürs EEPROM. Die Firmware las also zufällige alte Daten aus dem EEPROM und interpretierte sie als Text.

Der Fix: In der config.h DATA_FLASH statt DATA_EEPROM setzen. Dann werden alle Strings direkt im Flash-Speicher abgelegt und man braucht kein separates EEPROM-Flashing. Nochmal kompiliert, nochmal geflasht. Uff… Bis ich darauf gekommen bin *kopfschüttel*. Zugegeben, darüber nachgedacht habe ich aber ich war mir fast sicher das in einem mit geflashed zu haben. Fast sicher halt. Eine Nacht darüber schlafen hat geholfen, klassisch also im Problem festgefressen.

Batteriespannung: 19V aus einer LiPo-Zelle?

Nächstes Problem: Das Display zeigte 19V Batteriespannung an. Der TC1 läuft mit einer einzelnen LiPo-Zelle, das sind 3,7 bis 4,2V. Die Standard-Konfiguration der m-firmware geht von einem Spannungsteiler auf der Batterieleitung aus (BAT_DIVIDER mit R1=10k, R2=3.3k für einen 9V-Block). Der TC1 hat aber keinen Spannungsteiler, die Batteriespannung geht direkt an den ADC.

Fix: BAT_DIRECT statt BAT_DIVIDER in der config.h. Dazu die Schwellwerte anpassen: BAT_WEAK=3400 und BAT_LOW=3100 (in mV) für eine einzelne LiPo-Zelle.

TC1 Display zeigt Bat 3.83V ok und Probing nach korrekter BAT_DIRECT Konfiguration

So soll das aussehen. 3.83V, alles ok.

Menü und Kalibrierung

TC1 Menue mit Adjustment-Option fuer die Kalibrierung nach Firmware-Flash

Noch ein Stolperstein: Das Menü war nicht erreichbar. Die m-firmware hat verschiedene Wege, das Menü aufzurufen. Beim TC1 funktioniert das über UI_SHORT_CIRCUIT_MENU: Alle drei Probe-Pins im ZIF-Sockel kurzschließen und Start drücken. Dann öffnet sich das Menü mit Optionen für PWM, IR-Detector, Opto Coupler, Test und eben Adjustment.

Die Kalibrierung selbst ist einfach: Adjustment auswählen, mit leerem ZIF-Sockel starten, dann wenn gefordert einen Kurzschluss zwischen 123 einstecken. Die Firmware misst die internen Referenzen und speichert die Korrekturdaten. Dann den Kurzschluss wieder raus und es wird die Gegenprobe gemessen.

Die vollständige Konfiguration

Für alle, die das selbst machen wollen, hier die kompletten Änderungen gegenüber der Standard-Konfiguration der m-firmware (ComponentTester v1.56m):

Makefile:

MCU = atmega324p
FREQ = 16

config.h:

#define DATA_FLASH              /* Strings im Flash statt EEPROM */
#define UI_AUTOHOLD             /* Messergebnis halten bis Tastendruck */
#define UI_SHORT_CIRCUIT_MENU   /* Menü über Kurzschluss aller Probes */
#define BAT_DIRECT              /* Kein Spannungsteiler auf Batterie */
#define BAT_WEAK    3400        /* Warnung unter 3.4V */
#define BAT_LOW     3100        /* Abschaltung unter 3.1V */

config_644.h (Hardware-Mapping für den TC1):

/* Display: ST7735 über SPI Bit-Bang */
#define LCD_ST7735
#define LCD_RES     PB4
#define LCD_DC      PB5
#define LCD_SDA     PB6
#define LCD_SCL     PB7
#define LCD_FLIP_X
#define LCD_ROTATE
#define LCD_OFFSET_X    2
#define LCD_OFFSET_Y    1
#define LCD_LATE_ON
#define SPI_BITBANG         /* SDA auf PB6 statt Hardware-MOSI PB5 */

/* Probe-Widerstände auf PORTC statt PORTD */
/* PC0-PC5 für die drei Probe-Paare */

/* Power und Button */
#define POWER_PORT  PORTD
#define POWER_PIN   PD2
#define BUTTON_PIN  PD1

/* ADC-Pins vertauscht gegenüber Default */
#define TP_ZENER    PA4
#define TP_REF      PA3

Das Ergebnis

TC1 Startbildschirm zeigt Component Tester v1.56m nach erfolgreichem Flash

Component Tester v1.56m. Läuft.

TC1 mit m-firmware zeigt korrekt gemessenen 220 Ohm Widerstand an
TC1 erkennt MOSFET N-ch enh. mit Vth, Cgs und Rds Werten nach Firmware-Update

Widerstände, MOSFETs, alles wird sauber erkannt. Die Werte passen.

MOSFET-Messung auf dem TC1 nach Kalibrierung mit praezisen Vth und Rds Werten

Nach der Kalibrierung werden die Messwerte nochmal präziser. Vth 2065mV, Cgs 11.27nF, Rds 0.03 Ohm. Für einen 20-Euro-Tester absolut brauchbar.

Fazit und Quellen

War das ganze Prozedere nötig? Die originale Firmware funktioniert ja grundsätzlich. Aber wenn man sich auf die Messwerte verlassen will und nicht bei jedem unbekannten Bauteil rätseln möchte, lohnt sich der Aufwand. Die m-firmware liefert präzisere Ergebnisse, erkennt deutlich mehr Bauteile und hat ein richtiges Menü mit Kalibrierung. Und der J4-Header ist jetzt drauf, das nächste Firmware-Update ist dann tatsächlich in fünf Minuten erledigt.

Die fertige Firmware mit allen Config-Anpassungen für den TC1 und eine Schritt-für-Schritt-Anleitung habe ich auf GitHub gepackt. Da liegt auch die U4-Firmware (tc1-u4, GPL v3) und ein Verweis auf die m-firmware (EUPL v1.2).

Wer sich tiefer einlesen will:

Siehe auch:, Multifunktionstester für Elektronikbauteile: Schnell & günstig prüfen​

Fragen zum TC1 oder eigene Erfahrungen beim Flashen? Dann kannst du mich gerne fragen.

Eigener ADS-B Feeder: Flugzeuge tracken mit Raspberry Pi, RTL-SDR und selbstgebauter Antenne

Flugzeuge senden permanent ihre Position, Höhe und Geschwindigkeit auf 1090 MHz. Einfach so, unverschlüsselt, für jeden empfangbar. Das Ganze nennt sich ADS-B (Automatic Dependent Surveillance-Broadcast) und ist seit Jahren Standard in der Luftfahrt. Man braucht nur einen günstigen SDR-Empfänger und eine passende Antenne, um das Signal zu dekodieren. Und weil Dienste wie Flightradar24 auf Daten von freiwilligen Feedern angewiesen sind, bekommt man als Gegenleistung einen Business-Account, der sonst knapp 500 Euro im Jahr kostet.

Beitragsbild zum ADS-B-Feeder: Raspberry Pi mit RTL-SDR-Dongle und selbstgebauter 1090-MHz-Groundplane-Antenne, kombiniert mit einer Karte von Mitteleuropa mit zahlreichen Flugzeugsymbolen und einem Flightradar24-Dashboard-Overlay.

Ich wollte das schon länger mal ausprobieren. Ein Raspberry Pi lag noch herum, ein billiger RTL-SDR-Stick war schnell bestellt, und die Antenne habe ich selbst gebaut. Nach längerem Betrieb kann ich sagen: Das Projekt macht erstaunlich viel Spaß und liefert faszinierende Ergebnisse. Bis zu 335 km Reichweite mit einer Antenne aus Kupferdraht und einer N-Buchse für unter 10 Euro.

Was ist ADS-B eigentlich?

ADS-B steht für Automatic Dependent Surveillance-Broadcast. Jedes moderne Verkehrsflugzeug sendet damit periodisch seine GPS-Position, Flughöhe, Geschwindigkeit, ICAO-Kennung und Squawk-Code auf 1090 MHz. Das Signal ist nicht verschlüsselt und nicht authentifiziert. Jeder mit einem passenden Empfänger kann es dekodieren. Der Empfang ist legal und rein passiv, man sendet nichts.

Die Reichweite hängt von der Sichtlinie (Line of Sight) ab. Flugzeuge in großer Höhe sind über hunderte Kilometer empfangbar. Tieffliegende Maschinen oder Flugzeuge hinter Bergen dagegen nicht. Topografie spielt eine große Rolle.

Warum ein eigener Feeder?

Flightradar24 lebt von den Daten freiwilliger Feeder weltweit. Je mehr Stationen, desto besser die Abdeckung. Als Gegenleistung gibt es einen kostenlosen Business-Account. Der kostet regulär knapp 500 Euro pro Jahr und bietet unter anderem erweiterte Filter, historische Flugdaten und eine werbefreie Oberfläche. Für Hardware im Wert von 100 bis 150 Euro ein ziemlich guter Deal.

Geöffneter Filterdialog einer Flightradar24-App. Der Empfänger T-EDKB55 ist ausgewählt, Filterung ist aktiviert und ein benutzerdefinierter Filter (ICH) gesetzt. Unten Schaltfläche zum Hinzufügen weiterer Filter.

Nebenbei kann man die empfangenen Daten auch parallel an andere Dienste wie FlightAware oder ADS-B Exchange schicken. Und natürlich ist es einfach ein tolles Bastelprojekt mit sofort sichtbarem Ergebnis. Man sieht in Echtzeit auf einer Karte, welche Maschinen gerade über einem fliegen.

Hardware

Das Setup ist überschaubar:

KomponenteModellHinweis
EinplatinencomputerRaspberry Pi 4 Model B4 GB RAM, 64 GB SD-Karte
BetriebssystemPi24 (offizielles FR24-Image)Debian Bookworm, Kernel 6.12
SDR-DongleRealtek RTL2838 (RTL-SDR)Günstiger DVB-T-Stick als SDR-Empfänger
GPS-DongleVK-162 (u-blox 7)USB, 3D-Fix, ~10 Satelliten
AntenneEigenbau: λ/4-GroundplaneFür 1090 MHz, siehe Abschnitt Antennenbau

Der Raspberry Pi 4 ist für die Aufgabe eigentlich überdimensioniert. Ein Pi 2 oder 3 würde ebenfalls reichen. Das Pi24-Image von Flightradar24 bringt alles mit: Betriebssystem, den Feeder-Client fr24feed, den ADS-B-Decoder dump1090 und ein lokales Web-Interface. SD-Karte flashen, WLAN oder Ethernet konfigurieren, fertig.

Der RTL-SDR-Dongle ist ein umfunktionierter DVB-T-Stick. Die Dinger kosten zwischen 10 und 25 Euro und können in einem breiten Frequenzbereich empfangen. Für ADS-B braucht man 1090 MHz, das schaffen die meisten RTL2832U-basierten Sticks problemlos.

Standort

Mein Feeder steht im Raum Bonn/Hangelar (Siegburg-Umgebung). Nicht gerade der ideale Standort für maximale Reichweite. Die Eifel im Süden blockiert einen Teil des Empfangs, und die Antenne steht aktuell nur am Fenster. Trotzdem sind die Ergebnisse beeindruckend, dazu gleich mehr.

Meine Radar-ID bei Flightradar24: T-EDKB55.

Antennenbau: λ/4-Groundplane für 1090 MHz

Die mitgelieferten DVB-T-Antennen sind für den Frequenzbereich um 500 MHz ausgelegt. Für ADS-B auf 1090 MHz sind sie schlicht ungeeignet. Ich habe drei verschiedene gekaufte DVB-T-Antennen getestet. Alle performten schlechter als die Original-Stummelantenne. Das war frustrierend, aber auch lehrreich.

Die Lösung: Selbst bauen. Nach einer hervorragenden Anleitung von weberblog.net habe ich eine λ/4-Groundplane-Antenne gebaut. Das ist im Prinzip ein vertikaler Strahler mit vier Radialen, abgestimmt auf 1090 MHz.

Die Physik dahinter ist simpel: Die Wellenlänge bei 1090 MHz beträgt λ = c / f ≈ 27,5 cm. Ein Viertel davon (λ/4) ergibt 68 mm. Das ist die Länge jedes Antennenelements.

Material:

  • N-Einbaubuchse (N-Flanschbuchse)
  • 2,5 mm² Kupferdraht (massiv)
  • Koaxialkabel (RG213 oder Satellitenkabel)
  • M4-Schrauben zur Montage
  • Adapter je nach SDR-Stick (MCX, SMA oder BNC)

Aufbau: Ein Strahler (68 mm Kupferdraht) wird vertikal am Center-Pin der N-Buchse angelötet. Vier Radiale (ebenfalls 68 mm) werden an der Masse befestigt und ca. 45 Grad nach unten gebogen. Alle Elemente exakt auf 68 mm kürzen, das ist wichtig. Optional kann man einen Wetterschutz drüber stülpen, ein altes CD-Spindelgehäuse oder ein Stück PVC-Rohr tut es.

Laut der Bauanleitung von weberblog.net bringt die selbstgebaute Antenne im Indoor-Test +61% mehr erkannte Flugzeuge (39 → 63 Aircraft). Andere Bastler berichten von bis zu 160 NM Reichweite mit acht Radialen und Mastmontage. Meine Erfahrung bestätigt das. Der Unterschied zur Stummelantenne war sofort sichtbar.

Software

Das Pi24-Image bringt alles mit. fr24feed ist der offizielle Feeder-Client von Flightradar24. Er startet intern dump1090-mutability als ADS-B-Decoder und schickt die empfangenen Daten per UDP an die FR24-Server. Dazu läuft ein lighttpd für die lokalen Web-Interfaces.

Die Konfiguration liegt in /etc/fr24feed.ini:

receiver=dvbt
fr24key=<sharing-key>
path=/usr/lib/fr24/dump1090
bs=no
raw=no
mlat=yes
mlat-without-gps=yes
lat=50.578167
lon=6.948833
alt=1261

Lokal gibt es drei Web-Interfaces: Die FR24 Status-GUI unter http://<IP>/, den JSON-Monitor unter http://<IP>:8754/monitor.json und die dump1090-Karte unter http://<IP>:8080/. Die Karte zeigt in Echtzeit alle empfangenen Flugzeuge auf einer OpenStreetMap-Karte. Das alleine ist schon faszinierend.

Ersteinrichtung

Nach dem Flashen des Pi24-Images musste ich noch ein paar Dinge anpassen:

  1. Hostname geändert: pi24-bookwormflightradar24
  2. Statische IP konfiguriert via NetworkManager (DHCP → feste Adresse)
  3. GPS-Koordinaten in fr24feed.ini eingetragen
  4. dump978-fr24 deaktiviert (UAT 978 MHz wird in Europa nicht verwendet)
  5. Bluetooth deaktiviert (nicht benötigt, erzeugte unnötige Fehlermeldungen)
  6. OS-Update: 232 Pakete aktualisiert, Kernel von 6.6.21 auf 6.12.62
  7. Boot-Fix: Bind-Mount /boot/boot/firmware (Pi24-Image-Kompatibilität)

Reichweite und Ergebnisse

Nach drei Wochen Betrieb, noch mit der Antenne am Fenster:

MetrikWert
Flugzeuge aktuell getrackt (Snapshot)74 (34 ADS-B + 40 Non-ADS-B)
Flugzeuge gesamt gesehen1.541
Nachrichten verarbeitet~8,9 Millionen
Maximale Reichweite~335 km (~181 NM)
Signal (Durchschnitt)-20,9 dBFS
SNR~14,8 dB
CPU-Temperatur47,2 °C
Uptime20 Tage
Dashboard eines privaten Flightradar24-Empfängers (T-EDKB55) mit Status online, IP-Adresse und Betriebsdaten. Angezeigt werden Kennzahlen wie Anzahl erfasster Flugzeuge, gemeldete Positionen und Treffer sowie Diagramme zur täglichen Verfügbarkeit, Reichweite (Polar-Plot), Ranking und Histogramme.

335 Kilometer Reichweite. Mit einer Indoor-Antenne aus Kupferdraht für unter 10 Euro. Das war ein Norwegian-Flug (NOZ1802) über der Nordsee auf FL360. Das hätte ich vorher nicht für möglich gehalten.

Die Hauptabdeckung geht nach Norden und Nordwesten. KLM-Flüge über den Niederrhein und die Niederlande sind in 250 bis 335 km Entfernung problemlos sichtbar. Nach Nordosten reicht es bis ins Münsterland und den Raum Osnabrück. Nach Süden ist die Abdeckung durch die Eifel-Topografie eingeschränkt, aber Flüge bis in den Raum Trier/Luxemburg (~100 km) kommen noch durch. Lokal sieht man natürlich alles, was sich im Raum Bonn/Hangelar bewegt, Privatflieger, Kleinflugzeuge, Hubschrauber.

Kartenansicht von Mitteleuropa mit zahlreichen gelben Flugzeugsymbolen, die aktuellen Flugverkehr anzeigen. Hohe Dichte über Nordrhein-Westfalen, Benelux und den Niederlanden; einzelne Flugzeuge auch über Norddeutschland und Südwestdeutschland verteilt.

Ein paar Beispiele vom Snapshot:

CallsignAirlineHöheEntfernung
NOZ1802NorwegianFL360~335 km
BTI859airBaltic10.600 ft~249 km
KLM96EKLM14.725 ft~232 km
SIA314Singapore AirlinesFL360~25 km
BAW169British AirwaysFL330~16 km
UAE62TEmiratesFL380~42 km

Singapore Airlines, Emirates und British Airways über dem Rheinland. Das hat was.

Bug: NTP-Client in fr24feed 1.0.55-0

Achtung, Falle: Version 1.0.55-0 von fr24feed ist defekt. Der Feeder bleibt in einer Endlosschleife mit [time][e]Failed to synchronize time hängen und geht nie online. Nicht nur MLAT funktioniert nicht, das gesamte Feeding ist tot.

Ich habe das mit strace und tcpdump analysiert. Der statisch kompilierte interne NTP-Client löst pool.ntp.org per DNS korrekt auf, sendet aber nie UDP-Pakete auf Port 123. Der Client ist schlicht kaputt. Kein Workaround hat funktioniert: weder Root-Rechte, noch CAP_NET_RAW, noch ein lokaler NTP-Server, noch nftables DNAT-Umleitung.

Die Lösung ist ein Downgrade:

# Downgrade auf funktionierende Version
sudo apt install fr24feed=1.0.54-0
# Version pinnen gegen Auto-Update
sudo apt-mark hold fr24feed

Ich habe den Bug direkt an den FR24-Support gemeldet, mit strace-Nachweis, tcpdump-Capture und der kompletten Liste getesteter Workarounds. Die Antwort war ernüchternd: Man könne den Bug nicht reproduzieren, vermutet aber eine Library-Regression durch einen Wechsel des Build-Systems. Der Bug ist seit Januar 2026 auch im FR24-Forum bekannt (Threads #186163 und #231707). Da fr24feed proprietär und Closed Source ist, kann man leider keinen Pull Request einreichen.

Das bedeutet auch: MLAT (Multilateration) funktioniert bei mir aktuell nicht. MLAT würde es ermöglichen, auch Flugzeuge ohne ADS-B-Transponder zu erfassen, indem mehrere Feeder-Stationen die Signallaufzeiten triangulieren. Dafür braucht der Feeder aber eine exakte Zeitbasis, und genau die liefert der kaputte NTP-Client nicht. Sobald FR24 eine gefixte Version veröffentlicht, werde ich das aktivieren.

Kosten

PostenKosten
Raspberry Pi 4 (4 GB)~60–75 EUR
RTL-SDR USB-Dongle~10–25 EUR
Antenne (Eigenbau) / Kabel~5–10 EUR
GPS-Dongle VK-162~15 EUR
SD-Karte 64 GB~10 EUR
Netzteil, Kabel, Gehäuse~15–20 EUR
Gesamt~115–155 EUR

Für 115 bis 155 Euro bekommt man einen funktionierenden ADS-B-Feeder und einen Flightradar24 Business-Account im Wert von knapp 500 Euro pro Jahr. Das Projekt amortisiert sich also ziemlich schnell.

Was noch kommt

  • MLAT aktivieren, sobald FR24 den NTP-Bug fixt
  • Outdoor-Montage der Antenne mit Wetterschutz, das sollte die Reichweite nochmals deutlich verbessern
  • Parallel-Feeding an FlightAware, ADS-B Exchange und andere Dienste

Siehe auch:

Fragen, eigene Erfahrungen mit ADS-B oder Verbesserungsvorschläge? Gerne über das Kontaktformular.

Lötdampfabsaugung selber bauen: DIY-Projekt mit 3D-Druck und Restteilen​

Heute mal etwas ganz Einfaches… Beim Löten entstehen Dämpfe, die man besser nicht durch den „Lungenfilter“ aus der Luft ziehen sollte.

3D-gedruckte Lötdampfabsaugung

Hier kommen Lötdampfabsaugung ins Spiel. Es gibt kleine, einfache Modelle für etwa 50 €, die wie ein kleiner Tischventilator in der Nähe stehen, die Dämpfe absaugen und meist durch einen Aktivkohlefilter leiten. Allerdings stehen mir diese Geräte immer im Weg, und die Lüfter sind oft so schwach, dass trotzdem noch ein großer Teil der Dämpfe zu mir gelangt.

Dann gibt es noch Absaugungen mit mehr oder weniger flexiblem Schlauch. Auch hier erfolgt die Filterung ähnlich, aber diese Modelle kosten dann schnell ein paar Hundert Euro.

Da bei Projekten öfter mal Reste übrig bleiben, liegen in meinem Keller eigentlich schon alle Einzelteile für eine selbstgebaute Lötdampfabsaugung bereit. Man müsste sie nur noch zusammenbauen.

Ich habe noch einen 100-mm-Lüftungsschlauch aus Aluminium, der einigermaßen flexibel ist, einen 120-mm-12V-Lüfter, der für ordentlich Luftstrom sorgt, und ein paar 130-mm-Aktivkohlefilterplatten. Wenn ich davon einfach zwei doppelt nehme, geht mehr als genug Luft durch, und sie filtern die Dämpfe recht gut.

Mit FreeCAD habe ich dann ein Gehäuse für die Teile entworfen, das ich einfach unter meine Werkbank schrauben kann. So liegt nur der Schlauch in einer Ecke und kann bei Bedarf zur richtigen Stelle bewegt werden, um die Löt-Dämpfe direkt an der Quelle abzusaugen.

Hier ein paar Bilder für euch – die Druckdateien findet ihr bei Maker World.

Ob die Teile auch zu euren „Resten“ passen, müsst ihr selbst kurz prüfen.

Oh, Schlauch und Filter findet ihr bei Amazon.

Siehe auch: RD6006 Labornetzteil

Fragen? Einfach melden.

Arduino und die jammernde Pflanze: Technik trifft Humor

Auf irgendeinem CCC Event bin ich über eine lustige Projektidee einer jammernden Pflanze gestoßen. Die hat mir und auch meiner größeren Tochter so gut gefallen, dass wir sie zusammen nachbauen wollten.

Geöffnetes Gehäuse mit der gesamten Technik für das Arduino-Projekt: Die jammernde Pflanze

Die Idee

Ein kleines Gerät misst den Feuchtigkeitsgehalt der Blumenerde. Ist der Wert zu trocken, spielt ein MP3-Player eine Audiodatei ab. Ein Bewegungsmelder sorgt dafür, dass die Pflanze sich nur beschwert, wenn auch jemand da ist. Ist die Erde trocken und es wird eine Bewegung erkannt, jammert die Pflanze los.

Die Bauteile

Da es das erste Projekt dieser Art für meine Tochter ist, sollte es übersichtlich und einfach bleiben. Ein Arduino Nano (fast die gleichen Möglichkeiten wie der UNO, aber deutlich kleiner), ein DFPlayer-Modul als MP3-Player, ein HC-SR312 Bewegungsmelder und ein kapazitiver Feuchtigkeitssensor.

Aufbau und Entwicklung

Gestartet haben wir mit einem Breadboard, um die Verschaltung Modul für Modul zu setzen und die Ansteuerung mit dem Arduino anhand der Beispiele zu testen. Beim DFPlayer haben wir per TTS Texte in MP3s umgewandelt und auf der SD-Karte im Ordner mp3 gespeichert. Diese werden zufällig abgespielt, wenn die Erde zu trocken ist und eine Bewegung erkannt wurde.

Als die Verschaltung zusammen mit dem Code funktionierte, haben wir mit KiCad eine Platine designt und fertigen lassen. So hat man weniger Kabelsalat und alles ist platzsparend aufgehoben.

Elektrischer Schaltplan für die jammernde Pflanze

Das Gehäuse haben wir in FreeCAD designt und mit dem 3D-Drucker gedruckt. Die Teile sind mit einem Tropfen Sekundenkleber fixiert.

FreeCAD-Design des Gehäuses für die jammernde Pflanze

Im Einsatz

Das Teil steckt in der Blume und meldet sich zuverlässig, wenn es Zeit zum Gießen ist. Da es von den MP3s auf dem Player abhängt, was die Pflanze „sagt“, sind lustige Reaktionen garantiert. Die Pflanze kann dich im Vorbeigehen voll jammern, um Wasser betteln oder anfangen zu schimpfen.

Meine Tochter wird nach dem Projekt nicht alles alleine wiederholen können, aber die einzelnen Schritte sind klar. Wie so ein Gerät entsteht, was nötig ist. Schnell findet man Verbesserungsmöglichkeiten: Den Feuchtigkeitssensor von der Elektronik trennen, mit einem NodeMCU ESP8266 WLAN-Statusdaten senden, oder mit Li-Ion-Akkus und einem BMS vom Stromnetz unabhängig werden.

Quellcode

Für den DFPlayer wird die DFRobotDFPlayerMini Library benötigt (lokal unter ~/Arduino/libraries ablegen).

#include <Arduino.h>
#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>

/* --- Pins ---------------------------------------------------- */
const uint8_t PIN_DF_RX   = 10;
const uint8_t PIN_DF_TX   = 11;
const uint8_t PIN_PIR     = 7;
const uint8_t PIN_SENSOR = A0;

/* --- Parameter ----------------------------------------------- */
const int schwellwert = 380;
const unsigned long PLAY_COOLDOWN_MS = 15000;
const uint8_t TRACK_JAMMERN = 1;

/* --- Objekte ------------------------------------------------- */
SoftwareSerial dfSerial(PIN_DF_RX, PIN_DF_TX);
DFRobotDFPlayerMini dfPlayer;

/* --- Laufzeitstatus ------------------------------------------ */
unsigned long lastPlay = 0;

/* ------------------------------------------------------------- */

void setup() {
  pinMode(PIN_PIR, INPUT);

  Serial.begin(115200);
  dfSerial.begin(9600);

  Serial.println(F("Initializing DFPlayer ..."));

  if (!dfPlayer.begin(dfSerial)) {
    Serial.println(F("DFPlayer init failed"));
    while (true);
  }

  dfPlayer.volume(20);
  dfPlayer.outputDevice(DFPLAYER_DEVICE_SD);
  dfPlayer.EQ(DFPLAYER_EQ_NORMAL);
  dfPlayer.setTimeOut(500);

  Serial.println(F("DFPlayer Mini online"));
}

/* ------------------------------------------------------------- */

void loop() {
  /* DFPlayer Events immer zuerst abholen */
  if (dfPlayer.available()) {
    handleDFPlayerEvent(dfPlayer.readType(), dfPlayer.read());
  }

  int messwert = analogRead(PIN_SENSOR);
  bool bewegung = digitalRead(PIN_PIR) == HIGH;
  bool trocken = messwert > schwellwert;

  unsigned long now = millis();

  if (trocken && bewegung) {
    if (now - lastPlay >= PLAY_COOLDOWN_MS) {
      Serial.println(F("Bewegung + Erde trocken -> spiele Sound"));
      dfPlayer.play(TRACK_JAMMERN);
      lastPlay = now;
    }
  } else {
    logStatus(trocken, bewegung, messwert);
  }

  delay(100);  // leichte Entlastung – kein Logik-Delay
}

/* ------------------------------------------------------------- */

void logStatus(bool trocken, bool bewegung, int messwert) {
  if (!bewegung && trocken) {
    Serial.print(F("Keine Bewegung, Erde trocken: "));
  } else if (bewegung && !trocken) {
    Serial.print(F("Bewegung, Erde ok: "));
  } else if (!bewegung && !trocken) {
    Serial.print(F("Keine Bewegung, Erde ok: "));
  }
  Serial.println(messwert);
}

/* ------------------------------------------------------------- */

void handleDFPlayerEvent(uint8_t type, int value) {
  if (type == DFPlayerPlayFinished) {
    Serial.print(F("Track "));
    Serial.print(value);
    Serial.println(F(" beendet"));
  }
}

Downloads

3D-Druck: STL Gehäuse | STL Deckel
Platine: Gerber-Dateien

Einkaufsliste

Optional: Breadboard mit Kabeln, Multimeter, Lötkolben

Fragen? Einfach melden.

OBI LED-Produkt im Test: Was habe ich da gekauft?

Vor knapp zwei Jahren habe ich für meine Werkstatt ein paar neue Deckenleuchten benötigt. Bisher waren zwei Neonröhren meine Lichtquelle. Lichtfarbe und Stärke passten einfach nicht mehr. Im OBI habe ich zu diesem Zeitpunkt zufällig LED Leuchten gesehen, welche in Form und Länge an klassische Neonröhren erinnern. Der Preis lag irgendwo zwischen 10 bis 20 €, also kein Preis bei dem man viel falsch machen kann, oder?

OBI LED SCHROTT Typ LY-5024-2 von Ritter Leuchten GmbH

Naja, vielleicht ja doch!??! Jetzt nach zwei Jahren beginnen ein paar der LED Leuchten zu flackern. Also schnell eine der Leuchten von der Decke geschraubt um sie zu zerlegen. Vielleicht findet sich ja das Problem?!?

Die Schaltung ist sehr überschaubar. Zuerst eine kleine Sicherung, dann ein Brückengleichrichter, ein kleiner Kondensator zur Spannungsglättung (ich habe wohl zwei Versionen der Leuchten, mit und ohne diesen Kondensator), ein kleiner hochohmiger Widerstand (zur schnellen Entladung vom Kondensator beim „Licht aus“) und noch zwei „Einchip“ LED Treiber mit seinen Steuerwiderständen. Oh und natürlich die einzelnen LEDs!

Der Brückengleichrichter ist ein MB6s, welcher laut den Specs „passen“ sollte. Der 400v 10uF Kondensator zur Spannungsglättung passt ebenfalls für mich, auch der 1M Ω Endladewiderstand passt schon. AAAABBBEERRR die beiden LED Treiber SM2082D sehen schon etwas spannend aus, so als wenn die „warm“ werden. Laut specs geben sie bei 10V bis zu 60mA raus. Der Rest wird also in „Wärme“ verwandelt. Was man an den Operating temperature von -40 ~ 125°C bewundern kann.

Bei den Leuchten mit Kondensator pendelt sich die Temperatur bei etwas zwischen 70 und 75°C ein. Bei den Leuchten ohne Kondensator werden es auch mal 90°C. Da hat der kleine LED Treiber wohl ganz schön was zu regeln, wohl der Grund warum in Version 2 ein Kondensator vorgesehen ist.

Gut der Hersteller hat versucht mit etwas Wärmeleitpaste auf der Rückseite des LED Streifens die Temperatur ans Alugehäuse abzugeben. Die Menge und Verteilung der Wärmeleitpaste ist aber sehr sehr dürftig. Nach etwas Einsatzzeit nimmt die Leistung der Paste natürlich ab und irgendwann ist es halt zu schlecht oder besser gesagt, die LED Treiber werden zu heiß und verbrennen ihre eigenen Lötkontakte bis zum Haarriss. Dann flackert es… Ich habe daher die Kontakte nachgelötet (kein Flackern mehr) und mit Wärmeleitkleber einen kleinen Kühlkörper auf die Treiber geklebt. Damit hält sich die Temperatur bei knapp 50°C. Das sollte die Lebenszeit deutlich erweitern. Passende Kondensatoren liegen hier ebenfalls noch und sind verbaut. Mal sehen wie lange sie nun nicht flackern!

Zusätzlich habe ich das Alugehäuse noch mit der Schutzerde verbunden. Die simple Lackisolierung vom LED Streifen bei den Temperaturen hat mich nicht ganz überzeugt.

Ich würde sagen, dass hat jemand auf Verschleiß gebaut. Die Leuchten sollen wohl kurz nach der Garantie ausfallen. So zumindest mein Eindruck…. Bei dem Preis, naja…

Natürlich hätte ich damit rechnen können. Ich meine Leuchten kaufen, im OBI und dann für etwas bis 20€. Was können die schon in der Herstellung gekostet haben?

Typ LY-5024-2 von Ritter Leuchten GmbH www.ritos.de

Siehe auch: Multifunktionstester für Bauteile

Fragen? Einfach melden.

Softstart-Modul: Sanftanlauf für 230-Volt-Geräte

Um da ein paar Rückfragen zu folgendem Beitrage zu beantworten: Sanftanlauf für Elektromotor / Softstart / Anlaufstrombegrenzer

Bei meinem Eigenbau ging es nur darum, herauszufinden wie ich es mit vorhandenen Teilen bauen kann. Es gibt für gut bezahlbares Geld fertige Module. Dieses hier nutze ich selbst an der Kapp- und Gehrungssäge bei 230V und bis 2500Watt.

>>Amazonlink klick<<

Funktioniert so wie man es sich vorstellt.

Fragen? Einfach melden.

Spiegelheizung im Badezimmer

Schon einige Zeit nervt mich nach dem Duschen der beschlagene Spiegel. Bisher habe ich immer ein paar Sekunden mit dem Föhn draufgehalten und dann war alles ok.

Die Lösung

Klar, es gibt Spiegelheizungen. Es gibt sogar Spiegel mit eingebauter Heizung. Nur ist so etwas schon ein klares First World Problem. Ich habe es trotzdem gemacht: Eine Heizfolie bei Amazon gekauft und hinter meinen vorhandenen Spiegel geklebt. Strom bekommt sie von der Lampe über dem Spiegel.

Ergebnis

Sie tut was sie soll. Der Spiegel wird warm und beschlägt nicht mehr nach dem Duschen. Man kann auf den Bildern gut erkennen, welcher Teil beheizt wird und welcher weiterhin beschlägt. Die Oberflächentemperatur liegt bei etwa 35 °C.

Fragen? Einfach melden.

Bosch Schlagbohrmaschine war def.

Mitten im Einsatz ist mir meine Schlagbohrmaschine von Bosch „explodiert“ 🙁 Zum Kauf habe ich direkt für die erweiterte Garantie auf drei Jahre gesorgt daher war mein Ärger überschaubar.

Mitten im Bohren eines einfachen Loches hat es erst hinten in der Maschine geknallt, dann geblitzt und im Anschluss rauchte es. Über die Hotline habe ich einen Abholauftrag erstellt um das Gerät einfach auf der Arbeit abholen zu lassen. Dieses erledigte sich am 16.01.2019 fast von alleine. Heute am 21.01.2019 habe ich das Teil schon wieder zurück. Im Reparatur-Lieferschein stehen 1,5h Arbeit. Ein neuer Anker, neuer Polschuh und ein neuer Bürstenhalter. Damit ist klar was da explodiert ist! Kostet 0€ und am 18.01.2019 war die Schlagbohrmaschine schon wieder repariert.

In der Regel wundere ich mich ja erst darüber, dass ich noch nichts gehört habe und bekomme als Antwort auf meine Nachfrage: „Bitte noch etwas Geduld“. Aber das funktioniert hier spitze. Vor ein paar Jahren war schon einmal eines meiner Bosch Werkzeuge def. da hat die Reparatur ebenfalls ohne jedes Problem funktioniert. Dieses scheint wohl noch immer so zu sein. Ich stoße in der Regel eher an meine Grenzen als an die meiner Werkzeuge, daher passt es für mich. Haltbarkeit und Service/Support sind noch immer Top. Ich bleibe also Bosch ganz sicher ebenfalls bei den nächsten Werkzeugen wieder treu!

Für genau das Gefühl bin ich immer wieder bereit mehr Geld zu bezahlen! Danke Bosch!

Fragen? Einfach melden.

Wunderbarer Kreisschneider für die Holzwerkstatt: Ein Muss für Handwerker

Heute mal komplett weg von der IT. Ich lasse mich gerne von gutem Werkzeug beeindrucken, und mein neuer Kreisschneider hat das geschafft. Es war selbst 2018 nicht einfach, ihn zu bekommen. Das Teil ist regelmäßig schneller ausverkauft als der Hersteller nachliefern kann. Gekauft habe ich ihn bei feinewerkzeuge.de. Bei Amazon gibt es sehr ähnliche Modelle, mit denen viele ebenfalls zufrieden sind.

Das Problem mit Topfkreisbohrern

Für kleine Löcher nimmt man einen Bohrer, für größere einen Forstnerbohrer. Wird es noch größer, greift man zum Topfkreisbohrer. Ein ordentlicher kostet schnell 40 bis 100 Euro. Trotzdem hat man ähnliche Probleme wie mit billigen: Das Holz verbrennt, es reißt aus, und das ausgeschnittene Stück klemmt im heißen Bohrkopf. Wer verschiedene Lochgrößen abdecken will, hat ein kleines Vermögen in der Werkstatt liegen und braucht es vielleicht dreimal im Jahr. Natürlich hat man dann doch keine passende Größe. Ein Millimeter zu klein oder zu groß. Also kleiner bohren und dann schleifen. So wird man die Brandstellen gleich mit los. Oder auch nicht.

STAR-M Kreisschneider Nr. 36 HSS

Ein Bekannter hat mir irgendwann zu diesem Kreisschneider geraten. Er lässt sich komplett stufenlos einstellen, man hat also immer die passende Größe. Die Messer und die Zentrierspitze lassen sich einzeln und günstig tauschen, das Werkzeug selbst ist gut bezahlbar. Statt eines großen Bohrkopfs arbeiten nur zwei kleine Messer in massiven Metallhaltern. Weniger Kontaktfläche bedeutet weniger Reibung und weniger Hitze. Die Metallhalter führen die Restwärme zusätzlich ab. Die Japaner wissen, wie man gutes Holzwerkzeug baut.

Praxistest: 18 mm Buche-Leimholz

Hier ein paar Bilder vom Einsatz an einer 18 mm Leimholzplatte aus Buche:

Fragen? Einfach melden.

Regelbuch

Regeln oder gute Vorsätze — Ausgabe 2026

Illustration eines IT-Regelbuchs 2026 mit Serverrack, Schloss-Symbolen, Backup-Medien, Laptop mit Malware-Warnung und Zero-Trust-Hinweis – Sinnbild für IT-Security-Grundregeln wie Backup, Verschlüsselung, Monitoring und Dokumentation.

Dieses Regelbuch habe ich 2012 zum ersten Mal aufgeschrieben. 14 Jahre später — nach etlichen Migrationen, Security-Incidents, Nachtschichten und dem einen oder anderen Moment in dem ich mir selbst dankbar war, dass ich damals diese Regeln aufgestellt hatte — ist es Zeit für eine Überarbeitung. Die Grundidee bleibt: Regeln aus der eigenen Praxis, kein Lehrbuch. Hinter jeder Regel steht mindestens eine Geschichte, die ich lieber nicht noch einmal erleben möchte.

Was sich geändert hat? Die Welt ist komplexer geworden. Cloud, Zero Trust, DSGVO, Supply-Chain-Angriffe, Post-Quantum-Kryptografie — das gab es 2012 so nicht oder es hat damals niemanden interessiert. Was geblieben ist? Backups sind immer noch wichtig, Dokumentation macht immer noch keinen Spaß und das tote Pferd lässt sich immer noch nicht reiten.

#01 — Nenne das Kind beim Namen!

Klare Kommunikation. Kein Weichspüler, kein Drumherum-Reden. Wenn ein System am Limit ist, dann sage ich das — und zwar so, dass es auch der Geschäftsführer versteht. Nicht um Panik zu machen, sondern damit alle die gleichen Informationen haben und bewusste Entscheidungen treffen können.

Ich habe zu oft erlebt, wie Probleme so lange schöngeredet wurden, bis niemand mehr wusste, worum es eigentlich geht. Dann passiert der Fehler und alle sind überrascht. Klare Ansage, kurze E-Mail an alle Beteiligten — fertig. Schlafen alle besser.

#02 — Nicht ohne Backup!

Diese Regel ist 14 Jahre alt und hat sich kein einziges Mal als falsch herausgestellt. Vor jeder kritischen Operation — Patch, Migration, Upgrade, Plattentausch — gibt es ein Backup. Keine Ausnahme.

Was sich geändert hat: 3-2-1-Regel ist Pflicht geworden. Drei Kopien, zwei verschiedene Medien, eine davon offsite. Und seit Ransomware zum Volkssport geworden ist, braucht mindestens eine Kopie einen Schutz gegen nachträgliche Veränderung — immutable Snapshots, Air-Gap, WORM-Storage. Wer sein Backup auf demselben System lagert wie die Produktivdaten, hat kein Backup. Der hat eine Kopie, die beim nächsten Verschlüsselungstrojaner mit draufgeht.

Die Ausnahme von 2012 gilt immer noch: Kein Backup? Dann Regel #01 — und die Entscheider unterschreiben, dass sie das Risiko tragen. Schriftlich.

#03 — Teste dein Backup!

Ein Backup das niemand getestet hat, ist eine Wette. Vielleicht klappt der Restore, vielleicht auch nicht. Und im Ernstfall willst du das nicht zum ersten Mal ausprobieren — um drei Uhr nachts, mit dem Chef im Nacken.

Also: Regelmäßig testen. Nicht nur prüfen ob der Job durchgelaufen ist, sondern tatsächlich Daten wiederherstellen. Dabei lernt man zwei Dinge — ob es funktioniert und wie lange es dauert. Beides will man vorher wissen, nicht nachher. Gehört übrigens in den DRP (Regel #15).

#04 — Wie wichtig ist das überhaupt?

Nicht jedes System ist gleich wichtig. Eine Firma kann Tage ohne die Bildergalerie im Intranet leben — aber vier Stunden ohne E-Mail oder Warenwirtschaft und es wird teuer. Das muss vorher geklärt und schriftlich festgehalten sein. Am besten mit konkreten Zahlen: Was kostet eine Stunde Ausfall? Was kostet die höhere Verfügbarkeit?

Wenn die Kosten neben der gewünschten Verfügbarkeit stehen, werden die Diskussionen plötzlich sachlich. Und wenn dann doch mal was ausfällt, gibt es keine Überraschungen — weil alle wussten, worauf sie sich eingelassen haben.

#05 — Datenschutz ist kein Feature!

2012 habe ich hier geschrieben, dass Admins entdeckte Datenschutzprobleme ansprechen sollten. Das gilt immer noch — aber die Lage hat sich massiv verändert. DSGVO, Schrems II, das ganze Programm. Datenschutz ist keine nette Empfehlung mehr, sondern Gesetz. Mit Bußgeldern, die wehtun.

Als Admin bist du oft der Einzige, der wirklich sieht, wo Daten hinfließen. Dieses Wissen verpflichtet. Wenn personenbezogene Daten in eine Cloud wandern, die unter US-Jurisdiktion fällt, oder wenn Mitarbeiterdaten unverschlüsselt über das Netz gehen — dann muss das auf den Tisch. Nicht weil man der Datenschutzbeauftragte ist, sondern weil man das als Vertrauensperson schuldig ist.

#06 — Klare Ansprechpartner!

Der Serverraum hat ein Problem — wen rufst du an? Und wenn der nicht erreichbar ist? Klingt banal, ist es nicht. Klare Zuständigkeiten mit Vertretungsregelung müssen vorher definiert sein. Ein guter Ansprechpartner hat technisches Grundverständnis und Entscheidungskompetenz. Das Schlimmste ist, wenn du um drei Uhr morgens jemanden erreichst, der zwar zuständig ist, aber nichts entscheiden darf.

#07 — Ein totes Pferd kann man nicht reiten.

Es gibt Systeme, die sind am Ende. End-of-Life Software, Hardware ohne Ersatzteile, Betriebssysteme ohne Security-Updates. Man kann noch so viel Geld und Zeit reinstecken — irgendwann hilft kein Workaround mehr. Dann muss man Nein sagen. Nicht aus Bequemlichkeit, sondern weil man für ein System, das nicht mehr zu verantworten ist, keine Verantwortung übernehmen kann.

2012 habe ich als Beispiel alte Windows-Server genannt und Debian-Systeme mit Archive-Quellen. 2026 stehen da noch ganz andere Dinge: PHP 7 im Internet, ungepatchte Log4j-Instanzen, TLS 1.0 auf dem Mailserver, CentOS 7 ohne Extended Support. Alles tote Pferde. Absteigen, neues Pferd suchen.

#08 — Workarounds dokumentieren!

Workarounds sind wie provisorische Brücken — sie helfen im Moment, aber wenn niemand sie aufschreibt, werden sie zum Dauerzustand. Und irgendwann weiß niemand mehr, warum dieser eine Cronjob jeden Dienstag um 04:17 Uhr den Apache neustartet.

Also: Jeden Workaround dokumentieren. Was ist das Problem? Was ist der Workaround? Warum keine echte Lösung? Und dann regelmäßig prüfen, ob sich die Lage geändert hat. Manchmal gibt es nach einem Update plötzlich eine richtige Lösung — aber nur wenn man noch weiß, dass da ein Workaround im Weg steht.

#09 — Es lebe die Dokumentation!

Jetzt mal unter Freunden — Dokumentation macht keinen Spaß. Hat es nie, wird es nie. Aber sie ist überlebenswichtig. Nicht für dich heute, sondern für dich in sechs Monaten, wenn du vergessen hast warum du diesen einen Parameter so gesetzt hast. Oder für den Kollegen, der deinen Dienst übernimmt während du im Urlaub bist.

Mein Ansatz: Ich dokumentiere so, dass mein zukünftiges Ich es versteht, wenn es müde und gestresst ist. Nicht mehr, nicht weniger. Und ja — dieser Blog ist ein Teil davon. Halb Dokumentation, halb Selbsttherapie.

#10 — Das richtige Werkzeug!

Wenn du mit dem falschen Schraubendreher lange genug an einer Schraube drehst, hast du am Ende eine runde Schraube und einen kaputten Schraubendreher. Gilt für Hardware, gilt für Software, gilt für Prozesse. Das richtige Werkzeug kostet manchmal Zeit zum Holen — spart aber ein Vielfaches an Reparaturzeit hinterher.

Heute heißt das auch: Nicht jedes Problem braucht eine Enterprise-Lösung. Manchmal ist ein Shell-Script besser als eine teure Plattform. Und manchmal ist die teure Plattform besser als drei zusammengestrickte Shell-Scripts. Den Unterschied zu erkennen ist die eigentliche Kunst.

#11 — Ist der Stecker drin?

Klingt dumm, ist es nicht. Systematisches Troubleshooting fängt bei den einfachsten Dingen an. Der Benutzer sagt, er habe alles probiert — trotzdem lohnt sich der eigene Blick. Zu oft war zwar der Stecker drin, aber der von der Kaffeemaschine.

Mein wichtigstes Troubleshooting-Prinzip: Nicht von der Mitte anfangen und raten, sondern systematisch von unten nach oben. Kabel, Link, IP, DNS, Dienst, Applikation. Und wenn man sich verrannt hat — zurück zum letzten Punkt, an dem noch alles funktioniert hat. Das klingt trivial, aber in der Hitze des Gefechts vergisst man es erstaunlich oft.

#12 — Jedem sein Login!

Personalisierte Accounts mit eigenen Zugangsdaten. 2012 wie heute, keine Diskussion. Nicht um jemandem etwas vorzuwerfen, sondern um nachvollziehen zu können was passiert ist und daraus zu lernen.

Was dazugekommen ist: MFA überall. Zweiter Faktor, keine Ausnahme. Am besten Hardware-Token oder Passkeys. SMS als zweiten Faktor akzeptiere ich nur noch unter Protest und mit Verweis auf Regel #01. Und geteilte Admin-Accounts? Tot. Jeder Admin bekommt seinen eigenen privilegierten Account — nachvollziehbar, sperrbar, auditierbar.

#13 — Verschlüssele alles!

Daten in Bewegung — verschlüsselt. Daten in Ruhe — verschlüsselt. Keine Ausnahme, kein „aber intern ist das ja sicher“. Intern ist gar nichts sicher, das hat uns jeder zweite Ransomware-Vorfall der letzten Jahre gezeigt.

TLS 1.3 als Minimum, Festplatten verschlüsselt, Backups verschlüsselt. Und wer heute noch Systeme ohne Transportverschlüsselung betreibt — SMTP ohne STARTTLS, HTTP ohne TLS, LDAP im Klartext — der muss sich fragen lassen, welches Jahr wir haben. Bonuspunkte für Post-Quantum-Kryptografie, denn Quantencomputer kommen schneller als man denkt.

#14 — Patch deine Systeme!

Ein ungepatchtes System ist eine offene Einladung. Das war 2012 schon so, aber heute ist die Zeit zwischen Veröffentlichung einer Schwachstelle und dem ersten Exploit auf Stunden geschrumpft. Nicht Tage, nicht Wochen — Stunden.

Patch-Management muss ein Prozess sein, kein Zufall. Regelmäßig, geplant, getestet. Und ja — Regel #02 kommt vorher. Erst Backup, dann Patch. Wenn ein Patch nicht eingespielt werden kann, weil die Software zu alt ist oder der Hersteller keinen mehr liefert — siehe Regel #07. Totes Pferd.

#15 — DRP!

Disaster Recovery Plan. Schon beim Erstellen werden einem Dinge bewusst, die man sonst übersieht. Systeme werden priorisiert (Regel #04), Verantwortliche benannt (Regel #06), Backups getestet (Regel #03). Ein DRP gibt nicht nur dem Admin Sicherheit — das ganze Unternehmen profitiert, weil es einen Plan für den Notfall gibt.

Neu seit 2012: Der DRP muss auch Cloud-Szenarien abdecken. Was passiert, wenn der Cloud-Provider ausfällt? Oder den Vertrag kündigt? Oder die Region nicht erreichbar ist? Und er muss getestet werden — nicht nur auf dem Papier, sondern als echte Übung. Einmal im Jahr den Ernstfall durchspielen. Das ist unbequem, aber es zeigt schonungslos, wo die Lücken sind.

#16 — Vertraue niemandem!

Zero Trust. Kein Gerät, kein Benutzer, kein Netzwerksegment ist automatisch vertrauenswürdig — auch nicht „das interne Netz“. Jeder Zugriff wird authentifiziert und autorisiert. Jedes Mal. Klingt paranoid, ist aber die einzige Architektur, die noch Sinn ergibt, wenn man akzeptiert, dass der Perimeter längst durchlöchert ist.

Das bedeutet nicht, dass man niemandem mehr trauen soll — aber das Vertrauen muss technisch durchgesetzt werden, nicht angenommen. Microsegmentierung, Least Privilege, kontinuierliche Verifikation. Und ja, das ist aufwendig. Aber weniger aufwendig als der nächste Incident, bei dem sich ein Angreifer lateral durch das „sichere“ interne Netz bewegt hat.

#17 — Was du nicht misst, existiert nicht.

Ein System ohne Monitoring ist wie Autofahren ohne Tacho und ohne Warnleuchten. Es läuft — bis es das nicht mehr tut, und dann weißt du nicht warum. Monitoring heißt nicht nur „ist der Server erreichbar“, sondern: Wie voll ist die Platte? Wie hoch ist die Load? Gibt es ungewöhnliche Login-Versuche? Läuft der Backup-Job durch?

Und dann brauchst du Alerting, das dich weckt, wenn etwas schiefgeht — nicht erst wenn der Benutzer anruft. Ein guter Alert ist einer, der dich aus dem Bett holt, bevor der Schaden eintritt. Ein schlechter Alert ist einer, der so oft kommt, dass du ihn ignorierst. Die Balance zu finden ist eine Kunst für sich.


Das waren 2012 dreizehn Regeln, jetzt sind es siebzehn geworden. Die Welt ist nicht einfacher geworden. Aber die Grundidee bleibt: Klartext reden, Backup machen, Dokumentation schreiben, tote Pferde rechtzeitig erkennen. Wer das beherzigt, schläft nachts besser.

Erste Fassung: März 2012 — Überarbeitet: März 2026

© 2026 -=Kernel-Error=-RSS

Theme von Anders NorénHoch ↑