summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
9 daystools: deploy.py: Add --dry-runxengineering
This makes debugging easier and safer.
9 daystools: Add deploy.pyxengineering
This makes it easier to deploy the installed artifacts to a remote server as part of the deployment.
10 daysweb: Fix layoutxengineering
simple.css requires to use the `<main>` tag for the main page content. Otherwise the spacing between page elements is way too large.
10 daysSimplify build and install stepsxengineering
13 daysSimplify website structure and drop Hugoxengineering
A static site generator is currently not really required. A static index.html is currently sufficient.
13 daysSimplify artifacts directoryxengineering
14 daysMerge website and CMake to Meson transitionxengineering
Building a website to structure and deploy the artifacts was planned and requires a well set-up build system to handle all the file paths targets and dependencies. Since multiple CMake Zephyr builds are required for the application firmware, bootloader firmware and the native_sim application firmware simulation CMake external project was used. Since this generates a build tree with a confusing structure Meson was evaluated. Finally the Meson build system was a good fit as top-level build system and allows external projects as an experimental feature if they can configure a Make-based build system which is given for Zephyr.
14 daysweb: Structure index pagexengineering
14 daysUpdate README.mdxengineering
14 daystools: Add meson.buildxengineering
14 daysRemove top-level CMake build systemxengineering
Meson now handles this. CMake is only used as Meson external project to build Zephyr firmwares.
14 daysfw: Remove README.mdxengineering
14 daysfw: Remove nucleo.shxengineering
Because of the Meson build system the application firmware is signed automatically. Furthermore all artifacts required to flash the Nucleo board are deployed to the website. Thus this script is not necessary anymore.
14 daysfw: app: Add image signing to Meson buildxengineering
This automates signing the application firmware image for the MCUboot bootloader.
14 daysfw: sim: Integrate into Meson buildxengineering
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.
14 daysfw: app: Build with Mesonxengineering
2025-04-06tools: Use argparse for build scriptsxengineering
This makes them re-usable for the application and native_sim firmwares.
2025-04-06fw: btl: Clean meson.buildxengineering
2025-04-06tools: Add directory and move scripts herexengineering
This allows to re-use these scripts. Since they are currently used to build Zephyr builds and three are intended (application, bootloader and application as native_sim build) this makes sense.
2025-04-06Remove symlink compile_commands.jsonxengineering
With multiple CMake Zephyr builds a single link does not make sense anymore. The user should set a custom symlink. `.gitignore` is altered to avoid committing such a link.
2025-04-06Build bootloader and add to websitexengineering
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.
2025-04-06fw: btl: Clean up meson.buildxengineering
2025-04-06fw: btl: Configure with Python scriptxengineering
To use a more readable scripting language and keep portability the POSIX shell script for Zephyr configuration is replaced by Python.
2025-04-06fw: btl: Fix build with Mesonxengineering
2025-04-05fw: btl: Configure bootloader build with Mesonxengineering
CMake ExternalProject creates a pretty confusing build tree. Since the rest of the project anyway starts moving to Meson the bootloader is configured via Meson as a first step.
2025-04-05web: Replace file copying by Meson installationxengineering
This makes the build system code way less hacky and more modular.
2025-04-05Deploy schematic and BOM to websitexengineering
These important design files should be deployed with the website.
2025-04-05web: Depend on schematic and bom targetsxengineering
This triggers a website rebuild when schematic files are updated.
2025-04-05pcb: Switch from CMake to Mesonxengineering
This allows to install the PCB-related files easier to the website which is built with Meson.
2025-04-05web: Remove CMakexengineering
Trying meson worked so well that CMake is no longer needed.
2025-04-03web: Add simple.css to websitexengineering
This uses meson to copy the simple.css file to the build dir and references the CSS file in the HTML code.
2025-04-03web: Add meson build systemxengineering
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.
2025-04-02Add simple.css v2.3.5xengineering
This provides the CSS code for the deploy website as well as the web interface of the device.
2025-04-02web: Fix dependencies in CMakexengineering
This makes sure incremental builds work properly for the web page.
2025-04-02fw: app: Fix native_sim buildxengineering
To reduce the number of Kconfig options the network hack was added two both boards - the native_sim and nucleo_f767zi one. It reboots the device if the network connection cannot be established since this is a known bug of the nucleo board. Nevertheless it seems that for the native_sim board this command is not defined. Since it is a Linux application this makes somehow sense. This commit introduces the boolean Kconfig option `IOT_CONTACT_NETWORK_HACK` which is only enabled for the nucleo board fixing the native_sim build.
2025-04-02Fix compile_commands.json symlinkxengineering
2025-04-01web: Embed into CMake buildxengineering
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.
2025-04-01cmake: Provide based CMake integration for Hugoxengineering
This is the starting point of making the Hugo static site generation part of the regular CMake build.
2025-04-01web: Add minimal Hugo-based sitexengineering
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
2025-04-01web: Add CC-BY-SA as LICENSE.txtxengineering
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.
2025-04-01pcb: gitignore: Add *-backupsxengineering
KiCad based on the not committed user settings saves backups in iot-contact-backups. Excluding those backups from Git is important to not double-track changes.
2025-04-01pcb: Update to KiCad 9.xxengineering
2025-03-30fw: app: update: Finish first HTTP PUT /updatexengineering
This adds marking the application firmware image in the secondary slot for a permanent update and rebooting the device. It is a known bug that the corresponding HTTP request is never properly closed since the device reboots while handling the request. Nevertheless the current state works and enables remote updates.
2025-03-30fw: app: update: Write uploaded image to flashxengineering
This write the received firmware image data to the secondary MCUboot slot. This prepares an update. With the MCUboot shell it can be applied with: mcuboot request_upgrade permanent kernel reboot If the signature is valid the device will permanently update to the new application firmware. Otherwise it will refuse the new image and boot the old one.
2025-03-30fw: app: update: Add data rx on HTTP PUT /updatexengineering
This implements a HTTP handler capable of receiving the full data of the firmware image upload. The data is not handled at all and thus not written to flash. This is just an incremental step towards successful firmware image upload to the secondary MCUboot slot.
2025-03-30fw: app: update: Add source file and HTTP 204 handlerxengineering
This adds the HTTP PUT /update handler which just returns HTTP 204 No Content. This is the minimal first step towards a working /update handler.
2025-03-30fw: app: Enable MCUboot shell for nucleo_f767zixengineering
This allows to use all MCUboot related functionality during the development via the shell. Furthermore it allows to inspect the current state of the primary and secondary slot. Both traits are very valuable especially during the development of the remote update system.
2025-03-30fw: app: Reboot in case of no networkxengineering
Because of an issue likely related to hardware design on the nucleo_f767zi board (see issue [1] for details) the firmware should reboot in case network access cannot be established after 4 seconds. This makes the firmware more robust at the moment. As soon as iot-contact hardware without this issue exists the behavior can be changed again. [1]: https://github.com/zephyrproject-rtos/zephyr/issues/77794
2025-03-27fw: app: Do not use CMake ExternalProjectxengineering
This made the `menuconfig` target disappear. Since the application has a quite complex configuration compared to the bootloader it is embedded to the primary CMake project while the bootloader stays an external project.
2025-03-27fw: Remove serial console from nucleo.shxengineering
This allows to keep the serial port open for a longer time and use the nucleo.sh script only for signing and flashing.