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.
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.