Page 1 of 1

Finding the default sketches

Posted: Tue Jul 16, 2024 4:27 pm
by voidzero
Hi everyone,

Totally new to the ESP32, but I just received my order of two boards, the ESP32-C6-DevKitM-1 and ~C-1 and can't wait to try them out.

However, what I would like to have first is the "default sketches". I tried to search this board but I am getting a server error 500.

Where can I find the default sketches so that I can always revert to what is on the board upon factory arrival?

Much thanks! Mark

Re: Finding the default sketches

Posted: Wed Jul 17, 2024 8:56 am
by MicroController
Not sure if there's any firmware pre-installed on the DevKits from the factory.
Since on the ESP32s the 'first-stage' bootloader is in the chip's ROM, there is no need for anything to be in flash to be able to flash a new application.
I.o.w., as long as you don't mess with the wrong e-fuses, it's pretty much impossible to 'brick' your ESP; you will always be able to just flash a new program no matter how badly the previous code behaves.

Re: Finding the default sketches

Posted: Wed Jul 17, 2024 9:29 am
by voidzero
Hi, thanks for your message.

When I put power onto the chip, the RGB LED goes through all 7 base colors. That's the sketch I'd like to have.

Re: Finding the default sketches

Posted: Wed Jul 17, 2024 1:50 pm
by voidzero
Hi MicroController, well, there's something on there that makes the RGB LED go through its seven colors. I would like to see how that is programmed.

as an aside I'm still trying to find my way with the IDE - I never used Visual Studio Code before - such a large amount of prompts and popups is a bit daunting!

Re: Finding the default sketches

Posted: Wed Jul 17, 2024 4:20 pm
by voidzero
I guess it doesn't matter that much anyway.

Here's a sketch I wrote that's just a pretty RGB animation.

I use it as a default - when I plug in a board I haven't used in a while and see this animation, I will instantly know the board is ready for use :mrgreen:

Enjoy:

Code: Select all

// These photons hurt my eyes! A low brightness is low enough.
#define MAXBRIGHT 24

// Initial delay during setup
#define IDELAY 600

// Delay between transitions
#define DELAY 100

// Extra after each state has completed
#define EXTRA_DELAY 1000

const int ledPin = RGB_BUILTIN;
int red = MAXBRIGHT;
int green = 0;
int blue = 0;
int state = 0;  // 0: red to yellow, 1: yellow to green, 2: green to cyan, 3: cyan to blue, 4: blue to magenta, 5: magenta to white, 6: white to red

void setup() {
  pinMode(ledPin, OUTPUT);
  neopixelWrite(ledPin, 0, 0, 0);
  delay(DELAY);

  // Let's start by just iterating over each color
  neopixelWrite(ledPin, MAXBRIGHT, 0, 0);
  delay(IDELAY);
  neopixelWrite(ledPin, 0, MAXBRIGHT, 0);
  delay(IDELAY);
  neopixelWrite(ledPin, 0, 0, MAXBRIGHT);
  delay(IDELAY);
  neopixelWrite(ledPin, MAXBRIGHT, MAXBRIGHT, 0);
  delay(IDELAY);
  neopixelWrite(ledPin, 0, MAXBRIGHT, MAXBRIGHT);
  delay(IDELAY);
  neopixelWrite(ledPin, MAXBRIGHT, 0, MAXBRIGHT);
  delay(IDELAY);
  neopixelWrite(ledPin, MAXBRIGHT, MAXBRIGHT, MAXBRIGHT);
  delay(IDELAY);

  // Smoothly fade out
  for (int i=MAXBRIGHT; i>=0; i--) {
    neopixelWrite(ledPin, i, i, i);
    delay(DELAY);
  }
  delay(EXTRA_DELAY);

  // Fade into red
  for (int i=0; i<=MAXBRIGHT; i++) {
    neopixelWrite(ledPin, i, 0, 0);
    delay(DELAY);
  }
  delay(EXTRA_DELAY);

}

void loop() {
  switch(state) {
    case 0: // red to yellow
      green++;
      if (green >= MAXBRIGHT) { delay(EXTRA_DELAY); state = 1; }
      break;
    case 1: // yellow to green
      red--;
      if (red <= 0) { delay(EXTRA_DELAY); state = 2; }
      break;
    case 2: // groen to cyan
      blue++;
      if (blue >= MAXBRIGHT) { delay(EXTRA_DELAY); state = 3; }
      break;
    case 3: // cyan to blue
      green--;
      if (green <= 0) { delay(EXTRA_DELAY); state = 4; }
      break;
    case 4: // blue to magenta
      red++;
      if (red >= MAXBRIGHT) { delay(EXTRA_DELAY); state = 5; }
      break;
    case 5: // magenta to white
      green++;
      if (green >= MAXBRIGHT) { delay(EXTRA_DELAY); state = 6; }
      break;
    case 6: // white to red
      green--;
      blue--;
      if (green <= 0 && blue <= 0) { delay(EXTRA_DELAY); state = 0; }
      break;
  }

  neopixelWrite(ledPin, red, green, blue);

  delay(DELAY);
}

Re: Finding the default sketches

Posted: Thu Jul 18, 2024 8:46 pm
by Horvat
You can extract original fw via esptool read_flash. For devices like Sonoff POW it may be useful to be able to revert to original FW before flashing Tasmota or esphome.