Difference between revisions of "IR Services"
|Line 198:||Line 198:|
This service was added with [[8.0.0-18]]. Unlike the other IR services, this uses [[I2C]] deviceid 17(this deviceid isn't actually handled by the [[8.0.0-18]] I2C module). This is for [[New 3DS]]
This service was added with [[8.0.0-18]]. Unlike the other IR services, this uses [[I2C]] deviceid 17(this deviceid isn't actually handled by the [[8.0.0-18]] I2C module). This is for [[New 3DS]] hardware. Even with [[9.0.0-20]] IR module still registers+handles this service on both Old3DS+New3DS.
Revision as of 00:09, 14 October 2014
IR Service "ir:u"
IR Service "ir:USER"
|Command Header||Available since system version||Description|
IR Service "ir:rst"
|0x00040000||This writes an unknown u8 to index-word cmdreply, from data loaded from an I2C device register.|
|0x00050000||This writes an unknown u8 from IR-module state to index-word cmdreply.|
|0x00060000||This writes two unknown u8 fields from IR-module state to index-word cmdreply and cmdreply.|
This service was added with 8.0.0-18. Unlike the other IR services, this uses I2C deviceid 17(this deviceid isn't actually handled by the 8.0.0-18 I2C module). This is for the additional New 3DS HID hardware. Even with 9.0.0-20 IR module still registers+handles this service on both Old3DS+New3DS.
Only one session(two sessions starting with 8.0.0-18) to any of these services can be open at a time, thus only one/two process(es) can use any 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). Both of these services use IrDA-SIR. The IR hardware seems to only support IrDA-SIR, other physical protocols such as the one for TV-remotes are not supported(going by the datasheet linked here for a different IC at least).
The protocol used with IRUSER involves encryption implemented in software. IRUSER is used for the Circle Pad Pro.