rastagraffix

rastagraffix

UNIX Dinosaur

Member Since 5 years ago

The Frobozz Magic Homing Pigeon Company, Vancouver, Canada

Experience Points
1
follower
Lessons Completed
1
follow
Lessons Completed
2
stars
Best Reply Awards
6
repos

9 contributions in the last year

Pinned
⚡ Things to Make MacOS Sane
⚡ UNIX Toys
⚡ Bits for Plan 9 systems.
⚡ Watchy - An Open Source E-Ink Smartwatch
⚡ Plan 9 from User Space
⚡ Plan 9 from Bell Labs, with contributions.
Activity
Jan
17
2 days ago
Activity icon
issue

rastagraffix issue comment mooltipass/moolticute

rastagraffix
rastagraffix

macos: application lockup after battery reconditioning

Expected behavior

Application should carry on as normal.

Actual behavior

After reconditioning completes, a popup window confirms the reconditioning is done. But it is impossible to dismiss the popup. Clicking "OK" toggles the button background colour to blue, but nothing else happens. Because the popup is modal it is impossible to close it from the window manager, or otherwise interact with the main application. In the toolbar application menu the "Quit" option is greyed out, and CMD-Q doesn't work; the only way to terminate the app is via Force Quit, or to shoot it from the command line.

Step by step guide to reproduce the problem'

Start a battery reconditioning cycle. Wait for it to complete.

Moolticute Version

Operating System

MacOS 12.1 MacBook Pro (M1 Pro CPU)

Mooltipass Extension

Moolticute 0.53.7

Mooltipass Device

Mini BLE

Activity icon
issue

rastagraffix issue mooltipass/moolticute

rastagraffix
rastagraffix

macos: application lockup after battery reconditioning

Expected behavior

Application should carry on as normal.

Actual behavior

After reconditioning completes, a popup window confirms the reconditioning is done. But it is impossible to dismiss the popup. Clicking "OK" toggles the button background colour to blue, but nothing else happens. Because the popup is modal it is impossible to close it from the window manager, or otherwise interact with the main application. In the toolbar application menu the "Quit" option is greyed out, and CMD-Q doesn't work; the only way to terminate the app is via Force Quit, or to shoot it from the command line.

Step by step guide to reproduce the problem'

Start a battery reconditioning cycle. Wait for it to complete.

Moolticute Version

Operating System

MacOS 12.1 MacBook Pro (M1 Pro CPU)

Mooltipass Extension

Moolticute 0.53.7

Mooltipass Device

Mini BLE

Jan
16
3 days ago
Activity icon
issue

rastagraffix issue comment mooltipass/minible

rastagraffix
rastagraffix

Allows connection from the OS Bluetooth management panel

Missing feature

Ability to connect the MiniBLE from the Computer Bluetooth management panel.

Justification

When several devices are paired, the MiniBLE will connect to any of them. If I want to use it from a specific device, I have the choice between using the Disconnect Device option until it reconnect to the device I want or disabling Bluetooth on the other device to force the MiniBLE to connect to the only remaining device.

An alternative would be to be able to connect to a specific device from the MiniBLE menu.

Workarounds

Mentioned above

rastagraffix
rastagraffix

If an os deletes a pairing just because it can’t connect, that’s just broken imho. And any auth app that can’t contact the mini BLE is going to time out pretty quickly, so I don’t see battery drain being a real issue.

Neither of these cases is any different than if the mini BLE lost connectivity because you walked away from the other device with the mini in your pocket. This sort of thing happens all the time without causing the end of civilization :-)

started
started time in 3 days ago
Activity icon
issue

rastagraffix issue comment mooltipass/minible

rastagraffix
rastagraffix

Query the time whenever TOTP is requested

Currently, there are cases when the miniBLE hasn't synced yet by the time a TOTP response is requested. This results in login errors. The temporary fix is to restart moolticute. As discussed on IRC, there are several solutions, but the easiest would be if the miniBLE requested the time from moolticute (or e.g. the future android companion) every time a TOTP response is requested.

rastagraffix
rastagraffix

To0 be clearer, not every device you connect to will support the Time service. But if you're already connected to a device to do TOTP, it doesn't cost anything to see if GATT advertises the standard Time service and, if it does, connect to that and sync the time.

