-
Can you please try this: https://forum.espruino.com/comments/16645817/
If you have the SPL06 we might be able to reset the sensor without a full discharge:
https://forum.espruino.com/conversations/381706/#comment16770729 -
On Linux you can "simply" restart the bluetooth service. The discussion about that is here: https://github.com/espruino/BangleApps/issues/349
-
-
Well all acc-sensors I have seen so far do return the earth acceleration when not moving. Also they are usually not accurate enough to measure any other acceleration that is a lot smaller then 1G.
If you want to know the acceleration of your car I would try the GPS. You should be able to get enough satellites in your car.
-
-
-
-
-
-
-
-
Hi,
when an application gets updated we can get the changes from its corresponding changelog.
But what about new apps? Is there a list somewhere?
If not, it probably can be automatically generated with git? e.g. Date of first commit on its folder, assuming that date of first commit and date of merge to master are not far apart. Probably a bash script like this:for appfolder in apps/*/; do echo "$(git log --follow --format=%ai $appfolder) $appfolder" | tail -n 1 ; done | sort -r
-
-
-
-
-
-
The additional zero is inserted in bluez hog-lib.c in the "if (hog->has_report_id)"-block . Unfortunately "report->id" is zero at this time.
-
-
At least now I understand why hidkbd.app.js sends 9 bytes instead of 8: Since there are now two collections instead of only one as in ble_hid_keyboard.js the report id (2 for keyboard) needs to be prefixed. Unfortunately Linux still seem to think it is 0:
drivers/hid/hid-core.c: undefined report_id 0 received
What Linux receives is:
cat /sys/kernel/debug/hid/0005:0000:0000.0003/events
report (size 10) (numbered) = 00 02 00 00 52 00 00 00 00 00..10 bytes
-
Found a parser:
https://eleccelerator.com/usbdescreqparser/0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x06, // Usage (Keyboard)
0xA1, 0x01, // Collection (Application)
0x85, 0x02, // Report ID (2)
0x05, 0x07, // Usage Page (Kbrd/Keypad)
0x19, 0xE0, // Usage Minimum (0xE0)
0x29, 0xE7, // Usage Maximum (0xE7)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x75, 0x01, // Report Size (1)
0x95, 0x08, // Report Count (8)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x01, // Report Count (1)
0x75, 0x08, // Report Size (8)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x95, 0x05, // Report Count (5)
0x75, 0x01, // Report Size (1)
0x05, 0x08, // Usage Page (LEDs)
0x19, 0x01, // Usage Minimum (Num Lock)
0x29, 0x05, // Usage Maximum (Kana)
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x01, // Report Count (1)
0x75, 0x03, // Report Size (3)
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0x95, 0x06, // Report Count (6)
0x75, 0x08, // Report Size (8)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x73, // Logical Maximum (115)
0x05, 0x07, // Usage Page (Kbrd/Keypad)
0x19, 0x00, // Usage Minimum (0x00)
0x29, 0x73, // Usage Maximum (0x73)
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x05, // Usage (0x05)
0x15, 0x00, // Logical Minimum (0)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x75, 0x08, // Report Size (8)
0x95, 0x02, // Report Count (2)
0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
0xC0, // End Collection
0x05, 0x0C, // Usage Page (Consumer)
0x09, 0x01, // Usage (Consumer Control)
0xA1, 0x01, // Collection (Application)
0x85, 0x01, // Report ID (1)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x75, 0x01, // Report Size (1)
0x95, 0x01, // Report Count (1)
0x09, 0xB5, // Usage (Scan Next Track)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xB6, // Usage (Scan Previous Track)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xB7, // Usage (Stop)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xB8, // Usage (Eject)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xCD, // Usage (Play/Pause)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xE2, // Usage (Mute)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xE9, // Usage (Volume Increment)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xEA, // Usage (Volume Decrement)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0xC0, // End Collection
// 127 bytes -
I don't think this is true now. HID just needs to be enabled when you pair it with your device
Well I'm new to this, but when exactly is boot0.js executed, when I pair with another device or a single time on start?
The code in boot0.js is basically:
var s = require('Storage').readJSON('setting.json',1)||{}; if (s.HID) { // Human interface device Bangle.HID = "(...)"; NRF.setServices({}, {uart:true, hid:Bangle.HID}); }
so when HID is not enabled in settings while starting and boot0.js is only executed on start the NRF.setServices() never happens, correct?
-
Thanks, the bootloader code was a missing part. I read it "HID needs to be enabled when turning on the clock" or else it will not work.
Still it does not work with the Linux computer, but it works with an Android (the 9 byte version, not the 8 byte) after restarting the clock.
Can I assume Android was the primary target this was tested with?
Any do you have a commented version of the hid description in the bootloader somewhere? The longterm goal is a joystick app using the accelerometer as stick and I guess the description would need modification for that.
Also does it work for anyone with a Linux PC? -
Sorry, I don't see where you get the variable length from, the ble_hid_keyboard.js also does only 8 arguments? According to the source the function accepts different length. Still I don't know if 9 arguments is correct since I have not read the hid documentation yet. Also jswrap_ble_sendHIDReport() states:
Send a USB HID report. HID must first be enabled with
NRF.setServices({}, {hid: hid_report})
so the setServices() call is really missing here.
I can't even run the version 0.14 on my Bangle.js 1. I get low memory error. I say we just remove it from the supported list for this app.