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.
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:
ROM is built in. The arrow on your photo is pointing to a dual MOSFET transistor package used for battery charge protection.
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)
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?
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.
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.
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.
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.
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.
The crystal and bypass caps should be as close to the processor as possible or you could risk destabilizing or even stopping the oscillator from operating to spec by adding series impedance of extra traces and connectors.
Nice little board
Isn’t that what I said? It doesn’t preclude having the crystal on a different board. Short traces from the processor, to a connector, to the crystal/caps likely wouldn’t be worse that leaded components plugged into a solderless breadboard, which generally tends to work fine. 16MHz isn’t a blindingly fast crystal speed.
Still, only the crystal could be left on the cartridge, which would save a few connector pins as a bonus. The USB connector is a fairly expensive component, which needn’t be on every cartridge.
I was looking into using a surface mount crystal instead of the through hole one I currently have and if I do a double sided load board (since I’m hand assembling these for myself and a few friends anyway) it wouldn’t necessarily increase the board size and like you say save two pins.
As for the usb I bring the pins out to the connector so it isn’t necessary to solder the port to the cart itself so I could save a bit more board space by moving or getting rid of it entirely. As this was a first prototype run most of the design was catered to ease of debugging and assembly but the next batch will be more streamlined with everyone’s suggestions.
Isn’t this basically what you’ll end up with?
Yes, but hopefully smaller, since you don’t need to bring out all the pins for an Arduboy, and you would probably want a different board-to-board connection method.
There was no down side behaves exactly the same as it did before the only issue was with the TX RX LED and that was resolved by replacing with the leonardo bootloader.
There are those connectors that are surface-mount, and those are using tiny pins, so you can have the connecors at the back of the board, and the front is mainly occupied by the processor.
You don’t even need to bring the crystal ocillator or the resistors. The board can have them.
If size is an issue I could move to a much smaller surface mount package for the crystal and place it on the other side of the board from the atmega. I’d like to avoid moving it to the body of the console as the added impedance would likely affect tolerance of the usb signalling as that’s derived from the system clock. Another option is using the RC version of the chip with an internal calibrated clock but I’ve heard difficulties of getting usb running since the stability of RC oscillators is much looser.
Update, added onboard flash for Blinky’s amazing game loader, reset button, and an onboard 3.3V regulator so it can run straight from a lipo and no need for level shifting (although technically 16mhz at 3.3V is out of spec it still works just fine, and still need one of those cheap lipo usb charging boards to handle safe charging). Simple, small and cheap to stuff in whatever shell that you want.