Disable Boot Animation

(Peter Shaw) #1

Is there a way to disable the Arduboy boot animation? It is kind of annoying to wait for the animation to be completed.

(Holmes) #2

The boot animation is built into programs. During the setup() section of code, a developer will call the arduboy.begin() function first. This function creates the boot animation. This also allows users to enter flashlight mode by holding the Up button. This is great because if your Arduboy gets bricked, it may be possible to fix it using this mode.

If you don’t like the animation in a game, you’d have to change the source code to get rid of the arduboy.begin() function, HOWEVER, that will get rid of the flashlight mode functionality. The proper way to do it would be using the arduboy.beginNoLogo() function, which will not show the logo, but still have the safety net.

If it’s a game that someone else has already programmed and you’re installing the .hex or .arduboy file, you will not be able to change the code to get rid of this feature.

(Peter Shaw) #3

Would be my first feature request. Thanks.

(Scott) #4

For the original (obsolete) Arduboy library this is true, but in the (now recommended) Arduboy2 library the beginNoLogo() function has been removed.

The proper way to do it with the Arduboy2 library is to use boot() instead of begin(). This will do a minimal hardware initialisation without any of the extra boot features that begin() performs. You can then add back in any desired boot features by calling their functions from the sketch after boot(). Currently available boot features are: system audio mute control, flashlight mode, and the boot logo.

The begin() function also first calls blank() to clear the display, and audio.begin at the end to set up the speaker pins. You may have to do this after calling boot() as well.

All of this is described in the README file in the GitHub repository for Arduboy2 and in the online documentation as well.

If you’re developing a sketch and want to disable the boot features just to speed up development, and you have enough code space left over when you’re ready to release it, it’s desirable to switch back to using begin() so that users will get the standard Arduboy boot experience and features.

(Holmes) #5

Where are you requesting this?

(Peter Shaw) #6

After successfully compiling a couple of times with boot() it is now broken.
vrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = “��”; type = }
Software Version = .; Hardware Version = �.

That’s it? Am I looking at garbage? I always starts now with gibberish letters on the screen.

(Scott) #7

What exactly is broken? Can you successfully compile and upload any other sketches? If this is on Windows, I may not be able to help much. I use Linux.

(Peter Shaw) #8

It compiles and tries to upload. The Arduboy immediately shows a screen full of letters and symbols like an internal font-set. It stays that way. After a while Arduino IDE shows me the error message. I am on Mac.

(Holmes) #9

Can you get a picture of this?

Also, can you try uploading just the Hello World sample sketch?

(Peter Shaw) #10

This is how Arduboy looks like all the time now.

(Peter Shaw) #11

No, I cannot. It compiles but refuses to show on Arduboy.

Sketch uses 7914 bytes (27%) of program storage space. Maximum is 28672 bytes.
Global variables use 1220 bytes (47%) of dynamic memory, leaving 1340 bytes for local variables. Maximum is 2560 bytes.

avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = “��”; type = }
Software Version =
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn’t
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

(Peter Shaw) #12

I managed to get it back working by using the reset button: How to Reset Arduboy if it's Bricked

Thanks guys!

(Scott) #13

If you’re using boot() during development of a sketch, to eliminate the boot logo, it’s a good idea to still call flashlight(). This may make it easier than using the reset button to recover from this sort of problem.


Need help with C++
(Holmes) #14

I imagine what happened was something interrupted your program flashing over at one point. If this is the case, then you may not completely flash a program, which can lead to extra code which may cause unpredictable stuff to happen.

Are you by chance using a USB hub of some kind to connect your Arduboy to your computer?

(Scott) #15

Or, if it’s while a new sketch is being developed, a bug could cause the sketch to write over large areas of RAM, causing the bootloader problem that flashlight mode can recover from.

The filling of the entire screen with incrementing character values is an indication that this might have happened. The code may have walked through the screen buffer RAM and continued through the rest of RAM as well.

(Scott) #16

Arduboy2 library version 3.1.0 has been released. I added a feature which addresses the original post in this topic.

You can now hold down the RIGHT button when powering up, or press it while the logo is scrolling down, to bypass the logo sequence and go straight to the sketch.