added tinkering guide and updated PCB information

This commit is contained in:
dekunukem
2022-04-09 20:37:55 +01:00
parent a1cd6be0bd
commit 2713202fb2
4 changed files with 46 additions and 14 deletions

View File

@@ -40,7 +40,7 @@ Edit the file with your WiFi information. You can find your [WiFi country code h
![Alt text](photos/wifi.png)
This file will disappear once Raspberry Pi boots up. To connect to a different WiFi, **create a new file** with the same name under `boot` with updated information. [Here is a template](resources/wpa_supplicant.conf) you can use.
This file will disappear once Raspberry Pi boots up. To connect to a different WiFi, [download a new file](https://github.com/dekuNukem/USB4VC/raw/master/resources/wpa_supplicant.zip), unzip it, and put it under `boot` with updated information.
## Kit Assembly
@@ -60,7 +60,7 @@ Let's take a quick look:
![Alt text](photos/ibmpcpc.jpeg)
* Cables can be purchased in [my Tindie store](https://www.tindie.com/products/dekuNukem/usb4vc-usb-inputs-on-retro-computers/).
* Cables can be purchased in [my Tindie store](https://www.tindie.com/products/dekuNukem/usb4vc-usb-inputs-on-retro-computers/) (and of course other places).
* PS/2 keyboard and mouse need a **male to male** PS/2 cable.
@@ -104,6 +104,8 @@ 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!
**Always turn on USB4VC BEFORE the computer!**
![Alt text](photos/powerports.jpeg)
Protocol card will power up instantly and start talking with the retro computer, while Raspberry Pi takes a few seconds to boot up.
@@ -166,6 +168,8 @@ In my testing, gamepad compatibility seems to depends on the RPi models:
* If pairing fails, remove the BT device in the menu, reboot USB4VC, and try again.
* Multiple controllers will work at the same time, although sometime their outputs might compete with each other.
-----
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 4 analog axes**.
@@ -182,7 +186,7 @@ With **officially supported controllers**, the mapping is:
* Left & Right Analog Triggers to Joystick 2 Y-Axis.
Unsupported USB controllers might still work, but the default mapping might be a bit wonky.
Unsupported USB controllers might still work, but the default mapping might be wonky.
## Joycheck DOS Program
@@ -204,15 +208,13 @@ You can even have it **control mouse and keyboard**, in order to play games that
## Software Updates
Under construction ...
Connect RPi to internet. You can [set up WiFi](#optional-set-up-wifi), or plug in an Ethernet cable.
Basically make sure RPi is connected to internet, and select `Internet Update` in main menu.
Then simply select `Internet Update` in main menu. It will update source code and P-Card firmware to latest version.
## Tinkering Guide / Making Your Own Protocol Card / Techincal Details
## Tinkering Guide / Making Your Own Protocol Card / Technical Details
[Click me to for techincal details and make-your-own protocol card instructions!](technical_notes.md)
Tinkering Guide is under construction ...
[Click me!](technical_notes.md)
## Powering Off/On
@@ -226,10 +228,12 @@ When the RPi is off, you can press `POWER ON` button to turn it back on.
Here are a couple of bugs and issues that I am aware of, and the corresponding comments and remedies.
#### Boot time can be faster
#### Boot Time
* Currently it takes about 17 seconds to boot with a decent SD card.
* Would be great if it's faster.
* Might look into disabling some services to speed it up.
* [Let me know](#questions-or-comments) if you'd like to help!

BIN
photos/ip.jpeg Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

BIN
photos/stdpcard.png Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -1,4 +1,4 @@
# USB4VC Technical Notes / Make Your Own Protocol Card
# USB4VC Technical Notes / Make Your Own Protocol Card / Tinkering Guide
[Get USB4VC](https://www.tindie.com/products/dekuNukem/usb4vc-usb-inputs-on-retro-computers/) | [Official Discord](https://discord.gg/HAuuh3pAmB) | [Getting Started](getting_started.md) | [Table of Contents](#table-of-contents)
@@ -6,13 +6,25 @@
This document contains technical information about how USB4VC works. Please **read the whole article** if you're planning to make your own Protocol Cards.
## Tinkering Guide
Working on USB4VC is very straightforward. It's just some python scripts running on official RaspberryPi OS Lite.
To SSH into it, [set up WiFi](getting_started.md#optional-set-up-wifi) or plug in an Ethernet cable. The IP address will show up on the second page of main menu:
![Alt text](photos/ip.jpeg)
Username and password is `pi` and `usb4vc`, all lower case.
All files are inside `~/usb4vc`.
## Linux Input Event Codes
First of all, how does USB4VC read from KB/Mouse/Gamepads in the first place?
Now, how does USB4VC read from USB inputs in the first place?
The answer is Linux **Input Event Codes**. Here's a very simplified description:
* Connected input devices show up in `/dev/input` as files:
* Input devices show up in `/dev/input` as files:
```
$ ls /dev/input/
@@ -40,7 +52,7 @@ event0 event1 event2 mice mouse0 mouse1
* [Here's a good article](https://thehackerdiary.wordpress.com/2017/04/21/exploring-devinput-1/) that goes into a bit more details.
* You can install `evtest` and see what your device is returning in real time.
* You can use `evtest` to see input events in real time.
* USB4VC reads those events from all input devices, processes them, and send them out to the Protocol Card.
@@ -322,6 +334,22 @@ Once SPI is working, you can move on to implementing the protocol itself. A few
* Just find a relevant product and download the schematics and PCB files, they are often production tested, so a great starting point to make your own!
### Protocol Card PCB Design Notes
If you want to design a Protocol Card for volume production, here are some helpful information.
* Protocol Cards has the same dimension as a Raspberry Pi Model A:
![Alt text](photos/stdpcard.png)
* Protocol Card pins are mapped to Raspberry Pi headers. See the red number for RPi pin number, and [click me for pinout details](#hardware-pinout).
* Connectors can come out from all 3 sides.
* Make sure to have a way for user to **update the firmware!** You can put a USB connector for manual updates, or hook up reset and DFU lines to do it from Raspberry Pi.
* No need to have a 5V to 3.3V regulator on the P-Card, it is provided by the Baseboard.
### Unique Protocol Card ID
Once your own P-Card has been tried and tested, it can be given a unique ID so the Baseboard can properly recognise it and display its protocol in the menus.