10 KiB
Getting Started with USB4VC
Get USB4VC | Official Discord | Table of Contents
Thank you very much for beta testing USB4VC! Here is a short guide on getting started.
Please note that the code is most likely NOT 100% bug free at the moment, so if you run into any issues, do get in touch so I can try fix it! I have also compiled a list of known issues, with comments and remedies.
Prepare SD card
It's a good idea to burn an SD card with the latest updates before using.
You need a Micro SD card at least 4GB in size. A fast card will reduce boot time.
Download the latest boot image here, expand the zip file.
Burn the image to your SD card. I use Rufus, which is free and open-source. Etcher is another cross-platform option.
Select your SD card, then the image file, then press START to begin writing.
Power Considerations
A high-quality power supply is very important! It should provide 5 Volts and at least 2 amps of current.
An inadequate supply can result in failure to boot, unstable operation, glitches, and SD card corruption.
Check the cable too! Cheap ones tends to have unreliable connections and large voltage drops.
Test out Raspberry Pi
It's a good idea to make sure your Raspberry Pi works first.
USB4VC is designed for Raspberry Pi 1/2/3/4 Model B.
-
No need to get the latest model, even the earliest RPi B+ is plenty fast enough.
-
Older Pis might not have built-in Bluetooth. So if you want BT, a USB dongle is needed.
-
Pi Zeros might work, but you need to solder a male header, and use a USB hub.
Insert SD card in Raspberry Pi, and hook it up to a monitor. No need for anything else.
Power on, and it should boot and execute the program, showing a bunch of text.
If you see !!!!!!!!!! DO NOT UNPLUG UNTIL I REBOOT !!!!!!!!!! on screen, don't touch anything until it reboots!
If it works, congrats! Wait until screen is idle and unplug.
If not, make sure the power supply is sufficient, and the SD card image is burned properly.
Kit Assembly
If your USB4VC hasn't been assembled yet, see this guide to put it together.
Protocol Card Overview: IBM PC
Let's take a quick look:
-
All cables can be purchased as add-ons during Kickstarter campaign and in Tindie store.
-
For PS/2 keyboard and mouse, a male to male PS/2 cable is needed.
-
For XT and AT keyboards, a PS/2 female to AT male adapter is needed.
-
The 9-Pin serial mouse requires a female-to-female straight-through cable.
-
The 15-Pin gameport requires a male-to-male cable.
-
DFU button is used for firmware updates.
Protocol Card Overview: Apple Desktop Bus (ADB)
-
A male to male 4-Pin mini-DIN cable is needed. S-Video cable works!
-
You can use either ADB ports, and the other for daisy-chaining.
-
Press the ADB Power button to turn on.
-
ADB Power Button can also be activated from the microcontroller.
Cable Connection
Keep everything OFF for now!
Using the appropriate cable, connect the desired port from Protocol Card to your computer.
Most retro peripherals are NOT hot pluggable, so make sure all cables are connected before using!
Also plug in any USB Keyboard, Mouse, and Gamepad into the Raspberry Pi.
If using Bluetooth, we can pair it later.
Powering On
With cables connected, power up USB4VC with a USB-C cable.
You can do it from Baseboard, Protocol Card, or even RPi itself. All will work!
Protocol card will power up instantly and start talking with the retro computer, while Raspberry Pi takes a few seconds to boot up.
After a little while, the OLED screen should light up, showing home screen:
Press + or - to switch pages, and enter button to enter the submenu.
Protocol Setup
Looking at home screen, if displayed protocol is what you want, you're good to go!
Otherwise, press Enter button to go to the submenu, and use Enter button to adjust protocols, mouse sensitivity, and gamepad linearity.
It is recommended to leave the sensitivity adjustments at default, and change them inside the OS or game first. Only do it on USB4VC if that's not possible.
Pair Bluetooth
Select "Pair Bluetooth":
Put your device in Pairing mode, and press enter to start scanning.
After a while, a list of found devices is shown. If your device does not appear, try scanning again.
Use + / - to select one, and enter button to pair.
Pairing result will be shown. From my experience Bluetooth Mouse/Keyboards are usually fine, but Bluetooth gamepads can be a bit temperamental sometimes. If error occurs, try rebooting the BT device and/or USB4VC.
Try it out!
With protocol selected, and everything connected, time to power on the computer!
If everything goes well, you should be able to use it as normal, now with USB inputs!
Please do keep reading for more information though 😅!
Using Gamepads
For best results, please use a Xbox One/Xbox 360 controller. Those are the only kinds I have, so I used them for development. Other controllers might be buggy in button and axes mapping. I'll try to borrow a few more before the public release.
-
The easiest way is plug it in via a USB cable, and it should just work.
-
You can also try to pairing it with Bluetooth. If keeps failing, you might need to update the controller in Windows 10, source here.
Once connected, you can enable 15-Pin Gamepad Protocol on IBM PC Card, and it should behave like a generic gamepad with 4 buttons and 2 analog axes. Default mapping is:
| XBox Controller | 15-Pin Gamepad |
|---|---|
| A | Button 1 |
| B | Button 3 |
| X | Button 2 |
| Y | Button 4 |
| LB | Button 1 |
| RB | Button 2 |
| Left Stick | Joystick 1 |
| Right Stick | Joystick 2 |
| D-pad | Joystick 1 |
| Trigger | Joystick 2 Vertical Axis |
| Menu Button | Esc Key |
| View Button | Enter Key |
Joycheck DOS Program
You can download this DOS program to visualize what the gamepad is doing, great for troubleshooting! Found on this vogons thread.
-
It's OK if the value is slightly off. Games will calibrate before starting anyway.
-
Careful with pressing keyboard keys, it might mess up the display.
Custom Gamepad Mapping
You can also create your own USB Gamepad mapping so suit your exact needs.
You can even have it control mouse and keyboard, in order to play games that did not have native gamepad support!
Download the configurator and follow the instruction to set it up.
Powering Off/On
You can turn off/reboot the Raspberry Pi by pressing the POWER OFF button.
When the RPi is off, you can press POWER ON button to turn it back on.
Known Issues
Here are a couple of bugs and issues that I am aware of, and the corresponding comments and remedies.
Screw head is slightly too tall on the bottom plate, making the anti-slip pad not as effective.
-
Will switch to a flatter screw for public release.
-
Try double-up the anti-slip pads, or use a thicker one.
Boot time can be faster
-
Currently it takes about 15 seconds to boot with a decent SD card.
-
Might look into disabling some services to speed it up.
-
Would be great to get it under 10 seconds with the help of RPi experts.
15-Pin Gameport Power Backfeeding
-
If USB4VC is unpowered, turning on the PC seems to back-feed power through the 15-pin gameport via the digital potentiometer.
-
I haven't noticed any apparent damage, but it's probably not a good idea.
-
Make sure to power on USB4VC before the computer. (this is what you should do anyway)
-
I might add a diode in the production run.
ADB Collision Resolution
-
ADB collision resolution has not been fully implemented yet.
-
Issues might arise ONLY IF you daisy-chain additional ADB devices of the same type AND use them at the same time.
-
Not a high-priority bug, might work on it when I have time.
Manual Software Updates
You should use the configurator software for updates. But here's how to do it by hand.
Download the latest USB update for flash drives, expand the zip file.
Get a USB flash drive, format it in FAT32, then drag the usb4vc folder to the root level of the drive:
Insert the drive into Raspberry Pi, and select Update via USB Flashdrive in the main menu.
It will update the source code, configuration, and Protocol Card firmware to the latest version.
Questions or Comments?
Feel free to ask in official Discord Chatroom, raise a Github issue, DM on Twitter, or email dekunukem gmail.com!















