<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>eculocate, branch HEAD</title>
<subtitle>Unnamed repository; edit this file &#39;description&#39; to name the repository.
</subtitle>
<entry>
<id>bcef63ceb10f64fe8af5bc65e9f164901002359f</id>
<published>2026-03-06T19:54:49Z</published>
<updated>2026-03-06T19:54:49Z</updated>
<title type="text">append to exitign file if recording is stipped and restarted</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/bcef63ceb10f64fe8af5bc65e9f164901002359f.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit bcef63ceb10f64fe8af5bc65e9f164901002359f
parent 190e34accf48649bb03d43c6d5e0d5eb8a9eda32
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri,  6 Mar 2026 19:54:49 +0000

append to exitign file if recording is stipped and restarted

</content>
</entry>
<entry>
<id>190e34accf48649bb03d43c6d5e0d5eb8a9eda32</id>
<published>2026-03-06T19:54:36Z</published>
<updated>2026-03-06T19:54:36Z</updated>
<title type="text">make output path configurable</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/190e34accf48649bb03d43c6d5e0d5eb8a9eda32.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 190e34accf48649bb03d43c6d5e0d5eb8a9eda32
parent 65ca99be34bdd7887754faf6493854e0df82cdb0
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri,  6 Mar 2026 19:54:36 +0000

make output path configurable

</content>
</entry>
<entry>
<id>65ca99be34bdd7887754faf6493854e0df82cdb0</id>
<published>2026-03-06T19:47:00Z</published>
<updated>2026-03-06T19:47:00Z</updated>
<title type="text">remoe unused imports</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/65ca99be34bdd7887754faf6493854e0df82cdb0.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 65ca99be34bdd7887754faf6493854e0df82cdb0
parent e512961a921390ca3bf4656b8eba7504679fbbc2
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri,  6 Mar 2026 19:47:00 +0000

remoe unused imports

</content>
</entry>
<entry>
<id>e512961a921390ca3bf4656b8eba7504679fbbc2</id>
<published>2026-03-06T19:45:19Z</published>
<updated>2026-03-06T19:45:19Z</updated>
<title type="text">support config file in eculocate-gtk</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/e512961a921390ca3bf4656b8eba7504679fbbc2.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit e512961a921390ca3bf4656b8eba7504679fbbc2
parent 207d44712301eb3ef2387ddd057dfe9e8c2cf636
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri,  6 Mar 2026 19:45:19 +0000

support config file in eculocate-gtk

</content>
</entry>
<entry>
<id>207d44712301eb3ef2387ddd057dfe9e8c2cf636</id>
<published>2026-03-06T18:03:45Z</published>
<updated>2026-03-06T18:03:45Z</updated>
<title type="text">client: parse config file instead of hardcoding key pathname</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/207d44712301eb3ef2387ddd057dfe9e8c2cf636.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 207d44712301eb3ef2387ddd057dfe9e8c2cf636
parent bfc083b421ba7e508201acacee187561ddea550d
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri,  6 Mar 2026 18:03:45 +0000

client: parse config file instead of hardcoding key pathname

</content>
</entry>
<entry>
<id>bfc083b421ba7e508201acacee187561ddea550d</id>
<published>2026-03-05T22:15:14Z</published>
<updated>2026-03-05T22:15:14Z</updated>
<title type="text">plan for key management</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/bfc083b421ba7e508201acacee187561ddea550d.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit bfc083b421ba7e508201acacee187561ddea550d
parent 9bf7671c9f677ce3bca8a34c8e211baea021fc88
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Thu,  5 Mar 2026 22:15:14 +0000

plan for key management

</content>
</entry>
<entry>
<id>9bf7671c9f677ce3bca8a34c8e211baea021fc88</id>
<published>2026-03-05T22:08:26Z</published>
<updated>2026-03-05T22:08:26Z</updated>
<title type="text">remove outdated rambling</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/9bf7671c9f677ce3bca8a34c8e211baea021fc88.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 9bf7671c9f677ce3bca8a34c8e211baea021fc88
parent 03a9f178c9c0b216dd4869f0da9d31ce7a23f11b
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Thu,  5 Mar 2026 22:08:26 +0000

remove outdated rambling

</content>
</entry>
<entry>
<id>03a9f178c9c0b216dd4869f0da9d31ce7a23f11b</id>
<published>2026-02-27T22:59:25Z</published>
<updated>2026-02-27T22:59:25Z</updated>
<title type="text">crop to content</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/03a9f178c9c0b216dd4869f0da9d31ce7a23f11b.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 03a9f178c9c0b216dd4869f0da9d31ce7a23f11b
parent 921114952a0ea89a70ae7cc8ec168557378e7664
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 27 Feb 2026 22:59:25 +0000

crop to content

</content>
</entry>
<entry>
<id>921114952a0ea89a70ae7cc8ec168557378e7664</id>
<published>2026-02-27T21:17:37Z</published>
<updated>2026-02-27T21:17:37Z</updated>
<title type="text">show recording progress</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/921114952a0ea89a70ae7cc8ec168557378e7664.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 921114952a0ea89a70ae7cc8ec168557378e7664
parent b7da1ba2f5615f3127adc498c55ea101c3a3fe49
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 27 Feb 2026 21:17:37 +0000

show recording progress

</content>
</entry>
<entry>
<id>b7da1ba2f5615f3127adc498c55ea101c3a3fe49</id>
<published>2026-02-27T20:56:05Z</published>
<updated>2026-02-27T20:56:05Z</updated>
<title type="text">hook up start button to start/stop recording</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/b7da1ba2f5615f3127adc498c55ea101c3a3fe49.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit b7da1ba2f5615f3127adc498c55ea101c3a3fe49
parent be599129baafc4e86576fc56ae5f977816e3124a
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 27 Feb 2026 20:56:05 +0000

hook up start button to start/stop recording

</content>
</entry>
<entry>
<id>be599129baafc4e86576fc56ae5f977816e3124a</id>
<published>2026-02-27T17:20:36Z</published>
<updated>2026-02-27T17:20:36Z</updated>
<title type="text">makefile target for privkey.bin</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/be599129baafc4e86576fc56ae5f977816e3124a.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit be599129baafc4e86576fc56ae5f977816e3124a
parent 4081780bf6d1a3898864d45516b786739f0a1c7e
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 27 Feb 2026 17:20:36 +0000

makefile target for privkey.bin

</content>
</entry>
<entry>
<id>4081780bf6d1a3898864d45516b786739f0a1c7e</id>
<published>2026-02-27T17:20:10Z</published>
<updated>2026-02-27T17:20:10Z</updated>
<title type="text">instantiate eculocate and show discovered services</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/4081780bf6d1a3898864d45516b786739f0a1c7e.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 4081780bf6d1a3898864d45516b786739f0a1c7e
parent b8a381879e0016e7920cd4583ca9ed8ae291e986
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 27 Feb 2026 17:20:10 +0000

instantiate eculocate and show discovered services

</content>
</entry>
<entry>
<id>b8a381879e0016e7920cd4583ca9ed8ae291e986</id>
<published>2026-02-24T22:52:37Z</published>
<updated>2026-02-26T19:57:25Z</updated>
<title type="text">installable gtk python &quot;hello world&quot; client</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/b8a381879e0016e7920cd4583ca9ed8ae291e986.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit b8a381879e0016e7920cd4583ca9ed8ae291e986
parent 7e149ee542d4c09028f303fa9dd3556c62e17e6d
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 24 Feb 2026 22:52:37 +0000

