Piattaforma PlatformIO - framework: Arduino - board: rpipicow - core: earlephilhower
S.O.: windows 10 - Scheda: Raspberry Pi Pico W
Devo collegate la scheda Pico W al PC tramite bluetooth creando contemporaneamente sia una connessione seriale, che una connessione HID per la simulazione di una tastiera/mouse/gamepad tramite interfaccia HID.
Per fare ciò utilizzo le librerie SeriaBT (che usa rfcomm) e PicoBluethhotHID (incluse nel packeages arduino-pico di earlephilhower) , ma ho dovuto modificarle un poco per farle funzionare insieme, perché così come sono scritte, non permettono di funzionare contemporaneamente ed inoltre creano il buffer per '_hid_service_buffer' troppo piccolo.
Sono riuscito a farle funzionare entrambe insieme, anche se ancora non ho capito alcune dinamiche, nel senso che se avvio prima la PicobluethootHID e poi la SerialBT il tutto funziona, ma se inverto l'avvio, non funzionano più, ma questo al momento non è un problema (magari capirò il perché più avanti).
L'interfaccia HID mi crea regolarmente la tastiera, il mouse ed il gamepad HID tramite bluetooth (come una qualsiasi altra tastiera/mouse wireless bluethoot).
La connessione seriale bluetooth mi crea su windows due porte seriali (non so perchè due, ma anche questo lo capirò successivamente).
Quello che ho bisogno di risolvere adesso per proseguire le mie prove è un altro problema. Il PICO W si deve collegare con un applicazione su windows che riconosce la seriale che ha un determinato VID (vendor identification device) ed io non riesco ad assegnarlo alla porta seriale creata tramite bluetooth, ovvero, lo imposto, ma il programma su windows non lo trova.
Per impostare il VID uso questo istruzione:
device_id_create_sdp_record(_device_id_sdp_service_buffer, sdp_create_service_record_handle(), (uint16_t) DEVICE_ID_VENDOR_ID_SOURCE_BLUETOOTH, (uint16_t) DEVICE_VID, (uint16_t) DEVICE_PID, 1);
sdp_register_service(_device_id_sdp_service_buffer);
Se qualcuno può darmi una dritta o sa indicarmi documentazione che non sono riuscito a trovare, lo ringrazio.
Purtroppo ho notato che l'argomento Bluetooth sul Pico Pi W è poco documentato ed anche il codice un poco trascurato. Ho cercato nel forum, ma non ho trovato nulla. In seguito sempre su questo argomento vi farò altre domande se riesco a risolvere prima questo. Grazie