Self Bootloading Mod-Chip

I would like to add an attiny chip to the flex-circuit mod chip, the theory is to add a small second MCU that can be triggered by an application to reset and then burn the bootloader onto the Arduboy.

The advantage of this is you don’t need an additional programmer and go through those steps. You would just have to solder the chip on and then run a specific hex file.

Looking at this right now as a starting point:

This is using it as a usb programmer. I think it could be done with the 85 which has 8k of program memory, so 3k to store the bootloader and a remaining 5k to actually write the bootloading script.

@Mr.Blinky Any thoughts on this?

1 Like

If you’re going to keep cramming stuff in you might aswell just build a new Arduboy with everything onboard.

3 Likes

If you’re going to do that, why not just make it a proper co-processor for the Arduboy?

Then you could have the ATtiny be resonsible for flashing games from the FX chip onto the 32u4, and either have the ATtiny run an ‘operating system’ that could be responsible for other things (like how the Nintendo 3DS works*) or simply offload some computations to it, e.g. handling 3D calculations, being responsible for streaming sound.

One of the issues with sound is that when the sound chip needs new data it triggers an interrupt which means the 32u4 then has to stop whatever it was doing and spend some time feeding the sound chip some more data.
With an ATtiny coprocessor being responsible for that instead,
the main processor wouldn’t have to be interrupted to feed the sound chip more data, so having sound in games wouldn’t eat as many CPU cycles.

Of course, managing a coprocessor isn’t easy.
There’s concurrency issues, synchronising issues, the question of who is controlling who, which chip controls what peripherals, data transfer speeds and possibly other stuff I’m not aware of or have forgotten.


* From Wikipedia:

One processor core is dedicated to games and applications, while the other core is exclusive to the operating system, enabling multitasking and background tasks.

Interesting idea It would make it easy to upgrade.

Already imagining a ‘press and hold reset button for 3 seconds to update/recover Arduboy and bootloader’ feature :slight_smile:

I totally dig that. but for good co-processing would require a new board design. Where the idea here is to make an easy flexboard upgrade for existing Arduboys.

But adding a Programmable sound generator to the flexboard design should be doable I think.

I’ll put the chip on there with the purpose of flashing the bootloader, and of course the user is welcome to change the operation of the attiny after to be a sound co-processor.

Even doing this is gonna be a challange for space constraints within the back case, I think it is possible.

Let me have a think and try to make sure that the attiny can also be re-programmed by the Arduboy without an external programmer. ( I think I just have to tie the reset pin of the attiny to an “open” gpio, of which I think there is only 2 choices now)

Maybe need to upgrade the attiny85 to attiny84 (or any atmega) with more GPIO pins then.