PiPico Oszilloskop

#7470677
Lesenswert?

Hier gibt es ein ziemlich minimalistisches Oszilloskop mit dem Pipico:

https://www.instructables.com/Raspberry-Pi-Pico-200Khz-Digital-Oscilloscope/

Die Idee mit dem Spannungsteiler als Ground hat natürlich einen kleinen Nachteil ..

Was für ein Kabel braucht man eigentlich vom Smartphone zum PiPico?

Persönliche Seite #7470730
Lesenswert?

Wenn du dieses Projekt ernsthaft in Erwägung ziehst, dann lohnt sich auch ein ordentliches Frontend. Auf der Scoppy-Seite [1] sind ja einige beschrieben. Schaltungen und Layout bzw. PCB gibt’s gleich mit dazu [2].

[1] https://oscilloscope.fhdm.xyz/wiki/Analog-Front-End-Examples [2] https://oshwlab.com/fruitloop57/fscope-250k5-v2_copy_copy_copy_copy

#7471062
Lesenswert?

Wenn du dieses Projekt ernsthaft in Erwägung ziehst, dann lohnt sich auch ein ordentliches Frontend.

Danke für die Links. Meine Verwendung des ganzen wäre ein "give away" für befreundete Elektronikbastler. Deshalb soll die Schaltung ziemlich minimalistisch gehalten, schnell aufzubauen und günstig sein.

#7471811
Lesenswert?

Rene K. (xdraconix)

Schönes Projekt, hab mich gerade mal hingesetzt und Platine für ein analoges Frontend für Dual-Channel mit einem MCP6002 für -10V bis +10V gemacht.

Klingt interessant. Kannst Du einen Screenshot des Designs posten? Ich denke immer mal wieder über eine Lösung nach, wie man auf sehr einfache Weise die +-10V auf der 5V Versorgung erzeugen könnte.

Früher hat man immer mal die MAX232 für diesen Zweck missbraucht. Wenn die Schaltung Strom sparend ist, könnte das vielleicht gehen.

#7471827
Lesenswert?

200Khz-Digital-Oscilloscope/

Das ist von der Nuetzlichkeit am alleruntersten Ende.

Besitzer eines "graphischen" Multimeters GDM-70x kennen das schon und koennen sich damit den Nachbau sparen.

Wie waere es mit einem LPC4370? Ach ja, ist ja BGA. :) Oder einem TMS320F2809? Oder einem urrrralten VAD2150 aus dem PIP eines antiken Fernsehers im bastelfreundlichen DIP? Dann vielleicht doch lieber einen ADS830?

Richtig, die alle erreichen ein Mehrfaches der Samplingrate...

#7471847
Lesenswert?

Mit zwei Kanälen mit je 250kS/s und xy-Darstellung sollte man mit wenigen externen Komponenten einen brauchbaren xy-Komponententester zusammenbekommen. Mit einem Pico W könnte der dann auch noch galvanisch getrennt vom teuren Smartphone sein. Den Pico w habe ich und die 2,29€ für die Premium-Version von Scoppy um das mal auszuprobieren auch.

#7471853
Lesenswert?

Matthias 🟠. schrieb:

Kann der PiPico auch auf die Platine wie in den einem Entwurf (von fruitloop57)?

Ja natürlich, Drahtverhau kann ich nicht leiden. ☺️

Christoph M. schrieb:

Klingt interessant. Kannst Du einen Screenshot des Designs posten?

Mach ich dann heute Abend, wenn ich wieder daheim bin.

Motopick schrieb:

Das ist von der Nuetzlichkeit am alleruntersten Ende.

Das ist sicherlich jedem hier bekannt. Und ich denke jeder hier hat ein Oszilloskop zu Hause stehen. Es geht ja hier nicht um die Leistung sondern vielmehr um das Machbare. Und für nichtmal nen Zehner ist das schon gut für Unterwegs.

#7472615
Lesenswert?

Sooo... der erste Entwurf ist da. Ich habe gleich nochmal einen Buffer und einen 9pin Header auf die Platine gemacht, vielleicht kann man die dann auch gleich noch als Logicanalyzer missbrauchen - dazu muss ich dann aber noch was schreiben. Der 3er Pinheader oben links ist als "Schalter" gedacht. Auch eventuell für spätere Änderungen / Software.

