IR Services
IR Service "ir:u"
| Command Header | Description |
|---|---|
| 0x00010000 | Initialize |
| 0x00020000 | Shutdown |
| 0x00030042 | StartSendTransfer |
| 0x00040000 | WaitSendTransfer |
| 0x000500C2 | StartRecvTransfer |
| 0x00060000 | WaitRecvTransfer |
| 0x00070000 | GetRecvTransferCount |
| 0x00080000 | GetSendState |
| 0x00090040 | SetBitRate |
| 0x000A0000 | GetBitRate |
| 0x000B0040 | SetIRLEDState |
| 0x000C0000 | GetIRLEDRecvState |
| 0x000D0000 | GetSendFinishedEvent |
| 0x000E0000 | GetRecvFinishedEvent |
| 0x000F0000 | GetTransferState |
| 0x00100000 | |
| 0x00110040 | SetSleepModeActive |
| 0x00120040 | SetSleepModeState |
IR Service "ir:USER"
| Command Header | Available since system version | Description |
|---|---|---|
| 0x00010182 | Initialize | |
| 0x00020000 | Shutdown | |
| 0x00030000 | ? | |
| 0x00040000 | ? | |
| 0x00050000 | ? | |
| 0x00060000 | ? | |
| 0x00070000 | ? | |
| 0x00080000 | ? | |
| 0x00090000 | ? | |
| 0x000A0000 | ? | |
| 0x000B0000 | ? | |
| 0x000C0000 | ? | |
| 0x000D0000 | ? | |
| 0x000E0000 | ? | |
| 0x000F0000 | ? | |
| 0x00100000 | ? | |
| 0x00110000 | ? | |
| 0x00120000 | ? | |
| 0x00130000 | ? | |
| 0x00140000 | ? | |
| 0x00150000 | ? | |
| 0x00160000 | ? | |
| 0x00170000 | Unknown, >2.0.0-2 | ? |
| 0x00180000 | Unknown, >2.0.0-2 | ? |
| 0x00190000 | Unknown, >2.0.0-2 | ? |
| 0x001A0000 | Unknown, >2.0.0-2 | ? |
Only one session to either of these services can be open at a time, thus only one process can use either of these services at once. These services interface with hardware services gpio::IR and i2c::IR. The i2c::IR service is used for sending/receiving data.
IRU is for regular IR comms. IRUSER uses a custom IR protocol(above the physical layer), which is for 3DS<>3DS comms. The IR hardware operates in the IrDA SIR mode by default, IRU doesn't have an interface for using other modes(such as the one for TV-remotes) via hardware.