-
I have an NVidia Shield TV which supports bluetooth controllers. I also have a universal remote which comes with a hardwired box with HDMI connection, LAN connection and IR and Bluetooth radio's on board. At first, they promised supporting the NVidia Shield TV, but they never got around on implementing that. Recently they've added control over HDMI-CEC, but my setup doesn't cater for it and not all customers have HDMI-CEC capabilities at home.
So i've set my mind on writing my own custom driver (which is supported) and i've already implemented my first custom driver for my set top box. These drivers are written in NodeJS. So i've searched the web for a BLE HID implementation in NodeJS (i ended up with Noble) but i never found a working example. What i did find are various implementations for the espressif chip, which eventually led me to here.
Since your javascript counterpart can interface with Noble, i was hoping that i can use Puck.js, with Noble in my own NodeJS application to advertise as HID device, pair with my Shield TV and then use any external input, e.g. MQTT, Website etc. to send keystrokes or button presses to the Shield TV.
Long story short; can this be done with Puck.js + Noble, running on Linux hardware with a USB BLE dongle setup correctly?
Ideally, if not yet paired to an NVidia Shield, the solution needs to start in 'advertising' mode, so i can pair it from my NVidia shield, then after seen as 'ble_hid_controls' device from the Shield, i think i can work from there...
Thanx for the reply @Gordon actually i don't own any pucks, so i was wondering if it could be done by software alone.. E.g. in this example http://www.espruino.com/BLE+Keyboard there is this snippet;
What services does it create? What characteristics does it expose? which code does it call in NRF or Noble eventually?