Bei 10 Stück bin ich aktuell mit Part-Assembly bei ~3€ pro Platine - nur die Pinheader müssen von Hand bestückt werden.

Morgen werde ich dann mal Inventor anschmeißen und nen Gehäuse dafür entwerfen. 3D Drucker habe ich ja mehr als genug da :-D

EDIT: Ich habe die 2 Kanäle nun per Pinheader ausgeführt. Ist der Bedarf nach BNC Buchsen da?!

Angehängte Dateien:
#7472686
Lesenswert?

Danke für die Bilder. Sieht nett aus. Reicht der OP von der Geschwindigkeit aus? Er ist relativ hochohmig angebunden und die Dioden haben auch ihre Kapazitäten. Bei den Logikanalysatoren findet meistens noch eine Schutzschaltung für die Eingänge:

https://praktische-elektronik.dr-k.de/Projekt/etc/Schutz_Logikanalysator.html

Wie machst Du es mit der Spannungsversorgung? Die +-10V sind ja vermutlich nicht potentialfrei.

Yalu X. (yalu) (Moderator) 07.08.2023 06:20

Christoph M. schrieb:

Ich denke immer mal wieder über eine Lösung nach, wie man auf sehr einfache Weise die +-10V auf der 5V Versorgung erzeugen könnte.

Die braucht man in diesem Fall ja nicht unbedingt.

Nicht unbedingt, aber ziemlich nützlich wäre es schon.

#7472712
Lesenswert?

Um auch einen Pico W nutzen zu können sollte im Bereich von dessen Antenne keine Kupferlage sein oder besser noch die Platine ausgefräst sein. Dann könntest du noch Platz für einen Resettaster vorsehen und vielleicht auch für eine Schottky-Diode zu VSYS und einen zweipoligen Pinheader für eine externe Stromversorgung.

#7473271
Lesenswert?

Matthias 🟠. schrieb:

Also ich würde diese zusätzlich sehr begrüßen, einfach einen alten Tatskopf und gut ist ...

Richtig, ist gebongt, mache ich heute Abend gleich noch mit rein.

Stefan K. schrieb:

Um auch einen Pico W nutzen zu können sollte im Bereich von dessen Antenne keine Kupferlage sein oder besser noch die Platine ausgefräst sein.

Korrekt, spare ich mit aus.

Stefan K. schrieb:

Dann könntest du noch Platz für einen Resettaster vorsehen

Auch richtig, mache ich noch mit drauf.

Stefan K. schrieb:

vielleicht auch für eine Schottky-Diode zu VSYS und einen zweipoligen Pinheader für eine externe Stromversorgung.

Externe Stromversorgung macht keinen Sinn, da ohne USB Verbindung (und damit unter Strom) auch das Gerät keinerlei Sinn macht.

#7473497
Lesenswert?

Die BNC Buchsen nehmen ja doch ne Menge Platz weg :-D Hab heute mal ein bisschen umrangiert. Oben ist noch Platz für eine eventuelle externe Stromversorgung und mittig wird dann noch der Taster für den Reset hinkommen.

Eigentlich wollte ich ja den 74hc245 mittig zwischen den Pico setzen, ging auch, aber da hätte ich den cutout für das WLAN nicht mehr dazu bekommen.

Angehängte Dateien:
Persönliche Seite #7473597
Lesenswert?

Mal kurz nachgefragt. Warum denn nicht gleich die Schaltung und die Platine aus [1]? Der Nächste möchte eine AC/DC Kopplung, dann ist eine Frequenzkompensation vielleicht wünschenswert und ein Dritter findet Freude am DAC. Die fast komplett bestückte Platine gibt es bei [2] für 75$ bei 10 Stück. Ich bin schon mal mit zwei Stück dabei. Bleiben noch 8 ...

[1] https://oshwlab.com/fruitloop57/fscope-250k5-v2_copy_copy_copy_copy [2] https://store.fhdm.xyz/fscope-500k

#7473604
Lesenswert?

