Dreamcast VMU Pi [Completed]
- abrugsch
- Posts: 971
- Joined: Tue Aug 02, 2016 10:00 am
- Has thanked: 356 times
- Been thanked: 430 times
- Contact:
Dreamcast VMU Pi Build Guide - Overview
Part 1 - Overview
This is a build guide of VMU Pi Zero. Any comments and suggestions will be much appreciated.
First comes a Breadboard view to give some idea how these tiny parts are connected.
Circuit Diagram VMU PCB
There are 8 buttons on the PCB. Solder 9 wires ( 8buttons + 1 ground ) on the pads of IC1.
PowerBoost 500
The slide switch is attached to EN and GND pins.
1.5" OLED
There is a 13V boost converter on the PCB. Solder 5 wires ( CS, SCK, MOSI, DC, RESET ) to the pins of the OLED connector. 3.3V will be supplied from Pi Zero. SD connector, LDO and level translator will be removed from the PCB.
Raspberry Pi Zero History
11/26/2017 Updated key mapping
This is a build guide of VMU Pi Zero. Any comments and suggestions will be much appreciated.
First comes a Breadboard view to give some idea how these tiny parts are connected.
Circuit Diagram VMU PCB
There are 8 buttons on the PCB. Solder 9 wires ( 8buttons + 1 ground ) on the pads of IC1.
PowerBoost 500
The slide switch is attached to EN and GND pins.
1.5" OLED
There is a 13V boost converter on the PCB. Solder 5 wires ( CS, SCK, MOSI, DC, RESET ) to the pins of the OLED connector. 3.3V will be supplied from Pi Zero. SD connector, LDO and level translator will be removed from the PCB.
Raspberry Pi Zero History
11/26/2017 Updated key mapping
Last edited by satri360 on Sun Nov 26, 2017 6:37 pm, edited 3 times in total.
Dreamcast VMU Pi Build Guide - Keys
Part 2 - The Controls
Disassemble VMU
We will reuse most of the parts other than the coin cell, original LCD and cell holders. This project does not require the original battery cover and speaker (transducer) but you may want to keep them in case we are able to fit them nicely sometime later. Cut VMU PCB
Carefully cut the VMU PCB and keep the south edge of the TQFP IC1 pads. Remove all of the components on both side of PCB. Clean the pads of IC1. We don't use the half of the PCB with big connector attached. Prep the wires
Cut a AWG 35 enamel-coated copper wire to around 2 inches. We need 9 of them.
Remove the coating of both ends of the wire. One of the easiest way is to dip it in the solder at the tip of the iron.
Wire pads
Solder wires at the pads. You may notice the small dot silkscreen below at pin #10, #20, #30 which would help you locate them. They remind me good old days we had plenty of area for fun stuff
Use microscope and enough flux for secure soldering since the pitch is tiny.
#1 - GND
#25 - UP
#26 - DOWN
#27 - LEFT
#28 - RIGHT
#29 - A
#30 - B
#31 - START (MODE)
#32 - SELECT (SUS) Tape
Tape on the whole bottom side of the PCB and some portion of the top side. I used slightly thicker wire for ground but this shouldn't be required as we don't need much power for keys.
Disassemble VMU
We will reuse most of the parts other than the coin cell, original LCD and cell holders. This project does not require the original battery cover and speaker (transducer) but you may want to keep them in case we are able to fit them nicely sometime later. Cut VMU PCB
Carefully cut the VMU PCB and keep the south edge of the TQFP IC1 pads. Remove all of the components on both side of PCB. Clean the pads of IC1. We don't use the half of the PCB with big connector attached. Prep the wires
Cut a AWG 35 enamel-coated copper wire to around 2 inches. We need 9 of them.
Remove the coating of both ends of the wire. One of the easiest way is to dip it in the solder at the tip of the iron.
Wire pads
Solder wires at the pads. You may notice the small dot silkscreen below at pin #10, #20, #30 which would help you locate them. They remind me good old days we had plenty of area for fun stuff
Use microscope and enough flux for secure soldering since the pitch is tiny.
#1 - GND
#25 - UP
#26 - DOWN
#27 - LEFT
#28 - RIGHT
#29 - A
#30 - B
#31 - START (MODE)
#32 - SELECT (SUS) Tape
Tape on the whole bottom side of the PCB and some portion of the top side. I used slightly thicker wire for ground but this shouldn't be required as we don't need much power for keys.
Last edited by satri360 on Sun Nov 26, 2017 6:33 pm, edited 4 times in total.
Dreamcast VMU Pi Build Guide - OLED
Part 3 - The Screen
Tips
Make sure your OLED display works perfect before applying any modifications to the PCB. Check another section of this build guide for software settings.
Remove OLED Panel
Use exact knife to cut the adhesive beneath the panel. Cut PCB
Cut the PCB to keep the boost and other peripheral components.
Pay extra attention when you cut around vias shown in the image below. These are critical for OLED function. Wire Pads
Prepare AWG35 enamel-coated wire and cut to 2 inches. We need 5 of them.
Use microscope and as much flux for soldering. The pitch of the connector is tiny as 0.5mm.
Solder another 2 wires of AWG30 for 3.3V and Ground pads.
#13 - MOSI
#14 - SCK
#19 - CS
#20 - DC
#21 - RESET Rework
I've realized that ground path is too poor to give stable 13.5V supply for the OLED driver. Add short wire from pin#2 of U3 to the closest ground such as GND pad of R7. History
9/12/2017 Added paragraph for removing panel
11/21/2017 Added rework instruction for extra ground connections
Tips
Make sure your OLED display works perfect before applying any modifications to the PCB. Check another section of this build guide for software settings.
Remove OLED Panel
Use exact knife to cut the adhesive beneath the panel. Cut PCB
Cut the PCB to keep the boost and other peripheral components.
Pay extra attention when you cut around vias shown in the image below. These are critical for OLED function. Wire Pads
Prepare AWG35 enamel-coated wire and cut to 2 inches. We need 5 of them.
Use microscope and as much flux for soldering. The pitch of the connector is tiny as 0.5mm.
Solder another 2 wires of AWG30 for 3.3V and Ground pads.
#13 - MOSI
#14 - SCK
#19 - CS
#20 - DC
#21 - RESET Rework
I've realized that ground path is too poor to give stable 13.5V supply for the OLED driver. Add short wire from pin#2 of U3 to the closest ground such as GND pad of R7. History
9/12/2017 Added paragraph for removing panel
11/21/2017 Added rework instruction for extra ground connections
Last edited by satri360 on Sun Nov 26, 2017 6:40 pm, edited 7 times in total.
Dreamcast VMU Pi Build Guide - Power
Part 4 - The Power
Powerboost 500C supplies the 5V to the RasPi and supports the battery charging.
Read the product instructions from the Adafruit to get the full features of the board.https://www.adafruit.com/product/1944
Use 3.7V/350mAH LiPo battery or higher capacity for safety. There is also a very good article regarding the LiPo battery in Adafruit. https://learn.adafruit.com/li-ion-and-lipoly-batteries
Remove JST
JST battery connector is way too tall to fit. Take it out. Replace PROG resistor (optional)
R0 dictates the fast charge current and 2kΩ is installed to support 500mA charging. Replace the R0 with 3.3kΩ when 350mAh LiPo battery is used. Charging current will be limited to I_reg = 1000/R_prog ~= 300mA. This step is not required for 500mAh.
Replace Inductor (optional)
TDK VLC5045 is installed on the original PowerBoost and the height is tall as 4.5mm. I'd recommend to replace it with a smaller 6.8uH 2020 (5050 in metric) power inductor so that we have more space in the tiny VMU. I used H=2.2mm 6.8uH Murata LQH5BPN6R8NT0 https://www.digikey.com/product-detail/ ... ND/5797750. WURTH 744042006 could also fit but I haven't tested. Performance results will be posted later.
Tape the surrounding components to keep them from blowing off and apply heat gun to remove the VLC5045. Paste enough flux and pre-solder the pads before installing the replacing part. Use heat gun to solder the Murata part. Install Switch
Prepare 2 pieces of AWG35 enamel-coated wire. Wire center pin (Common) of the slide switch to EN and side pin to the GND.
Wire 5V for Pi
Solder 2 inches of AWG26 stranded wires to the 2 holes at the edge of the board.
PowerBoost - RasPi GPIO
X1.2 (+) - Pin 2 #5V
X1.1 (-) - Pin 6 #Ground
Wire Battery
Wire battery to the pads of JST terminal B1. Find (+) indicator to solder positive line which color is usually RED.
Test
Slide the switch to turn on the 5V output. Make sure the blue LED is up and VOUT is 5.1V. Connect the charger to check the yellow LED. History
9/6/2017 Added inductor replacement
9/16/2017 Added program resistor replacement
Powerboost 500C supplies the 5V to the RasPi and supports the battery charging.
Read the product instructions from the Adafruit to get the full features of the board.https://www.adafruit.com/product/1944
Use 3.7V/350mAH LiPo battery or higher capacity for safety. There is also a very good article regarding the LiPo battery in Adafruit. https://learn.adafruit.com/li-ion-and-lipoly-batteries
Remove JST
JST battery connector is way too tall to fit. Take it out. Replace PROG resistor (optional)
R0 dictates the fast charge current and 2kΩ is installed to support 500mA charging. Replace the R0 with 3.3kΩ when 350mAh LiPo battery is used. Charging current will be limited to I_reg = 1000/R_prog ~= 300mA. This step is not required for 500mAh.
Replace Inductor (optional)
TDK VLC5045 is installed on the original PowerBoost and the height is tall as 4.5mm. I'd recommend to replace it with a smaller 6.8uH 2020 (5050 in metric) power inductor so that we have more space in the tiny VMU. I used H=2.2mm 6.8uH Murata LQH5BPN6R8NT0 https://www.digikey.com/product-detail/ ... ND/5797750. WURTH 744042006 could also fit but I haven't tested. Performance results will be posted later.
Tape the surrounding components to keep them from blowing off and apply heat gun to remove the VLC5045. Paste enough flux and pre-solder the pads before installing the replacing part. Use heat gun to solder the Murata part. Install Switch
Prepare 2 pieces of AWG35 enamel-coated wire. Wire center pin (Common) of the slide switch to EN and side pin to the GND.
Wire 5V for Pi
Solder 2 inches of AWG26 stranded wires to the 2 holes at the edge of the board.
PowerBoost - RasPi GPIO
X1.2 (+) - Pin 2 #5V
X1.1 (-) - Pin 6 #Ground
Wire Battery
Wire battery to the pads of JST terminal B1. Find (+) indicator to solder positive line which color is usually RED.
Test
Slide the switch to turn on the 5V output. Make sure the blue LED is up and VOUT is 5.1V. Connect the charger to check the yellow LED. History
9/6/2017 Added inductor replacement
9/16/2017 Added program resistor replacement
Last edited by satri360 on Sun Nov 26, 2017 6:31 pm, edited 7 times in total.
Dreamcast VMU Pi Build Guide - Software
Part 5 - Software
Install RetroPie
RetroPie is the great platform to provide the comprehensive emulations of various retro gaming console for Raspberry Pi. It supports the Zero W natively in the recent version. This tutorial is written for MacOS X High Sierra 10.13.1 but most of them will be applicable for other system.
Download RetroPie
Unzip image
Inset an SD card and find the disk number. disk2 is assigned to my SD card but result would vary on the envrionment.
Burn the SD card. Hit Ctrl-T if you want to see the progress.
Create WiFi configuration file. Change the SSID and Password to match with your network.
Copy WiFi configuration file and enable the SSH. Make sure the SD card is inserted and boot is mounted.
Log onto the Raspberry Pi. The default password is raspberry.
The rest of the instructions would be performed on the Raspberry Pi hereafter.
Install FBCP and FBTFT
Enable SPI
Disable Overscan
Install FBCP
Register FBCP as a service # DO THIS STEP ONLY ONCE
Install FBTFT
Install SSD1351 driver
Install Retrogame
Download and install Retrogame. Select 3. PiGRRL Zero and reboot.
Configure Retrogame
History
11/24/2017 Added overscan change
Install RetroPie
RetroPie is the great platform to provide the comprehensive emulations of various retro gaming console for Raspberry Pi. It supports the Zero W natively in the recent version. This tutorial is written for MacOS X High Sierra 10.13.1 but most of them will be applicable for other system.
Download RetroPie
Code: Select all
curl -O -L https://github.com/RetroPie/RetroPie-Setup/releases/download/4.3/retropie-4.3-rpi1_zero.img.gz
Code: Select all
gunzip retropie-4.3-rpi1_zero.img.gz
Code: Select all
diskutil list
:
/dev/disk2 (internal, physical):
Code: Select all
diskutil unmountDisk /dev/disk2
sudo dd bs=1m if=./retropie-4.3-rpi1_zero.img of=/dev/rdisk2
Code: Select all
tee wpa_supplicant.conf <<EOF
network={
ssid="SSID"
psk="password"
key_mgmt=WPA-PSK
}
EOF
Code: Select all
cp ./wpa_supplicant.conf /Volumes/boot
touch /Volumes/boot/ssh
Code: Select all
ssh pi@retropie.local
Install FBCP and FBTFT
Enable SPI
Code: Select all
sudo raspi-config nonint do_spi 0
Code: Select all
sudo raspi-config nonint do_overscan 1
Code: Select all
sudo apt-get install cmake
git clone https://github.com/tasanakorn/rpi-fbcp
cd rpi-fbcp/
mkdir build
cd build/
cmake ..
make
sudo install fbcp /usr/local/bin/fbcp
Code: Select all
sed -i "s/^exit 0/\/usr\/local\/bin\/fbcp \&\\nexit 0/g" /etc/rc.local
Code: Select all
sudo tee /etc/modules-load.d/fbtft.conf <<EOF
spi-bcm2835
fbtft_device
EOF
Code: Select all
sudo tee /etc/modprobe.d/fbtft.conf <<EOF
options fbtft_device custom name=fb_ssd1351 buswidth=8 gpios=reset:24,dc:25 speed=10000000 bgr=1 rotate=180
EOF
Download and install Retrogame. Select 3. PiGRRL Zero and reboot.
Code: Select all
curl -O https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/retrogame.sh
sudo bash retrogame.sh
SELECT 1-8: 3
Downloading, installing retrogame...OK
Downloading, installing retrogame.cfg...OK
Performing other system configuration...OK
REBOOT NOW? [y/N]y
Code: Select all
sudo tee /boot/retrogame.cfg <<EOF
LEFT 17
RIGHT 22
DOWN 27
UP 23
Z 4 # 'A' button
X 12 # 'B' button
LEFTCTRL 16 # 'Select' button
ENTER 26 # 'Start' button
EOF
11/24/2017 Added overscan change
Last edited by satri360 on Sun Nov 26, 2017 6:31 pm, edited 11 times in total.
Dreamcast VMU Pi Build Guide - Assembly
Part 6 - Assembly
Pre-assembly Test
Make sure the OLED and Keys are working fine before assembly. I used Solderless Raspberry Pi Header and a breadboard to connect these boards. Check below pin mappings for wiring.
Pi #7 - Key A
Pi #9 - Key GND
Pi #11 - Key LEFT
Pi #13 - Key DOWN
Pi #15 - Key RIGHT
Pi #17 - OLED 3.3V
Pi #19 - OLED MOSI
Pi #23 - OLED SCK
Pi #37 - Key START (MODE)
Pi #16 - Key UP
Pi #18 - OLED RESET
Pi #20 - OLED GND
Pi #22 - OLED DC
Pi #24 - OLED CS
Pi #32 - Key B
Pi #36 - Key SELECT (SUS) I'd recommend to complete the input configurations for RetroPie. Press any key to start the configurations. Hit UP, DOWN, LEFT, RIGHT, START, SELECT, A, B then press and hold A to skip the rest of the process. Key configuration file will be created after the setup. Check RetroPie Setup for the detail.
Modifying the Case
Use dremel/pliers/knife to modify the case. Install Keys
Put back the D-pads plastic, D-pads support, elastic rubber and keys PCB. Screwed down the board to the case. Wire Zero
Wire the keys and OLED boards to the Pi Zero. No modification to the Pi is required.
Tape the back side of keys and Zero for insulations.
Test the display and keys again. Don't wire the power board yet so Pi Zero can still boot from the USB power. Install OLED
Glue the OLED display to the case. I used Bondic laser bonding as I found it fixes much faster than superglue.
Try not to add too much glues in the highlighted area in order to give enough clearance for the OLED controller board. Install PowerBoost
Slide the PowerBoost in the case. Make sure the OLED PCB and PowerBoost don't overlap.
Glue the Switch to the case. Wire PowerBoost 5V/GND to the Pi Zero.
Pi #4 - PowerBoost +5V
Pi #6 - PowerBoost GND Close the case
This may be the most tricky part. Move the battery on the Zero and find the suitable place for the battery and its wires.
Close the case and screwed down at the lower 2 corners. Attach the top lid. Final test
Turn on the switch and enjoy the games in the tiny VMU. I need to open the case to charge the battery. I will remove the USB Micro connector from the PowerBoost and glue it to the case if I have a chance to build another one.
Thanks again for Wermy to give me an inspiration to start this project.
Pre-assembly Test
Make sure the OLED and Keys are working fine before assembly. I used Solderless Raspberry Pi Header and a breadboard to connect these boards. Check below pin mappings for wiring.
Pi #7 - Key A
Pi #9 - Key GND
Pi #11 - Key LEFT
Pi #13 - Key DOWN
Pi #15 - Key RIGHT
Pi #17 - OLED 3.3V
Pi #19 - OLED MOSI
Pi #23 - OLED SCK
Pi #37 - Key START (MODE)
Pi #16 - Key UP
Pi #18 - OLED RESET
Pi #20 - OLED GND
Pi #22 - OLED DC
Pi #24 - OLED CS
Pi #32 - Key B
Pi #36 - Key SELECT (SUS) I'd recommend to complete the input configurations for RetroPie. Press any key to start the configurations. Hit UP, DOWN, LEFT, RIGHT, START, SELECT, A, B then press and hold A to skip the rest of the process. Key configuration file will be created after the setup. Check RetroPie Setup for the detail.
Code: Select all
$ cat .emulationstation/es_input.cfg
<?xml version="1.0"?>
<inputList>
<inputAction type="onfinish">
<command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command>
</inputAction>
<inputConfig type="keyboard" deviceName="Keyboard" deviceGUID="-1">
<input name="start" type="key" id="13" value="1"/>
<input name="up" type="key" id="1073741906" value="1"/>
<input name="a" type="key" id="122" value="1"/>
<input name="b" type="key" id="120" value="1"/>
<input name="down" type="key" id="1073741905" value="1"/>
<input name="right" type="key" id="1073741903" value="1"/>
<input name="select" type="key" id="1073742048" value="1"/>
<input name="left" type="key" id="1073741904" value="1"/>
</inputConfig>
</inputList>
Use dremel/pliers/knife to modify the case. Install Keys
Put back the D-pads plastic, D-pads support, elastic rubber and keys PCB. Screwed down the board to the case. Wire Zero
Wire the keys and OLED boards to the Pi Zero. No modification to the Pi is required.
Tape the back side of keys and Zero for insulations.
Test the display and keys again. Don't wire the power board yet so Pi Zero can still boot from the USB power. Install OLED
Glue the OLED display to the case. I used Bondic laser bonding as I found it fixes much faster than superglue.
Try not to add too much glues in the highlighted area in order to give enough clearance for the OLED controller board. Install PowerBoost
Slide the PowerBoost in the case. Make sure the OLED PCB and PowerBoost don't overlap.
Glue the Switch to the case. Wire PowerBoost 5V/GND to the Pi Zero.
Pi #4 - PowerBoost +5V
Pi #6 - PowerBoost GND Close the case
This may be the most tricky part. Move the battery on the Zero and find the suitable place for the battery and its wires.
Close the case and screwed down at the lower 2 corners. Attach the top lid. Final test
Turn on the switch and enjoy the games in the tiny VMU. I need to open the case to charge the battery. I will remove the USB Micro connector from the PowerBoost and glue it to the case if I have a chance to build another one.
Thanks again for Wermy to give me an inspiration to start this project.
Last edited by satri360 on Sun Nov 26, 2017 7:08 pm, edited 11 times in total.
- abrugsch
- Posts: 971
- Joined: Tue Aug 02, 2016 10:00 am
- Has thanked: 356 times
- Been thanked: 430 times
- Contact:
Re: Dreamcast VMU Pi Build Guide - Power
I've done this on my tiny boost/charge board (not adafruit 500c but an ebay battery pack charge PCB module)in preparation for doing my VMU.
The main thing is to make sure your low profile one can take sufficient current. with the adafruit one you should be able to find what the part number is and it's current rating should be, but most low profile ones won't take the same current as the taller ones. I would assume that it max current it needs to handle would be 2-3A to be on the safe side.
edit: looking at the adafruit schematics, they call for a current rating of 2A on 6.8uH and use this part (which is actually 2.7A on 6.8uH) https://www.digikey.co.uk/product-detai ... ND/2465833
Here are the pics of my mod. The inductor is a wurth one though I'd need to check my RS order history to tell you which
- moosepr
- Posts: 524
- Joined: Wed Jan 25, 2017 6:18 am
- Has thanked: 69 times
- Been thanked: 241 times
- Contact:
Re: Dreamcast VMU Pi
You dont actually need to boost the battery voltage!!! The pi will run all the way down to 3v!!
as long as the battery has protection built in (the adafruit cells do) you could just wire the battery straight to the 5v pin on the pi!! you would just need to maybe rig up an external charging system
as long as the battery has protection built in (the adafruit cells do) you could just wire the battery straight to the 5v pin on the pi!! you would just need to maybe rig up an external charging system
Get a small cheep LCD in your project https://www.sudomod.com/forum/viewtopic.php?f=22&t=2312
Wrap it all round a battery https://www.sudomod.com/forum/viewtopic.php?f=13&t=2292
Or use a custom PCB to make it really small https://www.sudomod.com/forum/viewtopic.php?f=13&t=2512
or make it really really really really tiny!! https://www.sudomod.com/forum/viewtopic.php?f=13&t=2919
Wrap it all round a battery https://www.sudomod.com/forum/viewtopic.php?f=13&t=2292
Or use a custom PCB to make it really small https://www.sudomod.com/forum/viewtopic.php?f=13&t=2512
or make it really really really really tiny!! https://www.sudomod.com/forum/viewtopic.php?f=13&t=2919
- abrugsch
- Posts: 971
- Joined: Tue Aug 02, 2016 10:00 am
- Has thanked: 356 times
- Been thanked: 430 times
- Contact:
Re: Dreamcast VMU Pi
well charge/boost aside, that tiny board above is no bigger than my adafruit micro-lipo charge only board. (and a lot cheaper too!) so even if I don't bother with the 5v out, it's still there if I want it (modifying your Pi0CKET case as we speak for it actually at any rate it's still good to have on-board charging at the very least...
Who is online
Users browsing this forum: No registered users and 1 guest