🤖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.
    • 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