Joe G. schrieb:

Die fast komplett bestückte Platine gibt es bei [2] für 75$ bei 10 Stück. Ich bin schon mal mit zwei Stück dabei. Bleiben noch 8 ...

"OUT OF STOCK", ebenso das 4er und 20er Pack. Nur einzeln oder im 2er Pack erhältlich und dabei geht anteilig deutlich mehr für den Versand drauf. Preis für 2 Stück mit Versand sind gerade 32,89 EUR.

(Firma: matzetronics) #7476054
Lesenswert?

Christoph M. schrieb:

Hier eines mit einem STM32G4

Und hier ein 2-Kanaler mit dem STM32F429 Disco Board: https://mikrocontroller.bplaced.net/wordpress/?page_id=752

Hat den Bildschirm bereits drin und wird mit Touch bedient. Wieder mal ein schönes Projekt von Uwe. Frontend sollte man noch addieren. Habe ich vor 2 Jahren auch mal angepasst auf ein altes Mobile Cassy von Leybold. Anbei mein Frontend.

Angehängte Dateien:
#7477351
Lesenswert?

Matthias 🟠. schrieb:

wie weit bis Du gekommen? Platinen schon bestellt?

Nein, geht morgen früh raus. War jetzt mal 4 Tage im Urlaub :-D Mir ist auch aufgefallen als ich heute die Beschriftung gemacht habe, das ich noch die falschen (für die -7 bis +6.6V Version) Vorwiderstände auf der Platine hatte. Habe ich noch geändert. Ich schlafe heute Nacht drüber und morgen früh schicke ich es dann los. Dürfte dann, wie üblich, ca. 10 Tage dauern bis dann die Platinen auf meinen Tisch liegen. Dann mal ausprobieren ob sie funktionieren.

Die externe Stromversorgung habe ich wie obig gelöst, habe ich auch so in meinen anderen Pico Platinen, vorteil hierbei: Man kann USB und externe Stromversorgung gesteckt lassen. Dies wird aber NICHT bestückt.

Auch treiben die beiden BNC Buchsen den Preis leider deutlich nach oben.

Angehängte Dateien:
#7485884
Lesenswert?

So, sind heute gekommen und nach nem schnellen Testschuß auf dem Schreibtisch funktionieren sie erstmal tadellos. Ein paar kleine Dinge ändere ich mal in einer späteren Version. Aber das betrifft nur den LA Part und der Signal Generator ist nicht mit rausgeführt. Morgen werde ich das Ding mal mit in die Werkstatt nehmen und mit nem richtigen Oszi vergleichen.

Also... Erstmal nen schönes Ding. ☺️

Edit: achja... Es läuft auch über WLAN ohne Kabel, wusste garnicht das des geht. In Ermangelung eines USB-B auf USB-C OTG Kabels darf ich nämlich morgen nochmal los in MM. 😅

#7485991
Lesenswert?

Matthias 🟠. schrieb:

Cool!! Auf dem Bild ist der Pico mit Pinheader zu sehen, kann auch einer ohne Pins direkt aufs Board? Oder hast du die Buchsenleisten mit bestücken lassen?

Nein, die Buchsenleiste ist nicht mit bestückt. Aber ich habe nur die die normalen 2,54mm Pads genommen. Ich weiß nicht genau ob die lötbaren Pico mit den CH auf diese Pads lötbar sind - da ich nur die mit Header habe (bzw. bei den anderen habe ich schon Pins angelötet. Mal schauen ob ich noch einen ohne rumliegen habe.)

EDIT:

Noch einen gefunden in der Grabelkischte... tatsächlich kann man sie nicht direkt verlöten. Für die nächste Version auf jeden Fall mit vormerken.

Angehängte Dateien:
#7486004
Lesenswert?

@Rene Ein Workaround wäre die Stiftleiste, wie oben rechts am Pico teilweise zu sehen, genauso in die Platine einzulöten (also von oben verkehrt herum einstecken). Dann den Pico darauf schieben/stecken und ebenfalls von oben verlöten. Hat den Vorteil man hat (etwas kürzere) Pins, an diese kann man sogar noch Stecker befestigen ;-)

