   0x75, 0x01,                         //     Report Size (1)
   0x95, 0x08,                         //     Report Count (8)
   0x81, 0x02,                         //     Input (Data, Variable, Absolute)
-  
+
   0x95, 0x01,                         //     Report Count (1)
   0x75, 0x08,                         //     Report Size (8)
   0x81, 0x01,                         //     Input (Constant) reserved byte(1)
-  
+
   0x95, 0x05,                         //     Report Count (5)
   0x75, 0x01,                         //     Report Size (1)
   0x05, 0x08,                         //     Usage Page (Page# for LEDs)


    while (central.connected()) {
      uint8_t keyPress[8]= { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
      
      if (Serial.available() > 0) {
        // read the ascii character
        unsigned char ascii = Serial.read();
        
        Serial.print(F("ascii = "));
        Serial.println(ascii);
        
        // https://github.com/SFE-Chris/UNO-HIDKeyboard-Library/blob/master/HIDKeyboard.h
        const static uint8_t HIDTable[] =  {
      	  0x00, // 0

      	  0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, // 120
      	  0x1c, 0x1d, 0x2f, 0x31, 0x30, 0x35, 127 // 127
        };

        if (ascii < sizeof(HIDTable)) {

          unsigned char hid = HIDTable[ascii];

          Serial.print(F("hid = "));
          Serial.println(hid);

          // wait until we can notify
          while(!hidReportCharacteristic.canNotify()) {
            blePeripheral.poll();
          }

          // send hid key code
          keyPress[2] = hid;
          hidReportCharacteristic.setValue(keyPress, sizeof(keyPress));

          // wait until we can notify
          while(!hidReportCharacteristic.canNotify()) {
            blePeripheral.poll();
          }

          // send cleared hid code
          keyPress[2] = 0x00;
          hidReportCharacteristic.setValue(keyPress, sizeof(keyPress));
