working on getting started guide

This commit is contained in:
dekuNukem
2022-01-23 23:21:18 +00:00
parent 6e8642a239
commit fa6ba94407
10 changed files with 167 additions and 5 deletions

View File

@@ -51,7 +51,7 @@ want one for review or testing? or more information about launch: [Link to Launc
* Ultra low latency (0.5ms) * Ultra low latency (0.5ms)
* OLED display showing settings and status * OLED display
* USB-C powered * USB-C powered
@@ -97,11 +97,11 @@ But of course, one can argue that using period-correct peripherals is simply par
## Getting Started ## Getting Started
[Click me](kit_assembly.md) [Click me](getting_started.md)
## Technical Details ## Technical Details
## Q & A ## Q&A
### When can I get one? ### When can I get one?
@@ -109,7 +109,15 @@ A kickstarter is planned, see [page] for details
### How is the latency? ### How is the latency?
Additional latency from USB4VC is almost negligible. Depending on the Raspberry Pi generation, it can be from 0.5 to 1ms. [See details here] Depends on the Raspberry Pi you use:
| RPi Generation | Latency |
|----------------|---------|
| 2 | 1ms |
| 3 | 0.63ms |
| 4 | 0.5ms |
1ms is *one thousandth* of a second. Hence, the delay from USB4VC is all but negligible.
### Which Raspberry Pi can I use? ### Which Raspberry Pi can I use?
@@ -122,6 +130,10 @@ Yes, but I can only work on so many at once, so in the beginning i will be focus
If you're in UK and happy to let me your computer, let me know! If you're in UK and happy to let me your computer, let me know!
### What does USB4VC stand for?
USB for Vintage Computers, although there's nothing stopping it for vintage consoles too 🤔.
## Roadmap / Future Plans ## Roadmap / Future Plans
Launch with IBM PC and ADB because most popular, but look into more computers, and more protocols. Launch with IBM PC and ADB because most popular, but look into more computers, and more protocols.
@@ -132,4 +144,3 @@ Olivetii M24
SUN workstation SUN workstation
Early macintoshes Early macintoshes

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1,77 @@
# Getting Started with USB4VC
[Get USB4VC](https://www.tindie.com/) | [Official Discord](https://discord.gg/4sJCBx5) | [Getting Started](getting_started.md) | Table of Contents
------
Congratulations on your new toy! Here is a short guide on how to use your USB4VC.
## SD card Preparation
If your USB4VC already comes with a SD card, feel free to [skip this step](#test-out-raspberry-pi)!
Download image
Burn through ethcher or rufus
## Test out Raspberry Pi
It's good practice to make sure your RPi works before mounting it into USB4VC.
Insert SD card in Raspberry Pi, and hook it up to a monitor. No need for anything else.
Power it on, and it should boot and end up with the program running, showing a bunch of information like this:
[Photo Here]
If so, congrats! Power off and continue.
## Kit Assembly
If your USB4VC has not been assembled yet, [see this guide](/kit_assembly_guide.md) to put it together.
## Cable Connection
**Keep your computer off for now!**
Using the appropriate cable, connect the desired port from Protocol Card to your computer.
Most of the peripherals are **NOT hot pluggable**, so make sure **all cables are connected before using!**
Also plug in any USB Keyboard, Mouse, and Gamepad you're planning to use.
If using Bluetooth, we can pair it later.
## USB4VC Power On
Power up USB4VC using a USB-C cable, you can do it from Protocol Card, Baseboard, or even RPi itself. All will work!
[Top-down photo with arrows pointing to power ports]
After a few seconds, the OLED screen should light up, showing some information:
[photo of OLED showing home screen, with legends and arrows]
Press `+` or `-` to switch pages, and `enter` button to enter the submenu. If you have a Bluetooth device, you can pair it in the menu.
## Protocol Setup
Looking at home screen, if displayed protocol is what you want, you're good to go!
Otherwise, press `Enter` button, and you can switch protocols, adjust mouse sensitivity and gamepad linearity.
I would suggest leaving the mouse sensitivity at 1 and adjust in the system if possible. Same with gamepads.
## Try it out!
With protocol set up, and cable connected, time to power on the computer!
You should be able to use it as normal, now with USB inputs!
## Advanced Features: Mapping gamepad to keyboard/mouse
json file

View File

@@ -19,3 +19,9 @@ Current launch timeline is:
* Public Release * Public Release
* Work on Improvements, More Protocols and Protocol Cards * Work on Improvements, More Protocols and Protocol Cards
## Help wanted!

BIN
photos/lag.png Executable file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
photos/lag_zoom.png Executable file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

68
technical_notes.md Normal file
View File

@@ -0,0 +1,68 @@
## How USB4VC Works
USB4VC uses a Raspberry Pi running Linux,
input event codes
parsed
mapping
## SPI Communication Protocol
Raspberri Pi communicates with Protocol Card through SPI. [Here's a quick introduction](https://www.circuitbasics.com/basics-of-the-spi-communication-protocol/) if you're unfamiliar.
RPi is master, P-card is slave. SPI mode 0 (CPOL and CPHA both 0), SCLK is 2MHz.
include a sample capture.
RPi and P-card talks via fixed-length 32-byte packets.
Generally, first byte is magic number, second byte sequence number, thrid byte message type
## Latency Information
Input latency can be introduced during all stages of input chain. Using keyboards as example, we have:
* Step 1: Switch physically depressed
* Step 2: Keyboard sends out event on USB/Bluetooth
* Step 3: Raspberry Pi processes the event and informs the Protocol Card
* Step 4: Protocol Card sends out the keystroke to retro computer
* Step 5: Retro computer responds to the keystroke.
The part we're interested in is **Step 3 and 4**, as any time spent here is the additional delay from USB4VC.
To accurately measure the delay, I used a logic analyzer connecting to keyboard USB lines and PS/2 output on the IBM PC Protocol Card. Here is the delay in action:
![Alt text](photos/lag_zoom.png)
From the keystroke appearing on USB, to keystroke appearing on PS/2, it took 487 *microseconds*.
Zoomed out capture with multiple keypresses:
![Alt text](photos/lag.png)
I tested out different generations of Raspberry Pis, and here is the result:
| RPi Generation | Avg. Latency |
|----------------|---------|
| 2 | 1ms |
| 3 | 0.63ms |
| 4 | 0.5ms |
You can find the [capture files here](captures/latency), open with [saleae app](https://www.saleae.com/downloads/), search `PID ACK` for USB input events, more info [in this video](https://www.youtube.com/watch?v=wdgULBpRoXk)
## Developing your own Protocol Card
SPI Format, AVR based arduino probably wont work, suggested to use STM32, include link.
RPi Header pinout, explain what each pin does.
Current limits etc.