PSPi 1000 Version 4

8/19/17 I’ve hacked together enough code to get the joystick and battery detection working on the Pi Zero. It’s not anywhere near complete and is full of band-aid fixes. Could really use the help of anyone interested in helping with the coding. I’ve got a couple of these modules that I’ll send to people that want to help and know how to code. It’s an analog-digital converter that works over I2C and has 4 channels (2 for joystick, 1 for battery, and 1 extra for anything else). It connects to a few GPIO pins on the Zero, and wires have to be soldered to it from a joystick and battery.
This chip is already integrated on the v4, so the end result will be something that works on the v4, but it will also mean that this module can be added to your custom builds to add joystick and battery detection
Interested? Contact me or chat on Discord
8/17/17 – Discord channel for Version 4 is up for anyone interested in getting involved or giving input https://discord.gg/aR5jzUY.

Files are up on GitHub for buttons, joystick, etc. https://github.com/othermod/PSPi-1000-Version-4.


I’ve been steadily working on v4 for the last few months, and to a lesser extent since November of last year. Many improvement have been made, and quite a few were based off feedback from the Version 3 board.

Feel free to make requests for features or improvements. Before you ask it though, this will still use the Pi Zero (or Zero W). A Pi3 will not fit without serious modification (although I’m trying my hardest to make this Pi3 Compatible for those of you that want to do the modifying), and a CM3 will take much, much more time for design (not ruling out the CM3 for something later on, but I’m holding out for something similar to the Zero but with a quad-core). This board does not use an ATmega for GPIO and analog input. This means that the USB port on the Zero stays available and that no USB hub is needed.

Would you buy one?

View Results

Loading ... Loading ...


Hardware Changes Planned for Version 4

LCD driven using GPIO

  • All LCD control will be integrated into the all-in-one, meaning no external controller will be needed.
  • Backlight dimming allows for reduction in power consumption.
  • Greatly improves the quality of the display.
  • Runs at the same resolution as the original PSP

Improved battery charging

  • Charges the battery using a switching regulator instead of a linear regulator.
  • Far less heat output during charging, as well as faster and more efficient charging.
  • Better charging rates on depleted batteries
  • Precision battery voltage monitoring. If included, this would allow the OS to monitor the exact battery charge percentage. This would open up many other software features.

Improved joystick

  • True analog input (in the games that support it)
  • Can also be used it as a mouse. I won’t be supplying the code for this (at least initially), but the capability is there.

Less soldering required

  • Uses the original PSP’s method of making joystick contact, so wires don’t need to be soldered to make a connection.
  • Instead of soldering to the pads on the underside of the Pi Zero (for USB and microSD), gold-plated contact spring pins will be used and the Pi will snap or screw into position.
  • Easier soldering of the GPIO pins. A header will be pre-soldered to the board, so only the Pi’s GPIO pins will need to be soldered.
  • This wasn’t possible in Version 3 because the LCD controller used all the available space.
  • Speaker wires will still probably need to be soldered. Didn’t want to do this, but the right connectors just don’t exist.

Increased efficiency

  • Integrating more features allows for lower power consumption and more control over what features are enabled and disabled
  • The removal of the LCD controller removes much of the power consumption and heat generation.
  • LCD can be dimmed to lower power consumption
  • Audio can be switched off to lower power consumption
  • My tests (with the cell phone batteries from v3) put the play time over 6 hours and command line time at 18 hours. This relies heavily on the quality and capacity of the batteries.

Better emergency shutdown circuits

  • Will kill power once battery is depleted past a certain voltage (probably 3.3-3.4v). This is a hard-wired feature that won’t require software to function. It serves as a backup in case the software features aren’t working for some reason.
  • There will also be a software aspect to this. The battery indication LED will begin blinking orange when the battery is low, and then the system will properly shut down when the battery reaches a certain threshhold (probably 3.5v, or whatever voltage equates to 5% remaining)
  • In v3, when there is a software or Pi Zero problem, the system automatically powers the board off. This makes trouleshooting a little difficult, because you have to solder a jumper wire to keep the system on. v4 will work differently. A software or SD card problem will not cause the system to power off. Only the complete absense of an installed Pi Zero will cause a power-off. In all other situations the board will stay powered on, and the system will power off only when the power button is held.

Redrawn outline

  • More accurate hole positioning, which is needed for proper joystick alignment
  • Better USB port positioning

Additional indication LEDs

  • Power LED has the ability to blink when the battery is low instead of staying green or orange.
  • LED indication on the left side for SD card activity (or any other use for those that know how to code)

Better audio

  • Improved audio filtering to get rid of a little more PWM noise.
  • Very similar to the audio circuit in the Pi 2.
  • Speakers can be switched off using the switch on the left side (which will lower power consumption and give a little more play time)