installable gtk python &quot;hello world&quot; client

</content>
</entry>
<entry>
<id>7e149ee542d4c09028f303fa9dd3556c62e17e6d</id>
<published>2026-02-24T22:33:34Z</published>
<updated>2026-02-26T19:57:25Z</updated>
<title type="text">add placeholder icon (untested)</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/7e149ee542d4c09028f303fa9dd3556c62e17e6d.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 7e149ee542d4c09028f303fa9dd3556c62e17e6d
parent bd98e6023418b514c77a9159eb932d705f95e594
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 24 Feb 2026 22:33:34 +0000

add placeholder icon (untested)

</content>
</entry>
<entry>
<id>bd98e6023418b514c77a9159eb932d705f95e594</id>
<published>2026-02-24T21:39:49Z</published>
<updated>2026-02-26T19:57:25Z</updated>
<title type="text">nix magic to package the eculocate.py client</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/bd98e6023418b514c77a9159eb932d705f95e594.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit bd98e6023418b514c77a9159eb932d705f95e594
parent b5b3941fa84211a99cfb70aa8490704cfca2595f
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 24 Feb 2026 21:39:49 +0000

nix magic to package the eculocate.py client

</content>
</entry>
<entry>
<id>b5b3941fa84211a99cfb70aa8490704cfca2595f</id>
<published>2026-02-21T14:45:32Z</published>
<updated>2026-02-21T14:45:32Z</updated>
<title type="text">android client: make it work again</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/b5b3941fa84211a99cfb70aa8490704cfca2595f.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit b5b3941fa84211a99cfb70aa8490704cfca2595f
parent adac607f1717b6a5cc1ecc582fc3b03467bbbc4b
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sat, 21 Feb 2026 14:45:32 +0000

android client: make it work again

</content>
</entry>
<entry>
<id>adac607f1717b6a5cc1ecc582fc3b03467bbbc4b</id>
<published>2026-02-20T22:26:06Z</published>
<updated>2026-02-20T22:26:06Z</updated>
<title type="text">ble client: don&#39;t hardcode ble address</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/adac607f1717b6a5cc1ecc582fc3b03467bbbc4b.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit adac607f1717b6a5cc1ecc582fc3b03467bbbc4b
parent 2448b243ac187b180588af824679bfdaa21e25e9
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 20 Feb 2026 22:26:06 +0000

ble client: don&#39;t hardcode ble address

</content>
</entry>
<entry>
<id>2448b243ac187b180588af824679bfdaa21e25e9</id>
<published>2026-02-20T00:41:28Z</published>
<updated>2026-02-20T00:41:28Z</updated>
<title type="text">ble client: extract classes</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/2448b243ac187b180588af824679bfdaa21e25e9.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 2448b243ac187b180588af824679bfdaa21e25e9
parent ad57be45af926241bc49a8c729e4cd088a6074fa
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 20 Feb 2026 00:41:28 +0000

ble client: extract classes

</content>
</entry>
<entry>
<id>ad57be45af926241bc49a8c729e4cd088a6074fa</id>
<published>2026-02-20T00:34:42Z</published>
<updated>2026-02-20T00:36:09Z</updated>
<title type="text">simplify ble</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/ad57be45af926241bc49a8c729e4cd088a6074fa.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit ad57be45af926241bc49a8c729e4cd088a6074fa
parent 16da247f5fe20e3f1fae591b8ba99a77b43be969
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 20 Feb 2026 00:34:42 +0000

simplify ble

send credentials as ssid + encrypted(secret) instead of resetting
current_network to indicate which one to use

it was kind of misleading as where there are two or more APs with the
same name and the user may suppose we are choosing a specific AP -
but we&#39;re not, we just set the name and assume the device will connect
to whiever is stronger

</content>
</entry>
<entry>
<id>16da247f5fe20e3f1fae591b8ba99a77b43be969</id>
<published>2026-02-17T12:42:22Z</published>
<updated>2026-02-17T12:42:22Z</updated>
<title type="text">remove unneeded mut</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/16da247f5fe20e3f1fae591b8ba99a77b43be969.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 16da247f5fe20e3f1fae591b8ba99a77b43be969
parent 218b7cdb27901b45ae5085d6eb19ce1f39e3c23a
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 17 Feb 2026 12:42:22 +0000

remove unneeded mut

</content>
</entry>
<entry>
<id>218b7cdb27901b45ae5085d6eb19ce1f39e3c23a</id>
<published>2026-02-17T12:37:59Z</published>
<updated>2026-02-17T12:37:59Z</updated>
<title type="text">ble: encrypt wifi password</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/218b7cdb27901b45ae5085d6eb19ce1f39e3c23a.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 218b7cdb27901b45ae5085d6eb19ce1f39e3c23a
parent 1a5314d2a390e84d0a817dbe2068b3a0fa659ef7
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 17 Feb 2026 12:37:59 +0000

ble: encrypt wifi password

BLE &quot;just works&quot; pairing dos not protect against active MITM,
so we need to handle this ourselves. Use nacl/libsodium
crypto_box to encrypt and authenticate the wifi password

this also adds a step to the interaction between client and device:
after writing the password, we now write a &quot;true&quot; to the &quot;connecting&quot;
characteristic to kick off the actual conection attempt.

</content>
</entry>
<entry>
<id>1a5314d2a390e84d0a817dbe2068b3a0fa659ef7</id>
<published>2026-02-15T17:57:07Z</published>
<updated>2026-02-15T17:57:07Z</updated>
<title type="text">make keypairs for secure ble</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/1a5314d2a390e84d0a817dbe2068b3a0fa659ef7.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 1a5314d2a390e84d0a817dbe2068b3a0fa659ef7
parent 4be552150423c5eb45335f73a1ef392eb23c1aa7
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 15 Feb 2026 17:57:07 +0000

make keypairs for secure ble

</content>
</entry>
<entry>
<id>4be552150423c5eb45335f73a1ef392eb23c1aa7</id>
<published>2026-02-15T17:56:18Z</published>
<updated>2026-02-15T17:56:18Z</updated>
<title type="text">ble: remove unused connection_state attribute</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/4be552150423c5eb45335f73a1ef392eb23c1aa7.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 4be552150423c5eb45335f73a1ef392eb23c1aa7
parent 4e0415b62b1bcbe1f4502ee021f2d982219bc738
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 15 Feb 2026 17:56:18 +0000

ble: remove unused connection_state attribute

</content>
</entry>
<entry>
<id>4e0415b62b1bcbe1f4502ee021f2d982219bc738</id>
<published>2026-02-15T17:13:24Z</published>
<updated>2026-02-15T17:13:24Z</updated>
<title type="text">notes</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/4e0415b62b1bcbe1f4502ee021f2d982219bc738.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 4e0415b62b1bcbe1f4502ee021f2d982219bc738
parent c15f26eef6dd1d50fdf47565eed55641d89a4964
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 15 Feb 2026 17:13:24 +0000

notes

</content>
</entry>
<entry>
<id>c15f26eef6dd1d50fdf47565eed55641d89a4964</id>
<published>2026-02-14T20:35:07Z</published>
<updated>2026-02-14T20:35:07Z</updated>
<title type="text">add crypto_box</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/c15f26eef6dd1d50fdf47565eed55641d89a4964.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit c15f26eef6dd1d50fdf47565eed55641d89a4964
parent 48968551cccf7e37de23766ecb108e53e0ee508d
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sat, 14 Feb 2026 20:35:07 +0000