#7486044
Lesenswert?

Christoph M. schrieb:

Allerdings wird die Beschränkte Bandbreite bei 50kHz deutlich sichtbarer.

Ja, bei 50khz sieht man dann dies schon deutlich dann.

Die rise und fall sind aber auch schon deutlich bei direktem messen von Pin zu ADC zu betrachten.

Meinst du ich bekomme über das Analog Frontend bei geringen Widerstandswerten bessere Ergebnisse?

#7486456
Lesenswert?

Christoph M. schrieb:

Klar, man sieht sehr schön, dass die Bandbegrenzung schon durch den Spannungsteiler und die Kapazität der Dioden und des OP-Eingangs entsteht. Macht man die Widerstände kleiner, wird es schneller.

Bei der Aufzählung darf man den recht langsamen OP nicht vergessen.

Wenn es sein muß, sollte man einen schnelleren OP aussuchen und den Eingangsspannungsteiler kapazitiv kompensieren. Ein paar pF über R1 sollten schon reichen. Besser fände ich es, den Eingangswiderstand zusätzlich auf 1 MOhm zu erhöhen, um für höhere Eingangsspannungen einen 10:1 Tastkopf verwenden zu können.

#7486625
Lesenswert?

Christoph M. schrieb:

Problem von den hochohmigen Widerständen und den parasitären Kapazitäten kommt

Ich fragte mal im Disscuison Bereich bei GIT von Scoppy (fhdem-dev) nach dem Grund für die Hochohmigen Widerstände. Als Antwort habe ich dann folgendes Erhalten:

https://github.com/fhdm-dev/scoppy/discussions/63

1
High resistor values are used to prevent the oscilloscope drawing too much current from the circuit under test.
2
I expect that adding small capacitors in parallel to R1, R2 and R4 would square up the waveform in your simulation.
3
eg. 22pf across R1 and R4 and 47pf across R2.
#7486636
Lesenswert?

eg. 22pf across R1 and R4 and 47pf across R2.

Hmm .. interessante Idee. Vielleicht würde schon ein Kondensator über dem hochohmigen 470K Widerstand am Eingang reichen, um die Kapazitäten der Dioden und des OP zu kompensieren. Das Problem ist wahrscheinlich, das man die Kapazitäten nicht genau kennt und eher so was wie die Einstellkondensatoren am Tastkopf eines Oszi braucht.

#7486731
Lesenswert?

Da die Frage gerade wieder aufgetaucht ist, ja ich verkaufe selbstverständlich die Platinen. Als Preis hätte ich gerne 5€ pro Stück zzgl. Versand und Bezahlung per PayPal.

Da aktuell eine neue Version in Arbeit ist - bekommen die Käufer diese dann kostenfrei hinter her geschickt. (Ausnutzung der Möglichkeit von Scoppy - LEDs, LA, Reset, etc... Und mal schauen was auf der "Analog-Frontend-Fraktion" im anderen Thread noch so raus kommt.)

#7486799
Lesenswert?

Christoph M. schrieb:

3.7pF über R1 scheinen laut Simulation gute Ergebnisse zu bringen.

Die Simulation liefert nur Schätzwerte, da die Streukapazitäten vom realen Aufbau abhängen. Ein 10 pF Trimmkondensator mit der Option einen SMD Kondensator parallel zu schalten sollte reichen. Geringe Kapazitäten hat beispielsweise die BAV99, was hier aber nicht viel bringt.

Aber: mit 0,6 V/µs ist der MCP6001 ultra lahm, etwa so wie der µA741. Besser wäre der MCP601/2 oder noch besser und noch G = +1 stabil ein MCP6021. Oder man betrachtet die vorliegende Eingangsschaltung ganz entspannt als Rauschfilter für NF-Signale ;-)

#7487597
Lesenswert?

Rene K. schrieb:

Ein paar kleine Dinge ändere ich mal in einer späteren Version. Aber das betrifft nur den LA Part und der Signal Generator ist nicht mit rausgeführt.

Der Signal Generator liefert entweder ein von 10Hz bis 1,25MHz einstellbares Rechtecksignal oder einen 1kHz Sinus per PWM. Für den 1kHz Sinus brauch man einen Tiefpass sonst sieht man das rohe PWM-Signal mit 250 kHz. Ein einfacher Tiefpass beeinflusst auch das Signal am Controller-Ausgang und man hat dann dort kein sauberes Rechtecksignal mehr. Der Tiefpass sollte also extern anschlossen werden, wegschaltbar sein oder über einen Puffer entkoppelt werden.

#7488302
Lesenswert?

Ich habe mir den 1kHz "Sinus" mal mit meinem Picoscope USB Oszilloskop angesehen: Oben in blau auf dem ersten Bild ist das mit einem x10 Tastkopf bei 500MS/s an GPIO22 aufgenommene Signal. Die Pulse neben der Pause (0% Tastgrad) beim Minimum des Sinus sind etwa 16ns breit, getriggert habe ich auf die erste steigende Flanke nach der Pause. Auf das aufgenommene Signal habe ich dann den Tiefpass der Picoscope-Software angewandt: orange 100kHz und rot 50kHz. Das zweite Bild zeigt die steigende Flanke des "Sinus" 200µs nach Ende der Pause. Nach dem 50kHz Tiepass sieht der Sinus schon recht ordentlich aus, in Hardware werde ich trotzdem wohl eher so um die 10kHz Grenzfrequenz nehmen.

Angehängte Dateien:
#7488432
Lesenswert?

Nach dem 50kHz Tiepass sieht der Sinus schon recht ordentlich aus, in Hardware werde ich trotzdem wohl eher so um die 10kHz Grenzfrequenz nehmen.

Es kommt darauf an, was du messen und sehen willst. Wenn du im Frequenzbereich arbeitest und das Spektrum analysieren willst, wäre ein guter Anti-Aliasing Filter wichtig, falls sich in den zu untersuchenden Signalen hochfrequente Anteile befinden, die sich über der halben Abtastfrequenz befinden und ins Basisband zurückspiegeln. Der Anti-Aliaising Filter hat aber den Nachteil, dass man bei Rechtecksignalen eher die Artifakte des Filters sieht statt die zeitliche Form des Rechtecksignals.

Fazit: Es kann sehr viel Sinn machen, den Eingangsverstärker ohne Filter, möglichst schnell und hoher Slew-Rate zu sehen. Wenn du nur 10kHz sehen willst, kann es auch Sinn machen, einen einfachen analog Filter vorzuschalten und die eigentliche Bandbegrenzung mit einem SINC-Filter digital zu machen.

#7488462
Lesenswert?

Motopick schrieb:

Wenn dir mal schlecht werden soll, benutze die Funktion "Huellkurve".

Warum sollte ich wollen, daß mir schlecht wird? Falls ich es doch wollte, was genau sollte ich machen? Eine Hüllkurve über das sich immer gleich wiederholende digitale Ausgangssignal am GPIO dürfte eher langweilig sein, das über die tiefpassgefilterten Math-Kanäle noch langweiliger.

Christoph M. schrieb:

Fazit: Es kann sehr viel Sinn machen, den Eingangsverstärker ohne

Es ging mir um das 1kHz "Sinus"-Ausgangssignal des PiPico Oszilloskops, das sich mit dem Gerät selbst nicht sinnvoll untersuchen lässt egal welchen Eingangsverstärker man dafür einsetzt. Deshalb habe ich mein PicoScope PS5242D mal drauf losgelassen, das ist mit 60MHz analoger Bandbreite nicht optimal für das PWM-Signal aber ausreichend um genügend Details zu sehen.

#7489704
Lesenswert?

Rene K. schrieb:

und der Signal Generator ist nicht mit rausgeführt.

Ja, das ist schade. In der Software schlummern aber noch ein paar mehr Details.

Danke, erst einmal für die Platinen und "Sour Cola" :-)

Jetzt zum Test:

Firmware von hier https://oscilloscope.fhdm.xyz/wiki/Installation-&-Getting-Started.html

scoppy-picow-v15.uf2

Ich komme allerdings nicht auf die Werte für die Firmware klar ... ? Was muss hier unter min / max jetzt rein? Dein Frontend kann ja -10.2V bis +10.1V der PiPico aber 0 - 3.3V am ADC ?

Dann ist mir aufgefallen das die Beschriftung auf der Platine sich widerspricht. Ch1 und Ch2 müssten passend zur Software getauscht werden. Dann passt auch die Logik Ch1 links und Ch2 rechts.

Dann muss man die LA0-LA7 in der Konfiguration auf Start bei GPIO15 stellen Count 8. Hier scheint aber auch die Beschriftung der Label in der Software buggy zu sein. Es wird trotzdem GPIO6-13 angezeigt. Hier ist es aber auch so, dass 13 dann der linke neben GND ist und 6 der ganz Rechte :-(

Dann könntest Du in einer Version 2 auch noch SMD-Leds aufbringen. In der Konfig gibt es die Möglichkeit neben der eingebauten WLAN PiPico Led noch weitere anzusteuern ... GPIOx

UND viel wichtiger, wofür sind die Voltage Range Bit Zuordnungen?!

Wie gesagt, sehr cooles Projekt Rene! Ich freue mich schon auf die verbesserte Platine :-)

Kannst du noch den aktuellen Stand als PDF veröffentlichen? PS Unter Deiner aufgedruckten Web-Adresse ( die auf der Platine) kommt nur: "Seite wurde nicht gefunden"

Viele Grüße Matthias

#7490415
Lesenswert?

So da fange ich mal an:

Matthias 🟠. schrieb:

Ich komme allerdings nicht auf die Werte für die Firmware klar ... ? Was muss hier unter min / max jetzt rein? Dein Frontend kann ja -10.2V bis +10.1V der PiPico aber 0 - 3.3V am ADC ?

Unter min / max musst du die -10.2 und die +10.1 eintragen. Der Spannungsteiler teilt die Spannung und der OPV macht eine DV Anhebung um 50% so das negative Spannungen gemessen werden können. 0V am Pico sind also -10.2 und 3.3V am Pico sind +10.1 - Die APP rechnet das dann um.

Matthias 🟠. schrieb:

Dann ist mir aufgefallen das die Beschriftung auf der Platine sich widerspricht. Ch1 und Ch2 müssten passend zur Software getauscht werden. Dann passt auch die Logik Ch1 links und Ch2 rechts.

Das ist richtig und Asche auf mein Haupt :-D Das ist in der neuen Rev. natürlich richtig gedreht.

Matthias 🟠. schrieb:

Dann muss man die LA0-LA7 in der Konfiguration auf Start bei GPIO15 stellen Count 8. Hier scheint aber auch die Beschriftung der Label in der Software buggy zu sein. Es wird trotzdem GPIO6-13 angezeigt. Hier ist es aber auch so, dass 13 dann der linke neben GND ist und 6 der ganz Rechte :-(

Auch das ist korrekt. In der Konfiguration habe ich Trigger und WLAN LED auf 'none' gestellt. LA auf Port 15 und count auf 8. Auf der Platine ist dies tastsächlich verdreht. In der neuen Rev geht dies dann von 0-7 und das auf Doppelpinreihe, so das jeder seinen eigenen GND hat.

Auch wird sich in der neuen Rev explizit an die Vorgaben der Scoppy APP gehalten damit dies nicht so ein durcheinander ist. Auch die WLAN und Trigger LED sind mit an Board. Sowie selbstverständlich der Triggeranschluss.

Matthias 🟠. schrieb:

UND viel wichtiger, wofür sind die Voltage Range Bit Zuordnungen?!

Die ist dafür da, wenn man sich sein Analogfrontend modular aufbaut, kann über diese Bits z.b. mit einem Drehschalter, das Frontend gewählt werden.

Matthias 🟠. schrieb:

Kannst du noch den aktuellen Stand als PDF veröffentlichen? PS Unter Deiner aufgedruckten Web-Adresse ( die auf der Platine) kommt nur: "Seite wurde nicht gefunden"

Ja versuche ich dieses Wochenende noch ans laufen zu bringen. Den Web-Container und die Cloudflare bringe ich gleich noch ans Netz.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren