• Hallo Zusammen, Aufgrund der aktuellen Situation setzten wir die Möglichkeit aus, sich mit Gmail zu registrieren. Wir bitten um Verständnis Das RCMP Team

Projekt Servotester Deluxe von "Der RC Modellbauer" mit meiner erweiterten Software

Auf anderen Wegen habe ich gehört, dass mit 0.15.0 das Oszilloskop crasht und auch bei mir ist es schon passiert, allerdings nur auf einem Gerät. Geholfen hat ein Werksreset im Einstellungs-Menu.

Ich konnte es soweit zurückverfolgen, dass die neue, schnelle local_adc1_read() Funktion der Auslöser ist (fraglich bleibt, warum nur auf gewissen Geräten):
scope_crash.png

Wie sieht es bei euch aus?
 

rewerc

Mitglied
Hab jetzt mal ne halbe Stunde damit rungespielt. Keine Auffälligkeiten und schon gar kein Reset. Der 32 ist ein DevKitV1.

IMG_4439.JPG

Die Abweichung T+ liegt sicher am rechten Oszi, der ist immer zwischen ca. 1,5 und 1,2ms gependelt und ist wohl dem fliegenden Aufbaut geschuldet.
Da der Eingang nur 3,3V max messen kann werden natürlich auch nur max. die angezeigt. Das er da überlebt liegt sicher an den Vorwiderständen. Bei einem Neudesign würde ich wenigstens den Kanal 5 da besser absichern.
Da hängt übrigens gerade ein robbe luna AM R6 dran. Hatte gar nicht auf dem Schirm, dass der mit 63Hz arbeitet. Und sein Impulsbreite ist min: 860 mid:1300 max:1700. Zumindest bei meiner alten Luna.
Damit konnte ich dann den Soundkontroller super anpassen.

Also, bin vollauf begeistert
Schönen Sonntag und Danke

Reiner
 
Erste Implementation des Signalgenerators auf GPIO 26:
IMG_6662D.JPG
  • Das Gerät kann selber Sinus- und Rechteck-Testsignale generieren und somit sein eigenes Oszilloskop etc. testen
  • Dreieck funktioniert nicht, da hier anscheinend ein Bug in der aktuellen espressif 32 platform besteht
  • Frequenzeinstellung im Sinus Modus ist noch buggy, manchmal muss man auf R (Rechteck) schalten, um diese einzustellen
IMG_6663D.JPG
 
Ja, über Discord. Es werden die meisten Wünsche verwirklicht, ausser dem Überspannungsschutz, das wäre zu aufwendig.

Du bist ja wirklich extrem schnell. Hut ab :thumbsup:Nicht zu glauben wie sich das entwickelt!
Ja, es geht ziemlich schnell vorwärts. Wichtig ist, alles möglichst modular zu programmieren, so dass der Überblick nicht verloren geht.
 

ThomasK

Mitglied
Auf anderen Wegen habe ich gehört, dass mit 0.15.0 das Oszilloskop crasht und auch bei mir ist es schon passiert, allerdings nur auf einem Gerät. Geholfen hat ein Werksreset im Einstellungs-Menu.
Hallo zusammen, ich bin hier neu im Forum und zu allererst: vielen Dank für die tollen Ideen und Weiterentwicklungen der ServoTester-SW! @TheDIYGuy999, vielen Dank für den Link auf das Forum. Ja, bei mit Crash die V0.15.0 wenn ich das Oszilloskop starte. Ich hatte mit V0.14.0 WLAN abgeschaltet, mit dem scheint das in Verbindung zu stehen. Weil wenn ich mit V0.15.0 WLAN aktiviere funktioniert nach einem Reset alles wieder!
 
Das sollte nicht so schlimm sein, bei Bedarf kann sich ja die 2Widerstände/Dioden in einem Stück Schrupfschlauch direkt an das Kabel für den Oszieingang basteln.
Ich habe heute einen Versuch gemacht und die 330R Widerstände durch 4K7 ersetzt. Diese beschränken den Strom wesentlich stärker, so dass die internen Schutzdioden viel besser schützen. Funktioniert auch am Signalgenerator-Ausgang. Wie man sieht, ist auch mit einem mittels Y-Kabel angeschlossenem Servo keine Veränderung auf dem Oszilloskop zu sehen. Das Signal verändert sich also mit dem hohen Eingangswiderstand des Futaba-Servos nicht, vPP ist immer noch 3.28V:
IMG_6679D.JPG

Anders sieht es beim billigen 9g-Servo aus, da sinkt vPP auf 2.65V. Es funktioniert aber einwandfrei...
IMG_6680D.JPG

Was sich nicht verändert ist die Signalform, alles bleibt schön rechteckig. Die Wahrheit dürfte somit bei ca. 2K2 liegen. Diese würden dann auch genügen, um die Analog-Eingänge über die internen Schutzdioden genügend bis 5V zu schützen. Zener-Dioden sind übrigens für Analog-Eingänge ungeeignet, da sie bereits deutlich unter der Nennspannung einen signifikanten Strom durchlassen.
 

ThomasK

Mitglied
Ist es dann wieder vorgekommen oder nur 1 Mal?
Der Reset bei Oszilloskop-Aufruf ist reproduzierbar: wenn in den Einstellungen WiFi "Ein" ist funktioniert das Oszi, immer. Wenn ich aber WiFi "Aus" stelle funktioniert das Oszi immer noch :) aber nach einmal Reset (Spannung weg, Spannung dran) resettiert sich der ESP32 wenn ich das Oszi aufrufe.
Dies ist die serielle Ausgabe:


