<feed xmlns='http://www.w3.org/2005/Atom'>
<title>iot-contact/web, branch mdns</title>
<subtitle>IoT device to check if doors and windows are closed or open</subtitle>
<id>https://cgit.xengineering.eu/iot-contact/atom?h=mdns</id>
<link rel='self' href='https://cgit.xengineering.eu/iot-contact/atom?h=mdns'/>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/'/>
<updated>2025-08-07T19:36:49Z</updated>
<entry>
<title>Add opt-in for nucleo_f767zi firmwares</title>
<updated>2025-08-07T19:36:49Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-08-07T19:31:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=17c334ada43ee5eabd14caabacbe393fe3482451'/>
<id>urn:sha1:17c334ada43ee5eabd14caabacbe393fe3482451</id>
<content type='text'>
This partially reverts commit ce098756d79d8e4240bedc2bd74ff9a3a77fcedb.

The reverted commit dropped the build logic for all
nucleo_f767zi-related artifacts and thus for everything except the
native sim firmware.

Instead this commit reverts this change but comments out the
`update_image` and `factory_image` targets from the `artifacts` variable
in the top-level `meson.build`.

This allows to build these two targets explicitly with `ninja -C build
&lt;target&gt;` but does not include it into the deploy tar archive.

Since this archive is the only target of the project with
`build_by_default: true` this effectively disables the build with
minimal code changes.
</content>
</entry>
<entry>
<title>fw: Remove nucleo_f767zi firmwares</title>
<updated>2025-07-27T20:57:21Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-27T20:57:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=ce098756d79d8e4240bedc2bd74ff9a3a77fcedb'/>
<id>urn:sha1:ce098756d79d8e4240bedc2bd74ff9a3a77fcedb</id>
<content type='text'>
The bootloader and application firmware resulting in the factory- and
update-image are removed from the build.

The reason is a planned first release of this project with hardware
design files for a first `iot-contact` board. The release is required to
build this board with matching version specifiers.

Since the release should contain a consistent set of hardware and
firmware the firmware targeting the development board is removed.

Handling firmware for multiple boards is also an option but has no use
since the biggest part of the firmware features can be developed using
the simulation only which should stay in long term.
</content>
</entry>
<entry>
<title>Same structure for source, build and deploy trees</title>
<updated>2025-07-26T17:02:33Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-26T15:34:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=73d1db5dddbae00477c3ebfb25dd64db0a2a8ac8'/>
<id>urn:sha1:73d1db5dddbae00477c3ebfb25dd64db0a2a8ac8</id>
<content type='text'>
This commit removes the path transformations apart from
project-prefixing from the deploy tree / artifact file archive.

This gives the source tree, build tree and deploy tree the same
directory hierarchy.

The advantages are simple implementation and maintenance and a common
structure for all parties (users, developers, producers, ...).

The disadvantage is obviously that the deploy tree structure cannot be
customized on its own. At least for now the approach "there is one right
structure to rule them all" is taken.
</content>
</entry>
<entry>
<title>Move HTML copy to root Meson file</title>
<updated>2025-07-26T17:02:33Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-26T09:29:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=aa5cd7b1e22f4165ad47d9042a0d6e8d1adee6e7'/>
<id>urn:sha1:aa5cd7b1e22f4165ad47d9042a0d6e8d1adee6e7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>web: Remove unnecessary .gitignore</title>
<updated>2025-07-26T17:02:33Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-07-26T09:27:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=4f310831b3d052e4c1bd536c33139c3d20235a0c'/>
<id>urn:sha1:4f310831b3d052e4c1bd536c33139c3d20235a0c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>web: Deploy iot-contact.kicad_pcb</title>
<updated>2025-05-24T10:01:44Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-11T15:54:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=69cf3c6a1c9977ea255b3738eefca8065fd2a4f4'/>
<id>urn:sha1:69cf3c6a1c9977ea255b3738eefca8065fd2a4f4</id>
<content type='text'>
This can be used to order the PCB depending on the manufacturers
software capabilities.
</content>
</entry>
<entry>
<title>artifacts: Provide `{factory,update}-image.bin`</title>
<updated>2025-05-24T09:20:28Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-05-24T09:20:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=bf8d20fe4d8d3369dd7f63e95f53613dbbfa3603'/>
<id>urn:sha1:bf8d20fe4d8d3369dd7f63e95f53613dbbfa3603</id>
<content type='text'>
This presents only the `factory-image.bin` and `update-image.bin` for
MCU firmware. A separate bootloader image is not available.