add crypto_box

</content>
</entry>
<entry>
<id>48968551cccf7e37de23766ecb108e53e0ee508d</id>
<published>2026-02-14T20:34:14Z</published>
<updated>2026-02-14T20:34:14Z</updated>
<title type="text">add getrandom 0.2.17 with custom source</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/48968551cccf7e37de23766ecb108e53e0ee508d.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 48968551cccf7e37de23766ecb108e53e0ee508d
parent 85aa43b1e9e06a1604c8df8e0e41ea86d8dbf4c1
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sat, 14 Feb 2026 20:34:14 +0000

add getrandom 0.2.17 with custom source

</content>
</entry>
<entry>
<id>85aa43b1e9e06a1604c8df8e0e41ea86d8dbf4c1</id>
<published>2026-02-11T19:27:16Z</published>
<updated>2026-02-11T19:27:16Z</updated>
<title type="text">notes</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/85aa43b1e9e06a1604c8df8e0e41ea86d8dbf4c1.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 85aa43b1e9e06a1604c8df8e0e41ea86d8dbf4c1
parent 211cce207a638cde337567bb6faa624f375b4c9c
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 11 Feb 2026 19:27:16 +0000

notes

</content>
</entry>
<entry>
<id>211cce207a638cde337567bb6faa624f375b4c9c</id>
<published>2026-02-10T18:19:39Z</published>
<updated>2026-02-10T18:19:39Z</updated>
<title type="text">more link</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/211cce207a638cde337567bb6faa624f375b4c9c.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 211cce207a638cde337567bb6faa624f375b4c9c
parent b29f9459c4f86eb491d8b6795aa5ca248e99c0a6
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 10 Feb 2026 18:19:39 +0000

more link

</content>
</entry>
<entry>
<id>b29f9459c4f86eb491d8b6795aa5ca248e99c0a6</id>
<published>2026-02-04T19:49:21Z</published>
<updated>2026-02-04T19:49:21Z</updated>
<title type="text">to wit, todo</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/b29f9459c4f86eb491d8b6795aa5ca248e99c0a6.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit b29f9459c4f86eb491d8b6795aa5ca248e99c0a6
parent 7fa4a5d36b6ab121ebc6cd980b0552e2285cc60f
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 19:49:21 +0000

to wit, todo

</content>
</entry>
<entry>
<id>7fa4a5d36b6ab121ebc6cd980b0552e2285cc60f</id>
<published>2026-02-04T19:45:50Z</published>
<updated>2026-02-04T19:45:50Z</updated>
<title type="text">PRE-format the todo list</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/7fa4a5d36b6ab121ebc6cd980b0552e2285cc60f.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 7fa4a5d36b6ab121ebc6cd980b0552e2285cc60f
parent 00545725e63a9d7a77c5348a4377871994d5fc2f
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 19:45:50 +0000

PRE-format the todo list

</content>
</entry>
<entry>
<id>00545725e63a9d7a77c5348a4377871994d5fc2f</id>
<published>2026-02-04T19:35:33Z</published>
<updated>2026-02-04T19:35:33Z</updated>
<title type="text">fix syntax</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/00545725e63a9d7a77c5348a4377871994d5fc2f.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 00545725e63a9d7a77c5348a4377871994d5fc2f
parent b2c463b1c28e913b3e95a691f05f3a57d81ea26d
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 19:35:33 +0000

fix syntax

</content>
</entry>
<entry>
<id>b2c463b1c28e913b3e95a691f05f3a57d81ea26d</id>
<published>2026-02-04T19:30:06Z</published>
<updated>2026-02-04T19:30:06Z</updated>
<title type="text">&quot;make install&quot; to flash locally</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/b2c463b1c28e913b3e95a691f05f3a57d81ea26d.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit b2c463b1c28e913b3e95a691f05f3a57d81ea26d
parent a892593ea5248ec9a474b999f98ce1fe545149e7
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 19:30:06 +0000

&quot;make install&quot; to flash locally

</content>
</entry>
<entry>
<id>a892593ea5248ec9a474b999f98ce1fe545149e7</id>
<published>2026-02-04T18:59:46Z</published>
<updated>2026-02-04T18:59:46Z</updated>
<title type="text">sense-check docs and comments</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/a892593ea5248ec9a474b999f98ce1fe545149e7.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit a892593ea5248ec9a474b999f98ce1fe545149e7
parent 671c2a382cc4b2a53803c1fe7509c3e96e84e50a
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 18:59:46 +0000

sense-check docs and comments

</content>
</entry>
<entry>
<id>671c2a382cc4b2a53803c1fe7509c3e96e84e50a</id>
<published>2026-02-04T18:42:49Z</published>
<updated>2026-02-04T18:42:49Z</updated>
<title type="text">reset after configuring wifi, and if if doesn&#39;t work</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/671c2a382cc4b2a53803c1fe7509c3e96e84e50a.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 671c2a382cc4b2a53803c1fe7509c3e96e84e50a
parent d79b32c8bfcdf9f580658a097525a7831f842a6a
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 18:42:49 +0000

reset after configuring wifi, and if if doesn&#39;t work

</content>
</entry>
<entry>
<id>d79b32c8bfcdf9f580658a097525a7831f842a6a</id>
<published>2026-02-04T18:35:20Z</published>
<updated>2026-02-04T18:35:20Z</updated>
<title type="text">delete unused imports</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/d79b32c8bfcdf9f580658a097525a7831f842a6a.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit d79b32c8bfcdf9f580658a097525a7831f842a6a
parent cee50cd4a89d0aec8bff2575207a660c3c5ecc69
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 18:35:20 +0000

delete unused imports

</content>
</entry>
<entry>
<id>cee50cd4a89d0aec8bff2575207a660c3c5ecc69</id>
<published>2026-02-04T17:54:25Z</published>
<updated>2026-02-04T17:54:25Z</updated>
<title type="text">delete dead commented cde</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/cee50cd4a89d0aec8bff2575207a660c3c5ecc69.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit cee50cd4a89d0aec8bff2575207a660c3c5ecc69
parent 8506980e67333f19dcaa435d88302018c6538052
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 17:54:25 +0000

delete dead commented cde

</content>
</entry>
<entry>
<id>8506980e67333f19dcaa435d88302018c6538052</id>
<published>2026-02-04T00:48:20Z</published>
<updated>2026-02-04T00:48:20Z</updated>
<title type="text">update TODO</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/8506980e67333f19dcaa435d88302018c6538052.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 8506980e67333f19dcaa435d88302018c6538052
parent 601c7391a3715f7777a4bf56718f5cdfbdd70c2b
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 00:48:20 +0000

update TODO

</content>
</entry>
<entry>
<id>601c7391a3715f7777a4bf56718f5cdfbdd70c2b</id>
<published>2026-02-04T00:37:24Z</published>
<updated>2026-02-04T00:37:24Z</updated>
<title type="text">write selected wifi credentials to flash nvs</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/601c7391a3715f7777a4bf56718f5cdfbdd70c2b.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 601c7391a3715f7777a4bf56718f5cdfbdd70c2b
parent 2cfe436ac9e02c9bea7588041ace96ccb48580b0
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed,  4 Feb 2026 00:37:24 +0000

write selected wifi credentials to flash nvs

todo
- reboot after writing
- delete bad networks after failing to connect

</content>
</entry>
<entry>
<id>2cfe436ac9e02c9bea7588041ace96ccb48580b0</id>
<published>2026-02-02T21:19:39Z</published>
<updated>2026-02-02T21:19:39Z</updated>
<title type="text">scan wireless networks &amp; publish over ble</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/2cfe436ac9e02c9bea7588041ace96ccb48580b0.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 2cfe436ac9e02c9bea7588041ace96ccb48580b0
parent 938cb4fda0d48015bf89033904cb9d6cf03a1eac
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon,  2 Feb 2026 21:19:39 +0000

scan wireless networks &amp; publish over ble

does not actually connect yet

</content>
</entry>
<entry>
<id>938cb4fda0d48015bf89033904cb9d6cf03a1eac</id>
<published>2026-02-02T13:07:26Z</published>
<updated>2026-02-02T13:07:26Z</updated>
<title type="text">add licence</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/938cb4fda0d48015bf89033904cb9d6cf03a1eac.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 938cb4fda0d48015bf89033904cb9d6cf03a1eac
parent dcaa927ab185598a8a6916a68a1c73fd79676fd4
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon,  2 Feb 2026 13:07:26 +0000

add licence

</content>
</entry>
<entry>
<id>dcaa927ab185598a8a6916a68a1c73fd79676fd4</id>
<published>2026-02-01T22:54:29Z</published>
<updated>2026-02-01T22:54:29Z</updated>
<title type="text">don&#39;t need ssid and password to do a wifi scan</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/dcaa927ab185598a8a6916a68a1c73fd79676fd4.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit dcaa927ab185598a8a6916a68a1c73fd79676fd4
parent 6c4d64ce0e4a53765cac7ee360951acc7dbb46ba
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun,  1 Feb 2026 22:54:29 +0000

don&#39;t need ssid and password to do a wifi scan

</content>
</entry>
<entry>
<id>6c4d64ce0e4a53765cac7ee360951acc7dbb46ba</id>
<published>2026-02-01T16:45:53Z</published>
<updated>2026-02-01T16:45:53Z</updated>
<title type="text">demonstrate reading/writing a characteristic</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/6c4d64ce0e4a53765cac7ee360951acc7dbb46ba.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 6c4d64ce0e4a53765cac7ee360951acc7dbb46ba
parent f25a53908402b280f0090cf75e91c9ea8d379675
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun,  1 Feb 2026 16:45:53 +0000

demonstrate reading/writing a characteristic

</content>
</entry>
<entry>
<id>f25a53908402b280f0090cf75e91c9ea8d379675</id>
<published>2026-02-01T16:43:45Z</published>
<updated>2026-02-01T16:43:45Z</updated>
<title type="text">log when current_network_index is changed</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/f25a53908402b280f0090cf75e91c9ea8d379675.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit f25a53908402b280f0090cf75e91c9ea8d379675
parent a729199926b82e9102e0998998893bc56d2c384a
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun,  1 Feb 2026 16:43:45 +0000

log when current_network_index is changed

</content>
</entry>
<entry>
<id>a729199926b82e9102e0998998893bc56d2c384a</id>
<published>2026-02-01T15:27:30Z</published>
<updated>2026-02-01T15:27:30Z</updated>
<title type="text">PoC BLE support</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/a729199926b82e9102e0998998893bc56d2c384a.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit a729199926b82e9102e0998998893bc56d2c384a
parent 13b0868488f8137ad1bd059b876c404a1c8fef7e
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun,  1 Feb 2026 15:27:30 +0000

PoC BLE support

It advertises, and it enumerates some characteristics. None of them
are hooked up to anthing yet

</content>
</entry>
<entry>
<id>13b0868488f8137ad1bd059b876c404a1c8fef7e</id>
<published>2026-02-01T00:17:24Z</published>
<updated>2026-02-01T00:17:24Z</updated>
<title type="text">esp_radio Controller is shared between wifi, ble</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/13b0868488f8137ad1bd059b876c404a1c8fef7e.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 13b0868488f8137ad1bd059b876c404a1c8fef7e
parent 9a958895231bf44ec5a0155bcbde3d9f450ad20a
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun,  1 Feb 2026 00:17:24 +0000

esp_radio Controller is shared between wifi, ble

in preparation for adding ble, move its creation into main and
pass the object into wifi

</content>
</entry>
<entry>
<id>9a958895231bf44ec5a0155bcbde3d9f450ad20a</id>
<published>2026-01-31T21:22:43Z</published>
<updated>2026-01-31T21:22:43Z</updated>
<title type="text">update android client to use key</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/9a958895231bf44ec5a0155bcbde3d9f450ad20a.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 9a958895231bf44ec5a0155bcbde3d9f450ad20a
parent 923dbe6fa93261fd6cd871a13b56701bafd4b604
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sat, 31 Jan 2026 21:22:43 +0000

update android client to use key

</content>
</entry>
<entry>
<id>923dbe6fa93261fd6cd871a13b56701bafd4b604</id>
<published>2026-01-29T19:10:07Z</published>
<updated>2026-01-29T19:10:07Z</updated>
<title type="text">add session registration with signature checking</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/923dbe6fa93261fd6cd871a13b56701bafd4b604.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 923dbe6fa93261fd6cd871a13b56701bafd4b604
parent 0d92b907d2b0e6880ce0845381d2353e3bc99e94
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Thu, 29 Jan 2026 19:10:07 +0000

add session registration with signature checking

</content>
</entry>
<entry>
<id>0d92b907d2b0e6880ce0845381d2353e3bc99e94</id>
<published>2026-01-29T12:27:15Z</published>
<updated>2026-01-29T12:27:15Z</updated>
<title type="text">port android/termux client to use eculocate module</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/0d92b907d2b0e6880ce0845381d2353e3bc99e94.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 0d92b907d2b0e6880ce0845381d2353e3bc99e94
parent 341d192dce3a61838f539c659c9e0441442511d9
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Thu, 29 Jan 2026 12:27:15 +0000

port android/termux client to use eculocate module

</content>
</entry>
<entry>
<id>341d192dce3a61838f539c659c9e0441442511d9</id>
<published>2026-01-29T12:26:03Z</published>
<updated>2026-01-29T12:26:03Z</updated>
<title type="text">add callback method when services change</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/341d192dce3a61838f539c659c9e0441442511d9.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 341d192dce3a61838f539c659c9e0441442511d9
parent 9bbe366f9e4e4d2a2f4d8619391665503b354740
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Thu, 29 Jan 2026 12:26:03 +0000

add callback method when services change

</content>
</entry>
<entry>
<id>9bbe366f9e4e4d2a2f4d8619391665503b354740</id>
<published>2026-01-29T12:17:30Z</published>
<updated>2026-01-29T12:17:30Z</updated>
<title type="text">make eculocate usable as module</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/9bbe366f9e4e4d2a2f4d8619391665503b354740.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 9bbe366f9e4e4d2a2f4d8619391665503b354740
parent 0c5f205f917e54e13224c8c793e6d7723f5cd698
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Thu, 29 Jan 2026 12:17:30 +0000

make eculocate usable as module

run code at startup only if main

</content>
</entry>
<entry>
<id>0c5f205f917e54e13224c8c793e6d7723f5cd698</id>
<published>2026-01-29T12:15:22Z</published>
<updated>2026-01-29T12:15:22Z</updated>
<title type="text">remove unused attribute</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/0c5f205f917e54e13224c8c793e6d7723f5cd698.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 0c5f205f917e54e13224c8c793e6d7723f5cd698
parent 93eca2672d6b846c26caf3749ed22b2f9e69d3c2
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Thu, 29 Jan 2026 12:15:22 +0000

remove unused attribute

</content>
</entry>
<entry>
<id>93eca2672d6b846c26caf3749ed22b2f9e69d3c2</id>
<published>2026-01-28T17:53:38Z</published>
<updated>2026-01-29T12:06:28Z</updated>
<title type="text">separate start and stop</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/93eca2672d6b846c26caf3749ed22b2f9e69d3c2.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 93eca2672d6b846c26caf3749ed22b2f9e69d3c2
parent 84f1b93794c2e3762ee4a401a0030bb7880d0165
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 28 Jan 2026 17:53:38 +0000

separate start and stop

</content>
</entry>
<entry>
<id>84f1b93794c2e3762ee4a401a0030bb7880d0165</id>
<published>2026-01-28T17:50:24Z</published>
<updated>2026-01-28T17:50:24Z</updated>
<title type="text">remove unused attribute</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/84f1b93794c2e3762ee4a401a0030bb7880d0165.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 84f1b93794c2e3762ee4a401a0030bb7880d0165
parent 8251f461ecfed0baa973624aad0066b6964d4799
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 28 Jan 2026 17:50:24 +0000

remove unused attribute

</content>
</entry>
<entry>
<id>8251f461ecfed0baa973624aad0066b6964d4799</id>
<published>2026-01-28T17:43:49Z</published>
<updated>2026-01-28T17:43:49Z</updated>
<title type="text">I can&#39;t see you</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/8251f461ecfed0baa973624aad0066b6964d4799.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 8251f461ecfed0baa973624aad0066b6964d4799
parent 632cc8d654c1d9904f83c2c04f5baad64581f535
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 28 Jan 2026 17:43:49 +0000

I can&#39;t see you

</content>
</entry>
<entry>
<id>632cc8d654c1d9904f83c2c04f5baad64581f535</id>
<published>2026-01-28T17:38:28Z</published>
<updated>2026-01-28T17:38:28Z</updated>
<title type="text">I can&#39;t see you</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/632cc8d654c1d9904f83c2c04f5baad64581f535.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 632cc8d654c1d9904f83c2c04f5baad64581f535
parent 1fe9ddadca2e776564819ef088028ef53969b55d
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 28 Jan 2026 17:38:28 +0000

I can&#39;t see you

</content>
</entry>
<entry>
<id>1fe9ddadca2e776564819ef088028ef53969b55d</id>
<published>2026-01-28T17:30:24Z</published>
<updated>2026-01-28T17:30:24Z</updated>
<title type="text">rename property</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/1fe9ddadca2e776564819ef088028ef53969b55d.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 1fe9ddadca2e776564819ef088028ef53969b55d
parent 6cee87af1857a0a3b84a55d1b2c6d5182e6e22b5
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 28 Jan 2026 17:30:24 +0000

rename property

</content>
</entry>
<entry>
<id>6cee87af1857a0a3b84a55d1b2c6d5182e6e22b5</id>
<published>2026-01-28T17:10:13Z</published>
<updated>2026-01-28T17:10:13Z</updated>
<title type="text">print byte count while recording</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/6cee87af1857a0a3b84a55d1b2c6d5182e6e22b5.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 6cee87af1857a0a3b84a55d1b2c6d5182e6e22b5
parent 7e59e40883f085175627bf566f3cfd64714abe3b
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 28 Jan 2026 17:10:13 +0000

print byte count while recording

</content>
</entry>
<entry>
<id>7e59e40883f085175627bf566f3cfd64714abe3b</id>
<published>2026-01-28T01:08:44Z</published>
<updated>2026-01-28T01:08:44Z</updated>
<title type="text">cli client program</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/7e59e40883f085175627bf566f3cfd64714abe3b.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 7e59e40883f085175627bf566f3cfd64714abe3b
parent 7239e54166371a99dd81201b6e2462edd2277a6c
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 28 Jan 2026 01:08:44 +0000

cli client program

this is presently android.py minus the gui bits, but the plan is to
extract a module that can be used both from linux and from
termux-android

</content>
</entry>
<entry>
<id>7239e54166371a99dd81201b6e2462edd2277a6c</id>
<published>2026-01-28T01:06:20Z</published>
<updated>2026-01-28T01:06:20Z</updated>
<title type="text">rename client files</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/7239e54166371a99dd81201b6e2462edd2277a6c.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 7239e54166371a99dd81201b6e2462edd2277a6c
parent e6e7030ba6f7802f5362d43ea9d15a2d181dbb44
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 28 Jan 2026 01:06:20 +0000

rename client files

</content>
</entry>
<entry>
<id>e6e7030ba6f7802f5362d43ea9d15a2d181dbb44</id>
<published>2026-01-26T00:25:05Z</published>
<updated>2026-01-26T00:25:05Z</updated>
<title type="text">fix ota_write_chnk bug</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/e6e7030ba6f7802f5362d43ea9d15a2d181dbb44.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit e6e7030ba6f7802f5362d43ea9d15a2d181dbb44
parent fb59198f70ba9b110ba916b013977d04afba094c
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 26 Jan 2026 00:25:05 +0000

fix ota_write_chnk bug

somehow hadn&#39;t spotted we were not writing the start of the data, oops

</content>
</entry>
<entry>
<id>fb59198f70ba9b110ba916b013977d04afba094c</id>
<published>2026-01-25T00:33:14Z</published>
<updated>2026-01-25T00:44:03Z</updated>
<title type="text">remove read_all, shorten using Result</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/fb59198f70ba9b110ba916b013977d04afba094c.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit fb59198f70ba9b110ba916b013977d04afba094c
parent 0d86c641344f5ddbdbdff08bfb3f9f7432c82ad1
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 25 Jan 2026 00:33:14 +0000

remove read_all, shorten using Result

this has made the &quot;can&#39;t happen&quot; error messages a bit less helpful
but we will come back to that

</content>
</entry>
<entry>
<id>0d86c641344f5ddbdbdff08bfb3f9f7432c82ad1</id>
<published>2026-01-24T22:20:49Z</published>
<updated>2026-01-24T22:20:49Z</updated>
<title type="text">replace read_all with socket.read_exact</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/0d86c641344f5ddbdbdff08bfb3f9f7432c82ad1.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 0d86c641344f5ddbdbdff08bfb3f9f7432c82ad1
parent ebf60e64ad881fedd27fb2a6b37dd8ec06d8b1d3
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sat, 24 Jan 2026 22:20:49 +0000

replace read_all with socket.read_exact

</content>
</entry>
<entry>
<id>ebf60e64ad881fedd27fb2a6b37dd8ec06d8b1d3</id>
<published>2026-01-24T22:18:12Z</published>
<updated>2026-01-24T22:18:12Z</updated>
<title type="text">clean up crates</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/ebf60e64ad881fedd27fb2a6b37dd8ec06d8b1d3.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit ebf60e64ad881fedd27fb2a6b37dd8ec06d8b1d3
parent 04b71489b1082bf470564643b95fe2ac1286bee7
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sat, 24 Jan 2026 22:18:12 +0000

clean up crates

- remove conflicting versions of embedded-io-async
- delete bluetooth stuff we&#39;re not using

</content>
</entry>
<entry>
<id>04b71489b1082bf470564643b95fe2ac1286bee7</id>
<published>2026-01-24T00:09:45Z</published>
<updated>2026-01-24T00:09:45Z</updated>
<title type="text">replace join(join) with join3</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/04b71489b1082bf470564643b95fe2ac1286bee7.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 04b71489b1082bf470564643b95fe2ac1286bee7
parent 0937fc8b935e2e4f641ca4898e835dcc2bdce566
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sat, 24 Jan 2026 00:09:45 +0000

replace join(join) with join3

</content>
</entry>
<entry>
<id>0937fc8b935e2e4f641ca4898e835dcc2bdce566</id>
<published>2026-01-23T23:57:45Z</published>
<updated>2026-01-23T23:57:45Z</updated>
<title type="text">ota flash: print number of blocks</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/0937fc8b935e2e4f641ca4898e835dcc2bdce566.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 0937fc8b935e2e4f641ca4898e835dcc2bdce566
parent 14045825f3601924ae7f2fef2624eed08b508d51
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 23 Jan 2026 23:57:45 +0000

ota flash: print number of blocks

</content>
</entry>
<entry>
<id>14045825f3601924ae7f2fef2624eed08b508d51</id>
<published>2026-01-23T23:57:25Z</published>
<updated>2026-01-23T23:57:25Z</updated>
<title type="text">extract module for ota flashing</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/14045825f3601924ae7f2fef2624eed08b508d51.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 14045825f3601924ae7f2fef2624eed08b508d51
parent 3a0dbe5c907677ca5e8bda6c46ab4a0665fff985
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 23 Jan 2026 23:57:25 +0000

extract module for ota flashing

</content>
</entry>
<entry>
<id>3a0dbe5c907677ca5e8bda6c46ab4a0665fff985</id>
<published>2026-01-23T19:38:39Z</published>
<updated>2026-01-23T19:38:39Z</updated>
<title type="text">sign firmware with chained hashes</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/3a0dbe5c907677ca5e8bda6c46ab4a0665fff985.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 3a0dbe5c907677ca5e8bda6c46ab4a0665fff985
parent 2f517e991d9f2a5ac1d6f8d37593bcb978d91c4b
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 23 Jan 2026 19:38:39 +0000

sign firmware with chained hashes

signing each block individually is slow (well, verifying is slow) and
doesn&#39;t protect against a MITM e.g. reordering or dropping
blocks. Instead we use the technique described in &quot;How to Sign Digital
Streams (Gennaro, Rohatgi) where only the _first_ block is
cryptographically signed but each block contains a sha256 hash of its
successor block.

https://users.ece.cmu.edu/~adrian/731-sp04/readings/gr-stream-sig.pdf

</content>
</entry>
<entry>
<id>2f517e991d9f2a5ac1d6f8d37593bcb978d91c4b</id>
<published>2026-01-23T19:17:19Z</published>
<updated>2026-01-23T19:17:19Z</updated>
<title type="text">remove tabs</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/2f517e991d9f2a5ac1d6f8d37593bcb978d91c4b.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 2f517e991d9f2a5ac1d6f8d37593bcb978d91c4b
parent ef1b608ac2e6c46419c7acc9cdc685cb8e8b3c2e
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 23 Jan 2026 19:17:19 +0000

remove tabs

</content>
</entry>
<entry>
<id>ef1b608ac2e6c46419c7acc9cdc685cb8e8b3c2e</id>
<published>2026-01-21T23:27:16Z</published>
<updated>2026-01-21T23:27:16Z</updated>
<title type="text">add Cargo.toml to build deps</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/ef1b608ac2e6c46419c7acc9cdc685cb8e8b3c2e.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit ef1b608ac2e6c46419c7acc9cdc685cb8e8b3c2e
parent a3edd49f1039b0f27e676ffaf240816e4fca70df
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 21 Jan 2026 23:27:16 +0000

add Cargo.toml to build deps

</content>
</entry>
<entry>
<id>a3edd49f1039b0f27e676ffaf240816e4fca70df</id>
<published>2026-01-21T21:42:26Z</published>
<updated>2026-01-21T21:42:26Z</updated>
<title type="text">check signature on each block</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/a3edd49f1039b0f27e676ffaf240816e4fca70df.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit a3edd49f1039b0f27e676ffaf240816e4fca70df
parent cc9bf7897cdd8653b897d83c6bbae9383d43e3ec
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 21 Jan 2026 21:42:26 +0000

check signature on each block

</content>
</entry>
<entry>
<id>cc9bf7897cdd8653b897d83c6bbae9383d43e3ec</id>
<published>2026-01-21T18:32:57Z</published>
<updated>2026-01-21T18:32:57Z</updated>
<title type="text">rearrange OTA message format to sign each block</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/cc9bf7897cdd8653b897d83c6bbae9383d43e3ec.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit cc9bf7897cdd8653b897d83c6bbae9383d43e3ec
parent 1d03cfdd39c17de3c009320b2a4ecf678e8202dc
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Wed, 21 Jan 2026 18:32:57 +0000

rearrange OTA message format to sign each block

</content>
</entry>
<entry>
<id>1d03cfdd39c17de3c009320b2a4ecf678e8202dc</id>
<published>2026-01-20T23:38:49Z</published>
<updated>2026-01-20T23:38:49Z</updated>
<title type="text">convert otaclient to python</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/1d03cfdd39c17de3c009320b2a4ecf678e8202dc.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 1d03cfdd39c17de3c009320b2a4ecf678e8202dc
parent 25fffe6ae7525c139d1534e31c93967aa8350513
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 20 Jan 2026 23:38:49 +0000

convert otaclient to python

it seems easier than packaging the ruby ed25519 gem in nix

</content>
</entry>
<entry>
<id>25fffe6ae7525c139d1534e31c93967aa8350513</id>
<published>2026-01-20T23:15:26Z</published>
<updated>2026-01-20T23:15:26Z</updated>
<title type="text">make ed25519 keypair</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/25fffe6ae7525c139d1534e31c93967aa8350513.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 25fffe6ae7525c139d1534e31c93967aa8350513
parent a61e024cfd35a6bbc2feccc42137185480808075
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 20 Jan 2026 23:15:26 +0000

make ed25519 keypair

</content>
</entry>
<entry>
<id>a61e024cfd35a6bbc2feccc42137185480808075</id>
<published>2026-01-20T21:52:07Z</published>
<updated>2026-01-20T21:52:07Z</updated>
<title type="text">ed25519-dalek crate</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/a61e024cfd35a6bbc2feccc42137185480808075.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit a61e024cfd35a6bbc2feccc42137185480808075
parent 6a0614aade985e21b8b289eef0a1f32bcc2df952
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 20 Jan 2026 21:52:07 +0000

ed25519-dalek crate

</content>
</entry>
<entry>
<id>6a0614aade985e21b8b289eef0a1f32bcc2df952</id>
<published>2026-01-20T19:36:30Z</published>
<updated>2026-01-20T19:36:30Z</updated>
<title type="text">move profiles to the workspace root</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/6a0614aade985e21b8b289eef0a1f32bcc2df952.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 6a0614aade985e21b8b289eef0a1f32bcc2df952
parent 365687e60b00285ecc1c10b6904b13f733815934
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 20 Jan 2026 19:36:30 +0000

move profiles to the workspace root

</content>
</entry>
<entry>
<id>365687e60b00285ecc1c10b6904b13f733815934</id>
<published>2026-01-20T18:56:22Z</published>
<updated>2026-01-20T18:56:22Z</updated>
<title type="text">add some helpful make targets</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/365687e60b00285ecc1c10b6904b13f733815934.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 365687e60b00285ecc1c10b6904b13f733815934
parent d50244ceb002c1be66321042fa64db7652012e50
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 20 Jan 2026 18:56:22 +0000

