GregTurbo / Open-Frame1

An open-source rectangle hardware project for smash, prioritizing ease of assembly and cost
GNU General Public License v3.0
110 stars 7 forks source link

Different MCU and MCU placement for future revisions #2

Open Soundtoxin opened 1 year ago

Soundtoxin commented 1 year ago

I've been looking into the Flatbox rev5[0] recently and thinking they did certain things better than the Open-Frame1 board. In particular they chose an MCU with a USB-C port and put it in the top middle of the board so you can just plug right into it. No hassle of soldering a USB-C port or ordering a board with assembly. This is similar to how a lot of mechanical keyboard builds are handled as well. They use the RP2040-Zero[1], which is somewhat niche, I could only find it on waveshare and not adafruit. There are some other RP2040-based boards with USB-C boards, though, such as the Feather[2] boards from adafruit. Something like that might simplify the build a lot. It feels kinda jank having a cable in there to reroute the USB, and it kinda bulges and makes it hard to get the case together.

The Feather board I linked as an example does cost more than the Pi Pico currently used, however if you add in the cost of a cable to go from microUSB B to USB-C that you won't need anymore, it doesn't look so bad.

It's possible I'm overlooking part of the design. Maybe the placement is to best fit an optional Brook add-on board without getting in the way of the buttons. I know there's a label saying you can use some of the holes for a zip-tie. I haven't done any of that in my builds so far.

[0] https://github.com/jfedor2/flatbox/tree/master/hardware-rev5 [1] https://www.waveshare.com/rp2040-zero.htm [2] https://www.adafruit.com/product/4884

Soundtoxin commented 1 year ago

Regarding placement, I think it's also worth considering designing the PCB to have the controller on the bottom instead of the top of the PCB. This would give easier access to the BOOTSEL button in case of flashing bad firmware and not being able to use a button combo to get into this mode. Currently (at least with the case I used) you have to remove every single switch, remove the bottom cover, and pull out the PCB if you need to get at the BOOTSEL button. If the microcontroller were on the bottom instead, you'd only need to remove the bottom cover to get at the buttons, and you could leave your switches in.

Soundtoxin commented 1 year ago

There's also a TP6 pad on the bottom of the Pico you can short to ground which can act as BOOTSEL. A couple well-placed holes in the Open-Frame1 PCB, or even better, a place to solder a new button to those bits for bottom-access would be another good option. Recently I keep having some of my buttons (mostly the up button on the far right) pop out (using kailh hotswap sockets) during play or transport, and there's a decent chance of the pins bending when re-inserting. I don't want to solder or glue in these switches since that would lock off easy access to BOOTSEL in case of a firmware emergency. If I had more convenient access to that mode from the bottom, I would be able to put a dab of hot glue or something on my switch pins from the bottom to hold them in better without worrying that I'll have to remove every switch later to fix the firmware (not hypothetical, by the way, I put GP2040-CE on an Open-Frame1 once to see if PS3/4 support was better than in HayBox and the button mappings were a mess so I couldn't figure out what to press to flash it again and had to tear it apart).