summaryrefslogtreecommitdiff
path: root/fw/src
AgeCommit message (Collapse)Author
2025-03-21fw: heart: Add zbus-based heartbeat codexengineering
The heartbeat of the firmware might be used for multiple purposes. It can trigger a blinking LED on the PCB, can be displayed in a client program or might serve additional purposes. Since at least display in client programs should be implemented and multiple clients should be support in long term it improves the code structure to use a zbus channel here to publish heartbeat messages in a publish-subscribe pattern. That way the publishing of the heartbeat message and the receiving by an unknown number of observers is completely decoupled. A central trait of the publish-subscribe pattern and an advantage for a modular code structure.
2025-03-21fw: http: Add /favicon.ico handlerxengineering
Common browsers always request this URL. Not responding to it shows up as an error. To silence this error report the firmware just responds with HTTP 204 No Content since a favicon is currently not available.
2025-03-21fw: html: Add missing license noticexengineering
2025-03-21fw: html: Move HTML to src folderxengineering
2025-03-21fw: http: Add HTML resource /xengineering
This provides the index HTML page.
2025-03-21fw: syslog: Adjust log levelsxengineering
This follows the pattern: * ERR in error handler if statements * DBG at top of each function and on demand * INF at end of function
2025-03-21fw: mac: Implement MAC address settingxengineering
The used MAC address is from an example range. Later it can easily be combined with reading from a MAC-providing EEPROM chip to using a unique hardware MAC on the device.
2025-03-21fw: Use SLAAC for network configurationxengineering
2025-03-21fw: syslog: Add static syslog loggingxengineering
Network-based logging via the syslog protocol allows to log from many IoT devices to a central log server. This makes reading logs way easier. Choosing UDP removes the need for logic keeping a state. Maybe dropped packages are acceptable for the use case but should be rare anyway.
2025-03-21fw: Remove GPIO-based logicxengineering
This makes it easier to develop the whole network-related firmware parts on a simulation board instead of hardware. The nucleo_f767zi board has likely a hardware bug making Ethernet sometimes fail. This is not suitable for development.
2025-02-11fw: Switch to MPL 2.0xengineering
The Mozilla Public License seems to be suitable for this firmware project. See the original license text for details. This commit also adds a `.txt` suffix to the LICENSE file to make the file type more visible to humans and tools.
2025-02-11fw: Move content of `firmware` herexengineering
This makes the name shorter which is especially relevant for Git commit messages.