add some helpful make targets

</content>
</entry>
<entry>
<id>d50244ceb002c1be66321042fa64db7652012e50</id>
<published>2026-01-20T18:54:48Z</published>
<updated>2026-01-20T18:54:48Z</updated>
<title type="text">ota: buffer data flash full erase blocks</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/d50244ceb002c1be66321042fa64db7652012e50.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit d50244ceb002c1be66321042fa64db7652012e50
parent 3b66428e93cf1818da661935eb6fb5a91346b298
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 20 Jan 2026 18:54:48 +0000

ota: buffer data flash full erase blocks

this speeds it up a lot because it&#39;s not doing mutiple erases for the
same block

</content>
</entry>
<entry>
<id>3b66428e93cf1818da661935eb6fb5a91346b298</id>
<published>2026-01-20T18:53:21Z</published>
<updated>2026-01-20T18:53:21Z</updated>
<title type="text">skip writing unchanged data</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/3b66428e93cf1818da661935eb6fb5a91346b298.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 3b66428e93cf1818da661935eb6fb5a91346b298
parent 68a564d3eb201f1b912b229a9fc381335d2223b3
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Tue, 20 Jan 2026 18:53:21 +0000

skip writing unchanged data

This makes less difference than I&#39;d hoped as so little of the data
is unchanged. Perhaps there&#39;s some way to persuade the linker to
place libraries first and the app code later in the image

</content>
</entry>
<entry>
<id>68a564d3eb201f1b912b229a9fc381335d2223b3</id>
<published>2026-01-19T21:11:06Z</published>
<updated>2026-01-19T21:11:06Z</updated>
<title type="text">send ota.bin in otaclient.rb</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/68a564d3eb201f1b912b229a9fc381335d2223b3.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 68a564d3eb201f1b912b229a9fc381335d2223b3
parent b9d02b07b57c200da8b160b02ddc0416f247101f
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 19 Jan 2026 21:11:06 +0000

send ota.bin in otaclient.rb

</content>
</entry>
<entry>
<id>b9d02b07b57c200da8b160b02ddc0416f247101f</id>
<published>2026-01-19T21:09:58Z</published>
<updated>2026-01-19T21:09:58Z</updated>
<title type="text">OTA support (replace stub)</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/b9d02b07b57c200da8b160b02ddc0416f247101f.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit b9d02b07b57c200da8b160b02ddc0416f247101f
parent b58453f9e706dc865af1fa0f16c13d28cb1b2b23
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 19 Jan 2026 21:09:58 +0000

OTA support (replace stub)

</content>
</entry>
<entry>
<id>b58453f9e706dc865af1fa0f16c13d28cb1b2b23</id>
<published>2026-01-19T21:06:27Z</published>
<updated>2026-01-19T21:06:27Z</updated>
<title type="text">add BUILD_ID env var so we can see if OTA worked</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/b58453f9e706dc865af1fa0f16c13d28cb1b2b23.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit b58453f9e706dc865af1fa0f16c13d28cb1b2b23
parent 1d97be3967c0c91e44ef2d42fa0b0ac4f95f62e3
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 19 Jan 2026 21:06:27 +0000

add BUILD_ID env var so we can see if OTA worked

</content>
</entry>
<entry>
<id>1d97be3967c0c91e44ef2d42fa0b0ac4f95f62e3</id>
<published>2026-01-19T21:05:19Z</published>
<updated>2026-01-19T21:05:19Z</updated>
<title type="text">squash switch to vendored</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/1d97be3967c0c91e44ef2d42fa0b0ac4f95f62e3.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 1d97be3967c0c91e44ef2d42fa0b0ac4f95f62e3
parent ab3ae01a0d54874b77b197e89b0c715b89a7608d
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 19 Jan 2026 21:05:19 +0000

squash switch to vendored

</content>
</entry>
<entry>
<id>ab3ae01a0d54874b77b197e89b0c715b89a7608d</id>
<published>2026-01-19T20:59:19Z</published>
<updated>2026-01-19T20:59:19Z</updated>
<title type="text">skip crc check if verify is unset</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/ab3ae01a0d54874b77b197e89b0c715b89a7608d.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit ab3ae01a0d54874b77b197e89b0c715b89a7608d
parent f5488d0e4eeb434c4524bbea973cb91676154260
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 19 Jan 2026 20:59:19 +0000

skip crc check if verify is unset

</content>
</entry>
<entry>
<id>f5488d0e4eeb434c4524bbea973cb91676154260</id>
<published>2026-01-19T19:42:05Z</published>
<updated>2026-01-19T19:42:05Z</updated>
<title type="text">switch to vendored esp-hal-ota</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/f5488d0e4eeb434c4524bbea973cb91676154260.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit f5488d0e4eeb434c4524bbea973cb91676154260
parent 283a4bcd1434d1e773857c4a50bf766fda1b8561
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 19 Jan 2026 19:42:05 +0000

switch to vendored esp-hal-ota

</content>
</entry>
<entry>
<id>283a4bcd1434d1e773857c4a50bf766fda1b8561</id>
<published>2026-01-19T19:40:07Z</published>
<updated>2026-01-19T19:40:07Z</updated>
<title type="text">Add &#39;vendor/esp-hal-ota/&#39; from commit &#39;57adf08fef483420bf44389594dc3355e766e8ab&#39;</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/283a4bcd1434d1e773857c4a50bf766fda1b8561.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 283a4bcd1434d1e773857c4a50bf766fda1b8561
parent 235dd59bdc9aaeae4ce3d243a4af9592382a750f
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 19 Jan 2026 19:40:07 +0000

Add &#39;vendor/esp-hal-ota/&#39; from commit &#39;57adf08fef483420bf44389594dc3355e766e8ab&#39;

git-subtree-dir: vendor/esp-hal-ota
git-subtree-mainline: 235dd59bdc9aaeae4ce3d243a4af9592382a750f
git-subtree-split: 57adf08fef483420bf44389594dc3355e766e8ab

</content>
</entry>
<entry>
<id>235dd59bdc9aaeae4ce3d243a4af9592382a750f</id>
<published>2026-01-18T23:16:39Z</published>
<updated>2026-01-18T23:16:39Z</updated>
<title type="text">delete unused and commented-out code</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/235dd59bdc9aaeae4ce3d243a4af9592382a750f.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 235dd59bdc9aaeae4ce3d243a4af9592382a750f
parent c625dc22ee9b1941982d45e7dd763f4ccee991f7
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 18 Jan 2026 23:16:39 +0000

delete unused and commented-out code

</content>
</entry>
<entry>
<id>c625dc22ee9b1941982d45e7dd763f4ccee991f7</id>
<published>2026-01-18T17:42:38Z</published>
<updated>2026-01-18T17:42:38Z</updated>
<title type="text">collapse the waveform</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/c625dc22ee9b1941982d45e7dd763f4ccee991f7.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit c625dc22ee9b1941982d45e7dd763f4ccee991f7
parent d56701ad8e422cdd4156b5c76517ec035f34ee8b
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 18 Jan 2026 17:42:38 +0000

collapse the waveform

</content>
</entry>
<entry>
<id>d56701ad8e422cdd4156b5c76517ec035f34ee8b</id>
<published>2026-01-18T17:38:58Z</published>
<updated>2026-01-18T17:39:29Z</updated>
<title type="text">add esp_hal_ota crate</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/d56701ad8e422cdd4156b5c76517ec035f34ee8b.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit d56701ad8e422cdd4156b5c76517ec035f34ee8b
parent c8dd5e04149aa135a001fbab3afe8f905c3c2ed2
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 18 Jan 2026 17:38:58 +0000

