Close
0%
0%

VMU Zero V2 [coming soon]

Reviving the Dreamcast VMU

Similar projects worth following
Raspberry Pi on Dreamcast VMU

Sega Dreamcast VMU is one of the perfect case for Raspberry Pi Zero. This is a build instruction how to make your own VMU Zero with OLED Display.

Original thread is found at sudomod:Dreamcast VMU Zero All-in-one.

Zip Archive - 118.17 kB - 03/18/2018 at 19:25

Download

  • Characterization of DCDC Boost

    satri36007/21/2018 at 07:53 0 comments

      Preface

      OLED requires 14V and VMU Zero generates it using Boost Converter. Conversion efficiency and output voltage ripple are evaluated.

      Test Setup

      Procedure

      1. Slide the Switch S1 to OFF position to disconnect the battery
      2. Attach the USB cable
      3. Display single color or white image on the OLED
      4. Measure I_in / V_in at R17 and I_out / V_out at 14V output
      5. [Test Case #1] Repeat 4 with varying the display image
      6. [Test Case #2] Slide S1 to ON and remover USB then Repeat 3-5 

      Results

      OLED Power vs White Input Level

      Efficiency #1 - VBUS vs 14V Output

      Efficiency #2 - VBAT vs 14V Output 

  • Characterization of Power Management

    satri36007/21/2018 at 05:51 0 comments

      Preface

      TI BQ24075 Li-Ion Battery Charger is used in the VMU Zero V1. This device also integrates the power path management to supply regulated power to the system even the battery is depleted or detached.

      Test Setup

      Procedure

      1. Slide the switch S1 to ON position to connect the battery
      2. Attach USB cable and fully charge the battery
      3. Probe VBAT and GPIO14 (TX) to monitor the system power status
      4. [Test Case #1] Leave the screen at emulator selector
        Remove charger and plot the discharging profile
      5. Charge the battery
      6. [Test Case #2] Load Super Mario on NES Emulator and leave at demo
        Remove the charger and plot the discharging profile
      7. Slide the switch S1 to OFF position to disconnect the battery
      8. Probe VBAT and CHG# to monitor the charging status
      9. [Test Case #3]  Leave the screen at emulator selector
        Slide the S1 to ON position and plot the charging profile

      Results

      Discharging Profile Case #1  - Idle at Emulator Selector

      Discharging Profile Case #2  - Super Mario Bros on NES Emulator

      It only lasts 20 minutes with the 150mAh battery. 500mAh battery will be considered for V2 design...

      Charging Profile Case #3 - Idle at Emulator Selector 

      Charing time will look very similar regardless of the tasks on the Pi unless total input current exceeds the limit of 1.3A which is configured at I_LIM pin.

  • Characterization of Audio

    satri36007/07/2018 at 20:40 0 comments

      Preface

      VMU Zero is using the original piezo speaker in the VMU. Piezo actuator is essentially a capacitor and it requires higher voltage to drive.

      Test Setup

      Procedure

      1. Set volume as 100%
        amixer cset numid=1 -- 100%
      2. [Idle] Probe the GPIO18 directly at Pi output in idle state
      3. [Frequency Response] Probe V_in at R21 and V_out at LT3469 output
      4. Play pre-generated single tone wave file
        aplay sin_1khz_100.wav
      5. Measure the sound level at 2cm proximity using SoundMetrer X on iPhone
      6. Repeat step 3-5 with varying the frequency from 10Hz to 20kHz
      7. [THD] Probe V_in at R21 and V_out at LT34469 output
      8. Play pre-generated 1kHz wave file
      9. Record the sound at 20cm proximity using WaveSpectra on PC
      10. Repeat step 7-9 with varying the peak level of the wave from 10% to 100%

      Results

      Idle

      Continuous 8.4kHz oscillation was observed at PWM output when no audio. Amplitude was about 1.6V and DC offset was around 1.60V.

      Frequency Response - Individual

      Peak volume at 5kHz.

      Frequency Response - Sweep

      Narrow peak frequency response from 3kHz to 6kHz. Anything below 2kHz is significantly attenuated with -20dB.

      THD

      THD was almost 100% when the volume is 50% level because the PWM output was clipped above 50%. This resulted 3rd harmonic tone surpassing the fundamental of 1kHz at the speaker output.

      1kHz 50%

View all 3 project logs

  • 1
    PCB Assembly

    Tools

    Hot Plate
    JBC CD1-BB Soldering Station
    JBC C245-030 Conical Soldering Tip
    JBC C245-768 Chisel Soldering Tip
    ChipQuik SMD4300TF Tack Flux
    ChipQuik SMD4300SNL10 Solder Paste
    Senju ESC-M705-0.3 Solder Wire
    Fluke VT04 Thermal IR Camera
    Nikon SMZ Stereomicroscope

    Parts

    BOM File is available on GitHub
    All of the parts but LT3469 Piezo Driver are available from DigiKey at the time of this writing. You can buy samples of LT3469 directly from Linear Technology.

    Reflow

    Apply a bit of solder paste on the pads of U1, L1, L2, D3 and D4. Optionally for D1, D2, U2, U4 and CN2.

    Grab components with a tweezer and place them onto the PCB. Make sure to orient the U1 properly.

    Position the PCB on the hot plate over the thick tinfoil as a heat spreader.

    Cooking time! Turn on the hot plate and try to follow the recommended temperature profile of your solder paste.

    I heated it up to 180C in 3 minutes then 220C for the next 60s and hold for seconds. Thermal camera helped a lot to control the temperature. You should see solder paste turn shining silver when it starts melting. Do not heat too rapidly or parts would bounce up.

    Cool it down. Be careful, PCB is extremely hot.

    Assemble

    Install the rest of the SMT parts. Start with the U3 FPC connector then solder other parts on the top in order of increasing size.

    Finally install the CN2 battery connector on the bottom side. We will solder the piezo speaker from the VMU to CN1 later.

  • 2
    Software

    Install RetroPie

    Download RetroPie.

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

    Unzip image.

    gunzip retropie-4.3-rpi1_zero.img.gz

    Insert an SD card and find the disk number. /dev/disk2 is assigned to my SD card but result would vary on the environment.

    diskutil list
    :
    /dev/disk2 (internal, physical): 

    Burn the SD card. Hit Ctrl-T to see the progress

    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

    tee /Volumes/boot/wpa_supplicant.conf << EOF
    network={
        ssid="SSID"
        psk="password"
        key_mgmt=WPA-PSK
    }
    EOF

    Enable SSH.

    touch /Volumes/boot/ssh
    

     Boot the Pi Zero with the SD card then log on to it. The default password is raspberry.

    ssh pi@retropie.local

    Configure Pi

    The rest of the instructions would be performed on the Pi.

    Enable SPI.

    sudo raspi-config nonint do_spi 0

     Disable Overscan.

    sudo raspi-config nonint do_overscan 1

     Install FBCP.

    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 #

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

     Install FBTFT.

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

     Install SEPS525 driver.

    curl -O https://raw.githubusercontent.com/satri360/vmuzero_seps525/master/fb_seps525.ko
    sudo cp fb_seps525.ko /lib/modules/$(uname -r)/kernel/drivers/staging/fbtft/

    Configure FBTFT.

    sudo tee /etc/modprobe.d/fbtft.conf << EOF
    options fbtft_device custom name=fb_seps525 gpios=reset:24,dc:25 speed=8000000 rotate=180
    EOF

     Update module dependency.

    sudo depmod
    

    Install Retrogame. 

    curl -O https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/retrogame.sh
    sudo bash retrogame.sh

     Select 3. PiGRRL Zero and reboot.

    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.

    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

    Enable PWM Audio.

    sudo tee -a /boot/config.txt << EOF
    dtoverlay=pwm,pin=18,func=2
    EOF

     Set Maximum Volume.

    amixer cset numid=1 -- 100% 
  • 3
    Modifying VMU Case

    Tools

    Screw Driver
    Side Plier
    7mm Flat File
    XACT Knife
    Air Duster

    Disassemble VMU

    Strip down the VMU and keep everything but the PCB, coin cell and display.
    Try not to touch the piezo speaker to prevent fingerprints on the disc.

    Modify Case

    Use plier and flat file to make some changes to the case.

    Case Top

    Case Top Left

    Case Top Right

    Case Top Upper

    Case Bottom

    Case Lid

    Complete

View all 4 instructions

Enjoy this project?

Share

Discussions

rubberdinghy wrote 08/06/2018 at 22:17 point

So where do you get the PCB exactly? Is it custom? 

  Are you sure? yes | no

Wenting Zhang wrote 03/22/2018 at 22:01 point

It would be better if the screen refresh rate could be higher...

  Are you sure? yes | no

Jeremy g. wrote 03/19/2018 at 22:01 point

Epic! I have to make one now..

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates