🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    M5Stack 2 Channel Oscilloscope

    PROJECTS
    8
    20
    56.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Calin
      last edited by Calin

      "Just for fun"...

      https://github.com/botofancalin/M5Stack-ESP32-Oscilloscope

      a "Simple" 2 channel Oscilloscope, with Settings menu and 2 integrated signal generators

      alt text

      Ask 4 more :)

      M 1 Reply Last reply Reply Quote 3
      • reaper7R
        reaper7
        last edited by

        @Calin - very nice! tnx

        MY GITHUB: https://github.com/reaper7/

        1 Reply Last reply Reply Quote 0
        • M
          m5dude @Calin
          last edited by

          @calin
          very nicely done! thanks for sharing sources to learn from

          1 Reply Last reply Reply Quote 0
          • D
            dda
            last edited by dda

            Very nice. The speaker noise issue forced me to work out a fix to shut up the speaker on demand, without having to recompile every time. Here's how: you add an end() method in Speaker.cpp:

            void SPEAKER::end() {
              ledcDetachPin(SPEAKER_PIN);
            }
            

            (declared in Speaker.h)

            class SPEAKER {
              public:
                SPEAKER(void);
                void begin();
                void end();
            

            Now you can call M5.Speaker.end(); any time to make sure the speaker shuts up. Works with any project – making it a generic solution.

            1 Reply Last reply Reply Quote 1
            • C
              Calin
              last edited by Calin

              I fixed the speaker noise issue much much easyer.
              Please check the updated version on: https://github.com/botofancalin/M5Stack-ESP32-Oscilloscope

              BTW!!!
              The project is compiled on Visual Studio using the awsome vMicro plugin : http://www.visualmicro.com/

              1 Reply Last reply Reply Quote 0
              • dasloloD
                daslolo
                last edited by daslolo

                The DSO112A generates signal that's ok clean.
                This M5Stack oscillo graphs something far noisier.
                Why is that? Can this be fixed without lowering the sampling rate by smoothing the analog signal?

                EDIT: I connected to the wrong wires and didn't ground. Once grounded, disconnected USB and pinned to 35, the signal is very clean. Weird that I'd get a squarish signal when connected to AD
                alt text

                1 Reply Last reply Reply Quote 1
                • C
                  Calin
                  last edited by

                  The maximum voltage on ESP32 ADC can read is 3.3v
                  The ESP32 don't have the voltage divider on ADC in as the DSO oscilloscope have.
                  Noises can cause high voltage levels, especially near computers, where you have lots of radio waves on different frequency. So even touching the input pin (35) with your hand, the voltage at the input pin can cause more than 3.3v, especially if the ESP is connected to PC by USB cable.

                  Some basic filters and voltage dividers at the input pin, can solve that problem.

                  dasloloD 1 Reply Last reply Reply Quote 1
                  • dasloloD
                    daslolo @Calin
                    last edited by

                    @calin and the ESP32 can be damaged by spiked above 3.3V, I read. How do I know if I damaged mine?
                    I'll add voltage divider, is there a way to remove spikes without killing the sensitivity? I am doing an FFT on the signal and don't want to smooth things out too much.

                    1 Reply Last reply Reply Quote 0
                    • C
                      Calin
                      last edited by

                      If the DAC input was damaged, it won't pick up any signal that you feed to it...

                      1 Reply Last reply Reply Quote 1
                      • C
                        Calin
                        last edited by

                        Btw... check out the new development: http://forum.m5stack.com/topic/165/m5stack-multiapp-firmware

                        1 Reply Last reply Reply Quote 1
                        • dasloloD
                          daslolo
                          last edited by

                          If I understand this correctly, the ESP32 analog input captures only positive voltage.
                          How do I get the full -/+ range in there?

                          1 Reply Last reply Reply Quote 0
                          • C
                            Calin
                            last edited by Calin

                            Make a voltage divider with 2 resistors (100k or so...) with one end connected to GND and the other end to 3.3v.
                            The middle of the divider connected to oscilloscope input pin.
                            Apply input signal to input pin and you get +/- 1.65v input range.
                            I designed the code to be used with this divider, that's why, without the divider, the oscilloscope line is at the bottom of the screen.
                            Once you connect the divider, the signal line will be at the middle of the screen just like on a normal oscilloscope.

                            1 Reply Last reply Reply Quote 2
                            • dasloloD
                              daslolo
                              last edited by

                              Without the voltage divider, the amplitude is the same, just offset by 1.65v?

                              1 Reply Last reply Reply Quote 0
                              • C
                                Calin
                                last edited by Calin

                                The max amplitude is 3.3v. With the divider, the amplitude will be -1.65v to +1.65v (total 3.3v) The aplitude can be solved easy with a series of resistors at the imput. To change the input aplitude, replace the 10K resistor on the example below:
                                0_1523452685767_Vontage divider.jpg

                                P 1 Reply Last reply Reply Quote 0
                                • P
                                  pkourany @Calin
                                  last edited by pkourany

                                  @calin 在 M5Stack 2 Channel Oscilloscope 中说:

                                  he amplitude will be -0.65v to +0.65v (total 3.3v)

                                  @calin, I think you meant the input signal range will be -1.65v to +1.65v (total 3.3v). :)

                                  C 1 Reply Last reply Reply Quote 0
                                  • C
                                    Calin @pkourany
                                    last edited by

                                    @pkourany 在 M5Stack 2 Channel Oscilloscope 中说:

                                    @calin 在 M5Stack 2 Channel Oscilloscope 中说:

                                    he amplitude will be -0.65v to +0.65v (total 3.3v)

                                    @calin, I think you meant the input signal range will be -1.65v to +1.65v (total 3.3v). :)

                                    yes. sorry for typo... edited now :)

                                    JJJ 1 Reply Last reply Reply Quote 1
                                    • JJJ
                                      JJ @Calin
                                      last edited by JJ

                                      Awesome oscilloscope case - designed by Macsbug - infos here

                                      0_1523469082882_M5Stack-OscilloscopeCase.png

                                      1 Reply Last reply Reply Quote 0
                                      • dasloloD
                                        daslolo
                                        last edited by

                                        This post is deleted!
                                        1 Reply Last reply Reply Quote 0
                                        • ChrisWRC
                                          ChrisWR
                                          last edited by

                                          Its restarting every 5 seconds making it useless.. what can be my problem?

                                          ChrisWRC 1 Reply Last reply Reply Quote 0
                                          • ChrisWRC
                                            ChrisWR @ChrisWR
                                            last edited by

                                            @chriswr Ok solved.. disable the watchdog..

                                            disableCore0WDT();
                                            disableCore1WDT();

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post