In theory this should work if you're connected to any iOS, iPadOS, or MacOS device.

Activity icon
issue

rastagraffix issue comment mooltipass/minible

rastagraffix
rastagraffix

Query the time whenever TOTP is requested

Currently, there are cases when the miniBLE hasn't synced yet by the time a TOTP response is requested. This results in login errors. The temporary fix is to restart moolticute. As discussed on IRC, there are several solutions, but the easiest would be if the miniBLE requested the time from moolticute (or e.g. the future android companion) every time a TOTP response is requested.

rastagraffix
rastagraffix

All my Apple devices support the standard Time service, although they don't advertise it or allow connections to it over BLE unless you're a paired and connected device. I'm currently working out the logistics of this on the Watchy; it's a much lower power alternative to the current SNTP over Wifi scheme they use.

Activity icon
issue

rastagraffix issue comment mooltipass/minible

rastagraffix
rastagraffix

Allows connection from the OS Bluetooth management panel

Missing feature

Ability to connect the MiniBLE from the Computer Bluetooth management panel.

Justification

When several devices are paired, the MiniBLE will connect to any of them. If I want to use it from a specific device, I have the choice between using the Disconnect Device option until it reconnect to the device I want or disabling Bluetooth on the other device to force the MiniBLE to connect to the only remaining device.

An alternative would be to be able to connect to a specific device from the MiniBLE menu.

Workarounds

Mentioned above

rastagraffix
rastagraffix

Doesn't allow what, specifically? The MiniBLE is allowed to refuse any incoming connection request if it so chooses. So if, e.g., my iPhone initiates a connection request to the miniBLE and the user rejects the connection, the miniBLE is free to not respond to the connection request, in which case the connection never establishes itself and the initiator will eventually time out.

Or is there something else you're talking about?

Activity icon
issue

rastagraffix issue comment mooltipass/minible

rastagraffix
rastagraffix

Allows connection from the OS Bluetooth management panel

Missing feature

Ability to connect the MiniBLE from the Computer Bluetooth management panel.

Justification

When several devices are paired, the MiniBLE will connect to any of them. If I want to use it from a specific device, I have the choice between using the Disconnect Device option until it reconnect to the device I want or disabling Bluetooth on the other device to force the MiniBLE to connect to the only remaining device.

An alternative would be to be able to connect to a specific device from the MiniBLE menu.

Workarounds

Mentioned above

rastagraffix
rastagraffix

The whole BLE management interface needs a rethink. In particular, control over the BLE session management should be solely under the control of the Moolti hardware. This leads to the device being in one of three states:

  • bluetooth OFF (radio off)
  • bluetooth IDLE (radio on, no active BLE connection)
  • bluetooth CONNECTED (radio on, BLE connected to another device)

When the Moolti is IDLE it listens for incoming connection requests from paired devices, but doesn't accept them until the connection request is confirmed by the user (thumbwheel yes/no). The connection prompt must display the remove devices name as stored in the pairing database. When the Moolti is CONNECTED it talks only to the connected device (present behaviour, and required by the BLE spec).

When the user disconnects a running BLE session, the Moolti goes back to IDLE state.

In this way the user always knows which device the Moolti is talking to.