All of the PSP’s buttons will work.

  • Volume buttons will be able to adjust volume up and down.
  • Display button will adjust display brightness. This may be done by just alternating brightness in 10% increments when the Display button is pressed, or may be done by pressing and holding Display and then pressing Volume+ or Volume- to adjust brightness up and down. Still working out the specifics.
  • Pressing the Home button will exit games in the same manner as pressing Start+Select (thanks for the idea Thorbiörn Teddy Biörrith)

Possible Changes for Version 4

  • Ability to use Lakka or Retropie
  • Wireless charging using Qi. If this is included, it will be optional. There just wasn’t enough room in Version 3 to make this possible. It’s very easy to integrate.
  • Some change to the way the microSD adapter is relocated to the Memory Stick Pro’s slot. Whatever the final version looks like, it will be easier to solder than Version 3.
  • Constantly measure power consumption of the system.
  • Add headphone jack that connects easily to the V4 board.
  • Add connector to use PSP battery (3.7v batteries only).
  • More analog inputs to allow for dual joysticks
  • Extra inputs so more buttons can be added.

Features Requested by You Guys (I’ll add these if possible)

  • HDMI output capability – this one might not even be possible when driving the RGB display
  • HD resolution LCD – could use help finding one that fits the PSP 1000. Might be too much for a Pi Zero.

Hardware Progress

  • Test 4.3″ aftermarket LCD over GPIO – Complete
  • Find and test expansion module to replace GPIO pins used by LCD – Complete
  • Write/modify code to get GPIO control buttons working with expansion module – Complete
  • Design and test circuit for charging a 3.7v lithium/lipo battery more efficiently – Complete
  • Design better emergency shutdown circuit – In Progress.
  • Redraw outline for the PCB – Almost there
  • Design and test boost circuit with PWM dimming for LCD backlight – Testing
  • Find and test module to add analog inputs  – Complete
  • Test PSP’s original battery  Complete
  • Test Lakka with GPIO buttons, GPIO LCD, and joystick – Not started yet, will happen after software is working in RetroPie
  • Test Qi Wireless Charging – Not Started Yet

Software Progress 

Check it out on GitHub

Share this with others

