Schlagwort-Archiv: USB

DCF77 Pollin – Serial

Jetzt habe ich mal eine Weile mit den DCF77 Modulen experimentiert. Nachdem der C64 und auch Arduino funktionierte, war es Zeit über Serial RS232. Vielleicht nehme ich das für meinen XT 8088 her, da dieser PC keine RTC hat. Sodass bei jedem Ausschalten, die Uhrzeit verloren geht.

Beim Testen sind mir einige Sachen aufgefallen, was die Störung angeht. Beim Serial Kabel sollte man ein abgeschirmtes Kabel nehmen und die eine Leitung ohne Isolierung sollte als GND hergenommen werden.
Am Besten ein Kabel verwenden, das genau 4 Adern haben und nicht mehr. Die unnötigen Adern führen zu Störungen. Zuerst habe ich kein abgeschirmtes Kabel verwendet und das Signal war saumäßig, wenn ich in der Nähe war. Erst wenn ich weit entfernt war ca. 2- 4m war das Signal wieder ok. Das Serial Kabel habe ich 2m lang gemacht, damit man das Modul selbst weit vom Laptop/PC entfernt ablegen kann. Auch dies führt zum schlechten Empfang.
Was man sehr gut an der 2. LED sehen kann. Die LED darf nicht flimmern, sonst ist das Signal nicht in Ordnung.

Hier der Schaltplan:

Nachbau auf eigene Gefahr, ich übernehme hier keine Haftung.

Auf der Schaltung ist ein Jumper, wo man zwischen Pin 8 und Pin 6 wählen kann. Weil es Software gibt, wo man nicht softwareseitig den Daten-Pin angeben kann.
Z.B. DCF-Receiver V2 von dcf77logs.de will den Pin 8 haben. Man erspart sich so das Umlöten/ Umstellen der Software.
Für mich ist DCF-Receiver V2 mein Lieblingsprogramm unter Windows 10. Unter Linux hat man mehr Auswahl. Zur Verbindung an einem modern PC / Laptop habe ich einen Logilink USB 2.0 zu Serial Adapter. Der Adapter funktioniert unter Windows 10 ohne Treiber. Der Chiptreiber für FTDI FT232RL ist in Windows 10 enthalten.

Für Dos habe ich noch das DOS-Programm gefunden:
http://www.dl3ukh.de/Bastel-Decoder.htm

Für Windows gibt es auch noch Funkuhr:
https://www-user.tu-chemnitz.de/~heha/hsn/free.var#funkuhr

Da habe ich das Problem, das dies nur 15 -20 min. läuft und dann funktioniert die Stromversorgung (Pin 4) nicht mehr.
Hat aber auch die PC Uhr nicht umgestellt. Sonst wäre das ein sehr feines Programm.

Habe ich noch nicht am XT Computer getestet.

Falls jemand noch Verbesserungsvorschläge hat, immer her damit : ).

 

Hier mal die Fehlerrate vom Modul aus der Funkuhr (nicht das Pollin-modul, dass ist deutlich besser). Die obere Schaltung funktioniert auch mit einer alten Funkuhr. Man muss nur die Pins finden und Geduld haben. Am Anfang kommt nur Müll, erst nach 10 bis 20 min. hat das Flimmern aufgehört.

 

DCF77 am Arduino

Beim C64 hatte ich ja schon mal mit einem DCF77 Modul experimentiert. Jetzt habe ich wieder ein DCF77 Modul im alten Funkwecker und habe mal erfolgreich getestet, ob dies nicht auch mit einem Arduino geht. Die DCF77-Funkuhren empfangen das Signal des DCF77 Langwellensenders. Dieser Langwellensender steht in Mainflingen bei Frankfurt am Main. Die Sendefrequenz beträgt 77,5 kHz. Obwohl die Sendeanlage schon seit 1959 in Betrieb ist, gibt es nicht wie bei LTE große Funklöcher und ist fast überall in Deutschland zu empfangen. DCF77 strahlt auf Langwelle eine codierte Zeitinformation aus, die am DCF77 Empfänger decodiert werden muss. In diesen Fall macht das nun unser Arduino.

Jedenfalls war das Modul DCF77 vom Wecker und hat sehr lange beim einpendeln gebraucht, bis ich mal eine Uhrzeit bekommen habe. Also habe ich bei Pollin mal ein DCF77 DCF1 (laut Beschreibung ist das die 3. Version) gekauft und dies ging deutlich besser. Deshalb hier jetzt die Beschreibung, wie man das mit Arduino aufbaut. Beim Pollin DCF77 muss am Anschluss PON (Power ON) mit GND verbunden werden.

Jetzt beschreib ich mal, was der Aufbau macht. Nachdem Arduino UNO mit Strom versorgt wurde, wird nach kurzer Zeit die MAC Adresse angezeigt. Danach wird versucht, eine IP über DHCP zu bekommen. Wer also eine feste IP haben will, sollte beim Router die MAC-Adresse hinterlegen. Welche IP man bekommen hat, wird in der 4. Zeile unten angezeigt. Zu Beginn steht jetzt Datum auf 01.01.1970 und die Uhrzeit auf 00:00:00, da der Arduino kein RTC. Real-time Clock (RTC) oder physikalische Uhr ist eine Uhr, welche die physikalische Zeit misst. Eine RTC verfügt über eine Batterie, so dass wenn der z.B. Arduino oder PC stromlos ist, immer noch weiß wie spät es ist.

Beim Pollin DCF1 Modul warten wir mal die im Datenblatt erwähnten 20 Minuten ab und die Uhrzeit/Datum sollte nun auf der LCD ausgegeben werden. Danach sollte alle paar Minuten mal die LED aufblitzen. Die LED zeigt an, wann die Zeit empfangen wurde und synchronisiert wird. Zusätzlich habe ich noch einen DHT22. Der DHT22 ist ein zuverlässiger Sensor zum Ermitteln von Temperatur und Luftfeuchtigkeit.
Die Vorgänger DHT11/DHT21 funktionieren auch, aber der DHT22 liefert schnellere und bessere Ergebnisse in meinem Test. Mit einem Arduino Ethernet ENC28J60 Modul werden aktuell Uhrzeit, Datum, Feuchtigkeit und Temperatur für Smartphone, Laptop, … darstellbar. Man kann noch über das Webinterface das Hintergrundlicht für die LCD-anzeige an-/abschalten. Mehr geht erstmal noch nicht.

Man könnte da noch viel mehr machen, über Funk z.B. Licht / Steckdosen schalten,…

So hier der Quellcode auf GitHub

Dazu noch die Steckverbindungen:

Tipps:

LCD zeigt weiße Kästen oder nichts:

1. Verbindung überprüfen
2. Poti auf Rückseite links/rechts drehen für Helligkeit
3. Folgende Zeile suchen:
LiquidCrystal_I2C lcd(0x3F,20,4);

Hier den HEX wert 0x3F durch 0x27 ersetzen.

DCF77 keine Zeit nach über 20 min:

1. Verbindung überprüfen
2. Arduino mit Netzteil versorgen, nicht über USB mit Laptop/PC (Kann Störungen verursachen)
3. DCF77 soweit wie möglich von elektronischen Geräten in der Nähe fern halten

Folgende Bibliotheken werden benötigt:

– DCF77
– TimeLib
– DHT
– EtherCard

 

Mach aus deinem C64 eine Jukebox!

.Sid Dateien sind gerippte Musikstücke vom C64. Diese Dateien können am PC mit sogenannten SIDPLAYER wiedergeben werden. Der Emulator VICE hat einen sidplayer dabei. Wer aber einen C64 hat, will dies nicht am PC hören oder ??? Der C64 kann so mit SID-Datein nicht umgehen, darum verwende ich hier Sidplay64. Sidplay64 unterstützt sogar SD2IEC, ob es auch mit IEC-ATA-Interface läuft, kann ich noch nicht sagen. Aber sobald ich das Teil fertig habe : ). Wenn Ihr den Sidplayer runtergeladen habt, braucht Ihr noch dirmaster, ein Tool zum editieren/erstellen von Disketten-images (.d64). Was darf nicht fehlen? Richtig, die SID Datein selber : ).
Die könnt Ihr z.B. hier saugen: HVSC collection

Startet nun das Programm Dirmaster und öffnet damit „SP64_TESTDISK.D64“ (in der Sidplay64.zip). Drückt nun auf „File“ -> „Import“ um eure SID zu importieren. Das macht Ihr bis die Diskette voll ist.
Nicht vergessen zu speichern!!!

Ich habe hier mal ein fertiges Diskettenimage erstellt:

sid

Runterladen könnt hier es hier:
SID.ZIP

Die SID.d64 kann am Emulator wie Vice verwendet werden oder ihr übertragt das Image auf eine Diskette via X1541-Kabel an das Floppylaufwerk.

Was ist den X1541 Kabel ist? Kann man hier nachlesen:
http://www.c64-wiki.de/index.php/X1541

Ich habe das xu1541-Kabel, da ich nur USB verwenden kann. Als Software verwende ich gerade OpenCBM, CBMXfer. Habt Ihr die Diskette im C64, gebt ihr nur LOAD“*“,8,1 ein und RUN.
Meine Final Cartridge III mag Sidplay64 nicht aber ohne gehts super : ).

Die Bedienungsanleitung ist auch in der Sidplayer64 ZIP, readme.txt.
Ich nutze immer die Taste „N“ für Next und stelle den Timer ein mit „<“ oder „>“, so wird nach Ablauf der Zeit die nächste sid geladen.

Raspberry Pi von USB-Festplatte betreiben

Raspian Pi kann nur von SD-Karten booten, gleich von USB booten ist nicht möglich. Wer Angst wegen Schreibzugriffe auf der SD-Karte hat, kann die SD-Karte auch nur zum booten verwenden. Das eigentliche System kann auf der USB-Festplatte oder USB-Stick laufen. Externe USB-Festplatten sollten eine eigene Stromversorgung haben.

Als erstes sollte sicher gestellt werden, dass die Patition MBR ist und nicht GPT. Es sollten auch keine Daten mehr drauf sein die benötigt werden. Alle Daten von der Festplatte gehen verloren!

Schließt eure USB-Festplatte am Raspberry Pi an und bootet ganz normal von euer SD-Karte. Meine Festplatte lautet /dev/sda , solltet ihr eine weitere Festplatte betreiben, kann das z.B. /dev/sdb sein.

Wer jetzt GPT hat, kann so auf MBR umstellen:
sudo parted /dev/sda

Jezt wird parted gestartet und erwartet einen Befehl:
mklabel msdos

Jetzt gebt quit als Befehl ein um parted zu beenden. Jetzt kann die Festplatte partitioniert werden:

sudo cfdisk /dev/sda

Ich habe 170 GB für eine Linux-Partition, 2GB für Swap eingerichtet. Danach muss man die Partition auswählen und den Typ der Partition angeben. Linux-Partition bekommt Type 83 und SWAP Type 82. Nun die Partitionsdaten auf die Platte schreiben und cfdisk beenden. Das Dateisystem kann nun angelegt werden:

sudo mkfs.ext4 /dev/sda1
sudo mkswap /dev/sda2

Ab jetzt kann man die Festplatte schon verwenden, man muss die Festplatte nur noch zur Verfügung stellen mit:

sudo mount /dev/sda1 /mnt

Kopiert eure Daten von der SD-Karte auf die Festplatte:
cd /mnt
sudo cp -axuv / .

Da booten von der Festplatte nicht möglich ist, löschen wir den Boot-Ordner von der Festplatte. Nicht von der SD-Karte!


sudo rm -R /mnt/boot
sudo nano /mnt/etc/fstab

Sucht die Zeile und setzt eine Raute davor:

#/dev/mmcblk0p2 / ext4 defaults,noatime 0 0