The would result in the following Bluetooth menu items/operations:

  • Status: show the current state (OFF, IDLE, CONNECTED), and if CONNECTED, the name of the device it is talking to. It might be useful to also display the Bluetooth MAC address, to help in varification of pairing requests, although this could instead be made available under the top-level Settings menu (where it should also be possible to set the Moolti's advertised BLE name).
  • Off/On: turn the radio on or off. If transitioning to off, perform an implicit disconnect.
  • Connect: connect to a paired device. A submenu would let you scroll through the list of paired devices to select the connection target.
  • Disconnect: disconnect the current session, if any.
  • Pairing: enter the device pairing menu. This would let you display the list of currently paired devices, and to initiate a new pairing request.

This greatly streamline the Bluetooth management interface, and ensures there is no ambiguity as to which device (if any) the Moolti is talking to. The later is critical in helping the user avoid sending credentials to the wrong device.

Activity icon
issue

rastagraffix issue comment mooltipass/moolticute

rastagraffix
rastagraffix

macOS - the app crash randomly

Expected behavior

The app doesn't crash

Actual behavior

Sometimes, after a while, the application crash.

Step by step guide to reproduce the problem

I don't have any steps, I just use the computer like every day, and the more time I spend without rebooting the more likely moolticute might crash.

Moolticute Version

0.53.7

Operating System

Mention if you are using either:

  • MacOS

Mooltipass Device

  • The Mooltipass Mini BLE
rastagraffix
rastagraffix

I've just confirmed that killing off the three mooltipass processes will let me re-launch the app. This is version 0.53.7 BTW. I have the log window open now so maybe I can catch something in the act. But it would be useful to know where on disk these logs are being written to.

Activity icon
issue

rastagraffix issue comment mooltipass/moolticute

rastagraffix
rastagraffix

macOS - the app crash randomly

Expected behavior

The app doesn't crash

Actual behavior

Sometimes, after a while, the application crash.

Step by step guide to reproduce the problem

I don't have any steps, I just use the computer like every day, and the more time I spend without rebooting the more likely moolticute might crash.

Moolticute Version

0.53.7

Operating System

Mention if you are using either:

  • MacOS

Mooltipass Device

  • The Mooltipass Mini BLE
rastagraffix
rastagraffix

I don't know if this is the same thing, but what I'm seeing is that after the first couple of launches of moolticute, further launch attempts are no-ops. I.e. no window pops up. Also, the toolbar icon vanishes, although it might be there but hidden under the camera cutout -- this bites some other apps as well. What's weird is that a ps shows moolticute is in fact running:

: [email protected]:/Users/lyndon/hush/pws; ps -efww|grep -i moolti
: [email protected]:/Users/lyndon/hush/pws; 8 /Applications/Moolticute.app/Contents/MacOS/moolticute
  502  8623  8621   0  9:41pm ??         0:01.52 /Applications/Moolticute.app/Contents/MacOS/moolticuted

This is on an M1 MacBook Pro running MacOS 12.1.

pull request

rastagraffix pull request sqfmi/Watchy

rastagraffix
rastagraffix

Tag lib version with 'dev' for the dev branch and tighten up the

About menu to allow for longer lib version strings. This makes it easier to tell which branch the firmware was built from.

push

rastagraffix push rastagraffix/Watchy

rastagraffix
rastagraffix

Tag lib version with 'dev' for the dev branch and tighten up the About menu to allow for longer lib version strings.

commit sha: 7bd9cf3ab0b6471383e8b36da243ef0d37b6de61

push time in 3 days ago
started
started time in 3 days ago
Activity icon
issue

rastagraffix issue comment mooltipass/minible

rastagraffix
rastagraffix

Presence of previously paired device and absence of paired device prevent MiniBLE to enter sleep mode

Expected behavior

previously paired devices should not be able to bother the miniBLE

Actual behavior

previously paired devices and absence of currently paired device prevent the miniBLE to enter sleep mode

Step by step guide to reproduce the problem

  • pair MiniBLE with two devices (or more)
  • delete pairings
  • the miniBle enter in a Going to Sleep --> Wake up cycle
  • disable Bluetooth on all computer
  • miniBLE finally enter sleep mode

Additional steps

  • Enable Bluetooth on all previously paired PC
  • Pair with one of the PC and connect
  • Disable Bluetooth on the connected PC
  • the miniBle enter in a Going to Sleep --> Wake up cycle

Note :

  • Sometimes when pairings are deleted it go to home screen (locked) but seems to be still connected in the Windows Bluetooth panel.
  • Sometimes shows a Many Failed Connections error
  • Battery is going down fast (80% to 30% the time of checking and writing this procedure)

Firmware Version

AUX MCU version: 0.46 Main MCU version: 0.55

Operating System

Mention if you are using either:

  • Windows 10
  • iOS 14.0
rastagraffix
rastagraffix

It seems that if an unpaired device tries to connect and the Mooltipass is not in discoverable mode, it should just ignore the request and go back to sleep. The current behaviour seems like a bit of a DoS vector in that it allows anyone to increase the battery drain, potentially locking out the user if local usb power is unavailable.

Activity icon
issue

rastagraffix issue comment mooltipass/minible

rastagraffix
rastagraffix

Query the time whenever TOTP is requested

Currently, there are cases when the miniBLE hasn't synced yet by the time a TOTP response is requested. This results in login errors. The temporary fix is to restart moolticute. As discussed on IRC, there are several solutions, but the easiest would be if the miniBLE requested the time from moolticute (or e.g. the future android companion) every time a TOTP response is requested.

rastagraffix
rastagraffix

Another option would be to poll the Bluetooth Time service on the paired device.

Jan
15
4 days ago
Activity icon
fork

rastagraffix forked 0intro/plan9-contrib

⚡ Plan 9 from Bell Labs, with contributions.
rastagraffix Updated
fork time in 3 days ago
Jan
13
6 days ago
push

rastagraffix push rastagraffix/Watchy

rastagraffix
rastagraffix

Properly handle metric temperature w/o wifi

rastagraffix
rastagraffix

use units params so it can be overridden

commit sha: f79f7482c17fa843beaf3bbafbb47e7334f34503

push time in 5 days ago
push

rastagraffix push rastagraffix/Watchy

rastagraffix
rastagraffix

Properly handle metric temperature w/o wifi

rastagraffix
rastagraffix

use units params so it can be overridden

commit sha: f79f7482c17fa843beaf3bbafbb47e7334f34503

push time in 5 days ago
Jan
10
1 week ago
Activity icon
issue

rastagraffix issue sqfmi/watchy-docs

rastagraffix
rastagraffix

BMA423 Datsheet Link is Broken

A search of the Bosch site doesn't turn up any product data, but I was able to track down this link which still works: ] https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BMA423-DS000.pdf

I've stashed away a copy of the PDF as well, in case the above link vanishes, too.

Jan
9
1 week ago
Activity icon
issue

rastagraffix issue comment sqfmi/Watchy

rastagraffix
rastagraffix

Bluetooth protocol and Gadgetbridge support

I know this is a stretch, but I want to to tie up #90 and #102, and create a single location for discussion of ideas towards this goal.

One of the advantages of smart watches is the ability to connect to a paired mobile, over Bluetooth or BLE, and get info pushed/pulled from it, such as notifications. While this can also be used to provide additional Internet-based info to the watch, such as weather or time sync, Watchy currently already does it, so while it would be nice to have, I don't think that's a priority (even though it could be done in the long run).

https://codeberg.org/Freeyourgadget/Gadgetbridge is an open source project that aims at supporting a number of watches, proprietary or not. This means most of the mobile-side handling could already be taken care off.

The main thing we'd need to focus on would be the Bluetooth protocol to be able to make both devices communicate. We could then implement it within Gadgetbridge at the same time as in the Watchy code. An alternative would be to just use an already supported protocol (my heart would got to the Pebble's for that, but there's nothing forcing our hand here).

rastagraffix
rastagraffix

I'm all in on this. Now that I'm able to push firmware to my Watchy my first major goal is to get it syncing time from my iPhone over BLE. I don't consider SNTP a viable solution for a couple of reasons: 1) I'm often out of range of the configured Wifi network, and 2) BLE consumes a lot less current when the radios are active.