57 Comments

  1. First, thank you for creating this site and for offering your amazing kits. I’m relatively new to all of this but I am now inspired to begin building my own PSPi. Quick question regarding Pi3 compatibility – in theory, what would have to be done aside from de-soldering the USB and Ethernet ports? Thanks!

    • Probably much more than that. The Pi 3 just won’t fit, so there would be some serious plastic modification needed.

      As far as function, it is pin-compatible with the Pi Zero, so electrically it would work on the PSPi Version 3. Version 4 is different entirely though, and I doubt it will be compatible with the Pi 3

      • hi
        I’m using gpio to driver LCD,use DPI.
        But it do not work.Can you help me?
        here is my config.txt
        # Disable spi and i2c, we need these pins.
        dtparam=spi=off
        dtparam=i2c_arm=off

        # Set screen size and any overscan required
        overscan_left=0
        overscan_right=0
        overscan_top=0
        overscan_bottom=0
        framebuffer_width=480
        framebuffer_height=272

        # enable the DPI display
        enable_dpi_lcd=1
        display_default_lcd=1

        # set up the size to 480×272
        dpi_group=2
        dpi_mode=87

        # uncomment for 480×272 display (Adafruit 4.3″)
        dpi_output_format=520197
        hdmi_timings=480 0 40 48 88 272 0 13 3 32 0 0 0 60 0 32000000 3

        thanks!

      • what about the psp 4.3 screen?
        There is some problem,it can work,but it can not full screen.It displays in right part of screen.
        I used the same config.txt.
        Can you fix it?

  2. Awesome!!!
    As for CM3, I definitely agree with you that this is something worth undertaking, even as a version 4.1 or 5. This makes it much easier to upgrade in the future to a CM4 for a power boost without the need rebuild everything from the ground up.
    I personally think it’s worth remaining with the raspberry pi architecture vs trying something else. I personally tried the latest ASUS Tinker Board that is trying to compete with RPi. It does give a performance boost, but support for retropie is really bad. Even RPi started up as a fairly simple SBC and it really only picked up after a vast community was built around it. Just my two cents… 🙂

  3. Nice news!
    About the new LCD drive method, how many GPIOs are needed to control de LCD?
    And the GPIOs remainig are enought for the complete keypad (Dpad, A, B, X, Y, L, R, Select, Start)
    How solve this?

    Thank you!

      • This is where a design that includes the CM3 module in it makes a huge difference! With the CM3 module you get access to all the RPi GPIO connections and not just 40 of them as with other ones.
        Obviously this is a day 2 solution for now as you mentioned.

        One request though as for updates, if you could; hard to see what was updated vs previous update.

        Thanks

  4. Still am floored by how rapid these iterations are and how big your scope is. Can’t wait to give version 4 to my electrical engineer to solder up!!

  5. Loving the improvements! Backlight control is essential for squeezing out extra battery life.

    Regarding the driver, you can write a continuous polling script in python (probably the easiest if the driver itself is in python). You will just have to make it into a service, which you can then enable when the system starts.

    As an example, I had written a python script which controls the backlight of a TFT which is attached to GPIO 18.
    https://www.thingiverse.com/thing:2126383

    • I love it. It looks like the button does exactly what the PSP’s brightness button does. Something like this would definitely be easy to add to my existing python script that already runs to look for the shutdown button.

  6. Quick thought to throw out there…
    It seems like if you extend the bottom left side of your PCB you could actually have at least the MicroSD card in place for the side loading of it. If that’s true it will make it a lot easier instead of soldering and gluing the SD card.
    Also, while at it, though there is a height difference, could there also be a way to have the audio jack directly soldered to the PCB, or potentially to a smaller PCB as part of the kit that attaches to the main PCB with an FFC flat cable?

    All this would make for a very easy rip and replace kit!

    • I’ve been tinkering with different methods of doing exactly that. The 6 square vias on the left side are for the microSD. I’ve got a couple different sd slots I’m trying out, but alignment will be a problem. I’ll probably have to stack a smaller PCB on the underside of the main board so that the microSD slot is lines up with the plastics. As for the audio jack, I think I’m going to make an optional additional board that just pops into place or that is easy to solder. I wanted to be able to make this board hold the microSD slot too, but I doubt the height will be right unless I can find a upside-down microSD slot.

  7. in the spots where there are no traces, you could take off material, making the board slightly lighter. this will also allow us to hide cables (if there are any) underneath the board

  8. can you also try to make this compatible with the pi 3 model b. I’m fine with desoldering the thing, i just want a powerful board in my custom psp.

  9. another idea i had was making the controller work over usb, this will (most likely) drastically save gpio headers, which can simplify the board. this can also make the software config far easier, as the controls will already be translated into something that lakka and retropie can understand. although the board will have to be programmed by either us, or the pcb manufacturer.

    • Most people do it this way, but I’m not a fan. That means adding a USB hub and ATMega, and then having to program each board manually. Too many things that can go wrong for the end user. I prefer special-purpose components because of the increased reliability. It’s causing the design portion to take longer, but I think it’s worth it.

      Also, my plan with this board is to have zero wires. Some soldering of pins might or might not be needed, but there won’t be any wires.
      Currently it isn’t compatible with a Pi 3, but it’s possible that something could change. There’s still lots of work ahead.

    • Gotta save something for V5.
      The compute module would be better in many ways, but that means adding everything from this + WiFi and Bluetooth. Too much for one guy that does this in his off time. It’s possible it will happen, but it would be further down the road. I expect something with quad core that’s comparable to the Pi Zero will get released eventually, and when that happens I’ll be making a board for it.

  10. mate i have been following the project and it fantastic only comment i have it i have seen a orange pi zero 2 plus which is 4 core and may fit in a future project !

    • I saw it a few weeks ago and it looks very promising. I haven’t done any research to see how much community support it has and how good gaming performance is. I might be buying a couple for tests.

  11. Hi,
    Hope I’m not treading on your trade secrets here, but how are you doing the on-board/GPIO LCD control? Is there any chance you will type up an instruction for it, or maybe share your own sources?

    BTW, I would always prefer the 3.7V batteries for the additional capacity.

    Cheers!

    • I got it working a while back, but there is a flicker in the screen I cannot get rid of. Tried everything I knew to try, but I think its due to the Pi having a fixed 9.6Mhz clock and the PSP’s LCD needing 9.0Mhz. It’s on the back burner for now.

      I’m not missing it though. The LCD I’m using in place of it is glorious.

        • Not exactly. The one I sell is meant to attach to the Pi’s composite pin, and is used for v3. The panel itself will probably be compatible with the v4, but it’s not the panel I’ll be using.

          As far as tips for PCB design, I recommend starting with other people’s schematics and board designs to see what they have done. Pick something small, like one of the boards Adafruit sells. They give out the design files for free. You can view and edit them with Eagle, or just import them into an online editor like EasyEDA. Just do lots of research, read tons of datasheets, and watch YouTube videos. I don’t really have any specific links, but YouTube is full of good stuff.

          Feel free to ask any questions here or on Discord

Leave a Reply