Aruboy.boot() vs. arduboy.begin()


#1

What is the difference between the two ? I’ve only noticed that arduboy.boot() skips the boot logo (which I kinda find obnoxious).


(Scott) #2

In the Arduboy2 library, begin() calls boot() and then calls functions to provide the additional standard boot up freatures. Currently, begin() does:

  boot(); // raw hardware
  blank(); // blank the display
  flashlight(); // light the RGB LED and screen if UP button is being held.
  // check for and handle buttons held during start up for system control
  systemButtons();
  audio.begin();
  bootLogo();
  // wait for all buttons to be released
  do {
    delay(50);
  } while (buttonsState());
  • blank() clears the RAM in the display controller to prevent a random pixel pattern from appearing on the display if a later function doesn’t clear it.
  • flashlight() provides the flashlight/torch feature. Holding the UP button while booting lights the RGB LED and display so you can see in the dark. This feature is also useful if the sketch uses a large amount of RAM in a way that prevents uploading new sketches.
  • systemButtons() allows you to set the global mute state for the speaker in system EEPROM.
  • audio.begin() sets the proper mute state based on the EEPROM value.
  • bootLogo() scrolls the ARDUBOY logo down while cycling the RGB LED.
  • The do loop waits for all the buttons to be released so that buttons which may still be pressed after exiting one of the previous features won’t be accidentally detected by the sketch code.

Note that if you are impatient, the boot logo sequence can be aborted by pressing the RIGHT button.

All of this is documented in the Arduboy2 library documentation.


#3

Thanks a lot for the fast response and also for linking the documentation