This page is still under construction, I am using it as my
online notebook. To Do It's time to finalize and sort the content on this page, but ...! ;-) |
|
Bauelemente, Baugruppen |
|
"Die Einen kochen und kreieren leckere Gerichte; hier findet
man einige Zutaten zur Realisierung elektronischer Schaltungen." mkn, 2013, ;-) |
|
-> Software für den simple-GPSDO |
|
Die Software von F1CJN wird als Basis-SW verwendet, lediglich die gewünschte Timepulse-Frequenz ist anzupassen. -> GPSDO : NE0-7M with Arduino to replace the 10 KHz from GPS Rockwell Jupiter by F1CJN - selbstverständlich sind eigene Kreationen verwendbar, die Hardware-Schnittstellen sind zu beachten - Die vorgenommenen Erweiterungen der Basis-Software sind u.a.. - einige Korrekturen in der Anzeige(wie z.B. Vornullen oder Leerzeichen bei der Zeitanzeige) - Beseitigung des sporadischen Springens der Sekunden - Messung der Abstimmspannung des OCXO - Lock-Zustand der PLL, hier gibt es noch einiges zu tun [15.09.20, mkn] - Temperaturmessung, der Sensor ist frei positionierbar, z.B. Gehäuse-Temperatur des OCXO, Geräte-Innentemperatur, externer, kabelgebundener Sensor, etc. - Auswahl der angezeigten Informationen, Anpassung an das gewählte Display und den Anforderungen des OM's - manuelles oder softwaregestütztes Holdover, in Planung für November 2020, leider nur Planung bis heute[27.01.21], ´ manuelles Holdover umgesetzt, PCB rev2.37, Feb. 2021 - simple-Holdover umgesetzt, Uc Generierung via DAC, PCB rev 2_37 |
...[14.02.2021,..., mkn] Nun ist nahezu ein Jahr, seit Nutzungsbeginn der Software von F1CJN und den mitgelieferten Bibliotheken, vergangen. Es wird Zeit zu einem Update der Bibliotheken und der nötigen Anpassung der Software. |
GPSDO : NE0-7M with Arduino to replace the 10 KHz from GPS Rockwell Jupiter by Alain, F1CJN Das NEO-7M_Arduino_Jupiter_10KHz.zip enthält folgende Files: Bitte auch das pdf-File beachten NEO-7M_Arduino_Jupiter_10KHz.pdf, 11.11.2016 - GPSDO : NE0-7M with Arduino to replace the 10 KHz from GPS Rockwell Jupiter par Alain Fort F1CJN - Projekt-Idee - Blockschaltbild - Erläuterung zur Software - gelisteter Sketch - die mitgelieferten Bibliotheken |
Alain_F1CJN (@f1cjn) / Twitter Bild: F1CJN |
- Software: - ino -> NEO-7M_10KHz_V1.0.ino by Alain, F1CJN - PCB: V. 1.0 & 2.37 - GPS-Rx-Breakout Board mit ublox NEO-6M-, NEO-7M-Modul (F1CJN hat die Software für dieses Modul geschrieben) - Display: 4*20 Zeichen, LCD, I2C-Interface - Funktionen: - Setzen der TiP(Timeimpuls)-Frequenz - Anzeige: - Koordinaten - Zeit(UTC) - SAT, QTH-Locator - Datum könnte aktiviert werden - Ausgabe auf seriellen Monitor der IDE |
Programmablaufplan, Flow chart |
- Serial Monitor via USB at 115200 bauds ---> Serieller Monitor |
|
- Bitte die
von F1CJN mitgelieferten Bibliotheken
TinyGPSPlus, LiquidCrystal und Wire verwenden. Einbinden der Zip-Files über die IDE. Anmerkung: zusätzlich habe ich auch die Wire-Bibliothek aufgenommen, da es sonst eine Fehlermeldung gibt. Ich habe den Eindruck, dass in der Library LiquidCrystal etwas nicht sauber programmiert ist. So bleibt immer etwas für die Zukunft, hi. [mkn] |
Achtung, in der mitgelieferten TinyGPSPlus-Version gibt es einige Abweichung zur üblichen Notation in der Original-Version. https://github.com/mikalhart/TinyGPSPlus |
- Anwendung sGPSDO: in Zeile 128 die gewünschte Timepulse-Frequenz eintragen | |
-> Ausdruck des Sketches mit Zeilennummer mit Notepad++ | |
- Issue: Time, Sekundenanzeige - die Sekundenanzeige springt von Zeit zu Zeit - Lösung, in Zeile 149 Funktion smartdelay(ms), ms reduzieren, neu: smartDelay(600);, 600 ms , Zeit zum Auslesen der durch das GPS-Modul zyklisch gesendeten Datensätze |
|
======================================================================================= | |
Die nachfolgenden Sketche sind angepasste, umfangreich erweiterte Sketche auf der Basis der Software von Allain, F1CJN. | |
Tnx for support, testing and/or comments to F1CJN, DL5MGD, TK5EP, DC5WW, DL4ZAO, DJ8LC, DM4iM, DK4BX, DH5SW, DF6NN and ... | |
Die Basis-Software wurde bewusst
beibehalten, im Sinne "Bauen und Lernen" oder auch "Learning by Doing",
angepasst und erweitert. Da war auch etwas mit KISS. Jedem Einzelnen ist es natürlich vorbehalten die Software in seinem Sinne anzupassen, ist ohnehin das obige Ziel, oder andere Lösungen zu schaffen. Ein ausgebildeter Programmierer wird die Struktur des Sketches sicherlich zerlegen und nach den allgemeinen Gepflogenheiten aufbauen. Im Netz finden sich zahlreiche alternative Bibliotheken zu der hier verwendeten TinyGPSPlus. Und wer den Sketch genau liest findet auch verschiedene direkte UBX-Kommandos zur Steuerung des ublox NEO-6M/7M Moduls. Alternative GPS-Bibliotheken sind u.a.: - UbxGps - NeoGPS - GPS-neo-6m -> https://cristiansteib.github.io/Gps-neo-6m |
Unseren Slogan sollten wir in "Lesen, Bauen und Lernen" abändern. |
======================================================================================= | |
- Bezug der Software |
|
-> dl7ukm @ darc.de [Leerzeichen löschen] | |
- Bei der Anfrage bitte die gewünschte Version der
Software angegeben. - verwendete Version der Leiterplatte - Typ des GPS-Rx-Modules NEO-6M, NEO-7M, NEO-M8M, ... - verwendetes Display - genutzte Optionen - Was soll angezeigt werden? - ino- oder hex-File |
|
- Aktuelle Versionen der Software |
|
- SW für Display: 4*20 Zeichen, LCD, I2C-Interface |
|
- SW für Display: 2*16 Zeichen, LCD, I2C-Interface | |
- SW für Display: OLED, I2C-Interface | |
- Bibliotheken(Libraries) | |
======================================================================================= | |
- SW für Display: 4*20 Zeichen, LCD, I2C-Interface |
|
-
ino ->
NEO6_4_Zeilen_xxxx_V0.15.ino -> Auch in HEX Format
verfügbar! - PCB: rev1, rev2_37, rev2_37a, plus Modifikation, rev2.1 plus Modifikation, ab PCB rev.2.2_xx wird die Modifikation nicht benötigt - GPS-Breakout-Board mit GPS-Modul NEO-6M, NEO-7M, NEO-M8M - Achtung Modifikation: R17 von Pin 7(MCP6002) trennen und mit TP3, mittels Drahtbrücke, verbinden. 08.04.2020 mkn - Attention modification: R17 separated from pin 7 (MCP6002) and connected to TP3 by a wire. - L2: Ferrit Bead -> Baumappe - Optional: Taster, push button zur Steuerung der Zeile 4, ForcedHoldover ON/OFF, D7 an K11 Schalter an D8, Steckerleiste: Ab- und Zuschaltung des Backlights des LCD-Displays - Display: 4*20 Zeichen, LCD, I2C-Interface - Funktionen: - Setzen der TiP(Timeimpuls)-Frequenz - Startbildschirm: Call und gesetzte TiP-Frequenz - Anzeige: - Koordinaten (alternativ in Zeile 4: Asl, Hdop), Auswahl by default oder mittels Taster - QTH-Locator, 8 stellige Anzeige, kann durch Auskommentieren auf 6 stellige Anzeige geändert werden. Tnx to Patrick, TK5EP. - SAT used - Lock(unLock) der PLL - Uc: Steuerspannung des VC-OCXO, dreistellig nach dem Komma, erhöhte Auflösung durch Oversampling (15 bit) - Temperatur-Sensor (entfällt für PCB V 1.0) - Zeit(UTC) - LED: Lock PLL - manuelles Holdover, Einstellung der Uc mittels R14, entfällt für PCB rev1 - simple-Holdover (Einstellung der Uc mittels MCP4725), entfällt für PCB rev1 - smart-Holdover, die Haltespannung wird adaptiv erfasst, entfällt für PCB rev1 - Forced-Holdover, entfällt für PCB V 1.0 - Debug-Mode: serieller Monitor, DEBUG 12 serieller Plotter Anzeige - Ausgabe auf seriellen Monitor der Arduino IDE oder Terminal, z.B. PUTTY, via USB-Schnittstelle des NANO - Ausgabe auf seriellen Plotter der IDE: u.a. für DEBUG 12, graphische Auswertung der Abstimmspannung Uc TP3 über die Zeit - Eingaben durch User im Eingabeblock innerhalb der INO - Verwendeter GPS-RX: ublox NEO-6M, NEO-7M, NEO-M8M -TiP-Frequenz, Hz, freie Wahl der Frequenz im Rahmen der Funktionalität der PLL, z.B. u.a. 1 kHz, 10 kHz, 100 kHz für 10 MHz-GPSDO oder 2,5 kHz, 25 kHz, 250 kHz für 25-MHz-GPSDO - Call für Anzeige auf dem Startbildschirm - Warm-Up-Periode für das Vorheizen des OCXO - Default: 60 Sekunden - Wahl der Temperatursensor-Auflösung Ein vorhandener Temperatursensor wird automatisch erkannt und ausgewertet. - Eingabe der Betriebsspannung des NANO, zwecks erhöhter Genauigkeit der Spannungsanzeige Uc - Eingabe EFC@ 10 MHz - Debug-Mode selektierbar - GPS-RX: Navigationsmodus, dynamisches Model auf Stationär gesetzt, dadurch Erhöhung TiP-Frequenzgenauigkeit, um Faktor ca.2 - GPS-RX: SBAS Support abgeschaltet - Cable Delay: Default 50 ns, auf 25 ns reduziert, Kabellänge 5 m - Minimale Elevationswinkel von 5 Grad(Default). Der Wert kann auf Anfrage angepasst werden. - Bibliotheken: TinyGPSPlus Version 1.02.b und New-LiquidCrystal [master.zip] - Bibliothek OneButton by Matthias Hertel - Startsequenz in void setup() wurde verändert. Nunmehr GPS-Rx Reset, GPS-RX TiP, GPS-Rx konfigurieren, Aufruf smartHoldover entfällt Verwendete IDE: Arduino IDE 1.8.19 Download |
Bezug der Software-> dl7ukm @ darc.de [Leerzeichen löschen)25.05.2021 Maidenhead Locator System QTH-Locator by wiki.oevsv.at Foto: Patrick, TK5EP |
-
ino ->
NEO6_4_Zeilen_xxxx_V0.16.1.ino -> Auch in HEX Format
verfügbar! [02.01.2022] - Änderungen gegenüber Version Version --> NEO6_4_Zeilen_xxxx_V0.15.ino Optional: Taster, push button, zur Steuerung der Zeile 4, ForcedHoldover ON/OFF, Ab- und Zuschaltung des Backlights des LCD-Displays an D7/K11 - Die Nutzung eines Schalters zum Abschalten des Backlights an D8 ist in der SW deaktiviert(auskommentiert). - Veränderung des Ablaufes innerhalb der void setup() - Routine - Reset des GPS-NEO-Moduls wurde vorgezogen - Warm-up des OCXO mit 60 s default - Nachdem der GPS-RX 4 Satelliten erkennt blinkt die 1pps-LED im Sekundentakt - Die Konfiguration des GPS-Moduls folgt nach Abschluss der Warm-up-Periode - 1pps-LED Auswertung, Anzeige der Startmeldung des "simple-GPSDO" mit dem Terminalprogramm PuTTy Sketch-> NEO6_4_Zeilen_xxxx_V0.17.ino -> Auch in HEX Format verfügbar! [05.02.2022] - Änderungen gegenüber Version NEO6_4_Zeilen_xxxx_V0.16.1.ino - Ausgewählte Anzeigemodus wird gespeichert und bei Neustart der Software wiederverwendet - Speicherung via EEPROM des NANO - Auswertung und Anzeige OverFlow(Rx-Buffer) der SoftwareSerial-Schnittstelle - modifizierte Bibliothek SoftwareSerial_128.zip RX-BUFFER: 128 Byte - Reorganisation der DEBUG-Routinen - gleichzeitiger Aufruf von mehreren Routinen nun möglich - Temperaturauswertung, Bestimmung der Device Address, Ausgabe der gesetzten Resolution - Auswahl QTH-Locator 6- oder 8-stellige Ausgabe - Config des GPS-Moduls setzbar |
Version ≥ 0.15.2 |
Warm-up time @ +25°C 3 5 min ∆ffinal/f0 < ±0.1 ppm
AXIOM40
5 min max < ± 1 Hz - Wie messen? EFC@10MHz müsste bekannt sein |
|
Warum warm-up Zeit für den OCXO? [3.12.2021, mkn] - Zielsetzung: Verhinderung eines unnötigen Wettkampfes zwischen dem Phasendiskriminator, der TiP und der geteilten 10-MHz-Frequenz des OCXO, beginnend mit dem kalten OCXO und der beträchtlichen Abweichung von seiner nominellen Frequenz - Während der sogenannten warm-up Zeit wartet(delay) der NANO bevor der nächste Schritt abgearbeitet wird - .... - Vorteile - Problemlösung: einige OCXO[CTI] wurden durch die PLL-Schleife nicht gefangen - Durch Erhöhung der Grenzfrequenz des PLL-Filters konnte in diesen kritischen Fällen ein Einrasten erzielt werden, erkauft mit einer kleineren Regelzeitkonstante Beispiel: TiP= 1 kHz, R9= 330k, C9= 100uF kein Einrasten der PLL, Reduktion von R9 auf 165k und 100uF OK, Bei Nutzung der Warm-up-Periode wurde der OCXO, auch mit der ursprünglichen Filterwahl, stabil gefangen. - Die Funktion ist schon längere Zeit in der SW verfügbar, der ursprüngliche Default von 60 s, aber irgendwann aus irgendeinem Grund, beim Testen der SW, auf Null gesetzt. - Eine noch zu untersuchende Erscheinung ist eine verbesserte Lock-Detection. Manchmal habe ich den Eindruck, dass sich der Lockdetector mit der geringen Bandbreite des Filter und die der PLL schwer tut. |
|
Frequenzgang der gewählten PLL-Filter, TiP: 1 kHz | |
fc= 4,8 mHz bzw. 9,6 mHz | |
Android-APP: --> RF & Microwave Toolbox Pro | |
======================================================================================= | |
- SW für Display: 2*16 Zeichen, LCD, I2C-Interface |
|
- Software: - ino -> NEO6_2_Zeilen_xxxx_V0.10.ino - PCB: rev1, rev2_37, rev2_37a - GPS-Rx-Breakout Board mit NEO-6M-, NEO-7M-Modul - Display: 2*16 Zeichen, LCD, I2C-Interface - Funktionen: - Setzen der TiP(Timeimpulse)-Frequenz - Startbildschirm: Call und gesetzte TiP-Frequenz - Anzeige: - Zeit(UTC), QTH-Locator - Uc: Steuerspannung des VC-OCXO, SAT - Ausgabe auf seriellen Monitor der Arduino IDE - Verwendung der von F1CJN mitgelieferten Bibliotheken |
Bezug der Software -> dl7ukm @ darc.de [Leerzeichen löschen] |
-
ino -> NEO6_2_Zeilen_xxxx_V0.11.ino
wie NEO6_2_Zeilen_xxxx_V0.10.ino plus manuelles Holdover (entfällt für PCB V 1.0) |
Bezug der Software -> dl7ukm @ darc.de [Leerzeichen löschen] |
-
ino -> NEO6_2_Zeilen_xxxx_V0.12.ino wie NEO6_2_Zeilen_xxxx_V0.10.ino plus manuelles Holdover(entfällt für PCB V 1.0) und Lock-Detektion als Anzeige und LED - Eingabeblock um U_NANO erweitert, verbesserte Genauigkeit der Spannungsanzeige |
Bezug der Software -> dl7ukm @ darc.de [Leerzeichen löschen] L: PLL locked S. Anzahl SAT |
uL: unlocked, H: Holdover ON |
|
-
ino -> NEO6_2_Zeilen_xxxx_V0.14.ino - - Achtung Modifikation: R17 von Pin 7(MCp6002) trennen und mit TP3, mittels Drahtbrücke, verbinden. 08.04.2020 mkn - wie NEO6_2_Zeilen_xxxx_V0.12.ino - QRA ist gegen Temperaturanzeige austauschbar -> Eingabeblock bool qra = false; -> ergibt Temperaturanzeige - ...... |
Bilder Anzeige..... |
- NEO6_2_Zeilen_xxxxxx_V0.14a.ino 29.10.21, DEBUG 0 gibt nur noch die Startmeldungen an den seriellen Monitor aus | |
- NEO6_2_Zeilen_xxxxxx_V0.14b.ino
01.11.21 - DEBUG 0 gibt nur noch die Startmeldungen an den seriellen Monitor aus - UTC:hh.mm - Schalter an D8, Stiftleiste K11: Ab- und Zuschaltung des Backlights des LCD-Displays |
|
- Die Software und die Anzeige ist reduziert auf das
Nötigste - Anzeige --> keine LOCK-Anzeige, Bewertung zum Lock-Zustand der PLL über Beobachtung Uc, Abstimmspannung VC-OCXO, durch den User - Simple Holdover |
|
- Hardware: IC1: CD74HC7046, CD74HCT7046 --> CD74HC4046,
CD4046B, CD74HCT4046, RCA CD4046AE --> keine LOCK-Anzeige/LED(Auswertung) - Achtung, Modifikation der Bestückung, beim Einsatz des CD74HC4046 oder CD74HCT4046 ist C6 nicht zu bestücken! |
|
- NEO6_2_Zeilen_xxxxxx_V0.15.ino
29.11.21 Funktionsumfang wie NEO6_2_Zeilen_xxxxxx_V0.14b.ino(01.11.21), nun mit veränderter void setup(), Warm-up OCXO mit 60 sec(default) |
|
======================================================================================= | |
Verwendete Bibliotheken(Libraries) für zwei oder vierzeilige LCD |
|
Verwendete IDE: Arduino IDE 1.8.19 Download | |
- Bibliothek New-LiquidCrystal [master.zip] by fmalpartida | |
- Bibliothek
TinyGPSPlus Version 1.03
by Mikal Hart [24. Jan.
2022] |
|
- Bibliothek
Arduino-Temperature-Control-Library by
Miles Burton Arduino-Temperature-Control-Library/releases/tag/3.9.1 - Dallas_Temperature_Control_Library |
|
- Bibliothek One Wire by Paul Stoffregen | |
- Bibliothek
OneButton by
Matthias Hertel - Source code(zip) 2.0.3 |
|
- modifizierte Bibliothek SoftwareSerial_128.zip RX-BUFFER: 128 Byte |
|
======================================================================================= | |
SW für Display: OLED, I2C-Interface |
|
- Software, OLED-Display: - ino -> NEO6_OLED_0.01, in Vorbereitung [19.10.2020, mkn], wird zur Zeit nicht bearbeitet [07.01,21] - PCB: rev1, rev2_37, rev2_37a, plus Modifikation - GPS-Rx-Breakout Board mit NEO-6M-, NEO-7M-Modul - Display: 128*64 Pixel, 1,3 Zoll OLED, SH1106, I2C - Funktionen: - Setzen der TiP(Timeimpulse)-Frequenz - Startbildschirm: Call und gesetzte TiP-Frequenz - Anzeige: - Zeit(UTC) - SAT, QTH-Locator - Uc: Steuerspannung des VC-OCXO - Ausgabe auf seriellen Monitor der IDE |
|
07.05.2021, mkn Es geht voran, in Anlehnung an den Sketch NEO6_4_Zeilen_xxxx_V0.14.4.ino. Sollte in den kommenden Tagen lieferbar sein. Den Umfang der Anzeige wählt der User im Sketch oder über die Tastersteuerung aus. 05.12.2021 Kein Fortschritt, lediglich eine Betaversion verfügbar. 17.01.2022, mkn NEO6_OLED_xxxxxx_V0.14.8 entsteht U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE); // Wechsel zu Display which does not sendACK//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NO_ACK); 19.01.22, mkn NEO6_OLED_xxxxxx_V0.14.9 // OLED Display SSD1306 128x64 0,96 inch, I2C-Adresse 0x3c U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE); |
|
- NEO6_OLED_xxxxxx_V0.15.1 28.01.2022, mkn | |
- Software, OLED-Display: - ino -> NEO6_OLED_xxxxxx_V0.15.1, 28.01.2022, mkn - PCB: rev1, rev2_37, rev2_37a, plus Modifikation R17, ... - GPS-Rx-Breakout Board mit NEO-6M-, NEO-7M- und NEO-M8M-Modul - Display: 128*64 Pixel, 1,3 Zoll OLED, SH1106, I2C, SSD1306 128x64 0,96 Zoll, I2C - Funktionen: - Setzen der TiP(Timeimpuls)-Frequenz - Startbildschirm: Call und gesetzte TiP-Frequenz - Auswertung relevanter GPS- und Betriebsdaten - Anzeige: - User 10mcGPSDO - QTH-Locator, 8 stellige Anzeige - Datum, dd/mm/yyyy - Betriebszeit, nach Start der Software. Anzeigeformat: dd.hh:mm, Tage : Stunden: Minuten [Achtung, nach ca. 49,7 Tagen erneuter Beginn bei Null] - Koordinaten (alternativ zu Datum und Betriebszeit), Auswahl mittels Taster D7/K11 - Temperatur-Sensor (entfällt für PCB V 1.0) - 3dFix - ssOverFlow des RX-Buffers der SoftwareSerial-Schnittstelle, Anzeige oF - SAT used - hDoP - Lock(unLock) der PLL - Uc: Steuerspannung des VC-OCXO, dreistellig nach dem Komma, erhöhte Auflösung durch Oversampling (15 bit) - Anzeige L für Lock der PLL - Uh: Uc im Holdover-Modus - ForcedHoldover, Auswahl mittels Taster D7/K11 - Zeit(UTC) Anzeige: UTC hh:mm.ss - LED: Lock PLL - manuelles Holdover, Einstellung der Uc mittels R14, entfällt für PCB rev1 - simple-Holdover (Einstellung der Uc mittels MCP4725), entfällt für PCB rev1 - smart-Holdover, die Haltespannung wird adaptiv erfasst, entfällt für PCB rev1 - Forced-Holdover, entfällt für PCB V 1.0 - Debug-Mode: serieller Monitor, DEBUG 12 serieller Plotter Anzeige - Ausgabe auf seriellen Monitor der Arduino IDE oder Terminal, z.B. PUTTY, via USB-Schnittstelle des NANO - Ausgabe auf seriellen Plotter der IDE: u.a. für DEBUG 12, graphische Auswertung der Abstimmspannung Uc TP3 über die Zeit |
Bezug der Software-> dl7ukm @ darc.de [Leerzeichen löschen) |
- Inhalt und Umfang der Display-Anzeige | |
Dem Anwender bleibt es überlassen die für ihn
relevanten Informationen auszuwählen und auf dem Display zu
arrangieren. |
|
- Taster D7/K11 | |
- Tastfolge | |
1. ForcedHoldover ON | |
2. ForcedHoldover OFF | |
3. Umschaltung der 3. und 4. Zeile | |
4. OLED-DISPLAY OFF | |
5. OLED-DISPLAY ON | |
======================================================================================= | |
Verwendete Bibliotheken(Libraries) für OLED-Display |
|
Verwendete IDE: Arduino IDE 1.8.19 Download | |
- Bibliothek <U8x8lib.h> // U8g2 Bibliothek für OLED | |
- Bibliothek
TinyGPSPlus Version 1.03
by Mikal Hart [24. Jan.
2022] |
|
- Bibliothek
Arduino-Temperature-Control-Library by
Miles Burton Arduino-Temperature-Control-Library/releases/tag/3.9.1 - Dallas_Temperature_Control_Library |
|
- Bibliothek One Wire by Paul Stoffregen | |
- Bibliothek
OneButton by
Matthias Hertel - Source code(zip) 2.0.3 |
|
Hardware-Modifikation R17 |
|
Ab PCB rev.2.2_xx ist die Modifikation im aktuellen Layout der Leiterplatte umgesetzt. | |
alt neu |
|
======================================================================================= | |
Serial-Bridge-NANO-sGPSDO | |
Der Sketch dient zur Kommunikation zwischen
dem PC und jedem anderen Gerät, hier dem GPS-Modul, unter Verwendung des
Arduino NANO. In diesem Fall wird eine Verbindung zwischen dem PC und dem u-blox NEO-6M, NEO-7M, NEO-M8M hergestellt. |
|
Auf den s-GPSDO bezogen bedeutet dies, dass der Sketch auf den NANO der Platine geladen wird und dadurch eine serielle Kommunikation zwischen dem PC(Terminal, serieller Monitor der Arduino IDE) und dem GPS-Rx-Modul realisiert. | |
Sketch, das Programm, transportiert u.a. die vom NEO-gelieferten Daten via der installierten Seriellen-Bridge an den USB-Port des NANO. Die Konfiguration des NEO-6M durch das u-center ist ebenso möglich. | |
1. PC mit NANO verbinden 2. IDE starten und Sketch hochladen 3. Datenausgabe am seriellen Monitor checken 4. IDE schliessen 5. Ublox u-center starten 6. COM auswählen 7. Geschwindigkeit 9600 Baud 8. Viel Erfolg beim Entdecken! |
---> Sketch |
Adapted for sGPSDO with ublox NEO-6M, NEO-7M , NEO-M8M and Arduino NANO,
modified and tested by mkn, DL7UKM, 16.02.2021 Ausgabe der vom GPS-Modul gesendeten Daten via USB des NANO an den PC und dort Ausgabe durch IDE Arduino Serieller Monitor oder unter Nutzung eines externen Terminal-Programms oder ublox u-center, etc. Anzeige Serieller Monitor, 9600 Baud: die vom NEO-6M selektierten und gesendeten NMEA-Datensätze |
-->
u-center,GNSS evaluation software https://www.u-blox.com/en/product/u-center u-center erlaubt neben dem Monitoring auch die Configuration des NEO-6M. |
Serial-Bridge-NANO-sGPSDO Ausgabe des Seriellen Monitors der ARDUINO IDE GPS-Board: ublox NEO-M8M Config des NEO-M8M mit v0.14.15.7 Innerhalb einer Sekunde werden die NMEA-Datensätze $GNRMC, $GNGGA, $GNGSA, $GNGSA ausgegeben. In der Config des NEO sind die Sat-Systeme GPS und GLONASS aktiviert. |
|
======================================================================================= | |
Klicken des Relais |
|
DEBUG 4 Issue: Klicken des Relais, kurzzeitiges Umschalten in den Hold-Modus. Nach dem Setzen des NEO-M8M werden im ersten Durchgang die usedSAT mit Null bewertet. Daher auch anschliessend satUsed HOV gleich Null. Ende: void setup beendet, danach Sprung zu void loop. ToDo: ??? Solved with Version 0.16 |
Gelöst mit Version V 0.15.8, 19.12.2021 |
======================================================================================= | |
$GNRMC | |
- GPRMC (novatel.com) | |
$GNGGA | |
- GPGGA (novatel.com) | |
$GNGSA | |
- GPGSA (novatel.com) | |
- Bibliothek TinyGPSPlus Version 1.03 by Mikal Hart | |
======================================================================================= | |
Fehler: Anzeige 3dFix meldet "error" | |
09:31:22.135 ->
$GPRMC,083122.00,A,4930.66086,N,00836.49611,E,0.018,,241221,,,A*73 09:31:22.182 -> $GPGGA,083122.00,4930.66086,N,00836.49611,E,1,10,0.93,106.3,M,47.5,M,,*59 09:31:22.229 -> $GPGSA,A,3,20,29,16,04,06,07,09,02,05,30,,,1.87,0.93,1.62*05 09:31:23.120 -> $GPRMC,083123.00,A,4930.66086,N,00836.49613,E,0.017,,241221,,,A*7F 09:31:23.166 -> $GPGGA,083123.00,4930.66086,N,00836.49613,E,1,10,0.93,106.3,M,47.5,M,,*5A 09:31:23.260 -> $GPGSA,A,3,20,29,16,04,06,07,09,02,05,30,,,1.87,0.93,1.62*05 |
SW V.016, 4zeilig LCD, 23.12.2021 - GPSDO mit NEO-6M bestückt. - Drei Datensätze sind ausgewählt. - readGPS 700 ms - Problem - 3dFix wird erkannt, später "error" |
10:02:54.115 ->
$GPRMC,090254.00,A,4930.66099,N,00836.49775,E,0.015,,241221,,,A*73 10:02:54.162 -> $GPGGA,090254.00,4930.66099,N,00836.49775,E,1,09,0.93,106.7,M,47.5,M,,*58 10:02:54.209 -> $GPGSA,A,3,20,16,04,06,07,09,02,05,30,,,,1.71,0.93,1.44*03 10:02:54.584 -> $GPRMC,090254.50,A,4930.66100,N,00836.49775,E,0.015,,241221,,,A*77 10:02:54.678 -> $GPGGA,090254.50,4930.66100,N,00836.49775,E,1,09,0.93,106.7,M,47.5,M,,*5C 10:02:54.725 -> $GPGSA,A,3,20,16,04,06,07,09,02,05,30,,,,1.71,0.93,1.44*03 10:02:55.100 -> $GPRMC,090255.00,A,4930.66102,N,00836.49776,E,0.015,,241221,,,A*72 10:02:55.146 -> $GPGGA,090255.00,4930.66102,N,00836.49776,E,1,09,0.93,106.7,M,47.5,M,,*59 10:02:55.240 -> $GPGSA,A,3,20,16,04,06,07,09,02,05,30,,,,1.71,0.93,1.44*03 10:02:55.615 -> $GPRMC,090255.50,A,4930.66103,N,00836.49777,E,0.015,,241221,,,A*77 10:02:55.662 -> $GPGGA,090255.50,4930.66103,N,00836.49777,E,1,09,0.93,106.7,M,47.5,M,,*5C 10:02:55.709 -> $GPGSA,A,3,20,16,04,06,07,09,02,05,30,,,,1.71,0.93,1.44*03 |
- #define gpsrxRate 2 |
======================================================================================= | |
Backlight des LCD-Displays abschalten |
01.11.2021 mkn |
Abschaltbarkeit des Backlights des LCD-Displays durch einen Schalter | |
- Steckerleiste K11 D8 Schalter gegen GND Schalter S2 offen-> Backlight ON Schalter S2 geschlossen, Backlight OFF |
|
- S1: Taster, push button -> D7 -Forced Holdover - S2: Schalter, ON/OFF Backlight -> D8 R1, R2: Schutzwiderstände der optionalen Beschaltung |
|
Backlight | |
//
set the LCD address to 0x27 for a 20 chars 4 line display // Set the pins on the I2C chip used for LCD connections: // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE ); // Set the LCD I2C address, .... #define switchPin 8 // Initialize a switch to GND ... void setup() ... pinMode(switchPin, INPUT_PULLUP); // Schalter gegen Grund, switch 01.11.2021 .... void loop() { ... if (digitalRead(switchPin) == HIGH) { lcd.backlight(); } else { lcd.noBacklight(); } } |
|
======================================================================================= | |
FAQ Software |
|
- Die Installation der Software will nicht gelingen, viele Fehlermeldungen, was tun? | |
Kleine Installationshilfe, [18.10.2020,mkn] OS: Windows 10 Arduino IDE installieren, folge den Wünschen und Vorschlägen der IDE. F1CJN-Zip-File downloaden und in einem Verzeichnis entpacken. NEO-7M_10KHz_V1.0.ino doppelt anklicken, IDE öffnet sich und die Meldung "ino muss in einem Verzeichnis gespeichert werden" mit ja beantworten. Die Datei NEO-7M_10KHz_V1.0.ino wird nunmehr in einem Entpackungsverzeichnis(generierten Ordner) gleichen Namens verschoben. Dies interessiert uns nicht! Wichtig ist, die geöffnete ino in der IDE-Oberfläche nunmehr ins IDE Sketchbook zu speichern, bitte das Arduino Sketchbook-Verzeichnis wählen. Danach die gezippten Bibliotheken als zip-File einbinden. Anschließend die NEO-7M_10KHz_V1.0.ino überprüfen/kompilieren. Fehlermeldungen abarbeiten, es sollten keine entstehen, hi. Vor dem Hochladen der NEO-7M_10KHz_V1.0.ino die Timepuls-Frequenz ändern, 100 kHz falls die Standard-Bestückung gewählt wurde. In Zeile 128 frequency=10000 in frequency=100000 ändern. Anschließend den Sketch hochladen. Viel Erfolg. --> Anmerkung: zusätzlich habe ich auch die Wire-Bibliothek aufgenommen, da es sonst eine Fehlermeldung gibt. Ich habe den Eindruck, dass in der mitgelieferten Library LiquidCrystal etwas nicht sauber programmiert ist. So bleibt immer etwas für die Zukunft, hi. [mkn] Hier die Lösung. |
TiP ändern |
Serieller MonitorSerial monitor via USB at 115200 bauds, wichtig die richtige Geschwindigkeit auswählen 115200 Bauds! - Achtung die zu wählende Geschwindigkeit ist von der Definition im Sketch abhängig! - - Wozu? - Was wird angezeigt, wo? "12:54:33.993 -> Setting Timepulse... configuration TimePulse 12:54:34.040 -> Success! 12:54:34.040 -> ACK Received! " - Hier wird das erfolgreiche Setzen der Timepulse-Frequenz bestätigt. - Benötigt im Betrieb? Nein. - zusätzliche Information zum Hochladen des kompilierten Sketches |
|
Serieller Monitor, wo steckt der eigentlich? | |
Serieller Plotter | |
Fehlermeldungen | |
- Ausgabe auf seriellen Plotter der IDE: u.a. für DEBUG 12, graphische Auswertung der Abstimmspannung Uc TP3 über die Zeit | |
- ARDUINO NANO V3.x - Geiz ist nicht immer geil. Der NANO 3.0 oder NANO 3.x muß mit einem ATmega328P bestückt sein. - Nano V3 mit ATmega168 funktionieren mit der SW nicht. |
ATmega328P - Datenblatt - Application Notes |
- Fehlermeldung durch IDE PCB: V1.0, rev.2_37, 2_37a |
|
Lösung: USB-Port anschliessen, hi |
|
- Fehlermeldung durch IDE PCB: V1.0, rev.2_37, 2_37a ..... - Lösung: richtigen Boot-Loader auswählen |
|
- Fehlermeldung durch IDE PCB: V1.0, rev.2_37, 2_37a - Upload des Sketches, COM Port nicht gewählt! - Fehlermeldung: |
|
"Arduino:
1.8.13 (Windows 10), Board: "Arduino Nano, ATmega328P" Der Sketch verwendet 17378 Bytes (56%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes. Globale Variablen verwenden 952 Bytes (46%) des dynamischen Speichers, 1096 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes. avrdude: ser_open(): can't open device "\\.\COM7": Das System kann die angegebene Datei nicht finden. Problem beim Hochladen des Sketches auf das NANO-Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload. Dieser Bericht wäre detaillierter, wenn die Option "Ausführliche Ausgabe während der Kompilierung" in Datei -> Voreinstellungen aktiviert wäre." |
|
- Lösung: den richtigen COM-Port auswählen | |
- Fehlermeldung durch IDE, COM 3: Zugriffverweigert PCB: V1.0, rev.2_37, 2_37a - Upload des Sketches - Fehlermeldung |
|
Arduino: 1.8.13 (Windows 10), Board: "Arduino
Nano, ATmega328P" Der Sketch verwendet 17794 Bytes (57%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes. Globale Variablen verwenden 1282 Bytes (62%) des dynamischen Speichers, 766 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes. avrdude: ser_open(): can't open device "\\.\COM3": Zugriff verweigert Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload. Dieser Bericht wäre detaillierter, wenn die Option "Ausführliche Ausgabe während der Kompilierung" in Datei -> Voreinstellungen aktiviert wäre. |
|
- Ursache: | |
- Fehlermeldung durch Display PCB: rev.2_37, 2_37a Temperatur-Sensor Anzeige: TEMP:-127.0 -> Temperatursensor nicht angeschlossen, oC an Position (0,1) Diese Fehlermeldung könnte man durch vorherige Abfrage nach des Existenz des Temperatursensors unter-binden. Programmieren macht Freude, also ran... - 01.11.2020, mkn - Issue ist mit ino -> NEO6_4_Zeilen_xxxx_V0.09.ino gelöst - ist kein Temperatursensor angeschlossen, so erfolgt keine Text-Ausgabe "TEMP:xx.xoC" |
|
======================================================================================= | |
- Gestaltung der Anzeige, Anpassung an persönliche Wünsche |
|
- Die Gestaltung der Anzeige sagt mir nicht zu |
|
- Wünsche - Machbarkeit - Umsetzung - zusätzliche Funktionen - ... - Der Sketch ist einfach aufgebaut und dient der Anregung zur Schaffung eigener Lösungen. In der Regel genügt einen Anpassung der Print-Ausgaben. |
|
- Entwurf auf einem Blatt Papier Wie beginnen? Ein Einwurf auf dem Papier ist angebracht. Je nach Display 2*16 Kästchen oder 4*20 Kästchen zeichnen und die gewünschten Anzeigen auswählen und positionieren. Bezeichnung der Kästchen beginnend an der linken oberen Ecke mit [0,0], dann geht es weiter für die oberste Zeile mit [1,0] bis [15,0] bzw. [19,0] Die zweite Zeile beginnt mit [0,1] usw.- Innerhalb des Sketches sind die entsprechenden Print-Anweisungen anzupassen. - Werden bestimmte Anzeigen nicht gewünscht, z.B. Koordinatenausgabe in Breite und Länge, dann einfach die Print-Anweisungen auskommentieren(//) oder die Zeilen löschen. - Typische Anweisungen sind z. B. das Setzen der Cursor-Position und anschließend die Ausgabe des Inhaltes. lcd.setCursor(14, 1); lcd.print(F(" Lock")); |
Template LCD Display pdf |
Wer die Wahl hat, hat die Qual der Selektion. Und es gibt noch genügend andere Parameter zur Auswahl. So z.B.: |
|
- QTH-Kenner: achtstellige Anzeige - Rufzeichen - Text: 10 MHz GPSDO, 25 MHz GPSDO - Koordinaten: La, Lo - Phasendifferenz zwischen Fcomp_in und Fsig_in - 2.Temperaturanzeige - Reminder für EFC@10MHz - etc. - Erweiterung des Anzeigeumfanges durch Auswahl innerhalb der 4. Zeile |
|
UTC
Datum mm:dd:yyyy mm-dd-yyyy dd-mm-yyyy QRA Asl [m] Temperatur SAT Fix Hdop Uc Lock HOLD, ForceHold[Forced Holdover] |
Datumsangabe Uhrzeitangaben |
Was hatten wir schon? |
|
|
|
======================================================================================= | |
- Überprüfung der verwendeten I2C-Adressen | |
- Einsatz einfacher I2C-Scanner | |
--> 0x27
I2C-LCD-Interface 0x60 MCP4725 |
-> Anpassung im Sketch |
======================================================================================= | |
To Do |
|
- Holdover-Modus | |
-
FURUNO
GPS/Multi-GNSS Disciplined Oscillator (GPSDO/GNSSDO) | Technology | GPS
Receiver Chips & Modules | FURUNO |
- GPSDO |
- Holdover Mode | |
- User Reference Guide, SecureSync 1200 Time and Frequency Synchronization System | Orolia | |
- GNSS Disciplining and Holdover Introduction (veexinc.com) | |
- Funktion siehe Holdover-Modus in der Baumappe auf S.5-6. [Stand 01.03.2021] | |
- Bedingungen zur Umschaltung in
den Holdover-Modus - OCXO Warm-up Phase, welche Dauer - fehlende Satelliten < 4 - Einschaltphase des GPS-Rx, kann bis 20-30 Minuten dauern - Verlust der SV während des laufenden Betriebes |
Achtung, MCP4725 gibt während des Startes kurzzeitig 2,5 V aus. |
- Erstmalige Inbetriebnahme. Input der Uc @10 MHz des verwendeten VC-OCXO | |
- Manueller oder softwaregestützter Holdover-Modus | Wer, wie, was? |
Die Umschaltung zwischen beiden Betriebszuständen erfolgt gemäß der gesetzten Bedingungen immer softwaregestützt. | |
Manueller Holdover bedeutet die
Holdover-Uc-Spannung wird manuell eingestellt und der VC-OCXO läuft im
nicht disziplinierten Zustand oder einfach ausgedrückt, er schwingt frei. |
|
|
|
|
|
- Manuelles Holdover | |
- Laut Baumappe wird für das manuelle Holdover der R14 verwendet. | |
- für SAT<4 wird auf eine
Holdover-Spannung geschaltet - Einstellung der Uc @ 10 MHz mittels R14 - Holdover, R14 Einstellung der Frequenz bei gezogener GPS-Antenne, Abgleich mit einem Frequenzzähler oder Uc@10 MHz bei eingeschwungener PLL messen und anschließend die Spannung mit R14 einstellen. |
Frequenzzähler mit externer Referenzfrequenz |
Hardware-Modifikation für manuelles Holdover mit R14 |
07.05.21, mkn |
Modifikation manuelles Holdover via R14 by Heinz, DC5WW | xx. April 2021, mkn |
- Störhub des 25 MHz-VC-TCXO - Messung mit ICOM IC-9700 - Auswertung der 125. Harmonischen auf 1250 MHz - CW Empfang, 600 Hz - Spektrumsauswertung im NF-Bereich mit der SW audioTester V3.0 |
|
sGPSDO 25 MHz mit VC-TCXO C5 entfernt, nicht mehr bestückt, Störhub reduziert R14, Plus-Anschluß getrennt und mit Vcc 5V verbunden. Zufriedenstellende Reduktion des Störhubes. Test mit QO100, erfolgreich absolviert. |
|
DJ8LC sGPSDO 10 MHz, TiP: 100 kHz OCXO: CTI EFC, Uc: 1,69 V @10MHz PLL-Filter - R9 56 kOhm - C9: 100 uF - C11. 1 uF R10, C10 nicht bestückt Modifikation manuelles Holdover via R14 by Wolfgang, DJ8LC R6: 0 Ohm C5: nicht bestückt Spreizung der Abstimmung für die spezifische EFC@10MHz des VC-OCXO Zusätzliche Siebung der Abstimmspannung, Tiefpass R14_1 und Cextra Test mit QO100, erfolgreich absolviert. |
07.05.21, mkn |
- simple Holdover | Mal was Neues, hi. |
Mittels IC MCP4725 12-Bit DAC, Digital-Analog-Converter Die Uc(EFC) Generierung erfolgt durch den MCP4725, der R14 wird nicht benötigt. Somit ist man ready für einen softwaregestützten Holdover-Modus. Im Eingabeblock folgende Parameter eintragen: 1. U_NANO 2. EFC @ 10 MHz 3. Delta |
|
Im Eingabeblock ist der gewünschte Modus zu
deklarieren. ---> ToDo - Holdover, R14 Einstellung der Frequenz bei gezogener GPS-Antenne, Abgleich mit einem Frequenzzähler oder Uc@10 MHz bei eingeschwungener PLL messen und anschließend die Spannung mit R14 einstellen. - Holdover, MCP4725 --> simple-Holdover - Sketch, PCB V1.0, abwärts kompatibel |
|
- smart-Holdover,
die Haltespannung wird adaptiv erfasst, entfällt für PCB V 1.0 - während der warm-up Periode des OCXO wird EFC @ 10 MHz zur Steuerung des OCXO verwendet, anschliessend die zuletzt gemessene Uc vor dem Fall SAT<4 |
|
- Forced Holdover | |
selection via push button on K11, Pin D7, push button: switch to ground | |
- Softwaregestütztes Holdover | |
- Bedingungen - SAT<4 - die aktuelle Uc wird gespeichert und über das Holdover Relais dem OCXO zugeführt |
|
Der ADC des NANO hat 10-Bit-Auflösung und der MCP4725 verwendet 12-Bit Auflösung | |
- Anfangswert der Uc(EFC) @ 10MHz - Bestimmung der Uc @ 10MHz z.B CTI 1,95 V |
|
- Holdover während der Aufheizzeit des VC-OCXO | |
- Start mit Uc @ 10MHz und Übernahme ins DAC und EEPROM | |
MCP4725 startet mit dem EEPROM | MCP4725 |
- Holdover nach Einlaufzeit, Zeitpunkt???, min ab Start | |
- auslösendes Ereignis: SAT<4 - Uc in DAC/EEPROM - Umschaltung |
|
Anzeige Hold, Ho, abhängig vom Display | |
Lock Detection | |
Uc @ 10MHz +/- 10% | |
Aufbereitung der Eingabewerte für den Eingabeblock | |
- --> Uc(EFC) @ 10MHz | |
======================================================================================= | |
Serial - Arduino-Referenz | |
Serial.begin() | |
- Libraries - Arduino Reference | |
- Arduino - SoftwareSerial | |
-
Wo bin ich? | heise Developer |
|
- Christoph Niessen GPS-Modul mit u-blox 6M | |
-
OptimalSystem.DE : u-blox Empfängerkonfiguration mit u-center - lesenswertes und interessantes Dokument zur prktischen Konfiguration eines ublox GPS-Modules |
|
- B5 62 06 24 00 00 2A 84 | |
-
https://www.google.de/search?restrict=Deutsch&q=arduino+neo+ubx+message+lesen+read |
|
-
https://ukhas.org.uk/guides:falcom_fsa03 |
|
- uBlox NEO-6Q / uBlox MAX-6Q [UKHAS Wiki] | |
- GitHub - fmalpartida/New-LiquidCrystal: Clone of the new liquid crystal library | |
- Issues · fmalpartida/New-LiquidCrystal · GitHub | |
- https://github.com/fmalpartida/New-LiquidCrystal/archive/master.zip | |
======================================================================================= | |
Fehler beim Kompilieren für das Board Arduino Nano, LiquidCrystal I2CIO.cpp | |
Arduino: 1.8.13 (Windows 10), Board: "Arduino
Nano, ATmega328P" C:\Users\admin\Documents\Arduino\libraries\LiquidCrystal\I2CIO.cpp:35:10: fatal error: ../Wire/Wire.h: No such file or directory #include <../Wire/Wire.h> ^~~~~~~~~~~~~~~~ compilation terminated. Mehrere Bibliotheken wurden für "LiquidCrystal_I2C.h" gefunden Benutzt: C:\Users\admin\Documents\Arduino\libraries\LiquidCrystal Nicht benutzt: C:\Users\admin\Documents\Arduino\libraries\New-LiquidCrystal-master Mehrere Bibliotheken wurden für "DallasTemperature.h" gefunden Benutzt: C:\Users\admin\Documents\Arduino\libraries\DallasTemperature Nicht benutzt: C:\Users\admin\Documents\Arduino\libraries\Temp exit status 1 Fehler beim Kompilieren für das Board Arduino Nano. Dieser Bericht wäre detaillierter, wenn die Option "Ausführliche Ausgabe während der Kompilierung" in Datei -> Voreinstellungen aktiviert wäre. |
|
Hier #include <../Wire/Wire.h> in #include <Wire.h> ändern! | |
Wer ist die Konstante "ARDUINO" ? | |
ARDUINO liefert die Versionsnummer
der verwendeten ARDUINO IDE Version - Serial.println(ARDUINO); -> Ausgabe im seriellen Monitor 10813, interpretiert als 1.08.13 oder 1.8.13 |
|
- Arduino Software Release Notes | |
- Serial.println(arduino) liefert Fehlermeldung beim Kompilieren, da "arduino" nicht definiert | |
======================================================================================= | |
- Zeitgesteuerte Messungen |
|
arduino zeitgesteuerte messungen - Google Suche | |
- Zeitgesteuerte Messung | |
- Arduino: Ein Sketch ohne delay(ms) schreiben - Technik Blog | |
- Zeitgesteuerte Ausführung - Mitmachprojekt: Temperatur messen und senden mit dem Arduino - Golem.de | |
Period= 30 Minuten static unsigned long sensortime = 0; if(millis() > sensortime) { sensortime = millis() + PERIOD * 60l * 1000l; sensors.requestTemperatures(); sendTemperature(thermometer); |
->
Der große Temperatur-Check -> github OfficeTemperature Arduino_Ethernet.ino |
U- & L-Formatierer z. B. 'ul' oder 'UL': Ändert den Datentyp der Konstante auf unsigned long. Beispiel: 32767ul | --> unsigned long |
======================================================================================= | |
- Enabling/disabling NMEA sentences on u-Blox gps receiver? - Geographic Information Systems Stack Exchange | |
======================================================================================= | |
Weitere Software für den sGPSO |
|
- Andreas, DL5MGD,
Start-Modul für GPS-NEO-7M von DL5MGD für den
GPSDO
von DL2kHP Dort findet man auch die Dateien und das Schaltbild für die Ergänzungen. - NANO , ATTiny85 |
DL2KHP, sk 2022 ---> https://dl6gl.de/ GPS-diszipliniertes 10MHz-Normal (dl6gl.de) |
- Rainer Wieland / GPSDO.de -> Rainer Wieland / GPSDO · GitLab (chirpstack.de) | |
-
Vorstellung alternative Software für GPSDO von DL7UKM und DL4ZAO |
(dl0wh.de) |
|
- alternative Software für GPSDO - Vortrag im virtuellen Wasserhaus am 17.3.2021 - Rainer Wieland - YouTube | |
======================================================================================= | |
- https://www.sparkfun.com |
|
-
https://github.com/sparkfun/SparkFun_Ublox_Arduino_Library |
|
- C++ Core Guidelines: Regeln zu Konstanten und zur Unveränderlichkeit by | |
======================================================================================= | |
NEO-M8M | 22.05.2021 |
- GPS - GLONASS |
|
Serial Bridge | |
Ursache für die Fehlermeldung? |
|
13:09:49 $GNTXT,01,01,01,More than 100 frame errors, UART RX was disabled*70 | |
13:35:15 $GNTXT,01,01,01,More than 100 frame errors, UART RX was disabled*70 | |
- NEO-8Q / NEO-M8 - NEO-8Q-NEO-M8-FW3_HIM_UBX-15029985.pdf (u-blox.com) | |
-
https://www.u-blox.com/sites/default/files/products/documents/u-blox8-M8_ReceiverDescrProtSpec_UBX-13003221.pdf |
|
-
u-blox GNSS Konfiguration by Ingenieurbüro Piotraschke |
Globale Navigations Satelliten Systeme. |
u-blox 8 / u-blox M8 Receiver description, Including protocol
specification rev. date: 23 February 2021 |
|
sGPSDO SW 3dFix wird nicht ausgewertet, evtl. nicht gesetzt NMEA GSA wird nicht gesendet by u-blox | |
======================================================================================= | |
22.05.2021 | |
======================================================================================= | |
https://github.com/MrBanannaMan/NEO-M8U-Configuration-Files |
|
GNSS | |
GPGGA - System fix data GPGLL - Geographic Latitude and Longitude GPGSA - DOP and active satellites GPGST - Pseudo Range Error Statistics GPGSV - Satellites in View GPRMC - Recommended Minimum specific GPS/Transit data GPVTG - Course over ground and Ground speed GPZDA - UTC Time and Date |
|
NMEA 0183 08:17:38 R -> NMEA GNRMC, Size 68, 'Recommended Minimum Specific GNSS Data' 08:17:38 R -> NMEA GNVTG, Size 35, 'Course Over Ground and Ground Speed' 08:17:38 R -> NMEA GNGGA, Size 75, 'Global Positioning System Fix Data' 08:17:38 R -> NMEA GNGSA, Size 58, 'GNSS DOP and Active Satellites' 08:17:38 R -> NMEA GNGSA, Size 54, 'GNSS DOP and Active Satellites' 08:17:38 R -> NMEA GPGSV, Size 70, 'GNSS Satellites in View' 08:17:38 R -> NMEA GPGSV, Size 70, 'GNSS Satellites in View' 08:17:38 R -> NMEA GPGSV, Size 31, 'GNSS Satellites in View' 08:17:38 R -> NMEA GLGSV, Size 70, 'GNSS Satellites in View' 08:17:38 R -> NMEA GLGSV, Size 70, 'GNSS Satellites in View' 08:17:38 R -> NMEA GNGLL, Size 52, 'Geographic Position - Latitude/Longitude' |
|
The "GP" prefix usually indicates an original GPS source. NeoGPS parses all Talker IDs, including "GL" (GLONASS), "BD" or "GB" (BeiDou), "GA" (Galileo), and "GN" (mixed) | |
======================================================================================= | |
TinyGPS++ 1.03 und GNSS - Arduiniana - TinyGPS++ "See Arduiniana - TinyGPS++ for more detailed information on how to use TinyGPSPlus" |
|
- CustomFields sample does not work with NEO-M8N #49 mikalhart closed this on 13 Oct 2019 | |
- Adding support for Glonass sentences by nseidle · Pull Request #28 · mikalhart/TinyGPSPlus · GitHub on 14 Apr 2017 | |
- The TinyGPS++ library parses GNGGA and GNRMC sentences. GN sentences are put out when the GPS is receiving data from more than one constellation, i.e GPS + GLONASS. [_https://forum.arduino.cc/t/library-for-parsing-glonass-nmea-sentences/668644_] | |
-
Improved TinyGPSPlus for new generation of satellites [Nov 2017] -"TinyGPS++ does already work with a Ublox 8, you just send a command to the GPS to turn off GLONASS mode, its easy enough." - GitHub - SlashDevin/NeoGPS: NMEA and ublox GPS parser for Arduino, configurable to use as few as 10 bytes of RAM |
|
When the NMEA standard was created many years ago no one was expecting anyone could use more than 12 satellites for resolving location because the number of satellites visible at once was less than that, thus the GAA message was limited to 12 SVs. Now with our fancy multi-constellation receivers it’s very common to have a lot more than 12 SVs but those receivers have to be backwards compatible with older NMEA versions (currently 4.11) thus they limit the GAA SVs field to 12 but in the newer GNS field it can go up to 99. | |
Als der NMEA-Standard vor vielen Jahren geschaffen wurde, hatte niemand erwartet, dass jemand mehr als 12 Satelliten zum Auflösen von Standort verwenden könnte, weil die Anzahl der Satelliten, die auf einmal sichtbar waren, geringer war, so dass die GAA-Nachricht auf 12 SVs beschränkt war. Jetzt mit unseren ausgefallenen Multi-Konstellation-Empfängern ist es sehr üblich, viel mehr als 12 SVs zu haben, aber diese Empfänger müssen rückwärts kompatibel mit älteren NMEA-Versionen (derzeit 4.11) sein, also begrenzen sie das GAA-SVs-Feld auf 12, aber im neueren GNS-Feld kann es bis zu 99 gehen. | |
======================================================================================= | |
Global Navigation Satellite System (GNNS)- Globales Navigationssatellitensystem |
|
Galileo (Satellitennavigation) | |
Quasi-Zenit-Satelliten-System (QZSS) | |
Aus dem GPSDO wird ein GNSSDO |
|
- American Standard Code for Information Interchange – Wikipedia | Kleinbuchstaben= Großbuchstabe +32 QTH-Kenner JN39hm22 |
- ASCII-, DOS-Latin-1-, Windows-1252- und HTML-Zeichencodes sowie deutsche Tastatur-Scancodes + Andere TechDocs + Encoding/Codepage/Charset | |
- Der ASCII-Code - CCM | |
======================================================================================= | |
Einbindung von SoftwareSerial mit RX-Buffer: 256 Byte |
|
C:\Users\admin\Documents\Arduino\libraries\ | |
Mehrere Bibliotheken wurden für "SoftwareSerial.h"
gefunden Benutzt: C:\Users\admin\Documents\Arduino\libraries\SoftwareSerial Nicht benutzt: C:\Users\admin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\libraries\SoftwareSerial Bibliothek TinyGPSPlus-1.0.2b in Version 1.0.2 im Ordner: C:\Users\admin\Documents\Arduino\libraries\TinyGPSPlus-1.0.2b wird verwendet Bibliothek SoftwareSerial in Version 1.0 im Ordner: C:\Users\admin\Documents\Arduino\libraries\SoftwareSerial wird verwendet Bibliothek Wire in Version 1.0 im Ordner: C:\Users\admin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\libraries\Wire wird verwendet Bibliothek New-LiquidCrystal-master im Ordner: C:\Users\admin\Documents\Arduino\libraries\New-LiquidCrystal-master (legacy) wird verwendet Bibliothek OneWire im Ordner: C:\Users\admin\Documents\Arduino\libraries\OneWire (legacy) wird verwendet Bibliothek DallasTemperature in Version 3.9.0 im Ordner: C:\Users\admin\Documents\Arduino\libraries\DallasTemperature wird verwendet Bibliothek OneButton-2.0.1 in Version 2.0.1 im Ordner: C:\Users\admin\Documents\Arduino\libraries\OneButton-2.0.1 wird verwendet |
|
======================================================================================= | |
Falscher Bootloader |
|
Bugs | |
15:32:01.653 -> Temperature for the device 1 (index
0) is: 23.75 15:32:01.700 -> Device 0 Resolution: 0 15:32:01.841 -> Temp :23.7⸮C |
27.10.2021, 4Z-14.2.j Debug 3 Resolution: 0 ??? |
======================================================================================= | |
Backlight des LCD-Displays abschalten | 01.11.2021 mkn |
Abschaltbarkeit des Backlights des LCD-Displays durch einen Schalter | |
- Steckerleiste K11 D8 Schalter gegen GND Schalter S2 offen-> Backlight ON Schalter S2 geschlossen, Backlight OFF |
|
- S1: Taster, push button -> D7 -Forced Holdover - S2: Schalter, ON/OFF Backlight -> D8 R1, R2: Schutzwiderstände |
|
//
set the LCD address to 0x27 for a 20 chars 4 line display // Set the pins on the I2C chip used for LCD connections: // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE ); // Set the LCD I2C address, .... #define switchPin 8 // Initialize a switch to GND ... void setup() ... pinMode(switchPin, INPUT_PULLUP); // Schalter gegen Grund, switch 01.11.2021 .... void loop() { ... if (digitalRead(switchPin) == HIGH) { lcd.backlight(); } else { lcd.noBacklight(); } } |
|
======================================================================================= | |
- LED für Anzeige der Betriebsbereitschaft | 01.11.2021 mkn |
- "Lock" LED an K3 mit anderer Information belegen | 01.11.2021 mkn |
z.B.: | |
- Anzeige des 3dFix des Sat-Empfanges | |
======================================================================================= | |
- Bewertung der Veränderung der Abstimmspannung als "Lock" Kriterium | 01.11.2021 mkn |
- Achtung, Falle: Uc ca 2,475.. 2,48 V Frequenz: 10.000.004,7 Hz,
OCXO: CTI - 100 kHz Teiler-Ausgang - 1 kHz GPS-Rx - Temperaturanzeige: Raumtemperatur - OCXO: CTI - GPS-Rx: NEO-M8M |
|
Uc@10 MHz; OCXO CTI, |
|
- Alternative Möglichkeiten der "Lock" Info der PLL | 04.11.2021 mkn |
- Zielsetzung - Lock gleich Synchronität? - Eingeschwungener Zustand der PLL - Phasendiskriminator und eingeschwungener Zustand der PLL |
|
======================================================================================= | |
Der Vorhang wird hoch gezogen |
[27.01.2022, mkn] |
Mehrere Bibliotheken wurden für "SoftwareSerial.h"
gefunden Benutzt: C:\Users\admin\Documents\Arduino\libraries\SoftwareSerial Nicht benutzt: C:\Users\admin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\libraries\SoftwareSerial Bibliothek SoftwareSerial in Version 1.0 im Ordner: C:\Users\admin\Documents\Arduino\libraries\SoftwareSerial wird verwendet |
- Ja, so soll es auch sein. Möglichkeit der Anpassung |
======================================================================================= | |
10Hz U-blox binary GPS data in 66 lines of code (arduino) - YouTube | |
UBX
binary protocol, extra tips (arduino) - YouTube |
|
======================================================================================= | |
http://www.iforce2d.net/sketches |
|
Source code:
http://www.iforce2d.net/sketches/UBX_... Helpful page: http://wiki.paparazziuav.org/wiki/Sen... Follow-up video: https://www.youtube.com/watch?v=ylxwO... |
|
======================================================================================= | |
- Patrick, TK5EP
sGPSDO -> GPSDO software - NMEAGPS.h - avdweb_Switch.h |
|
======================================================================================= | |
======================================================================================= | |
======================================================================================= | |
- Optional: UART-Ausgang - Auswertung der NMEA-Meldungen durch externe Programme im normalen Betriebsmodus des sGPSDO - die von der GPS-UART-Schnittstelle K1 via Tx gesendeten Daten werden parallel zu NANO-D4 einem UART-USB-Interface-Modul zugeführt - Ist eine Erweiterung möglich: kompletter Zugang zum GPS-Modul? - nach Ablauf void Setup erflogt kein weiterer Zugriff der SoftwareSerial-Schnittstelle auf die PGPS-UART-Rx es werden keine Steuerbefehle gesendet |
06.03.2022, mkn -> GPSDO 2*UART |
- How using 1 UART for 2 externals applications | |
PCB 2.2_43 |
|
=========================================================================== | |
- Auflösungen, Quantisierungen | |
Der AD-Wandler des Nano hat 10 bit Auflösung. NANO 5V: 1024=4,882... mV | |
DAC: MCP4725: 12 Bit 5 V: 4096= 1,22 mV | |
Die SW verwendet Oversampling(15 bit Auflösung) bei der Messung der Uc und die Anzeige nutzt eine 1 mV-Auflösung. | |
- OCXO-Steilheit Delta-f/V, z.B. 3 mHz/V | |
=========================================================================== | |
Holdover, Systemstart | |
START-> No Fix, Holdover, Relais muss anziehen, Anzeige
Holdover Ho - VC-OCXO wird mit EFC@10MHz angesteuert, OCXO wird aufgeheizt, Frequenz läuft ein, in dieser Phase starke Frequenzabweichung, sinnvoll? - Erst sinnvoll wenn OCXO genügend lang geheizt, thermisches Gleichgewicht muss erreicht sein |
|
=========================================================================== | |
VC-OCXO Bliley SN 048-15 EFC@10 MHz= 2,3 V | |
=========================================================================== | |
Temperatursensor | |
- Ofentemperatur, Oberflächenmessung | |
- Zweiter Sensor Geräte- oder Aussentemperatur | |
=========================================================================== | |
Hardware-Software-Schnittstellen | |
- | |
=========================================================================== | |
- I2C-Adressbus-Belegung und mögliche Adressbuskonflikte |
|
- verwendete I2C-Adressbus-Belegung | |
- LCD-HD 0x27 | |
- MCP 4725A0T-E/CH, genutzt A0 auf Low -> 0x60 | |
- Geplante Erweiterung | |
- Si5351-Breakout Board mit 3 Ausgängen. 0x60, die Adresse lässt sich bei verwendeten IC mit 10 Anschlüssen nicht ändern. | |
-> Hinweis zur Bestückung des IC MCP4725 | |
Arduino UNO, NANO: SDA Pin A4 und SCL Pin A5 | |
- I2C, PHILIPS 1982 | |
- TWI Two Wired Interface | |
- SDA Daten | |
- SCK Clock | |
- Master-Slave | |
- I2C-Schalter und -Multiplexer | |
=========================================================================== | |
Edited on 12.06.23