The reason is that the `factory-image.bin` is used during production
once (flashing at default boot address) to set up the device. Later only
the `update-image.bin` of future versions would be required to remotely
update devices.
</content>
</entry>
<entry>
<title>Remove installation step</title>
<updated>2025-05-24T09:18:38Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-05-24T09:18:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=caf416218623d6778b3d0c2fe12ee08135c2d126'/>
<id>urn:sha1:caf416218623d6778b3d0c2fe12ee08135c2d126</id>
<content type='text'>
Using the installation step to copy selected artifacts into one folder
was anyway a hack.

This commit shows that the complexity can be reduced by adding copy
targets. The `build/artifacts` folder contains the selected artifacts,
they are always up to date, the user does not have to call the install
step separately and the target definitions do not require
install-related keyword arguments.
</content>
</entry>
<entry>
<title>web: Fix layout</title>
<updated>2025-04-10T19:02:19Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-10T19:02:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=29dfea5e6def230b677116f175f6e67d968b92a9'/>
<id>urn:sha1:29dfea5e6def230b677116f175f6e67d968b92a9</id>
<content type='text'>
simple.css requires to use the `&lt;main&gt;` tag for the main page content.
Otherwise the spacing between page elements is way too large.
</content>
</entry>
<entry>
<title>Simplify website structure and drop Hugo</title>
<updated>2025-04-07T19:36:41Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-07T19:36:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=4ee031182475464fe0ecb052882fd50520e6defc'/>
<id>urn:sha1:4ee031182475464fe0ecb052882fd50520e6defc</id>
<content type='text'>
A static site generator is currently not really required. A static
index.html is currently sufficient.
</content>
</entry>
<entry>
<title>web: Structure index page</title>
<updated>2025-04-06T17:48:20Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-06T17:48:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=da27d61588202d6b460e36d29a8789d206495bd6'/>
<id>urn:sha1:da27d61588202d6b460e36d29a8789d206495bd6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fw: app: Add image signing to Meson build</title>
<updated>2025-04-06T17:11:20Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-06T17:05:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=f6f6d285c318d28bddfb99cf04104a5306a97c78'/>
<id>urn:sha1:f6f6d285c318d28bddfb99cf04104a5306a97c78</id>
<content type='text'>
This automates signing the application firmware image for the MCUboot
bootloader.
</content>
</entry>
<entry>
<title>fw: sim: Integrate into Meson build</title>
<updated>2025-04-06T16:43:28Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-06T16:43:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=7fc6bc84609022992e1827a07b95c427208e7289'/>
<id>urn:sha1:7fc6bc84609022992e1827a07b95c427208e7289</id>
<content type='text'>
This adds a build for the native_sim board of the application firmware
to the default Meson build.

