title: HID reports/scan codes for iPhone's/iPad's home button
body: <p>I'm creating a very simple Arduino BT keyboard for iOS using a RN-42-HID Bluetooth module. I've been able to connect to an iPad and send it a few HID reports.</p>
  
  <p>So far, I can make the cursor go left, right, up and down, as well as select a certain app. Yay! I do this using the HID raw reports as detailed by Roving Network's HID manual.</p>
  
  <p>I've been trying to figure out how to make my iPad go to the home screen, or change the page. When I connect with a regular BT keyboard, with VoiceOver enabled, the BT keyboard combination of "ctrl + alt + H" makes the iPad return to the home page. </p>
  
  <p>When I send the corresponding HID raw report, the iPad doesn't return home. </p>
  
  <pre><code>const byte HOME1[] = { //equivalent to keyboard ctrl + opt/alt + h
    0xFD,0x09,0x01,0x05,0x00,0x0B,0x00,0x00,0x00,0x00,0x00};
  </code></pre>
  
  <p>It sees the "H", and prints "H" when I have a text field open, but it just doesn't return to the home page.</p>
  
  <p>I've also tried sending the modifier keys just as a combination of 3 scan codes at the same time, but that didn't work on the iPad, either.</p>
  
  <pre><code>const byte HOME2[] = { //equivalent to keyboard ctrl + opt/alt + h
    0xFD,0x09,0x01,0x00,0x00,0xE0,0xE2,0x0B,0x00,0x00,0x00};
  </code></pre>
  
  <p>Am I sending the report in the right format? Am I sending the right scan codes?</p>
  
  <p>Even if you don't have the actual scan code, it would be nice if there was a way to figure out what code activates the home page. Does anyone know how I can find the scan code for the home button (and for page turn, which also involves the alt button)?</p>