Fügt unter dieser Zeile diese Einträge hinzu:

/dev/sda1 / ext4 defaults,errors=remount-ro 0 1
/dev/sda2 none swap sw 0 0

Auf der SD-Karte muss nun cmdline.txt bearbeitet werden.

sudo nano /boot/cmdline.txt

In der einen Zeile muss root=/dev/mmcblk0p2 durch root=/dev/sda1 ersetzt werden, damit wird das System von der Platte gebootet. Jetzt kann man die SWAP-Partition noch verwenden mit:

sudo swapon -a

Jetzt soll man mit sudo reboot neustarten. Zum Testen kann man dann df -h eingeben:

Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
rootfs 182G 2,5G 170G 2% /
/dev/root 182G 2,5G 170G 2% /
devtmpfs 211M 0 211M 0% /dev
tmpfs 44M 264K 44M 1% /run
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 470M 0 470M 0% /run/shm
https://dav.box.com/dav 10G 0 10G 0% /home/pi/Desktop/box.com

Wie man sehen kann hat /dev/root nun 170 GB : ), habe das Gefühl es geht schneller als von der SD-Karte. Jetzt kann man noch das dphys-swapfile deaktivieren:

sudo update-rc.d dphys-swapfile remove

Anschließend sollten Sie einen Neustart des Systems durchführen.

sudo shutdown -r now

Nach dem Neustart können Sie durch swapon überprüfen ob die Auslagerungsdatei nicht mehr verwendet wird. Bzw. nur unser angelegte SWAP-Partition verwendet wird:

swapon -s

Das Ergebniss sollte so aussehen:

Filename Type Size Used Priority
/dev/sda2 partition 1954444 0 -1

USB Soundkarte am Raspberry Pi

Raspberry Pi besitzt keinen Audioeingang für z.B. ein Microfon. In dieser Anleitung verwende ich das Gerät Virtual 7.1CH (C-Media Chipset) USB Sound Card. Als Erstes steckt die Soundkarte am USB-Port der Raspberry Pi. Keine Gewalt bitte ;)!

Installiert noch folgende Pakete, wenn Ihr in der Konsole arbeitet.

sudo apt-get install alsa-utils mpg321 lame

Mpg321 ist ein MP3-Kommandozeilen-Abspieler
alsa-utils ist Dienstprogramme für Konfiguration und Verwendung von ALSA
LAME ist ein MP3 Encoder

Jetzt müssen wir das Gerät finden, am besten mit:

sudo lsusb

Bei mir sieht das Ergebnis so aus, meine Soundkarte habe ich jetzt fett makiert:

Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 008: ID 1941:8021 Dream Link WH1080 Weather Station / USB Missile Launcher
Bus 001 Device 005: ID 0d8c:000c C-Media Electronics, Inc. Audio Adapter

Nur Audiogeräte anzeigen:

cat /proc/asound/cards

Jetzt muss man die alsa-base.conf bearbeiten:

nano /etc/modprobe.d/alsa-base.conf

Sucht die folgende Einstellung, setzt eine Raute am Anfang der Zeile:

#options snd-pcsp index=-2

Bei options snd-usb-audio index=-2 darf keine Raute am Anfang sein. Falls das aber so sein sollte, muss die Raute entfernen.

Datei Speichern und Soundcheck : )!!!
Da ich jetzt keine Lust habe Audiodatein zu kopieren, mache ich es mit folgenem Befehl:
speaker-test -t sine -f 440 -c 2 -s 1

Funktioniert die Soundausgabe, heißt das noch lange nicht, dass auch ein Mikrofone funktioniert.
Falls man nichts hören kann, muss noch ein wenig an der Konfiguration drehen werden.

alsamixer

alsamixer

Hier muss der Regler Mic eingestellt werden. Wird aus allen Versuchen nichts, bleibt nur noch, ein anderen Mikro zu probieren, um einen Hardware-Defekt auszuschließen. Ebenso sollten Sie sicherheitshalber noch einmal prüfen, ob das Mikrofon auch wirklich eingeschaltet ist.