The resulting Linux binary is also added to the webpage.
</content>
</entry>
<entry>
<title>fw: app: Build with Meson</title>
<updated>2025-04-06T16:04:25Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-06T16:04:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=8350421e659e9273a94debdd6f29cd80979a63f1'/>
<id>urn:sha1:8350421e659e9273a94debdd6f29cd80979a63f1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Build bootloader and add to website</title>
<updated>2025-04-06T12:24:06Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-06T12:24:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=5376b67a9df63d2b30cac415cb827e6b4c1674e9'/>
<id>urn:sha1:5376b67a9df63d2b30cac415cb827e6b4c1674e9</id>
<content type='text'>
Meson makes this relatively easy. The current approach is nevertheless a
bit hacky. For the first attempt it is still way better than CMake
ExternalProject.
</content>
</entry>
<entry>
<title>web: Replace file copying by Meson installation</title>
<updated>2025-04-05T13:28:04Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-05T13:28:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=00189e737517f4470336d819d52327a037509493'/>
<id>urn:sha1:00189e737517f4470336d819d52327a037509493</id>
<content type='text'>
This makes the build system code way less hacky and more modular.
</content>
</entry>
<entry>
<title>Deploy schematic and BOM to website</title>
<updated>2025-04-05T10:26:17Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-05T08:36:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=061a67ea6e4a7fb9658fd3efc1c670eae5ff3eb6'/>
<id>urn:sha1:061a67ea6e4a7fb9658fd3efc1c670eae5ff3eb6</id>
<content type='text'>
These important design files should be deployed with the website.
</content>
</entry>
<entry>
<title>web: Depend on schematic and bom targets</title>
<updated>2025-04-05T08:47:44Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-05T08:21:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=ec8958e5ded76bd148e2cb4efbd22603555b93f5'/>
<id>urn:sha1:ec8958e5ded76bd148e2cb4efbd22603555b93f5</id>
<content type='text'>
This triggers a website rebuild when schematic files are updated.
</content>
</entry>
<entry>
<title>web: Remove CMake</title>
<updated>2025-04-05T08:46:23Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-03T20:01:03Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=b7c46986ac3aa4a17b9fac2ad54afec9d6a3506f'/>
<id>urn:sha1:b7c46986ac3aa4a17b9fac2ad54afec9d6a3506f</id>
<content type='text'>
Trying meson worked so well that CMake is no longer needed.
</content>
</entry>
<entry>
<title>web: Add simple.css to website</title>
<updated>2025-04-03T19:50:55Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-03T19:45:55Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=34c0c109551c3a67bb89dcfbcd437a5ed812809f'/>
<id>urn:sha1:34c0c109551c3a67bb89dcfbcd437a5ed812809f</id>
<content type='text'>
This uses meson to copy the simple.css file to the build dir and
references the CSS file in the HTML code.
</content>
</entry>
<entry>
<title>web: Add meson build system</title>
<updated>2025-04-03T19:17:23Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-03T16:13:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=db02eb87ce5e955f1c970ea3ce88745e03f0bb74'/>
<id>urn:sha1:db02eb87ce5e955f1c970ea3ce88745e03f0bb74</id>
<content type='text'>
CMake has some disadvantages when building subprojects like with
`ExternalProject`. Furthermore the language is sometimes hard to read,
hard to write and not so much appreciated.

This is a little test if meson might perform better. If successful this
project might switch to meson for all parts except the Zephyr builds.
</content>
</entry>
<entry>
<title>web: Fix dependencies in CMake</title>
<updated>2025-04-02T19:06:18Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-02T19:06:18Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=2d618a86755362dd910d511ddc392330a1a35709'/>
<id>urn:sha1:2d618a86755362dd910d511ddc392330a1a35709</id>
<content type='text'>
This makes sure incremental builds work properly for the web page.
</content>
</entry>
<entry>
<title>web: Embed into CMake build</title>
<updated>2025-04-01T19:30:33Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-01T19:30:21Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=c0b343a13a042465e2756caf5ac1cd126800d682'/>
<id>urn:sha1:c0b343a13a042465e2756caf5ac1cd126800d682</id>
<content type='text'>
The website should be part of the regular CMake build for convenience.
Later the dependencies might be set up in a way that the site
automatically and incrementally updates with a ninja call.
</content>
</entry>
<entry>
<title>web: Add minimal Hugo-based site</title>
<updated>2025-04-01T19:07:07Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-01T19:07:07Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=2878f733e99b51916ff1e36fdcd1fe214dcfd6b0'/>
<id>urn:sha1:2878f733e99b51916ff1e36fdcd1fe214dcfd6b0</id>
<content type='text'>
Hugo [1] is a common static site generator. It should be used to
generate a site where build artifacts of this project can be presented
and deployed.

[1]: https://gohugo.io
</content>
</entry>
<entry>
<title>web: Add CC-BY-SA as LICENSE.txt</title>
<updated>2025-04-01T18:08:46Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2025-04-01T18:08:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=d24fd456882d44c1aa9861c5dff4a2220378bb28'/>
<id>urn:sha1:d24fd456882d44c1aa9861c5dff4a2220378bb28</id>
<content type='text'>
The generated website should contain everything which will be deployed
to the user. This site contains material based on multiple licenses
to meet the matching domain like software, hardware or documentation.

All the content of the website which is not installed from other
directories is licensed via the given license.

This keeps the usual folder-based licensing scheme for the source
repository. Mixing the licenses in the deploy tree seems to be necessary
at the moment.
</content>
</entry>
</feed>