Ditto for weather data.

My first stumbling block is figuring out how to get BLE to pair with the iPhone -- iOS won't offer its Time service to an unpaired BLE device. When I have that solved it should be easy to have the watch poll the phone for the time every hour or so.

And, as with my Pebble, it would be nice if I could selectively push notifications to the watch, but that assumes we can leave the Watchy BLE radio powered up to receive the notifications without killing the battery.

push

rastagraffix push rastagraffix/Watchy

rastagraffix
rastagraffix

Add an "About Watchy" menu item.

This replaces "Check Battery" and adds the following info:

  • Firmware version
  • RTC chip type

The firmware version is #defined in Watchy.h. There might be a way to do this that's friendlier to the library release process, but I'll leave that up to the people who actually build the releases.

I plan to extend the About menu with some radio-related info as I work on getting BLE pairing working with my iPhone.

rastagraffix
rastagraffix

small tweaks to "About Watchy"

commit sha: c5b43d2eac7781a60cd066d29e0e96b6c07321fb

push time in 1 week ago
Jan
7
1 week ago
Jan
5
2 weeks ago
push

rastagraffix push rastagraffix/Watchy

rastagraffix
rastagraffix

Updated NTP to use NTPClient.h

rastagraffix
rastagraffix

commit sha: 26f5ac20c0a254ed8e414a14202cabd47787f63f

