RetroFlag GPi Case 2 W
RetroFlag just released the RetroFlag GPi Case 2 W a third version of their GPi Case, but this time aimed at the Raspberry Pi Zero 2 W.
At first glance this new GPi Case seems like an update to the RetroFlag GPi Case 2 to be able to accept the Raspberry Pi Zero 2 W, but it's not. It's a retrofit of some of the new parts from the GPi Case 2 back into the original GPi Case.
So what is upgraded over the original GPi Case?
- 2800mAh rechargeable battery
- 640 x 480 3.0" IPS screen
- RetroFlag & Sleep mode button
What's missing from the GPi Case?
- USB-C OTG port
- Optional dock, with HDMI out & USB ports!
So this really leaves this new GPi Case 2 W somewhere in the middle between the first two. The lack of USB-C charge port is really a bummer, as having to have the proprietary barrel jack cable with you to charge it is kinda annoying. Also the missing USB-C port means that this GPi Case doesn't support the dock they released with the GPi Case 2.
It's battery is also smaller, but this might not be so much of an issue since the Pi Zero 2 W should consume less power than the CM4 module. But the CM4 module has more processing power so might run some of the higher end games better.
So which to choose?
I think that the RetroFlag GPi Case 2 with the dock is probably the best, but this assumes you can find a CM4 module, which is almost impossible right now. That being said all of the upgrades they have added to the GPi Case 2 W, make it a very nice handheld and fix most of the issues I had with the original model. Also finding a Raspberry Pi Zero 2 W might be slightly easier than a CM4 module right now, which might make the GPi Case 2 W case the better choice. So the answer is either... but if you want the convience of a USB-C port then stick to the RetroFlag GPi Case 2
Hardware
So along with the case itself you will need one Raspberry Pi Zero 2 W (or original Pi Zero) and an SD card. Installation is super easy* just follow the website or included instructions.
*Screwdriver NOT required 😀
I don't recommend the original Pi Zero as it will restrict what games you can play due to lack of horsepower.
Software
Like any retro console powered by a Raspberry Pi there are lots of options. The main three are RetroPie, Recalbox and Batocera. Each has it's own pros and cons, but at this time RetroFlag only has details on how to install Recalbox and RetroPie. I wanted to stick to Batocera so I installed that. Follow the instructions below to get it to work!
Installation
To install you first have to download the Batocera (v35 at the time of writing) image, then write it to an SD card, and then apply some GPi Case 2 W config.txt adjustments.
Batocera
At this point in time there is no dedicated build of Batocera for the GPi Case 2 W, there is only one for the original GPi Case. DO NOT download the original GPi Case build, you need to get the build for a "Raspberry Pi Zero 2W".
Once downloaded, use your disk image writer of choice (I prefer Raspberry Pi Imager), plug in your SD card and write the image.
Batocera includes support for the original GPi Case and patches right out of the box now!
At this point you can put the SD card into the case and boot the system.
First boot
After first boot you will be greeted to a screen that only uses 25% of the screen real estate and is rotated incorrectly. This is because it is using the settings from the original GPi Case.
To fix it we need to connect the case to the Wi-Fi, ssh into the device, and then adjust the config.txt.
Connecting to Wi-Fi
Once the device is up and running, connect it to a WiFi network. Press the "Start" button, then go to Network Settings, enable WiFi and enter in your WiFi details. If you need the IP address just go back into the Network Settings after you connect to the Wi-Fi.
Note
If WiFi doesn't come up when you try the "Scan" option just enter your SSID and password manually. If the WiFi doesn't appear to be working after you have done that, then just turn the device off then on again, yes seriously it will then work.
Display patch
For now you have to manually apply the display patch. To do this you will need to ssh into the device, adjust a file and run some scripts.
The reason you have to do this for now is that Batocera thinks that the GPi Case 2W is an orignal GPi Case and it auto applies the original display patch on every boot. If you modifiy the config.txt file it will just over write it again on next boot. We need to modify a file within the Batocera installation, where it is copying the default settings from for a permanent fix.
SSH
Once you're on your on the network then go to a PC and use your favourite SSH program to connect to the device.
ssh root@batocera
Enter the password, which by default is linux
Config.txt
First make the boot
partion writable so you can edit the config.txt
by running the following command:
mount -o remount,rw /boot
Next edit the config.txt
to remove the settings for the original GPi Case.
nano /boot/config.txt
Delete everything between the the two sections shown below, and delete the lines shown below as well.
# ====== GPi Case setup section =====
# ====== GPi Case toggle section =====
# This will preserve always the default GPi settings if enabled, needed if some values were wrong setted by user"
Ctrl-X to exit and save the file. Now you have a clean config.txt file.
Next we will edit the batocera-gpicase-install
script to add in the lines for the display patch for the GPiCase 2 W. Open the script file with the following command:
nano /usr/bin/batocera-gpicase-install
You need to replace the lines between the ===== section =====
lines shown above with the lines shown below
# Overclock
gpu_mem_256=128
gpu_mem_512=256
gpu_mem_1024=512
# Video
dtoverlay=dpi24_gpicase
display_rotate=0
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=640
framebuffer_height=480
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x00016
#hdmi_timings=640 0 41 40 41 480 0 18 9 18 0 0 0 60 0 32000000 1 #80hz 0228 030e
#hdmi_timings=640 0 20 1 20 480 0 1 1 2 0 0 0 60 0 19200000 1 #59hz
hdmi_timings=640 0 1 1 20 480 0 1 1 2 0 0 0 60 0 19200000 1
# Audio
#dtoverlay=pwm-2chan,pin=18,func=2,pin2=19,func2=2
dtoverlay=pwm-audio-pi-zero_gpicase
disable_pvt=1
dtparam=audio=on
disable_audio_dither=1
audio_pwm_mode=2
# disable activity leds
dtparam=act_led_trigger=none
dtparam=act_led_activelow=on
Ctrl-X to exit and save the file. Now you have a correct default settings for the GPi Case 2 W.
You need to run one last script to make these settings a permanent change. Run the script below to do that:
batocera-save-overlay
Now you're done!
Hit "Start", then select Quit and Restart system, and you should be greeted to the system running at full screen!
Performance
There isn't much to say here, it's pretty much exactly the same as any other Raspberry Pi 3 based device. Basically it will run most consoles that existed up until the 90's.
Adding games
Don't forget to add your ROM backups to play some games!
On Batocera that's super easy just put \\batocera
into the address bar on Windows Explorer and the shared folder will open up where you can copy games, bioses or whatever else you need.
Conclusion
That's it you should be up and running!
Take a look at my post on the RetroFlag GPi Case 2 for some more information.
Note
Don't forget to flip the safe shutdown switch to "on", which is located behind the cartridge.