add esp_hal_ota crate

and do the manual setup steps for it

</content>
</entry>
<entry>
<id>c8dd5e04149aa135a001fbab3afe8f905c3c2ed2</id>
<published>2026-01-16T23:23:19Z</published>
<updated>2026-01-16T23:24:27Z</updated>
<title type="text">add tcp listener for OTA updating and session keys</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/c8dd5e04149aa135a001fbab3afe8f905c3c2ed2.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit c8dd5e04149aa135a001fbab3afe8f905c3c2ed2
parent 40536c8dcae395d519f9785baa5139e86ee610e3
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Fri, 16 Jan 2026 23:23:19 +0000

add tcp listener for OTA updating and session keys

* actual OTA updating not yet implemented, we read from the socket and
  throw the data away

* session keys are ignored

</content>
</entry>
<entry>
<id>40536c8dcae395d519f9785baa5139e86ee610e3</id>
<published>2026-01-12T21:57:50Z</published>
<updated>2026-01-12T21:57:50Z</updated>
<title type="text">write timestamp at front of each response</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/40536c8dcae395d519f9785baa5139e86ee610e3.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 40536c8dcae395d519f9785baa5139e86ee610e3
parent e37553d0d75509d2eb7bdc83ab0a8bfe938dc66f
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 12 Jan 2026 21:57:50 +0000

write timestamp at front of each response

</content>
</entry>
<entry>
<id>e37553d0d75509d2eb7bdc83ab0a8bfe938dc66f</id>
<published>2026-01-12T17:58:35Z</published>
<updated>2026-01-12T18:00:05Z</updated>
<title type="text">remove dead notes</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/e37553d0d75509d2eb7bdc83ab0a8bfe938dc66f.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit e37553d0d75509d2eb7bdc83ab0a8bfe938dc66f
parent 9be9d167c38fa699c203ce4a9cb0644547d23cdf
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 12 Jan 2026 17:58:35 +0000

remove dead notes

</content>
</entry>
<entry>
<id>9be9d167c38fa699c203ce4a9cb0644547d23cdf</id>
<published>2026-01-12T17:58:08Z</published>
<updated>2026-01-12T18:00:05Z</updated>
<title type="text">mdns implementation notes</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/9be9d167c38fa699c203ce4a9cb0644547d23cdf.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 9be9d167c38fa699c203ce4a9cb0644547d23cdf
parent c393353ecea879978e682bc403805d6379852f73
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 12 Jan 2026 17:58:08 +0000

mdns implementation notes

</content>
</entry>
<entry>
<id>c393353ecea879978e682bc403805d6379852f73</id>
<published>2026-01-12T17:57:46Z</published>
<updated>2026-01-12T18:00:05Z</updated>
<title type="text">flesh README out a little</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/c393353ecea879978e682bc403805d6379852f73.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit c393353ecea879978e682bc403805d6379852f73
parent 0d0d610794c751e61617031f1949f37b6bf2a728
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Mon, 12 Jan 2026 17:57:46 +0000

flesh README out a little

</content>
</entry>
<entry>
<id>0d0d610794c751e61617031f1949f37b6bf2a728</id>
<published>2026-01-11T23:46:34Z</published>
<updated>2026-01-11T23:46:34Z</updated>
<title type="text">change output path to /storage</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/0d0d610794c751e61617031f1949f37b6bf2a728.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 0d0d610794c751e61617031f1949f37b6bf2a728
parent 96d0485f9b39f818cd3b7a0bf0dd91abf4fbd564
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 11 Jan 2026 23:46:34 +0000

change output path to /storage

</content>
</entry>
<entry>
<id>96d0485f9b39f818cd3b7a0bf0dd91abf4fbd564</id>
<published>2026-01-11T23:35:43Z</published>
<updated>2026-01-11T23:35:43Z</updated>
<title type="text">update instructions</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/96d0485f9b39f818cd3b7a0bf0dd91abf4fbd564.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 96d0485f9b39f818cd3b7a0bf0dd91abf4fbd564
parent fe0d3dc2fe8d276d148db86631f136e9f82c25d4
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 11 Jan 2026 23:35:43 +0000

update instructions

</content>
</entry>
<entry>
<id>fe0d3dc2fe8d276d148db86631f136e9f82c25d4</id>
<published>2026-01-11T23:33:19Z</published>
<updated>2026-01-11T23:33:19Z</updated>
<title type="text">add dns-sd</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/fe0d3dc2fe8d276d148db86631f136e9f82c25d4.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit fe0d3dc2fe8d276d148db86631f136e9f82c25d4
parent 112499d237637b60c71e48528bf8a5f4a8a09646
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 11 Jan 2026 23:33:19 +0000

add dns-sd

</content>
</entry>
<entry>
<id>112499d237637b60c71e48528bf8a5f4a8a09646</id>
<published>2026-01-11T20:41:06Z</published>
<updated>2026-01-11T20:41:06Z</updated>
<title type="text">fix deprecation warning</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/112499d237637b60c71e48528bf8a5f4a8a09646.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 112499d237637b60c71e48528bf8a5f4a8a09646
parent 982bdc68d349f65b30d2ff52752b4ca8330aebc8
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 11 Jan 2026 20:41:06 +0000

fix deprecation warning

</content>
</entry>
<entry>
<id>982bdc68d349f65b30d2ff52752b4ca8330aebc8</id>
<published>2026-01-11T20:25:05Z</published>
<updated>2026-01-11T20:25:05Z</updated>
<title type="text">android client: basic readme</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/982bdc68d349f65b30d2ff52752b4ca8330aebc8.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 982bdc68d349f65b30d2ff52752b4ca8330aebc8
parent cdf7209c218e275763367d00fd55b25b3b1d56c9
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 11 Jan 2026 20:25:05 +0000

android client: basic readme

</content>
</entry>
<entry>
<id>cdf7209c218e275763367d00fd55b25b3b1d56c9</id>
<published>2026-01-11T20:20:00Z</published>
<updated>2026-01-11T20:20:00Z</updated>
<title type="text">rename project</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/cdf7209c218e275763367d00fd55b25b3b1d56c9.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit cdf7209c218e275763367d00fd55b25b3b1d56c9
parent 8e74d2221936e1ff03621fcd3276f24d4cd918a8
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 11 Jan 2026 20:20:00 +0000

rename project

</content>
</entry>
<entry>
<id>8e74d2221936e1ff03621fcd3276f24d4cd918a8</id>
<published>2026-01-11T17:21:15Z</published>
<updated>2026-01-11T17:21:15Z</updated>
<title type="text">Merge remote-tracking branch &#39;dandroid/main&#39;</title>
<link rel="alternate" type="text/html" href="https://gti.telent.net/dan/commit/8e74d2221936e1ff03621fcd3276f24d4cd918a8.html" />
<author>
<name>Daniel Barlow</name>
<email>dan@telent.net</email>
</author>
<content type="text">commit 8e74d2221936e1ff03621fcd3276f24d4cd918a8
parent fd9b558d4c2e7b47957d9d549e022cf0240f69e0
Author: Daniel Barlow &lt;dan@telent.net&gt;
Date:   Sun, 11 Jan 2026 17:21:15 +0000

Merge remote-tracking branch &#39;dandroid/main&#39;

</content>
</entry>
</feed>
