Changes

Line 54: Line 54:     
On October 28, 2020, the existing OSS archives were updated without adding a new version. With 1.1.0_3, the uboot archive (which has the same filename) had the "/examples" directory removed.
 
On October 28, 2020, the existing OSS archives were updated without adding a new version. With 1.1.0_3, the uboot archive (which has the same filename) had the "/examples" directory removed.
 +
 +
== Pairing process ==
 +
The kart communicates with the Switch via standard 802.11 frames on channel 1/6/11, with standard CCMP encryption, but the authentication and key exchange protocol is Nintendo-proprietary. See [[LDN services]] for more information.
 +
 +
On first startup, ''Home Circuit'' generates a random SSID (beginning with 'G') and 0x20-byte PSK (for use in the aforementioned key exchange; it is not standard WPA). These are saved and reused on every subsequent startup, so that any kart(s) with this information stored can reconnect without needing to be paired again.
 +
 +
When pairing, ''Home Circuit'' creates a temporary network (random SSID beginning with 'P', randomized PSK, neither stored) and shows the details for this "pairing network" in a QR code for the kart to scan. Once the kart connects, it fetches the main "game" network SSID+PSK and stores them, and both it and ''Home Circuit'' exit pairing mode. The pairing network is only active while the QR code is displayed, otherwise the main "game" network runs.
 +
 +
The QR code is a "version 4" (33x33) code with level-M error correction. It uses byte encoding, and stores 0x3E bytes:
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x10 || Pairing seed. LP2P PSK is SHA256(seed)
 +
|-
 +
| 0x10 || 0x20 || Pairing SSID. Remaining space is filled with zeros.
 +
|-
 +
| 0x30 || 0x2 || Pairing channel. Encoded little-endian. Usually 0.
 +
|-
 +
| 0x32 || 0xC || Padding bytes; zero.
 +
|}
 +
 +
== Network protocols ==
 +
Once the kart connects to the "game" network hosted by ''Home Circuit'', it requests an IP address via DHCP, then connects to the Switch via standard TCP/IP to announce its presence. A series of TCP and UDP connections are established to exchange information, stream video, transmit control signals, monitor kart telemetry, etc.
    
= Versions =
 
= Versions =
30

edits