Pi in a Gameboy Advance Build - WIP
-
@monstermadeofman said in Pi in a Gameboy Advance Build:
Had a quick hunt on the Sudomod wiki and found something that might help you a bit
That list was the one that told me the "octopus" hub would work! (It doesn't) ;)
-
huh that is odd. They haven't led me astray yet. But then again this is the internet.
I'm using a cheap 4 port hub a chain shop here in the UK, I don't know if you can get it in the US (the brand that is)
http://www.wilko.com/computer-accessories/usb-hub-4-port/invt/0349276
I've got my keyboard and my wifi dongle plugged in and I have no issues.
-
OK, I'm back in business. That "octopus" hub is just a piece of junk. I updated the wiki entry to reflect my findings.
I went to Best Buy on my lunch break and picked up the Targus ACH114US that was listed as the "original" Gameboy Zero hub and it works perfectly. With my wifi adapter, usb controller, usb keyboard and usb soundcard everything is operating as it should.
lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 1: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 2: Dev 6, If 0, Class=Audio, Driver=snd-usb-audio, 12M |__ Port 2: Dev 6, If 1, Class=Audio, Driver=snd-usb-audio, 12M |__ Port 2: Dev 6, If 2, Class=Audio, Driver=snd-usb-audio, 12M |__ Port 2: Dev 6, If 3, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 3: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 3: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=rtl8192cu, 480M
While it works, it's pretty long. Which is the main reason I went with the "octopus" hub originally.
Taking it apart was pretty easy, but I'm going to have to think about how I am going to be able to fit it inside the Gameboy Advance shell.
Another neat thing I learned. The Targus hub has five wires, but it's only USB 2. The plug only has four pins. The fifth blue wire is apparently a "drain" wire and is tied to ground and is connected to all of the metal on the plug and on the socket surrounds.
-
@obsidianspider said in Pi in a Gameboy Advance Build:
sound
You talked about a adafruit monoamp? Is this an I2S device, like the one used in my latest build? Maybe you will then also find the I2S sound config be useful.
USB Hub issues
Yes, that's hard. I had luck with my both hubs - they worked all flawlessly. But take care about power consumption. Those passive hubs can just provide 100mA per connector and some external devices (USB WLAN STICKS!!!) can use more than 100mA. I got an old WLAN stick working as I desoldered the power LED.
Pi0 and Internet connection
Yes... therefore you should backup your wifi credentials :)
It's driving me crazy to get a internet connection .... but @BuZz made a cool job with the Wifi key import feature for RetroPie -
@cyperghost I ordered the Adafruit 2130 amp which I believe will accept a line in and amplify it. At least that's what I want it to do.
So far the Targus hub is working well.
I saw that Targus had a small blob of hot glue where the wires met the PCB as a bit of strain relief. Inspired by that I added a blob of glue (maybe a bit too much, we'll see) to where I soldered the ribbon cable to the screen PCB. The next thing I'll need to do is modify the case to fit the screen, and I shouldn't have to chop too much, and a quick mockup shows that I won't have too much of the screen cut off by the factory screen cover, which I think I'm probably going to keep in place. If anything, upgrading to a glass one.
-
@obsidianspider i was going to use the 2.8 ili9341 (i think its the same as the one on your screen actually) in my advance. It actually fits pretty well, just a slightly different aspect ratio than a standard GBA screen.
Have you got much clearance between the sides of the screen and the buttons? i was worried i would have to shave some off the sides of the buttons to get it all to fit (although i didnt actually get that far in)
-
@obsidianspider Yes it's a class D amplifier.... It will work for your project.
If you run into "housing space" trouble then you can use the I2S device from adafruit like I used.BTW: Cool project!
-
@moosepr I actually got the 3.2" screen. I've seen guys cram a 3.5" screen in when removing the front protector, so I figured I'd try a 3.2" screen. It looks like it'll fit and go up against the edge of the button slide on one side based on a build I found, but I haven't gotten to trimming yet. I also messed around with overscan a bit and it looks like this 3.2" screen supports it, so if I find that things are being clipped off I can tweak as necessary. It'd mean even more compression of the 320x240, but in my experiments it's not much worse than the "full resolution".
-
@cyperghost I wasn't even aware of the whole "I2S" thing until just now. Hmm…
-
I'm still not sure how things are going to shake out with cutting the case to fit the screen, but I took the screen cover off (it was scratched anyway) and since the case is translucent I taped the screen to the outside of the case so I could see how much was being hidden by the factory opening. With the 3.2" display the width is darn near perfect, but the height is an issue. The Gameboy Advance's 2.9" screen is a 3:2 ratio and my 3.2" screen is a more traditional 4:3 ratio.
With settings "out of the box" the bottom of the screen is clipped off by the factory hole opening.
I went into
/boot/config.txt
and setoverscan_bottom=28
After that I saw some "black bars" in a few games so I forced the aspect ratio for RetroArch to 4:3 and now things fill the screen area and nothing more. I think I'm going to keep the factory hole and just lose those 28 pixels. What do you think?
-
I took the plunge and cut the case to fit the screen in. Taking out the side and going right up to the edge of the button slide got the screen to fit really well.
I'm going to have to figure out what to do about the speaker since the screen now intrudes on the speaker area, but overall I'm happy with how the screen turned out. I won't be removing the screen protection film yet, and I won't be gluing the screen in until I figure out my buttons (debating how to do the ABXY thing) but I'm making progress.
-
@obsidianspider I was planning on buying 2 lots of buttons from Kitsh-Bent (http://store.kitsch-bent.com/product/custom-buttons), and then drill the extra holes for the second A and B buttons (maybe mould some supports from sugru or something) but they only have clear ones, and the postage to the UK was like $17 so that put the stops on that!!
will the buttons from your NES controller fit in the GBA button holes?
-
@obsidianspider
Can you measure the depth and the radius of the speaker housing?
Or can you provide the dimensions of the original speaker please?About I2S, well it's digital sound and the amp provides downmix to stereo by internal circuit to power one speaker :) In most cases it seems the best solution for such a small build and maybe you can save space in your housing because you don't have to use a USB HUB and just use a Wifi USB Stick for internet connection.
But I provided you links to my build :) There you can read the whole story.
I think space will be rarer than thought, because you may use:
- Battery packs
- Battery balancer (also provided by adafruit)
- Space for your GPIO controllers
- SD adapter.....
Good luck! May the farce always be with you ;)
-
@moosepr I was looking at the diameters of buttons and the stock AGB buttons are ~8.8mm. I measured the Super Nintendo controller buttons and those are ~10.4mm, but I was looking around and I asked on reddit if anyone could measure a Gameboy Pocket (which doesn't have "A" and "B" on the buttons) and per the response those are ~8.9mm. .1mm is probably within the realm of the tolerances of the reproduction company. I want to do the blue green yellow red thing like on a Super Famicom controller, and I've seen those colors for sale on eBay (the greens are a bit lighter, but I haven't looked very hard), but first I have to see about how to make the four ABXY buttons actually fit in there. With the screen now taking up some room and the support for the R trigger button in the way I'm going to have to see what can be done.
-
@cyperghost The Nintendo speaker is ~23mm in diameter, the housing is around the same. It's a snug fit. The new width now that I chopped out for the screen is around ~19mm. If I remove the rest of the speaker housing I could shift the speaker over and it would still fit inside the case, only partially blocked, and would probably still sound decent.
I have to look into the I2S thing as I am using a GPIO-driven screen and will probably have 12 GPIO buttons connected, so I'm not sure what or how many connections will be required or if they would conflict with the display. I'd like stereo through headphones and a mono speaker if possible, but I'm not there yet.
Lots to consider.
-
@obsidianspider the adafruit i2s board is tiny, and only needs 3 gpio pins https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/raspberry-pi-usage
The only problem might be that it will need to use pin 18, which is normally used by TFT screens for backlight (as it can do the pwm that is handy for the sound part)
-
@moosepr It looks like the I2S isn't going to work because on my screen pin 19 is being used by the screen.
-
@obsidianspider You could use a composite display. That way the GPIO is open and the I2S is available.
-
This ABXY thing is kicking my butt. With that trigger button where it is, there's no good way to put X and Y buttons on top of the existing B and A holes.
I'm thinking way outside the box here, but the New 3DS has ABXY , and you can get replacement buttons for ~$9. Not super cheap, but they're the colors I want and would be cheaper than buying a bunch of gameboy pocket buttons that wouldn't all fit anyway. And…
They're smaller.
Using some overall dimensions I saw online and doing some guesswork, it looks like the ABXY cross is ~24.5mm across. I don't have a New 3DS, but I might be able to go measure one at a store display since they are still the current model.
So what if I drill a 1" (25.4mm) hole in the front of the Gameboy, then 3D print a button panel to fit that hole. Kind of like how there's a circle on the face of a Super Nintendo controller…
It'd kind of look like this…
This assumes the ABXY buttons are the size I think they are.
I have a feeling I'm not going to be able to pull this off. :-/
-
@obsidianspider you could glue in the insert, fill the gaps with a filler of your choice, sand it smooth then give the whole thing a coat of paint.
That's how things like this are born http://modretro.com/xen/index.php?threads/gamecube-portable-the-varia-cube.15084/
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.