Buttonstate: 2
Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1).

Core 1 register dump:
PC : 0x400813c4 PS : 0x00060c35 A0 : 0x800d463c A1 : 0x3ffb2140
A2 : 0x8086064c A3 : 0x00000000 A4 : 0x00009df7 A5 : 0x00001900
A6 : 0x00060820 A7 : 0x00000001 A8 : 0x3ff48800 A9 : 0x00020000
A10 : 0x8007ffff A11 : 0x19000000 A12 : 0x00060820 A13 : 0x00060823
A14 : 0x007be684 A15 : 0x003fffff SAR : 0x0000001c EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000 LBEG : 0x40084fa1 LEND : 0x40084fa9 LCOUNT : 0x00000027


Backtrace: 0x400813c1:0x3ffb2140 0x400d4639:0x3ffb2160 0x400d4c54:0x3ffb21a0 0x400d9cd9:0x3ffb21c0 0x400dbefd:0x3ffb2270 0x400e45d5:0x3ffb2290

#0 0x400813c1:0x3ffb2140 in local_adc1_read(int) at src/src.ino:387
#1 0x400d4639:0x3ffb2160 in readProbe() at src/src/oscilloscope.h:98
#2 0x400d4c54:0x3ffb21a0 in oscilloscopeLoop(bool) at src/src/oscilloscope.h:254
#3 0x400d9cd9:0x3ffb21c0 in MenuUpdate() at src/src.ino:1596
#4 0x400dbefd:0x3ffb2270 in loop() at src/src.ino:2289
#5 0x400e45d5:0x3ffb2290 in loopTask(void*) at /Users/imacthomas/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:50


Core 0 register dump:
PC : 0x40164d92 PS : 0x00060735 A0 : 0x800f3a9d A1 : 0x3ffbd430
A2 : 0x00000000 A3 : 0x40089414 A4 : 0x00060520 A5 : 0x3ffbc920
A6 : 0x007c0058 A7 : 0x003fffff A8 : 0x80091f98 A9 : 0x3ffbd410
A10 : 0x3ffbcf90 A11 : 0x3ffc0054 A12 : 0x3ffc0054 A13 : 0x00000000
A14 : 0x00060520 A15 : 0x00000000 SAR : 0x0000001d EXCCAUSE: 0x00000006
EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000


Backtrace: 0x40164d8f:0x3ffbd430 0x400f3a9a:0x3ffbd450 0x4008d7b0:0x3ffbd470

#0 0x40164d8f:0x3ffbd430 in cpu_ll_waiti at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/hal/esp32/include/hal/cpu_ll.h:183
(inlined by) esp_pm_impl_waiti at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_pm/pm_impl.c:837
#1 0x400f3a9a:0x3ffbd450 in esp_vApplicationIdleHook at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_system/freertos_hooks.c:63
#2 0x4008d7b0:0x3ffbd470 in prvIdleTask at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/freertos/tasks.c:3987




ELF file SHA256: 886dfa09695c886d

Rebooting...
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode: DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13192
load:0x40080400,len:3028
entry 0x400805e4

**************************************************************************************************
Sevotester Deluxe for ESP32 software version 0.16-beta.0
Original version: https://github.com/Ziege-One/Servotester_Deluxe
Modified version: https://github.com/TheDIYGuy999/Servotester_Deluxe
XTAL Frequency: 40 MHz, CPU Clock: 240 MHz, APB Bus Clock: 80000000 Hz
Internal RAM size: 322532 Byte, Free: 295140 Byte
WiFi MAC address: E0:5A:1B:60:45:E0
Core 0 reset reason: 12: SW_CPU_RESET
Core 1 reset reason: 12: SW_CPU_RESET
EEPROM gelesen.
0
948
1
0
1
1
0
2000
1000
1500
470
130
300
1000

WiFi Aus
Akkuspannung: 4.388
Akkuspannung: 4.380

Akkuspannung: 4.380


Ich lasse jetzt WiFi an :cool:
 
Der Reset bei Oszilloskop-Aufruf ist reproduzierbar:
Deine Ausführungen stimmen. WiFi ein / aus benötigt immer einen Neustart, danach stürzt das Oszi ab, wenn Wifi inaktiv ist. Es sind auch alle Geräte betroffen. Guter Hinweis, bin aber noch am suchen... Mir ist nicht klar, warum der Watchdog ohne WiFi ins Timeout geht.
Vorerst bleibt also nichts anderes übrig, als WiFi aktiviert zu lassen.
 

Klapeko

Mitglied

hier ein Artikel in der CT, vermutlich sind alle "preiswerten" ESP32 nicht von Espressif..
könnte ein Hinweis darauf sein, weil laut TheDIYguy999 einige funktionieren, andere nicht :devilish:
 
Danke für den Hinweis. Denke ich aber nicht, da der Zwischenzeit @ThomasK herausgefunden hat, dass alle Geräte betroffen sind, sobald WiFi deaktiviert ist.

Ega, was man sonst noch tut (auch in einem "nackten" Testprogramm), local_adc1_read(int channel) crasht dann immer und es folgt:

Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1)

Ich vermute, dass irgendwo ein Speicherbereich überschrieben wird, da die Funktion ausserhalb des ESP32 Betriebssystems ausgeführt wird. Bin nach wie vor für Hinweise dankbar.
 
Top Bottom