<feed xmlns='http://www.w3.org/2005/Atom'>
<title>iot-contact/firmware, branch esp32s2_devkitm</title>
<subtitle>IoT device to check if doors and windows are closed or open</subtitle>
<id>https://cgit.xengineering.eu/iot-contact/atom?h=esp32s2_devkitm</id>
<link rel='self' href='https://cgit.xengineering.eu/iot-contact/atom?h=esp32s2_devkitm'/>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/'/>
<updated>2024-11-03T19:11:25Z</updated>
<entry>
<title>WIP: firmware: Adapt flash and erase commands to Espressif</title>
<updated>2024-11-03T19:11:25Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-11-03T19:11:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=13add8c6072c8311620217acd576b16ba37b13c3'/>
<id>urn:sha1:13add8c6072c8311620217acd576b16ba37b13c3</id>
<content type='text'>
TODO: This does not work currently.
</content>
</entry>
<entry>
<title>firmware: Add pyserial Python requirement</title>
<updated>2024-11-03T19:04:45Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-11-03T19:04:45Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=fa82565b1ce78e39452fc1370e674912cc9ca75f'/>
<id>urn:sha1:fa82565b1ce78e39452fc1370e674912cc9ca75f</id>
<content type='text'>
Otherwise the ninja call to build the firmware fails.
</content>
</entry>
<entry>
<title>firmware: Switch from ST to Espressif HAL</title>
<updated>2024-11-03T19:03:25Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-11-03T19:03:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=e8fd8f50d3a7f5981b91ea2220f0a11222a0a288'/>
<id>urn:sha1:e8fd8f50d3a7f5981b91ea2220f0a11222a0a288</id>
<content type='text'>
</content>
</entry>
<entry>
<title>firmware: Add Zephyr module for Espressif HAL</title>
<updated>2024-11-03T18:47:59Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-11-03T18:47:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=18198a9c68247a3d7e3ebb80336105111f8b8cf7'/>
<id>urn:sha1:18198a9c68247a3d7e3ebb80336105111f8b8cf7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>firmware: Switch build to esp32s2_devkitm</title>
<updated>2024-11-03T18:42:56Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-11-03T18:42:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=7136a8074f200c2b1ed2a8f9389d7cc89014f447'/>
<id>urn:sha1:7136a8074f200c2b1ed2a8f9389d7cc89014f447</id>
<content type='text'>
</content>
</entry>
<entry>
<title>firmware: Use patched Zephyr kernel to support esp32s2_devkitm</title>
<updated>2024-11-03T18:33:48Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-11-03T18:33:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=eacd4bd18409cc6e40466cd1468eb1b5bd74b35a'/>
<id>urn:sha1:eacd4bd18409cc6e40466cd1468eb1b5bd74b35a</id>
<content type='text'>
It is planned to switch to a custom ESP32-based printed circuit board
(PCB). This has the advantage that the ESP32 modules contain a lot of
basic functionality and the complete network interface. This should be
the minimal viable product (MVP).

The esp32s2_devkitm is a development board to develop the firmware
before even designing the MVP PCB. Since this board is not supported
officially a patched Zephyr kernel close to v3.7.0 is used. The patch is
a slight modification of the officially supported esp32s2_devkitc board.
</content>
</entry>
<entry>
<title>firmware: Use pip freeze for requirements.txt</title>
<updated>2024-09-06T18:27:31Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-09-06T18:27:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=2c18a99bd24ddadd165eeabe5299ac094b0c0ee3'/>
<id>urn:sha1:2c18a99bd24ddadd165eeabe5299ac094b0c0ee3</id>
<content type='text'>
This results in a complete list of required Python dependencies with
fixed versions. This ensures that the build works reliably given that
the dependencies are still available in referenced versions.
</content>
</entry>
<entry>
<title>firmware: Add minimal README</title>
<updated>2024-08-29T16:01:53Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-08-29T15:56:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=0ff8c7370ad87ac450b32955210a1ec366413d61'/>
<id>urn:sha1:0ff8c7370ad87ac450b32955210a1ec366413d61</id>
<content type='text'>
This adds instructions for:

- Python environment setup
- building the firmware
- flashing the firmware
- get output from the Zephyr shell
- removing the firmware from the device
</content>
</entry>
<entry>
<title>firmware: zephyrproject: Add requirements.txt</title>
<updated>2024-08-29T15:46:51Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-08-29T15:46:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=f60daa445ff4daf4aa40d2d5b35197b4e5eadd0d'/>
<id>urn:sha1:f60daa445ff4daf4aa40d2d5b35197b4e5eadd0d</id>
<content type='text'>
This is (hopefully) the minimal set of Python dependencies required to
execute the firmware build.

It is meant to be installed inside a Python virtual environment (venv).
To add one which is not accidentally tracked by Git a .gitignore files
is added too.
</content>
</entry>
<entry>
<title>firmware: Adapt CMakeLists.txt to Git submodules</title>
<updated>2024-08-29T15:39:27Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-08-29T15:39:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=04f4abae5822fe166c9100e36e4631bbb82744e5'/>
<id>urn:sha1:04f4abae5822fe166c9100e36e4631bbb82744e5</id>
<content type='text'>
The following properties are now set in CMakeLists.txt:

- Zephyr kernel path
- required Zephyr module paths
- selected board

This makes the command line call for CMake trivial:

    cmake -Bbuild -GNinja

The user does not have to specify these options on the command line.
</content>
</entry>
<entry>
<title>firmware: Add Zephyr sources as Git submodules</title>
<updated>2024-08-29T14:31:35Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-08-29T12:17:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=22d914b78ece2e67d4bd2c6829f716b5760594c1'/>
<id>urn:sha1:22d914b78ece2e67d4bd2c6829f716b5760594c1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>firmware: Implement printk output on button press</title>
<updated>2024-08-23T16:47:48Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-08-23T16:47:48Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=73ecc1b734d4ea1102f9aa1057782a381e2768e2'/>
<id>urn:sha1:73ecc1b734d4ea1102f9aa1057782a381e2768e2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>firmware: Implement minimal IPv6 firmware</title>
<updated>2024-08-23T15:33:46Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-08-23T15:24:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=fa22728ea19c81202899305fc118176ca3f7042b'/>
<id>urn:sha1:fa22728ea19c81202899305fc118176ca3f7042b</id>
<content type='text'>
This firmware enables as much as required for the device to be reachable
by ICMP via an link-local IPv6 address. The address can be looked up via
the Zephyr shell with `net ipv6`.

This is useful to check if the network stack basics work.
</content>
</entry>
<entry>
<title>fw: Customize shell prompt</title>
<updated>2024-04-14T17:56:23Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-04-14T17:56:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=9ac3df7349f04733a1807d1ab5d0819d6bf08fdf'/>
<id>urn:sha1:9ac3df7349f04733a1807d1ab5d0819d6bf08fdf</id>
<content type='text'>
The shell prompt was changed from the default 'uart:~$ ' to
'[iot-contact] ' so that it is more visible which kind of firmware is
running on the device.
</content>
</entry>
<entry>
<title>fw: Add basic Zephyr application firmware</title>
<updated>2024-04-14T15:13:52Z</updated>
<author>
<name>xengineering</name>
<email>me@xengineering.eu</email>
</author>
<published>2024-04-14T15:13:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit.xengineering.eu/iot-contact/commit/?id=c852c3e4047b0a31910bf89436d620281a508029'/>
<id>urn:sha1:c852c3e4047b0a31910bf89436d620281a508029</id>
<content type='text'>
This is enough to validate that the firmware is running by using the
integrated Zephyr shell.
</content>
</entry>
</feed>
