DIY modchip

As one of the early adopters of Arduboy I’ve enjoyed seeing the excitement around the creation of the mod chip. I even (with help from the community) managed my own epic repair.

While I could hop on the current flash mod buy - I sorta want to roll my own. Having an arduboy with a bundle of wires shoved into it scratches an itch of ‘make it mine’.

I know that the two chips are the W25Q128 & ATtiny85 - finding versions of these on digikey is easy enough, and I’m fairly confident I can find ones that will work. What isn’t clear in my searching around is the circuit layout. The flex circuit is two sided so it’s tough to figure out from an image. I’m sure @bateske has posted the actual schematic somewhere - but there are many revisions. If I’m going the DIY route - I’d really like to create a work-alike to avoid other issues.

I know there is Self made FX Mod-Chip (ProMicro supported) - but this is using an alternative Arduino.

Anyone else out there thinking of going down this path?

The attiny85 is only necessary to reflash the bootloader onto the atmega32u4. If you have a usb icsp programmer (usbasp or even another arduino programmed with the arduino as isp program) you can just manually do this once and then it’s set.

Understood - but again - my goal isn’t just to add flash but to faithfully replicate the official ‘mod chip’ to render my Arduboy identical to what it would be had I purchased one.

I have a pair of original Arduboy’s and a dev kit.

The production Arduboy FX, with the flash chip on the main board, doesn’t have an ATtiny85 included. So, just add the W25Q128 flash chip if you want to replicate an Arduboy FX.

Wiring for the flash chip can be found here. (The “lite” version):

1 Like

Ah - so the lightbulb went on for me. I didn’t realize the FX was (slighty) different from original + mod chip.

This means I just need to work out where on the board I wire in this diagram.

At a quick look - this seems very easy - but I’m not sure where to pull RX from. Looking at the flex circuit - I can see MOSI / MOSO / VCC and GND

Maybe SCK → CLK and SCL → RX?

Hmm… also the flex circuit board doesn’t have a capacitor or resistor – but those are just to stabilize the power supply, so adding them seems like a good idea.

You want to follow the “New wiring”, which uses SDA instead of RX.

I think SCL was only used for the ATtiny85, so you don’t need it at all.

Doh - you even said that before.

Using the labels on the flex circuit to the diagram

flex → diagram
SDA → SDA
CLK → SCK
MOSI → MOSI
MISO → MISO
VCC → Vcc
GND → GND

And… I remember the discussion around using the capacitor / resistor being optional… I can go digging. This is super helpful.

Yes, your table is correct.

The capacitor is just for bypass/decoupling to guard against possible power signal induced electrical noise. The resistor is to ensure the flash chip is disabled when the SDA pin is in it’s default state as an input. I’m not sure if @bateske included either of them on the production FX, as I’ve never seen a schematic for it.

@MLXXXp Thanks so much for sharing your expertise.

It seems I’ve asked this question before Flash cart(ridge) - #244 by Roo - I guess I’ve been thinking about this for some time.

1 Like

As @sjm4306 said, you’ll need an ICSP (In Circuit Serial Programmer) to burn a new bootloader into the Arduboy to support the flash chip (which was the only job of the ATtiny85). If you don’t have one, then with proper wiring you can use either your second Arduboy or your dev kit as an ICSP.

The attiny85 (or attiny45) is used to conveniently program the bootloader and to keep the SDA pin high using internal pullup.

Adding the attiny will allow you to program the bootloader through the activator sketch or by pressing reset for 2 seconds (after attiny has been programmed) This last feature dubs as a restore feature in case the bootloader was corrupted.

Details on how to wire the attiny can be found in the Arduboy FX mod chip repo

However the attiny is not required to make use of the flash chip. The official Arduboy FX does’nt has an attiny85.

Without the attiny85 a 10K resistor needs to be connected to the flash chip select to ensure no ‘random’ data is written to the flash chip during special cases like start-up, programming the bootloader, non fx aware sketches.

The cap wasn’t added. The pull-up resistor was. It sits just right from the charging LED resistor.

3 Likes

It can be done with only the flash chip:

I’ve done something like this too.

As mentioned, the pain is hooking up a programmer and then running all the python scripts. For someone who is used to doing such things it’s very simple. But for users who programming and soldering is still new to them that’s why the FX is a great option.

Oh - for almost every user the FX is a great option. Or the official modchip.

This is more about engaging deeply for me. Really owning my device. I hope that this discussion helps others get excited about the possibilities.

Everyone who’s read this - and especially those that took the time to respond so far - thank you. This is still one of the best communities.

3 Likes

Looks like someone else had the same idea Arduboy Dead bug FX | Facelesstech