Holobot week 48


Kjartan & Stian

We are using Arduino Nano 33 BLE Sense and it has a bluetooth module that has the GATT profile hardwired in it. To connect to the Hololens we need a HID bluetooth profile or a A2DP bluetooth profile. HID(Human Interface Device Profile) is bluetooth devices that provides support for devices such as mouse, joysticks, buttons and keyboard. The profile that connects with the Hololens is HID that are more secure such as the mouse and keyboard. A2DP(Advanced Audio Distribution Profile) is bluetooth devices that stream audio from one device to another. GATT(Generic Attribute Profile) is a general service profile for Bluetooth Low Energy protocol.

The problem for us is that the hardware we have is GATT and we did think that it was possible to trick it into thinking it was a HID, but that is not possible with the hardware we have. Arduino Nano 33 BLE Sense has restricted access to the BLE portion of it and it is not possible for us to gain access to it and change it. GATT devices can be seen by the Hololens but it can not connect with them without an application that acts as a companion app and we do not possess the know how to create something like that. 

This gives us a conundrum on how to solve this problem, we have come up with some solutions that can work: 

  1. We can try to make an app in the Hololens that can act as a companion app to the Arduino. 
  2. We can try to control the Arduino with a phone that can accept the GATT profile on the Arduino. 
  3. We can try to get modules that act as HID profile on the Arduino and then continue with our original plan. 
  4. We can go the route of IoT and connect the Arduino and Hololens together on the web.

https://forum.arduino.cc/index.php?topic=195003.0 arduino nano project using another BLE dongle to make the connection. ( V-USB)

https://forum.arduino.cc/index.php?topic=634980.0 user asking how to use nano as keyboard, gets answer it is not possible.

https://arduino.stackexchange.com/questions/39635/arduino-nano-as-hid-keyboard

four answer that nano is not reprogrammable. “Unlike and official Arduino Uno, which uses a re-programmable ATmega16U2 for an USB to UART interface, a Nano uses an non re-porgrammable FTDI chip. – gre_gor Jun 19 ’17 at 13:44

https://forums.hololens.com/discussion/7327/hololens-arduino-bluetooth user ditching his bluetooth as it doesnt support rfcomm, but instead using IoT with raspberry pi3 to make a connection with hololens.

https://github.com/NicoHood/HID possible solution to look at with the use of Ardunio Mega instead. 

https://forum.arduino.cc/index.php?topic=370439.0 another thread that the user gets a response that nano is not suitable for the job.

https://www.adafruit.com/product/2479 a thought to get new BLE from adafruit but new cost and shipped from USA.

http://unicodeexception.com/2017/11/hololens-iot-awesomeness/ a solution with hololens app that connects through Azure IoT Hub. a possible solution to research and learn from.

https://medium.com/code3100/week-5-part2-arduino-the-hololens-can-this-work-f1138fa1d076 a project using a Wii nunchuck to control HoloLens objects, but by the use of a BLE with HID profile.

Is this usable?

https://www.silabs.com/community/wireless/bluetooth/knowledge-base.entry.html/2015/08/06/hid-over-gatt_keyboa-6XcD

https://stackoverflow.com/questions/52246453/bluetoothledevice-on-hololens-with-unity

https://github.com/bitbank2/Nano_33_Gamepad This libraries has HID encoding

https://github.com/jpbrucker/BLE_HID/blob/master/doc/HIDService.md

https://os.mbed.com/docs/mbed-os/v5.15/apis/ble.html

https://forum.arduino.cc/index.php?topic=686465.0https://github.com/csash7/mbed-BLE-Mouse This has some code in it. It might be a solution.

Mads

The new design is nearly complete. It is much more compact and robust, and reliable. The tracks are fully 3D printed, and uses strings of PLA filament to attach the individual “bricks” together. This is both sturdy and flexible, although it does have a lot less grip. This can easily be solved by attaching rubber later on. I will go in depth about the grippers, tracks and the assembly next week, but for now there is a more pressing matter.

The new DC motors that we have ordered may arrive to late unfortunately. Due to Covid-19, they are currently delayed by 10 -15 days which mean they may arrive a few days before the presentation or after. So I am currently looking for a plan B, to utilize another set of motors and create an adapter. The current drive wheels are designed for the axel from the new set of motors, which is directly attached normal to the DC motor. It is a tight space to work with, but we will hopefully find a solution that works incase the proper motors arrive late.


Leave a Reply