Dreamcast VMU Pi [Completed]

Show off your completed VMµ, or post your build logs here!

satri360
Posts: 45
Joined: Wed Mar 22, 2017 12:59 am
Has thanked: 9 times
Been thanked: 58 times

Dreamcast VMU Pi Build Guide - Overview

Post by satri360 » Sun May 28, 2017 4:06 pm

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
vmupizero_bb.png
vmupizero_bb.png (176.6 KiB) Viewed 5989 times
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
vmu_key_mapping1.png
vmu_key_mapping1.png (115.98 KiB) Viewed 4970 times
History
11/26/2017 Updated key mapping
Last edited by satri360 on Sun Nov 26, 2017 6:37 pm, edited 3 times in total.

satri360
Posts: 45
Joined: Wed Mar 22, 2017 12:59 am
Has thanked: 9 times
Been thanked: 58 times

Dreamcast VMU Pi Build Guide - Keys

Post by satri360 » Sun May 28, 2017 4:54 pm

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.
vmu_parts.png
vmu_parts.png (1 MiB) Viewed 5989 times
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.
vmu_pcb_cut.png
vmu_pcb_cut.png (219.41 KiB) Viewed 5989 times
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)
vmu_pcb_pad_ic1.png
vmu_pcb_pad_ic1.png (1.15 MiB) Viewed 5989 times
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.
vmu_pcb_pad_ic1_soldered.png
vmu_pcb_pad_ic1_soldered.png (500.65 KiB) Viewed 5989 times
Last edited by satri360 on Sun Nov 26, 2017 6:33 pm, edited 4 times in total.

satri360
Posts: 45
Joined: Wed Mar 22, 2017 12:59 am
Has thanked: 9 times
Been thanked: 58 times

Dreamcast VMU Pi Build Guide - OLED

Post by satri360 » Sun May 28, 2017 4:55 pm

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.
vmu_oled_removal_panel.png
vmu_oled_removal_panel.png (299.38 KiB) Viewed 5335 times
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.
vmu_oled_pcb_cut3.png
vmu_oled_pcb_cut3.png (502.34 KiB) Viewed 5335 times
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
vmu_oled_annotated.png
vmu_oled_annotated.png (68.38 KiB) Viewed 5335 times
vmu_oled_pcb_wired.png
vmu_oled_pcb_wired.png (393.04 KiB) Viewed 5335 times
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.
vmu_oled_pcb_rework.png
vmu_oled_pcb_rework.png (263.83 KiB) Viewed 5012 times
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.

satri360
Posts: 45
Joined: Wed Mar 22, 2017 12:59 am
Has thanked: 9 times
Been thanked: 58 times

Dreamcast VMU Pi Build Guide - Power

Post by satri360 » Sun May 28, 2017 4:55 pm

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.
vmu_power.png
vmu_power.png (524.29 KiB) Viewed 5906 times
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.
vmu_power_inductor_rprog_replaced2.png
vmu_power_inductor_rprog_replaced2.png (509.09 KiB) Viewed 5306 times
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.
vmu_power_complete.png
vmu_power_complete.png (259.57 KiB) Viewed 5372 times
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.

satri360
Posts: 45
Joined: Wed Mar 22, 2017 12:59 am
Has thanked: 9 times
Been thanked: 58 times

Dreamcast VMU Pi Build Guide - Software

Post by satri360 » Sun May 28, 2017 4:56 pm

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

Code: Select all

curl -O -L https://github.com/RetroPie/RetroPie-Setup/releases/download/4.3/retropie-4.3-rpi1_zero.img.gz
Unzip image

Code: Select all

gunzip retropie-4.3-rpi1_zero.img.gz
Inset an SD card and find the disk number. disk2 is assigned to my SD card but result would vary on the envrionment.

Code: Select all

diskutil list
:
/dev/disk2 (internal, physical): 
Burn the SD card. Hit Ctrl-T if you want to see the progress.

Code: Select all

diskutil unmountDisk /dev/disk2
sudo dd bs=1m if=./retropie-4.3-rpi1_zero.img of=/dev/rdisk2
Create WiFi configuration file. Change the SSID and Password to match with your network.

Code: Select all

