Bootstrap OpenBitdo clean-room SDK and reliability milestone

This commit is contained in:
2026-02-27 20:43:34 -05:00
commit d5afadf560
46 changed files with 3652 additions and 0 deletions

18
spec/command_matrix.csv Normal file
View File

@@ -0,0 +1,18 @@
command_id,safety_class,confidence,experimental_default,report_id,request_len,request_hex,expected_response,notes
GetPid,SafeRead,confirmed,false,0x81,64,8105c100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02;byte1=0x05;byte4=0xC1,"Primary PID detection request"
GetReportRevision,SafeRead,confirmed,false,0x81,64,81040001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02;byte1=0x04;byte5=0x01,"RR read preflight"
GetMode,SafeRead,confirmed,false,0x81,64,81040501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02;byte1=0x05,"Mode read"
GetModeAlt,SafeRead,confirmed,false,0x81,64,81050800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02;byte1=0x05,"Alternate mode read"
GetControllerVersion,SafeRead,confirmed,false,0x81,64,81042101000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02;byte1=0x22,"Controller version"
GetSuperButton,SafeRead,inferred,true,0x81,64,81052100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02;byte1=0x05,"Super button capability"
SetModeDInput,SafeWrite,confirmed,false,0x81,64,81050051020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02,"Mode write to DInput"
Idle,SafeRead,confirmed,false,0x81,64,81040001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02,"Idle check"
Version,SafeRead,confirmed,false,0x81,64,81042101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte1=0x22,"Version check"
ReadProfile,SafeRead,inferred,true,0x81,64,81060001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02,"Profile slot read (sanitized)"
WriteProfile,SafeWrite,inferred,true,0x81,64,81070001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02,"Profile slot write (sanitized)"
EnterBootloaderA,UnsafeBoot,confirmed,false,0x81,6,050050010000,none,"Boot stage A"
EnterBootloaderB,UnsafeBoot,confirmed,false,0x81,6,005100000000,none,"Boot stage B"
EnterBootloaderC,UnsafeBoot,confirmed,false,0x81,5,0050000000,none,"Boot stage C"
ExitBootloader,UnsafeBoot,inferred,true,0x81,6,050051010000,none,"Boot exit (sanitized inferred)"
FirmwareChunk,UnsafeFirmware,inferred,true,0x81,64,81100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02,"Firmware chunk transfer"
FirmwareCommit,UnsafeFirmware,inferred,true,0x81,64,81110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,byte0=0x02,"Firmware commit"
1 command_id safety_class confidence experimental_default report_id request_len request_hex expected_response notes
2 GetPid SafeRead confirmed false 0x81 64 8105c100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02;byte1=0x05;byte4=0xC1 Primary PID detection request
3 GetReportRevision SafeRead confirmed false 0x81 64 81040001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02;byte1=0x04;byte5=0x01 RR read preflight
4 GetMode SafeRead confirmed false 0x81 64 81040501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02;byte1=0x05 Mode read
5 GetModeAlt SafeRead confirmed false 0x81 64 81050800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02;byte1=0x05 Alternate mode read
6 GetControllerVersion SafeRead confirmed false 0x81 64 81042101000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02;byte1=0x22 Controller version
7 GetSuperButton SafeRead inferred true 0x81 64 81052100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02;byte1=0x05 Super button capability
8 SetModeDInput SafeWrite confirmed false 0x81 64 81050051020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02 Mode write to DInput
9 Idle SafeRead confirmed false 0x81 64 81040001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02 Idle check
10 Version SafeRead confirmed false 0x81 64 81042101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte1=0x22 Version check
11 ReadProfile SafeRead inferred true 0x81 64 81060001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02 Profile slot read (sanitized)
12 WriteProfile SafeWrite inferred true 0x81 64 81070001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02 Profile slot write (sanitized)
13 EnterBootloaderA UnsafeBoot confirmed false 0x81 6 050050010000 none Boot stage A
14 EnterBootloaderB UnsafeBoot confirmed false 0x81 6 005100000000 none Boot stage B
15 EnterBootloaderC UnsafeBoot confirmed false 0x81 5 0050000000 none Boot stage C
16 ExitBootloader UnsafeBoot inferred true 0x81 6 050051010000 none Boot exit (sanitized inferred)
17 FirmwareChunk UnsafeFirmware inferred true 0x81 64 81100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02 Firmware chunk transfer
18 FirmwareCommit UnsafeFirmware inferred true 0x81 64 81110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 byte0=0x02 Firmware commit