• v1.1.0 bec703c300

    v1.1.0 Stable

    Elara6331 released this 2023-05-03 20:30:55 +00:00 | 18 commits to master since this release

    Hello! As you can likely tell, some things have changed. I've changed my name and my domain. I've put a permanent redirect route on my reverse proxy, so all the old links should continue working. They'll just redirect to the new addresses.

    I've been pretty busy because of the aforementioned changes, and I haven't been able to work on ITD for a while. I'm back now and should be able to work on my projects again.

    This release adds a few things. First of all, thanks to @yannickulrich, FUSE support has been added to ITD! That allows you to mount the PineTime's filesystem as a drive if your OS supports it. FUSE can be enabled by adding

    enabled = true

    to the bottom of your ITD config file. By default, the filesystem will be mounted at /tmp/itd/mnt. This can be changed by setting the fuse.mountpoint setting like so:

    enabled = true
    mountpoint = "/home/elara/pinetime-mnt"

    Another thing that was changed was the socket protocol. It's been switched to DRPC, which should improve reliability and fix some itctl and itgui bugs. Because the protocol has changed, make sure you have the same versions of itd, itctl, and itgui because mismatched versions won't be able to talk to each other. In most cases, your package manager should handle this automatically.

    The fyne toolkit was updated, which means itgui now has a new theme! Look at the README for updated screenshots. It also allows itgui to work well on the PinePhone. I've tested it out on my PinePhone Pro and it worked great.

    Lastly, ITD will now gracefully shut down each component before closing. This wasn't required before because none of the components relied on being able to do cleanup, but the new FUSE component does, so it's been added.

    Thanks to everyone who has contributed. I really appreciate your work.

    I hope you enjoy using ITD!


    1c0c89b Switch badge to self-hosted CI
    954e653 update itctl usage screen to current output
    23f9344 Remove pactl dependencies (Arsen6331/infinitime#6)
    7ba6438 Remove gitm config as it's no longer needed
    5699375 copy mpris implementation from infinitime library to itd, where it really belongs
    8ee8c39 fixed type in comment about DBus
    f3f6617 Switch version.txt target to use go generate
    6a92eba Add archlinux package to goreleaser config
    b3be8e7 Fix goreleaser aur config
    9f0ca5a Move mpris out of pkg directory and run gofumpt
    131a16d Add tests
    15b5d28 Warn when Koanf read fails (#47)
    d41872a Switch to autogenerated DRPC framework
    c9444e2 Restructure and revise README
    01919e6 Fix dependencies
    b656c69 Add connection multiplexing, fixing itgui
    94ec82c Properly close multiplexed streams
    3d02ff5 Use correct paths in README
    b8746cc Run formatter
    a787e58 Use multiplexed connection in NewFromConn()
    33f772d Add doc comments
    053f8f5 Update itgui screenshots
    19a9f64 Move multiplexing code into separate module
    4dec1d7 Add error handling for RPC registration functions
    7768070 Added FUSE support (#55)
    510f183 Run formatter
    6d24693 Mention FUSE support in README
    a900699 Create new type for node kinds
    92acdee Removed unreachable code
    6667ba5 Set some log levels to Debug
    ee5cb17 Use type switch for syscallErr
    5ce8390 Use EINVAL for Invalid Offset error in FUSE
    f7ac772 Gracefully shut down each component before exiting
    e002390 Update go.mod domain
    9998915 Update domain
    858edb0 Only send call notification for incoming calls
    25220cf Update goreleaser config for new name/domain

  • v1.0.0 4a397d4c1e

    v1.0.0 Stable

    Elara6331 released this 2022-11-18 05:33:45 +00:00 | 68 commits to master since this release

    This release adds some exciting new features.

    First of all, navigation is now supported in ITD via PureMaps! Unfortunately, it is the only supported navigation provider, because it is the only one that implements a DBus interface for me to use. ITD will automatically detect when PureMaps is opened, so you will not have to start it before ITD.

    Navigation was the last missing feature in ITD. Now that it's implemented, ITD contains every feature supported by the firmware, which is why I've decided to release this as 1.0.0.

    Secondly, itgui now has the ability to upload resources via a new icon at the bottom of the fs tab. It looks like a file with a settings icon in the top left. Upon clicking that, you can choose your resource zip, and itgui will take care of the rest, providing real-time progress until it's done.

    I have also switched from using Appveyor CI to my own self-hosted Woodpecker instance. This means I will be able to create much more complicated pipelines and opens the possibility for pre-compiled binaries of itgui in the future, which should make it much easier for users to install.


    • 4a397d4 Add go generate script for calculating version number
    • 992eb2e Add navigation support via PureMaps
    • 908bd7d Add resource loading to ITD FS tab
    • c5fb3e1 Add woodpecker config
    • c97fcae Mention navigation support in README
  • v0.0.9 f33b3d2b56

    v0.0.9 Stable

    Elara6331 released this 2022-10-25 20:54:51 +00:00 | 73 commits to master since this release

    This release contains some important bug fixes.

    Various bugs in resource loading have been fixed, so if anyone has been having issues loading resources, try with this release, and it should work. The biggest issue was that I was asking BlueZ for the device's MTU, but BlueZ only recently added that feature, so people with older bluetooth stacks would have it return 0, which I then subtracted from, causing the unsigned integer to overflow, making ITD think it could send all the data at once.

    A really annoying bug in the weather feature that I have been experiencing along with KieranC has been fixed as well. Essentially, InfiniTime was expecting a UNIX timestamp with the timezone offset added, but ITD was sending normal timestamps, which do not have this offset. This meant that weather would work only in UTC- timezones, and since I am in a UTC- timezone while KieranC is in a UTC+ timezone, it worked for me but not for KieranC, and we couldn't figure out why for months. This has now been fixed, so whenever a weather UI is added, ITD will be completely ready.


    • 006f245 Add warning if current InfiniTime doesn't support BLE FS (#29)
    • c645872 Handle error events in itctl res load command (#29)
    • f33b3d2 Update infinitime library
    • 03f3968 Update infinitime library
    • dea92c6 Update infinitime library
    • d232340 Update infinitime library
  • v0.0.8 1e072a3540

    Version 0.0.8 Stable

    Elara6331 released this 2022-10-16 20:37:38 +00:00 | 79 commits to master since this release

    This release adds the new resource loading feature from InfiniTime 1.11.0. There are two ways to use it. You can either do it as part of the firmware upgrade process, or separately.

    To do it as part of the DFU process, simply use the -r flag to specify the path of the resources file.


    itctl fw upg -a ~/Downloads/pinetime-mcuboot-app-dfu-1.11.0.zip -r ~/Downloads/infinitime-resources-1.11.0.zip

    To do it separately, use the new res load command.


    itctl res load ~/Downloads/infinitime-resources-1.11.0.zip

    On top of this, itctl now has more features for BLE FS. You can now use fs mkdir -p and fs rm -r for the same functionality as the Linux commands with the same name.


    • a25b2e3 Add --allow-untrusted to Alpine example
    • 4efa438 Add -r for rm and -p for mkdir
    • 851f197 Add LoadResources() to API
    • 2d0b64d Add installation instructions for major distros
    • f639fef Add resource loading as part of DFU
    • 6f87980 Add resource loading to itctl
    • 2d0db1d Close channel once resource uploading complete
    • cf24c5a Fix file extension of Alpine example
    • 1e072a3 Merge pull request 'Add resource loading to ITD' (#28) from resource-loading into master
    • 5efafe9 Remove download binary badge and add new AUR badge
    • fca64af Remove example comments from goreleaser config
  • v0.0.7 271510d528

    Version 0.0.7 Stable

    Elara6331 released this 2022-09-01 18:50:49 +00:00 | 90 commits to master since this release

    Apart from a few bugfixes, this release mostly focuses on DevOps. Specifically, ITD now uses GoReleaser to automatically create and publish releases. This includes building packages for Debian/Ubuntu, Fedora (or any other RPM-based distro), Alpine, and Arch.

    From now on, when a new release is created, GoReleaser will run automatically and generate all the packages mentioned, then automatically generate a Gitea release and upload the new version to the AUR as itd-bin. This will make installation a lot easier for users.


  • v0.0.6 19bacf29b2

    Version 0.0.6 Stable

    Elara6331 released this 2022-07-31 09:41:53 +00:00 | 97 commits to master since this release

    First of all, to vastly improve maintainability and modularity, ITD has switched from directly reading JSON from a socket to using a custom RPC library I created. These changes will not be visible to users, but will allow features to be added much more quickly in the future.

    A typo has been fixed (Czeck -> Czech)

    If your system has multiple bluetooth adapters or if it uses a nonstandard ID, you can now change the bluetooth adapter ID in the config or by using the ITD_BLUETOOTH_ADAPTER environment variable.

    Go's context feature is now used much more in order to allow propagating things like kill signals. This will increase maintainability and make it much harder to create bugs related to forgetting to release resources.

    Finally, the biggest change in this release: itgui has been completely rewritten to make full use of the many changes in ITD since it was first written. Two new features were added as well. The FS screen allows access to the BLE FS API for manipulating the filesystem on the PineTime, and the Metrics screen allows visualizing data collected by ITD's metrics feature.

    This release is not too big in terms of features most users will be using, but it does improve maintainability a lot, allowing new features to be added much more quickly in the future.

  • v0.0.5 d318c584da

    Version 0.0.5 Stable

    Elara6331 released this 2022-04-16 11:28:53 +00:00 | 146 commits to master since this release

    I would like to start by saying that I have not released in a while because of mental health issues I was having that prevented me from working on this project. I am better now and hope to work on this more actively.

    This release adds a lot of stuff.

    First of all, there is now support for whitelisting MAC addresses of particular watches. This will ensure that ITD always connects to the correct watch(es).

    Second, this release contains everything that was added to InfiniTime since 1.8.0.

    It adds both the new BLE Filesystem API and the BLE Weather API. While there is no way to view the weather data from InfiniTime yet, ITD updates the data every hour, so it will be ready when that is added.

    This release also changes the behavior of ITD so that rather than removing the device when too many disconnects occur, it logs the occurrence so that the user may decide whether they want to remove the device. This fixes issue #10.

    Also, this is the first release which contains commits made by other contributors. These commits add the Romanian language and some more emoticons to the translit package. I'd like to thank @eugenr and @earboxer for their contributions.

    Overall, this is a very big release, and I'd like to thank everyone who has helped me, both by contributing, and otherwise.

    Edit: It has been brought to my attention that there was a typo in my README and in the code. I misspelled "Czech" as "Czeck". This has been fixed. The fix will come out in the next release as I cannot add to this one, so for now, use the misspelled version in the config if you need it.

  • v0.0.4 552f19676b

    Version 0.0.4 Stable

    Elara6331 released this 2021-10-25 16:48:37 +00:00 | 204 commits to master since this release

    This release changes many things.

    First of all, I have figured out the issues with DFU. It turns out InfiniTime was sending responses a few milliseconds before I started waiting for them, causing itd to miss them. This release fixes that issue.

    Second, I have implemented the motion service coming in InfiniTime 1.7.0. This feature is not out yet in InfiniTime, so you will need to load a 1.7.0 test build on your PineTime to use it until 1.7.0 is released.

    There is now more comprehensive itd documentation at https://itd.arsenm.dev.

    The socket API was improved in this release and is now documented at https://itd.arsenm.dev/socket/.

    An API package was added to itd and both itctl and itgui were updated to use it. This means itgui can now work with only one socket connection, rather than at least two as it used before. It also makes it much easier to maintain as a change in the api package applies to both itctl and itgui.

    itctl now has the ability to watch values such as heart rate, battery level, step count, and motion. For example, itctl watch motion will keep printing the motion values continuously.

  • v0.0.3 01bf493c77

    Version 0.0.3 Stable

    Elara6331 released this 2021-10-06 03:40:10 +00:00 | 238 commits to master since this release

    This version adds transliteration for PineTime notifications. The following transliterators are available:

    • eASCII
    • Scandinavian
    • German
    • Hebrew
    • Greek
    • Russian
    • Ukranian
    • Arabic
    • Farsi
    • Polish
    • Lithuanian
    • Estonian
    • Icelandic
    • Czeck
    • French
    • Armenian
    • Korean
    • Chinese
    • Emoji

    Many of these were translated from GadgetBridge's code. Specifically from the following files:

    I have also added language-specific maps to allow for the same letters to be transliterated differently for each language, and adapted GadgetBridge's code accordingly.

  • v0.0.2 b186f77bea

    Version 0.0.2 Stable

    Elara6331 released this 2021-08-22 22:07:45 +00:00 | 256 commits to master since this release

    This release does not contain any new features, just some bug fixes:

    • Disable cobra completion command (itctl)
    • Use pair timeout option (itd)
    • Fix issue where PineTime would not connect if not connected soon after starting. (itd)