tee wpa_supplicant.conf <<EOF
network={
    ssid="SSID"
    psk="password"
    key_mgmt=WPA-PSK
}
EOF
Copy WiFi configuration file and enable the SSH. Make sure the SD card is inserted and boot is mounted.

Code: Select all

cp ./wpa_supplicant.conf /Volumes/boot
touch /Volumes/boot/ssh
Log onto the Raspberry Pi. The default password is raspberry.

Code: Select all

ssh pi@retropie.local
The rest of the instructions would be performed on the Raspberry Pi hereafter.

Install FBCP and FBTFT
Enable SPI

Code: Select all

sudo raspi-config nonint do_spi 0
Disable Overscan

Code: Select all

sudo raspi-config nonint do_overscan 1
Install FBCP

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
Register FBCP as a service # DO THIS STEP ONLY ONCE

Code: Select all

sed -i "s/^exit 0/\/usr\/local\/bin\/fbcp \&\\nexit 0/g" /etc/rc.local
Install FBTFT

Code: Select all

sudo tee /etc/modules-load.d/fbtft.conf <<EOF
spi-bcm2835
fbtft_device
EOF
Install SSD1351 driver

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
Install Retrogame
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
Configure Retrogame

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
History
11/24/2017 Added overscan change
Last edited by satri360 on Sun Nov 26, 2017 6:31 pm, edited 11 times in total.

satri360
Posts: 45
Joined: Wed Mar 22, 2017 12:59 am
Has thanked: 9 times
Been thanked: 58 times

Dreamcast VMU Pi Build Guide - Assembly

Post by satri360 » Mon May 29, 2017 7:18 pm

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)
vmu_assy_pre-assemble-test1.png
vmu_assy_pre-assemble-test1.png (905.89 KiB) Viewed 4975 times
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.
vmu_snapshot_02.png
vmu_snapshot_02.png (58.89 KiB) Viewed 4975 times
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>
Modifying the Case
Use dremel/pliers/knife to modify the case.
vmu_assy_case1.png
vmu_assy_case1.png (404.97 KiB) Viewed 4975 times
vmu_assy_case_highlighted1.png
vmu_assy_case_highlighted1.png (405.78 KiB) Viewed 4975 times
Install Keys
Put back the D-pads plastic, D-pads support, elastic rubber and keys PCB. Screwed down the board to the case.
vmu_assy_keys_installed1.png
vmu_assy_keys_installed1.png (673.61 KiB) Viewed 4975 times
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.
vmu_assy_zero_installed.png
vmu_assy_zero_installed.png (491.44 KiB) Viewed 4975 times
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.
vmu_assy_oled_installed1.png
vmu_assy_oled_installed1.png (486.92 KiB) Viewed 4974 times
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
vmu_assy_power_connected1.png
vmu_assy_power_connected1.png (1.07 MiB) Viewed 4974 times
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.
vmu_assy_battery1.png
vmu_assy_battery1.png (415.17 KiB) Viewed 4974 times
vmu_assy_closecase1.png
vmu_assy_closecase1.png (651.48 KiB) Viewed 4974 times
vmu_assy_screwed1.png
vmu_assy_screwed1.png (688.75 KiB) Viewed 4974 times
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.

User avatar
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

Post by abrugsch » Tue May 30, 2017 2:58 am

satri360 wrote:
Sun May 28, 2017 4:55 pm
Replace Inductor (optional)
Original inductor is also too tall. Detail TBD.
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
1490801932334-2017-03-29-13.28.39-sm.jpeg
1490801932334-2017-03-29-13.28.39-sm.jpeg (154.72 KiB) Viewed 5949 times
1490801867222-2017-03-29-13.29.07-sm.jpeg
1490801867222-2017-03-29-13.29.07-sm.jpeg (286.21 KiB) Viewed 5949 times

User avatar
moosepr
Posts: 523
Joined: Wed Jan 25, 2017 6:18 am
Has thanked: 69 times
Been thanked: 241 times
Contact:

Re: Dreamcast VMU Pi

Post by moosepr » Tue May 30, 2017 3:51 am

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

User avatar
abrugsch
Posts: 971
Joined: Tue Aug 02, 2016 10:00 am
Has thanked: 356 times
Been thanked: 430 times
Contact:

Re: Dreamcast VMU Pi

Post by abrugsch » Tue May 30, 2017 5:43 am

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

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest