Pi in a Dreamcast VMU Build - WIP
-
I had been thinking about putting a Pi Zero in a Dreamcast VMU for a while, but I thought the VMU might be way too small, until I was up late and found a video on YouTube of someone who managed to pull it off.
I posted about it over on the general discussion board and then quickly decided that I am going to try to make one myself. This post will serve as a place to document the build as well as what I learn from the project. This first post is really just a brain dump of what I've been researching and thinking about today for the build.
There are two threads currently over at sudomod where abrugsch and satri360 are building their own. I believe that the prototype video is satri360's build.
I purchased two blue Dreamcast VMUs, ideally to keep one original and to have the other one modded, but if I mess one up, it's a lot easier to have one as a backup. Those should be here in about a week.
(Photo from Wikimedia Commons)I also purchased two 1.44" 128x128 ILI9163 screens (again, to have one as a backup), but those are coming from China, and shipping on that is expected to be about a month.
(Stock photo from thinkerspace.my)@moosepr already did some testing on these screens and I think they'll work nicely with the PCB removed. He's posted a gallery on imgur of the screen in various orientations.
He's confirmed that you can use them with no problems without the PCB attached:
@moosepr said in RetroPie in a Dreamcast VMU!:Sure! You will need a 10ohm resistor to tame the backlight, and other than that, wire it straight to the pi!
The boards have a 3v regulator. I can't find an exact data sheet for the screen I have, but most indicate that the screen is OK with 3.3v
Here is the schematic for the little red board
@moosepr said in RetroPie in a Dreamcast VMU!:
just a dump of info for anyone venturing down this rabbithole. the screen will run as a st7735, but the driver is trying to do 128x160, so its not ideal!!
it will also run as an ili9163. the resolution is correct at 128x128, but the driver is behaving weird!! it technically runs upside down (chip at the top) and the rotation chops off some of the screen at 180 and 270
if your interested, if you follow my guide in my signature, but replace the contents of
/etc/modprobe.d/fbtft.conf
with
options fbtft_device name=fb_ili9163 gpios=reset:25,dc:24 speed=40000000 bgr=1 rotate=0 custom=1 fps=60
then you will have a working screen!!!!!1
Again, thanks to @moosepr I learned that a Pi Zero can run at 3V. With the screen also running at 3V, this means that I could theoretically eliminate the need for a bulky PowerBoost circuit.
I'm looking into getting a cheap charging module to save on space and cost. The downside to those cheap chargers are that you can't run the device and charge the battery at the same time and they also don't offer any low battery warning. They don't offer any power boosting to 5V, but from what I've been reading, I don't think I'll need to.
I also see that a VMU has a speaker. It'd be great to have sound in this tiny build, and I noticed that the Adafruit I2S amp can also run at 3V. I'm not sure if things will fit, but this is looking better and better all the time.
-
@obsidianspider you can play and charge with the module. The zero and the tft won't draw much current, so it will play happy
The voltage will range from 4.2v to 3ish v as the li-po battery drains and the protection will then step in and stop battery damage. The pi seems happy down to about 2.8ish but I have not tested that myself
Doesn't the vmu have a piezo element in there for it's speaker? Bit like a birthday card? I have tested one of those straight from the pwm audio pin. It works, but it's quiet https://hackaday.io/project/20152-gameboy-zero-but-smaller/log/54847-piezo-and-pico-8
-
@moosepr said in Pi in a Dreamcast VMU Build - WIP:
Doesn't the vmu have a piezo element in there for it's speaker? Bit like a birthday card? I have tested one of those straight from the pwm audio pin. It works, but it's quiet https://hackaday.io/project/20152-gameboy-zero-but-smaller/log/54847-piezo-and-pico-8
I'm pretty sure that's all it is. I am not looking for THX-quality sound, but something other than silence would be nice. Not needing another board or a clump of capacitors and resistors would be great too. This is more of a novelty than anything. This build and the Burger King Gameboy Color toy are going to be "just to do it" and the Gameboy Advance is intended to be one that I'll actually play for extended periods of time, so I want that one more full-featured.
-
@obsidianspider well all the audio filter bit does is clean up some of the hiss from the pwm audio. The piezo elements are low enough quality to not need the filtering. you can sometimes hear a little bit of a hiss if your really close to it.
I had my GBz wired up with the smd Piezo and thought it was really really quiet. was having a quick play with pico-8 the other day and the missus could hear it from the other side of the room, so it cant be too bad :P
-
@moosepr I'm still wondering how you use ABXY when it's essentially a second D pad. I guess you never need to run and jump at the same time. ;)
-
@obsidianspider yeah it takes a bit of getting used to. Maybe i need to make a slightly bigger version with actual buttons instead
-
@moosepr I'm still curious what your latest creation will be. I was also looking around for another SPI-based screen to fit in the Burger King Gameboy Color, but I think the 2" Adafruit TV that I have is going to be my best option. Plus, I already spent the $40 on it. It fits perfectly inside the case.
I got confirmation emails this morning that my VMUs have shipped from Florida and that my screens have shipped from Shenzhen, China. C'mon little screens, you know you want to get here before the VMUs. You can do it!
Here's a nice teardown of a VMU on iFixit
Also, Sega Retro has a ton of great information about them including these specifications:
Technical Specifications
- CPU: Sanyo LC86K87 (8-bit CPU, energy saving)[4]
- Memory: 128 KB (200 blocks)
- Power source: Two CR2032 batteries with auto-off function[4]
- Display: 48 dot Width x 32 dot Height resolution,[4] Monochrome
- Display size: 37 mm (1.46 inches) Width x 26 mm (1.02 inches) Height
- Case dimensions: 47 mm (1.85 inches) Width x 80 mm (3.15 inches) Height x 16 *mm (0.63 inches) Depth
- Sound: PWM sound chip,[4] 1-channel PWM sound source
- Weight: 45g (0.099 pounds)
-
@obsidianspider there are lots of options on aliexpress if you are willing to experiment
there is a 1.8" version of the ili9163
https://www.aliexpress.com/item/1-8-inch-15PIN-65K-TFT-LCD-Screen-ILI9163C-Drive-IC-SPI-Serial-Interface-128-160/32376372723.htmland a 2" screen with a random driver
https://www.aliexpress.com/item/2-0-inch-29PIN-TFT-LCD-Screen-SPFD54126B-LGDP4524-Drive-IC-176-RGB-220-8-16Bit/32301355935.htmlto be fair, my project is not to dissimilar to yours. apparently my boards are set to be made on the 31st of march so i might have to keep you waiting till easter....
-
@obsidianspider just so you know, those 1.44" screens are pretty much a perfect fit. there's a tiny bit of vertical space you'll need to make in the aperture to get all of the visible area visible and IIRC it needs to go with the ribbon at the top. As moose said elsewhere (one of the threads on Sudo IIRC) there's a couple of passives on the PCB but essentially you can ditch the carrier PCB.
I'm just looking for a battery that'll be suitable now but pretty much 500mAh is likely to fine if moose's measurements were correct, but have you seen that pi zero w handheld terminal video by N-O-D-E on youtube? he's got a 1500mAH battery that's a 752080 (80mmx20mmx7.5mm) that might just fit...
The charge board I linked to on the other thread prevents charging and use at the same time by having the 2 ports right next to each other... will be interesting to see what happens when I remove that block ;) -
@ABrugsch Yeah, I really don't want to have the battery hanging out the back of the case like in the prototype video, but he's also using a separate display driver board and a PowerBoost 500C, so that's taking up more room.
-
yeah i recon even with a zero W in the mix, your 500mah battery should get you 2 hours, maybe more. It might alter depending on how efficient that boost board is.
you can run that screen with just the one passive!! and thats the 10 ohm resistor for the backlight. if you want to be really gheto, you can even chop out that resistor, although the backlight gains a blue tint because the led's are being run too hard, so im going to guess they wouldnt last too long.
the only problem i can see with having the cable/chip at the top, is the screens are designed to be used with the cable/chip at the bottom, so you might run into some weird visual issues with "colour inversion" as these cheep screens have poor viewing angles
-
@moosepr Your imgur album showed that with the rotate set to 0 the image was "upside down", which is how I'd want it. How did that look "in real life"?
Also, what theme is that? The huge consoles in the background looks great!
I'm kind of enjoying the "How few components can I use and still have all of this work?" aspect of this build. The Burger King build will need 5V due to the screen, otherwise I'd attempt to make that one run right off the lipo as well.
-
This video is using an Arduino to drive the display, but even "upside down" the colors look really good. (Jump to 3:04, the forum doesn't support time stamps in video embeds.)
Here's another "upside down" video (Jump to 2:15)
-
@obsidianspider try it straight from the li-po :P most things are pretty tollerant. apparently the pi only really needs the 5v to feed to the usb for external bits, but most memory sticks and wifi dongles dont really care if its 5v or less.
i will see if i can get some snaps of the colour inversion. it might not be as bad as i though.
the theme is made by @tronkyfran on this here forum. it is in the themes list built in to retropie as "tronkyfran" some of his artwork is awesome!! have a look here
https://retropie.org.uk/forum/topic/720/background-images-coming-back -
@moosepr doesn't the pi display a spark in the corner when the supply voltage drops below 5v? or is that just full size ones?
-
@ABrugsch i get that on my pi3, but have never noticed it on the zero. I think you can actually turn the power/voltage warnings off
As usual you can override the behaviour in config.txt if you understand the risks: avoid_warnings=1 removes the warning overlay. avoid_warnings=2 additionally allows turbo when low-voltage is present.
-
I decided to order some of those cheap charging boards. 10 for $4.58, including shipping. (How are they making any money on this stuff?!) They're coming from China too, but since I have to wait for my screens anyway, I might as well save a few dollars. Do I need ten? No, but for the price, if I ever build something else that needs a charger, I'll have it, and won't have to wait another month.
(Photo from eBay auction) -
@obsidianspider yeah they are handy to have around. The circuit is really simple on those, I did consider embedding one onto my GBz board, but the pricing is to good not to take advantage of those boards. They must be knocking them out by the million!
-
@obsidianspider here is what I mean about the screen inversion
https://twitter.com/Pi0CKET/status/846422958964924416
With the chip at the top, you're kinda in the middle of the bad zone
-
@moosepr I see what you mean. I guess I'll have to take a look at how things line up, but I plan on looking at it face-on anyway. Not to mention that you said that rotating things 180 degrees would have that weird chunk of the screen blank anyway.
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.