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

    [Solved]Guru Meditation Error:

    Cores
    3
    9
    18.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
      cepics
      last edited by m5-docs

      Hi, when I upload on M5Stack base, the following sketch..

      /* Ultrasonic distance sensor example - Better Version
      
         Paul Carpenter, PC Services
         26-Jan-2017
      
         Update 4-Feb-2017 PC make variables more obvious
         Update 13-May-2017 PC add half bit rounding to distance calculation
      
         Uses HC-SR04 four pin ultrasonic sensor to continuously output distances
         found when in range (every second).
      
         Results WHEN valid output onto serial port at 115,200 baud
      
         Both LEDs ON when program starts and any other time for no start of echo
         received (probably bad wiring or faulty unit) on start up also serial port
         error string
          
         Lights RED Led when No Reading received or out of range
         Lights Yellow LED when too close (less than 5 cm)
         LEDs are connected via 330R or similar resistor other end of LED to GND
      
         Works on principle sound travels at 343.2 m/s in dry STILL air at 20 deg C
      
         So time per cm is 29.137529 micro seconds /cm
      
         For round trip (there and back)  58.275058 micro seconds /cm
      
         In order to reduce code size and execution time values are kept as integers
         and factor of 58 to calculate distances
      */
      
      /* Pin definitions */
      #define echopin     4
      #define trigpin     5
      #define redled      6
      #define yellowled   7
      
      /* time between readings in ms
         On Arduino Mega readings belown 20ms interval could 
         have residual echo issues */
      #define INTERVAL    30
      
      /* Scale factor round trip micro seconds per cm */
      #define SCALE_CM    58
      #define SCALE_CM_ROUND  (SCALE_CM/2)
      
      /* Timeout for distance sensing rather than 1 second in us */
      #define MAX_ECHO    300000
      #define MIN_ECHO    (3 * SCALE_CM)
      
      /* Timeout for start of ECHO pulse being received in us */
      #define MAX_START_ECHO  1000
      
      /* Limits for application ranges in cm */
      #define MIN_RANGE   4
      #define MAX_RANGE   500
      
      #define MAX_ERROR 10
      
      /* calculated distance in centimetres */
      unsigned long distance;
      unsigned int echotime;
      unsigned long next_time, new_time;
      
      
      /* Distance sensor function to get echo time
         Note most ultrasonic distance sensors are only usable beyond 3 cm
         So usable range is 3 * SCALE_CM to MAX_ECHO, therefore anything below
         3 * SCALE_CM should be treated as error
      
         Returns echo time in microseconds
              Maximum MAX_ECHO
              Minimum 3 * SCALE_CM    (minimum usable)
         error codes
              Error   2   Echo HIGH before start
              Error   1   Echo did not start
              Error   0   NO ECHO (Timeout)
      
         Timeout for measurements set by MAX_ECHO
      */
      unsigned long GetEchoTime( )
      {
      unsigned long start_time;
      unsigned long end_time;
      
      /* check Echo if high return error */
      if( digitalRead( echopin ) )
        return( 2 );
        
      /* note start time */
      start_time = micros( );
      
      /* send the trigger pulse */
      digitalWrite( trigpin, HIGH );
      delayMicroseconds( 10 );
      digitalWrite( trigpin, LOW );
      
      /* Set timeout for start of echo pulse */
      end_time = start_time + MAX_START_ECHO;
      
      /* check ECHO pin goes high within MAX_START_ECHO
         if not return error of 1  */
      while( !digitalRead( echopin ) )
         if( micros( ) > end_time )
           return( 1 );
      
      /* Check for Length of echo occurred or timeout */
      start_time = micros( );
      end_time = start_time + MAX_ECHO;
      while( digitalRead( echopin ) )
         if( micros( ) > end_time )
           break;
      end_time = micros( );
           
      /* Return time or timeout   */
      return( ( start_time < end_time ) ? end_time - start_time: 0 );
      }
      
      
      void setup( )
      {
      /* set time from reset */
      next_time = INTERVAL;
      
      Serial.begin( 115200 );
      
      /* Configure pins and ensure trigger is OFF */
      pinMode( trigpin, OUTPUT );
      digitalWrite( trigpin, LOW );
      pinMode( echopin, INPUT );
      
      /* Configure LED drive and both LEDs On at start up */
      pinMode( redled, OUTPUT );
      pinMode( yellowled, OUTPUT );
      digitalWrite( redled, HIGH );
      digitalWrite( yellowled, HIGH );
      
      /* Send signon message */
      Serial.println( F( "PC Services - Better Range test" ) );
      
      /* Do test reading to check if unit connected */
      distance = GetEchoTime( );
      if( distance > 0 && distance <= 10 )
        {
        Serial.println( F( "No unit found - Error = " ) );
        Serial.println( distance );
        }
      }
      
      
      void loop( )
      {
      new_time = millis( );           /* check if to run this time */
      if( new_time >= next_time )
        {
        /* Turn LEDs Off */
        digitalWrite( redled, LOW );
        digitalWrite( yellowled, LOW );
      
        /* Calculate distance */
        echotime = GetEchoTime( );
        /* only scale valid readings 0 is timeout or 1 is no echo
           realistically minimum accurate or physical range is 3cm */
        if( echotime > MAX_ERROR )
          {
          // Valid number covert to cm
          distance = echotime;
          distance += SCALE_CM_ROUND;  // add in half bit rounding  
          distance /= SCALE_CM;
          }
      
        /* catch errors first */
        if( echotime <= MAX_ERROR || distance > MAX_RANGE )
          {
          digitalWrite( redled, HIGH );               // Range error too large
          if( echotime > 0 && echotime <= MAX_ERROR )
            digitalWrite( yellowled, HIGH );          // Light 2nd LED error
          }
        else
          if( distance < MIN_RANGE )
            digitalWrite( yellowled, HIGH );          // Range too close
          else
            Serial.println( int( distance ) );        // In range output distance
      
        next_time = new_time + INTERVAL;       // save next time to run
        }
      }
      

      I got this error... why?

      rst:0x1 (POWERON_RESET),boot:0x17 (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:1
      load:0x3fff0018,len:4
      load:0x3fff001c,len:1100
      load:0x40078000,len:9220
      load:0x40080400,len:6300
      entry 0x400806a4
      Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (Unhandled debug exception)
      Debug exception reason: Stack canary watchpoint triggered (loopTask) 
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
      Guru Meditation Error: Core  1 panic'ed (IllegalInstructionGuru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
      Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
      Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
      Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
      Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
      Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
      Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
      Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
      Guru Meditation Error: Core  1 panic'ed (Double exception)
      
      
      1 Reply Last reply Reply Quote 0
      • ajb2k3A
        ajb2k3
        last edited by ajb2k3

        @cepics said in Guru Meditation Error::

        Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled

        Unkown but seeing this pop up a few times on github with those pins.
        Try installing this arduino plugin and see what it says.
        link text

        Where are you getting pins 4, 6, 7 from as they are not broken out anywhere?

        UIFlow, so easy an adult can learn it!
        If I don't know it, be patient!
        I've ether not learned it or am too drunk to remember it!
        Author of the WIP UIFlow Handbook!
        M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

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

          @ajb2k3 said in Guru Meditation Error::

          Where are you getting pins 4, 6, 7 from as they are not broken out anywhere?

          I'm testing with pins 21 and 22 for the hc-sr04 and no ledconnected....

          ajb2k3A 1 Reply Last reply Reply Quote 0
          • ajb2k3A
            ajb2k3 @cepics
            last edited by

            @cepics Shouldn't it then be 21 and 22 defined in the code?
            GPIO 6 and 7 are not broken out.
            I thought that in arduino that pin was also defined as the gpio number.
            21 and 22 are digital pins isn't the echopin analogue?

            UIFlow, so easy an adult can learn it!
            If I don't know it, be patient!
            I've ether not learned it or am too drunk to remember it!
            Author of the WIP UIFlow Handbook!
            M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

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

              I already use the hc-sr04 on M5stack with this code:

              // defines pins numbers
              const int trigPin = 22;
              const int echoPin = 21;
              // defines variables
              long duration;
              int distance;
              void setup() {
              pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
              pinMode(echoPin, INPUT); // Sets the echoPin as an Input
              Serial.begin(9600); // Starts the serial communication
              }
              void loop() {
              // Clears the trigPin
              digitalWrite(trigPin, LOW);
              delayMicroseconds(2);
              // Sets the trigPin on HIGH state for 10 micro seconds
              digitalWrite(trigPin, HIGH);
              delayMicroseconds(10);
              digitalWrite(trigPin, LOW);
              // Reads the echoPin, returns the sound wave travel time in microseconds
              duration = pulseIn(echoPin, HIGH);
              // Calculating the distance
              distance= duration*0.034/2;
              // Prints the distance on the Serial Monitor
              Serial.print("Distance: ");
              Serial.println(distance);
              }
              

              but I would like to test the "better version" one

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

                this code:

                /* Ultrasonic distance sensor example - Better Version
                
                   Paul Carpenter, PC Services
                   26-Jan-2017
                
                   Update 4-Feb-2017 PC make variables more obvious
                   Update 13-May-2017 PC add half bit rounding to distance calculation
                
                   Uses HC-SR04 four pin ultrasonic sensor to continuously output distances
                   found when in range (every second).
                
                   Results WHEN valid output onto serial port at 115,200 baud
                
                   Both LEDs ON when program starts and any other time for no start of echo
                   received (probably bad wiring or faulty unit) on start up also serial port
                   error string
                    
                   Lights RED Led when No Reading received or out of range
                   Lights Yellow LED when too close (less than 5 cm)
                   LEDs are connected via 330R or similar resistor other end of LED to GND
                
                   Works on principle sound travels at 343.2 m/s in dry STILL air at 20 deg C
                
                   So time per cm is 29.137529 micro seconds /cm
                
                   For round trip (there and back)  58.275058 micro seconds /cm
                
                   In order to reduce code size and execution time values are kept as integers
                   and factor of 58 to calculate distances
                */
                
                /* Pin definitions */
                #define echopin     21
                #define trigpin     22
                #define redled      6
                #define yellowled   7
                
                /* time between readings in ms
                   On Arduino Mega readings belown 20ms interval could 
                   have residual echo issues */
                #define INTERVAL    30
                
                /* Scale factor round trip micro seconds per cm */
                #define SCALE_CM    58
                #define SCALE_CM_ROUND  (SCALE_CM/2)
                
                /* Timeout for distance sensing rather than 1 second in us */
                #define MAX_ECHO    300000
                #define MIN_ECHO    (3 * SCALE_CM)
                
                /* Timeout for start of ECHO pulse being received in us */
                #define MAX_START_ECHO  1000
                
                /* Limits for application ranges in cm */
                #define MIN_RANGE   4
                #define MAX_RANGE   500
                
                #define MAX_ERROR 10
                
                /* calculated distance in centimetres */
                unsigned long distance;
                unsigned int echotime;
                unsigned long next_time, new_time;
                
                
                /* Distance sensor function to get echo time
                   Note most ultrasonic distance sensors are only usable beyond 3 cm
                   So usable range is 3 * SCALE_CM to MAX_ECHO, therefore anything below
                   3 * SCALE_CM should be treated as error
                
                   Returns echo time in microseconds
                        Maximum MAX_ECHO
                        Minimum 3 * SCALE_CM    (minimum usable)
                   error codes
                        Error   2   Echo HIGH before start
                        Error   1   Echo did not start
                        Error   0   NO ECHO (Timeout)
                
                   Timeout for measurements set by MAX_ECHO
                */
                unsigned long GetEchoTime( )
                {
                unsigned long start_time;
                unsigned long end_time;
                
                /* check Echo if high return error */
                if( digitalRead( echopin ) )
                  return( 2 );
                  
                /* note start time */
                start_time = micros( );
                
                /* send the trigger pulse */
                digitalWrite( trigpin, HIGH );
                delayMicroseconds( 10 );
                digitalWrite( trigpin, LOW );
                
                /* Set timeout for start of echo pulse */
                end_time = start_time + MAX_START_ECHO;
                
                /* check ECHO pin goes high within MAX_START_ECHO
                   if not return error of 1  */
                while( !digitalRead( echopin ) )
                   if( micros( ) > end_time )
                     return( 1 );
                
                /* Check for Length of echo occurred or timeout */
                start_time = micros( );
                end_time = start_time + MAX_ECHO;
                while( digitalRead( echopin ) )
                   if( micros( ) > end_time )
                     break;
                end_time = micros( );
                     
                /* Return time or timeout   */
                return( ( start_time < end_time ) ? end_time - start_time: 0 );
                }
                
                
                void setup( )
                {
                /* set time from reset */
                next_time = INTERVAL;
                
                Serial.begin( 115200 );
                
                /* Configure pins and ensure trigger is OFF */
                pinMode( trigpin, OUTPUT );
                digitalWrite( trigpin, LOW );
                pinMode( echopin, INPUT );
                
                /* Configure LED drive and both LEDs On at start up */
                pinMode( redled, OUTPUT );
                pinMode( yellowled, OUTPUT );
                digitalWrite( redled, HIGH );
                digitalWrite( yellowled, HIGH );
                
                /* Send signon message */
                Serial.println( F( "PC Services - Better Range test" ) );
                
                /* Do test reading to check if unit connected */
                distance = GetEchoTime( );
                if( distance > 0 && distance <= 10 )
                  {
                  Serial.println( F( "No unit found - Error = " ) );
                  Serial.println( distance );
                  }
                }
                
                
                void loop( )
                {
                new_time = millis( );           /* check if to run this time */
                if( new_time >= next_time )
                  {
                  /* Turn LEDs Off */
                  digitalWrite( redled, LOW );
                  digitalWrite( yellowled, LOW );
                
                  /* Calculate distance */
                  echotime = GetEchoTime( );
                  /* only scale valid readings 0 is timeout or 1 is no echo
                     realistically minimum accurate or physical range is 3cm */
                  if( echotime > MAX_ERROR )
                    {
                    // Valid number covert to cm
                    distance = echotime;
                    distance += SCALE_CM_ROUND;  // add in half bit rounding  
                    distance /= SCALE_CM;
                    }
                
                  /* catch errors first */
                  if( echotime <= MAX_ERROR || distance > MAX_RANGE )
                    {
                    digitalWrite( redled, HIGH );               // Range error too large
                    if( echotime > 0 && echotime <= MAX_ERROR )
                      digitalWrite( yellowled, HIGH );          // Light 2nd LED error
                    }
                  else
                    if( distance < MIN_RANGE )
                      digitalWrite( yellowled, HIGH );          // Range too close
                    else
                      Serial.println( int( distance ) );        // In range output distance
                
                  next_time = new_time + INTERVAL;       // save next time to run
                  }
                }
                

                give this error:

                rst:0x1 (POWERON_RESET),boot:0x17 (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:1
                load:0x3fff0018,len:4
                load:0x3fff001c,len:1100
                load:0x40078000,len:9220
                load:0x40080400,len:6300
                entry 0x400806a4
                Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruction). Exception was unhandled.
                Guru Meditation Error: Core  1 panic'ed (IllegalInstruGuru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
                Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
                Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
                Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
                Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
                Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
                Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
                Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
                Guru Meditation Error: Core  1 panic'ed (Double exception)
                
                

                tnks

                1 Reply Last reply Reply Quote 0
                • ajb2k3A
                  ajb2k3
                  last edited by

                  @cepics said in Guru Meditation Error::

                  #define redled 6
                  #define yellowled 7

                  you cant use 5 to 11 as they are reserved for flash.

                  change the lines to

                  //#define redled 6
                  //#define yellowled 7
                  

                  This is the only difference between you working program an non working program.
                  Github has a few errors of this type all connected to pins 5-11 and because the

                  Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
                  has been triggered, it keeps crashing the Watchdog timer.
                  Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1)

                  UIFlow, so easy an adult can learn it!
                  If I don't know it, be patient!
                  I've ether not learned it or am too drunk to remember it!
                  Author of the WIP UIFlow Handbook!
                  M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

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

                    tnks a lot!!!

                    this one compile & no error in serial monitor

                    /* Ultrasonic distance sensor example - Better Version
                    
                       Paul Carpenter, PC Services
                       26-Jan-2017
                    
                       Update 4-Feb-2017 PC make variables more obvious
                       Update 13-May-2017 PC add half bit rounding to distance calculation
                    
                       Uses HC-SR04 four pin ultrasonic sensor to continuously output distances
                       found when in range (every second).
                    
                       Results WHEN valid output onto serial port at 115,200 baud
                    
                       Both LEDs ON when program starts and any other time for no start of echo
                       received (probably bad wiring or faulty unit) on start up also serial port
                       error string
                        
                       Lights RED Led when No Reading received or out of range
                       Lights Yellow LED when too close (less than 5 cm)
                       LEDs are connected via 330R or similar resistor other end of LED to GND
                    
                       Works on principle sound travels at 343.2 m/s in dry STILL air at 20 deg C
                    
                       So time per cm is 29.137529 micro seconds /cm
                    
                       For round trip (there and back)  58.275058 micro seconds /cm
                    
                       In order to reduce code size and execution time values are kept as integers
                       and factor of 58 to calculate distances
                    */
                    
                    /* Pin definitions */
                    #define echopin     21
                    #define trigpin     22
                    //#define redled      6
                    //#define yellowled   7
                    
                    /* time between readings in ms
                       On Arduino Mega readings belown 20ms interval could 
                       have residual echo issues */
                    #define INTERVAL    30
                    
                    /* Scale factor round trip micro seconds per cm */
                    #define SCALE_CM    58
                    #define SCALE_CM_ROUND  (SCALE_CM/2)
                    
                    /* Timeout for distance sensing rather than 1 second in us */
                    #define MAX_ECHO    300000
                    #define MIN_ECHO    (3 * SCALE_CM)
                    
                    /* Timeout for start of ECHO pulse being received in us */
                    #define MAX_START_ECHO  1000
                    
                    /* Limits for application ranges in cm */
                    #define MIN_RANGE   4
                    #define MAX_RANGE   500
                    
                    #define MAX_ERROR 10
                    
                    /* calculated distance in centimetres */
                    unsigned long distance;
                    unsigned int echotime;
                    unsigned long next_time, new_time;
                    
                    
                    /* Distance sensor function to get echo time
                       Note most ultrasonic distance sensors are only usable beyond 3 cm
                       So usable range is 3 * SCALE_CM to MAX_ECHO, therefore anything below
                       3 * SCALE_CM should be treated as error
                    
                       Returns echo time in microseconds
                            Maximum MAX_ECHO
                            Minimum 3 * SCALE_CM    (minimum usable)
                       error codes
                            Error   2   Echo HIGH before start
                            Error   1   Echo did not start
                            Error   0   NO ECHO (Timeout)
                    
                       Timeout for measurements set by MAX_ECHO
                    */
                    unsigned long GetEchoTime( )
                    {
                    unsigned long start_time;
                    unsigned long end_time;
                    
                    /* check Echo if high return error */
                    if( digitalRead( echopin ) )
                      return( 2 );
                      
                    /* note start time */
                    start_time = micros( );
                    
                    /* send the trigger pulse */
                    digitalWrite( trigpin, HIGH );
                    delayMicroseconds( 10 );
                    digitalWrite( trigpin, LOW );
                    
                    /* Set timeout for start of echo pulse */
                    end_time = start_time + MAX_START_ECHO;
                    
                    /* check ECHO pin goes high within MAX_START_ECHO
                       if not return error of 1  */
                    while( !digitalRead( echopin ) )
                       if( micros( ) > end_time )
                         return( 1 );
                    
                    /* Check for Length of echo occurred or timeout */
                    start_time = micros( );
                    end_time = start_time + MAX_ECHO;
                    while( digitalRead( echopin ) )
                       if( micros( ) > end_time )
                         break;
                    end_time = micros( );
                         
                    /* Return time or timeout   */
                    return( ( start_time < end_time ) ? end_time - start_time: 0 );
                    }
                    
                    
                    void setup( )
                    {
                    /* set time from reset */
                    next_time = INTERVAL;
                    
                    Serial.begin( 115200 );
                    
                    /* Configure pins and ensure trigger is OFF */
                    pinMode( trigpin, OUTPUT );
                    digitalWrite( trigpin, LOW );
                    pinMode( echopin, INPUT );
                    
                    /* Configure LED drive and both LEDs On at start up */
                    //pinMode( redled, OUTPUT );
                    //pinMode( yellowled, OUTPUT );
                    //digitalWrite( redled, HIGH );
                    //digitalWrite( yellowled, HIGH );
                    
                    /* Send signon message */
                    Serial.println( F( "PC Services - Better Range test" ) );
                    
                    /* Do test reading to check if unit connected */
                    distance = GetEchoTime( );
                    if( distance > 0 && distance <= 10 )
                      {
                      Serial.println( F( "No unit found - Error = " ) );
                      Serial.println( distance );
                      }
                    }
                    
                    
                    void loop( )
                    {
                    new_time = millis( );           /* check if to run this time */
                    if( new_time >= next_time )
                      {
                      /* Turn LEDs Off */
                    //  digitalWrite( redled, LOW );
                     // digitalWrite( yellowled, LOW );
                    
                      /* Calculate distance */
                      echotime = GetEchoTime( );
                      /* only scale valid readings 0 is timeout or 1 is no echo
                         realistically minimum accurate or physical range is 3cm */
                      if( echotime > MAX_ERROR )
                        {
                        // Valid number covert to cm
                        distance = echotime;
                        distance += SCALE_CM_ROUND;  // add in half bit rounding  
                        distance /= SCALE_CM;
                        }
                    
                      /* catch errors first */
                      if( echotime <= MAX_ERROR || distance > MAX_RANGE )
                        {
                      //  digitalWrite( redled, HIGH );               // Range error too large
                        if( echotime > 0 && echotime <= MAX_ERROR )
                       //   digitalWrite( yellowled, HIGH ); // Light 2nd LED error
                       Serial.println("MAX");
                        }
                      else
                        if( distance < MIN_RANGE )
                      //    digitalWrite( yellowled, HIGH ); // Range too close
                         Serial.println("MIN");
                        else
                          Serial.println( int( distance ) );        // In range output distance
                    
                      next_time = new_time + INTERVAL;       // save next time to run
                      }
                    }
                    
                    1 Reply Last reply Reply Quote 1
                    • m5-docsM
                      m5-docs
                      last edited by

                      @ajb2k3 Thanks a lot !

                      @cepics "A custom ESP-WROOM-32 build without any flash chip added, so the existing GPIO6, GPIO7, GPIO8, GPIO9, GPIO10 and GPIO11 pins can be used to allow us to add a GD25Q127C (or similar) on our external circuit."

                      M5Stack documentation URL

                      https://docs.m5stack.com

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