summaryrefslogtreecommitdiff
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: Add nucleo.shxengineering
This script allows to easily: - build for real hardware - flash to the microcontroller - open the Zephyr shell UART
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: zephyr: Switch to latest release v4.1.0xengineering
2025-03-21cmake: kicad: Add missing license headerxengineering
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: Add simulate-network.shxengineering
This script can be called with root permissions and without any arguments to provide a virtual network interface `zeth` and an IPv6 router advertisement daemon to provide a realistic network environment without any hardware.
2025-03-21fw: Switch to board native_sim/native/64xengineering
Using this board by default allows easier development since it compiles to a Linux executable which can be executed with `./zephyr.exe`, debugged with `gdb zephyr.exe` and has a virtual serial port for the Zephyr shell. Later the 32 bit version or even a QEMU variant should be used but the 64 bit variant is a low hanging fruit since the host libraries can be used. This is not wanted but easy to accomplish.
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-23fw: Update to Zephyr v4.0.0xengineering
This is the latest release of the Zephyr real-time operating system.
2025-02-18pcb: Update ROADMAP.mdxengineering
2025-02-18pcb: Add hierarchical labels and connectionsxengineering
2025-02-18pcb: Replace text fields by symbol descriptionsxengineering
This makes it easier to keep the descriptions and the text inside the schematic in sync.
2025-02-18pcb: Set title to `iot-contact`xengineering
2025-02-18pcb: Add missing text descriptionsxengineering
2025-02-18pcb: Rename some signalsxengineering
2025-02-18pcb: J7: Add motor connectorxengineering
2025-02-18pcb: J6: Add AC supply connectorxengineering
2025-02-18pcb: J5: Add door / window opener connectorxengineering
2025-02-15pcb: J4: Add vertical RJ45 connectorxengineering
2025-02-15pcb: J3: Add non-PoE 5V power input headerxengineering
Power over Ethernet (PoE) has the disadvantage that GND is significantly below earth. This requires that GND of a PoE-powered device is never attached to earthed devices. In production use cases this is no problem. The earth lines are isolated. Nevertheless for debugging it is sometimes useful to connect measuring equipment like logic analyzers and oscilloscopes to the board. This is not possible with PoE. Thus an alternative earth-based 5V power input is useful.
2025-02-15pcb: J2: Add UART pin headerxengineering
2025-02-15pcb: Fix connection errors reported by ERCxengineering
2025-02-15pcb: SW1-SW2: Add switches for reboot and wipexengineering
2025-02-15pcb: D1-D3: Add LEDs for PWR, UPD and ACTxengineering
2025-02-15cmake: kicad: Update selected BOM columnsxengineering
2025-02-15pcb: gitignore: Add *auto_saved_files*xengineering
2025-02-15pcb: J1: Add JTAG connectorxengineering
2025-02-15pcb: Update schematic hierarchyxengineering
2025-02-15pcb: Add ROADMAP.mdxengineering
2025-02-14Document where PCB files are placed in buildxengineering
2025-02-14cmake: Add message after schematic exportxengineering
2025-02-14pcb: Rename targets, functions and output filesxengineering
This simplifies the CMake code and the paths inside the build folder.
2025-02-14pcb: Export BOM as CSV with CMakexengineering
2025-02-14pcb: Add CMake and export schematic by defaultxengineering
2025-02-14cmake: Add module with kicad_schematic_to_pdfxengineering
This CMake function integrates converting the schematic to PDF as part of the standard build.
2025-02-14pcb: Add sub-schematicsxengineering
2025-02-14pcb: Add empty KiCad projectxengineering
This is the starting point for the PCB development.
2025-02-14pcb: gitignore: Add *.lckxengineering
2025-02-14pcb: gitignore: Add fp-info-cachexengineering
2025-02-14pcb: gitignore: Add *.kicad_prlxengineering
2025-02-14Add LICENSE.txtxengineering
This license is the primary one for the whole project. Sub-directories might have other licenses like e.g. `fw`.
2025-02-14Update project definitionxengineering
2025-02-14Switch to a global CMake buildxengineering
This allows to easily build everything from the repository root. For now this only covers firmware but later electrical PCB and mechanical case files can be added.