push time in 2 weeks ago
Activity icon
issue

rastagraffix issue comment sqfmi/Watchy

rastagraffix
rastagraffix

Add an "About Watchy" menu item.

This replaces "Check Battery" and adds the following info:

  • Firmware version
  • RTC chip type

The firmware version is #defined in Watchy.h. There might be a way to do this that's friendlier to the library release process, but I'll leave that up to the people who actually build the releases.

I plan to extend the About menu with some radio-related info as I work on getting BLE pairing working with my iPhone.

rastagraffix
rastagraffix

Some notes on versioning ...

I just noticed a 1.3.2 release snuck out just before my pull request, which brands the firmware as 1.3.1. To keep things in sync the release cycle needs a small tweak ...

Assuming version 1.3.3 is about to be released, the last step before building the release is to update the version in Watchy.h to "1.3.3", then run the build. If the build comes out clean, immediately tag the repo with "v1.3.3", then push to github. When the push completes, immediately change the version string in Watchy.h to "1.3.4dev" (or whatever the next anticipated release number is) and commit. Note the "dev" suffix -- this indicates a build off the head.

Following this convention makes it easy to identify the origin of the firmware. If it has a bare version number (e.g. 1.3.3) we know it corresponds to the v1.3.3 tag in the repo. Anything with a suffix on the version number was built from the head. It's not perfect, but it saves a lot of time triaging PRs.

Activity icon
issue

rastagraffix issue comment sqfmi/Watchy

rastagraffix
rastagraffix

Need documentation on how to compile the whole library

Hi sqfmi team,

This project needs a documentation on how to compile the whole library so we can test changes on it and not only changes on faces or new elements. Currently the only setup provided use the already compiled on with t;he Arduino IDE, but it would be great to be able to change code inside the library as well, instead of only on faces files.

Thanks for the great work you are doing here. I'm still loving my Watchy. <3

rastagraffix
rastagraffix

What I did (paths are specific to my Mac):

  1. Uninstall the Watchy library using the Library Manager.
  2. cd into my Arduino work directory (/Users/lyndon/Documents/Arduino).
  3. cd into the 'libraries' subdirectory.
  4. git clone [email protected]//Watchy

The Arduino IDE should now find the Watchy library in its search path. It will automatically build the library components if they are missing or out of date.

Now you should be able to hack on the Watchy library source; it will rebuild any out of date files on the fly. Note that you won't be able to edit the library source using the Arduino IDE -- you'll have to use an external editor. That's not a problem for me since I do most of my editing outside of the Arduino app anyway.

pull request

rastagraffix pull request sqfmi/Watchy

rastagraffix
rastagraffix

Add an "About Watchy" menu item.

This replaces "Check Battery" and adds the following info:

  • Firmware version
  • RTC chip type

The firmware version is #defined in Watchy.h. There might be a way to do this that's friendlier to the library release process, but I'll leave that up to the people who actually build the releases.

I plan to extend the About menu with some radio-related info as I work on getting BLE pairing working with my iPhone.

push

rastagraffix push rastagraffix/Watchy

rastagraffix
rastagraffix

Add an "About Watchy" menu item.

This replaces "Check Battery" and adds the following info:

  • Firmware version
  • RTC chip type

The firmware version is #defined in Watchy.h. There might be a way to do this that's friendlier to the library release process, but I'll leave that up to the people who actually build the releases.

I plan to extend the About menu with some radio-related info as I work on getting BLE pairing working with my iPhone.

commit sha: bf7425c7dc56de86c081583642a450e2a8d9b46b

push time in 2 weeks ago
Activity icon
fork

rastagraffix forked 0intro/plan9-contrib

⚡ Plan 9 from Bell Labs, with contributions.
rastagraffix Updated
fork time in 2 weeks ago
Activity icon
fork

rastagraffix forked 9fans/plan9port

⚡ Plan 9 from User Space
rastagraffix Updated
fork time in 2 weeks ago
Jan
4
2 weeks ago
Activity icon
issue

rastagraffix issue rastagraffix/macos

rastagraffix
rastagraffix

nvi Makefile uses BSD make syntax

This needs conversion to POSIX format to work with the current MacOS make(1).

Previous