How to use BLE with: Seeed XIAO nRF52840 Sense

Hi!
The software in my SEEED shall be connected via BLE to a computer and when the microphone in the SEEED hears a loud sound, it shall send the letter “A” to the computer its connected to via BLE.
I have succeded to connect now, tx to you :slight_smile: But now I have other problem… never ending story…

The code below can connect to a computer and also to my Iphone via BLE, but no “A” is sent. The Arduino IDE:s Serial monitor say its sent, but no A is written to the Iphone or the computer. So something is strange with that part of the code below:

#include <bluefruit.h>
#include <Adafruit_TinyUSB.h>

// Variabler för ljuddetektion
const int micPin = A0;       // Mikrofon ansluten till analog pin A0
const int threshold = 50;     // Sänkt tröskelvärde för högre känslighet

// Variabel för glidande medelvärde
int averageLevel = 0;

// Skapa BLE HID-tangentbord
BLEDis bledis;                // Enhetens namn- och informationstjänst
BLEHidAdafruit blehid;        // BLE HID-tjänst

void setup() {
  Serial.begin(115200);

  // Initiera BLE
  Bluefruit.begin();
  Bluefruit.setName("XIAO BLE Keyboard");

  // Initiera enhetstjänster
  bledis.setManufacturer("Seeed Studio");
  bledis.setModel("XIAO nRF52840");
  bledis.begin();

  // Initiera HID-tangentbord
  blehid.begin();

  // Starta annonsering (gör enheten synlig för Bluetooth-parning)
  Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addAppearance(BLE_APPEARANCE_HID_KEYBOARD);
  Bluefruit.Advertising.addService(blehid);
  Bluefruit.Advertising.start();

  // Konfigurera mikrofonens ingång
  pinMode(micPin, INPUT);

  Serial.println("BLE HID-tangentbord redo.");
}

void loop() {
  // Läs av mikrofonens ljudnivå
  int soundLevel = analogRead(micPin);

  // Beräkna glidande medelvärde för att hantera bakgrundsljud
  averageLevel = (averageLevel * 9 + soundLevel) / 10;

  // Visa aktuellt ljudnivåvärde och medelvärde i seriell monitor
  Serial.print("Ljudnivå: ");
  Serial.print(soundLevel);
  Serial.print("  Medelvärde: ");
  Serial.println(averageLevel);

  // Kontrollera om ljudnivån överstiger tröskeln
  if (averageLevel > threshold) {
    Serial.println("Högt ljud upptäckt!");

    // Kontrollera om tangentbordet är anslutet via BLE
    if (Bluefruit.connected()) {
      Serial.println("Enheten är ansluten som tangentbord.");

      // Skicka bokstaven "A" via keyPress och keyRelease
      blehid.keyPress(0x04);      // KEY_A har värdet 0x04 enligt HID-specifikationen
      Serial.println("Skickar bokstaven A...");
      delay(500);                 // Vänta längre för att se om det hjälper
      blehid.keyRelease();        // Släpp tangenten
      Serial.println("Tangenten släppt.");
    } else {
      Serial.println("Tangentbord ej anslutet via BLE.");
    }

    // Liten paus för att undvika flera avtryck
    delay(500);
  }

  delay(10); // Stabilitetsfördröjning
}


I have tryed: “keyPress(KEY_A)” Does not work. I have tryed: “blehid.keyPress(0x28)” does not work.
I have tryed: " blehid.keyboardWrite(‘A’);" does not work and as you se abowe: “blehid.keyPress(0x04);” does not work.
Any ideas?
Cheers Fredrik