ArduCart - Rewritable Carts for an Arduboy with Interchangeable Games


#1

Hiya, I’m new to the forums but I wanted to get some feedback on an idea that I am sure would interest others. I’ve seen plenty of arduboy clones floating around so I thought I would try my hand at designing a PCB for one myself with the notable difference of making the entire brains of the system into a cartridge which would plug into a body which contains the screen, buttons, speaker, and battery. This way the games can be burned to blank carts and easily interchanged just like gameboy carts.

What I am calling the ArduCart contains the microprocessor, usb for programming, rgb led, and status indicator leds. All of the display, speaker, button and usb pins are also brought out on the bottom header connections to allow it to plug into the body of the console. I was tempted to use a card edge connector at first but decided on standard 0.1" right angle pin headers as they are dirt cheap and universal.

So far I’ve designed and manufactured a set of 10 boards and built one as a prototype to confirm that everything works, which it does! My plan is to next design the console body itself and a 3d printable shell for both it and the cart. My end goal is to allow users to make physical copies of games complete with custom label art and whatnot. Alternatively these “carts” can be hardwired to make your own Arduboy clone systems in various cases with all the hard parts pre-wired.

Here’s a quick video demo of the cart running attached to the OLED display: https://www.youtube.com/watch?v=yqkCMIBhq5Y&t=2s


(Scott) #2

Why put the (relatively expensive) RGB LED on the cartridge instead of the body? It’s a standard peripheral item.


#3

I wanted to limit I/O pins to 2x10 so to move the rgb led to the console I would need to add pins (admittedly not a big deal, and I will likely at least duplicate the required pins so the user can choose in the next revision of the prototype). Alternatively the led could just not be soldered. That is actually one thing I was wondering about: is the rgb led a requirement for any games or serve any useful functionality or can it be omitted?


(Scott) #4

A few games currently use it but I don’t know if it’s critical for game play with any of these. It’s used by the Arduboy2 library’s System Control boot feature, which allows muting/unmuting of sound, but it’s possible to do it “blind”. Since it’s available, there’s no guarantee it won’t be required for some future games.

I’ve always though it would be useful to use the RGB LED to indicate things like player health, remaining ammo or time left; changing gradually from green to amber to red as whatever it indicates is depleted. I tend to find it difficult to monitor such things when displayed as a number or bar graph on a monochrome screen. Plus, it might free up the space needed to display that value on the screen.

Note, though, that the RGB LED was soldered in upside down on a good number of Kickstarter Arduboys. This resulted in only the red and blue LEDs working, and only when the green one was turned off. Plus, the red and blue colours end up reversed. Therefore, any game that made its use a necessity might be difficult to play on these units.


#5

I like it! I could easily imagine designing a version of the VGA1306 project as a sort of ‘dock’ to work with these plug-in cartridges - like the Nintendo Switch! :laughing:

There is a similar idea happening on the Pokitto community:


(Scott R) #6

I thought about doing something like this with pro micro’s for my consolised Arduboy but decided to breakout the unused pins instead.


(Pharap) #7

It’s used by @filmote’s recent game jam entry Logix to signal which parts of the puzzle the user got correct (though technically there’s a visual on the screen for that, so it could be omitted),
it’s also used by the noughts and crosses game made by @filmote’s son,
and by Circuit Dude (by @crait).

I think there are others.
It’s not commonly used, but it’s used occaisionally, so it would be fair to omit it for games that don’t need it and only have it on ‘cartridges’ that do need it.

A bit like how some GBA cartridges had extra peripherals like a light sensor.


(Simon) #8

My dominoes also uses it … I think its great feedback for people.


(Scott) #9

But if it were on the common body, it wouldn’t be an issue. Users (and possible retailers/distributors) wouldn’t have to stock two different cartridges.


(Scott) #10

And I could imagine such a device having the ability to simulate the RGB LED in an area on the screen itself, such as a coloured border or somewhere else outside the 128 x 64 pixel screen representation. For this, the RGB LED pins would need to be brought out of the cartridge.


#11

I was thinking now to have the pads on the cart as well as bring the pins for it out the bottom so one cart board design would support both on cart or on body RGB leds.


#12

NO ONE had thought of remoable ROM?
Half of me is thinking: give me 10 ROM chips so I can play all of them on one device! with global (between games) high score entries (local machine)!
Other half of me is thinking: Game cartridges.
Changing processor could be…expensive.
Or am I talking nonsense, because the ROM is built-in?
Because someone said this:
image


(Scott) #13

ROM is built in. The arrow on your photo is pointing to a dual MOSFET transistor package used for battery charge protection.


#14

Can we make it built-out?

One of the other reason Arduboy is really smart when talking over battery. (except when it is already full and are connected to power)


(Felipe Manga) #15

Nope.   


#16

But why?
You can even have different bootloaders. You just need a processor, RAM, and some buttons and some screen stuff. Plus some electrricity.
Or was I thinking it being too muh like a computer?


(Felipe Manga) #17

The Arduboy is based on a Microcontroller. The thing we call the “processor” is actually an entire system (CPU, RAM, ROM) tightly integrated in a single, readily-available (not custom) chip.


#18

It would be possible to use something like an external serial flash chip or SD card for games but yes you’d need to write a bootloader program to load contents into the micro’s RAM to run the game. Also this could lead to limitations and complications how programs run on the Arduboy. The great simplicity of the way things currently run is that there is no bios or loader program … the game itself is the entire firmware/program in mcu flash.


#19

NOT-custom was the answer for all of the “fuss” of not having external memory, after all.
I was thinking:
“Cut” out the part responsible for storing the program, then fit a socket for ROM chips.
Which wasn’t going to happen.
@sjm4306
You can in fact, make your design super-simple–just the processor.
Why? Everything else is THE SAME, or work in the same way (same resistor, same RGB LED, same capacitor, same screen, same amount of buttons, same power unit.)

Soneone broke his Arduboy’s microprocessor, and he just bought a Arduino micro and swapped the processor. Only downside is that it will power up when external power is connected.

He was SUPER-LUCKY to get a hot-air workstation as christmas gift, though.


(Scott) #20

Yes, the “cartridge” could be a board containing only the processor chip itself (plus possibly a few bypass capacitors). This would make it more of a chip breakout board. All other components would be on the body/base, including the crystal and USB connector.

You would need to bring out at least 26 pins, and some of the traces, such as those for the crystal, would have to be kept short. However, if a suitable, inexpensive connector could be found, it may be a practical design.