<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://revspace.nl/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bertrik+Sikken</id>
	<title>RevSpace - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://revspace.nl/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bertrik+Sikken"/>
	<link rel="alternate" type="text/html" href="https://revspace.nl/Special:Contributions/Bertrik_Sikken"/>
	<updated>2026-06-27T05:01:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35351</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35351"/>
		<updated>2026-06-25T08:13:59Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, UART-TX for the ESP-ESP serial connection.&lt;br /&gt;
* The esp32-c3 and esp32-c5 share their 5V and GND power lines. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link doesn&#039;t have to be very high speed, 115200 for example. We use a hardware UART on both sides of the serial link.&lt;br /&gt;
* Use https://registry.platformio.org/libraries/thomasfredericks/MicroSlip for framing packets over the serial port.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* Aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* Espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf . Actually my board is not exactly like this, the USB-UART is connected to pins GPIO11 (TX) and GPIO12 (RX), not GPIO25/GPIO24.&lt;br /&gt;
* Espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python and platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/pit711/v2x2map/blob/main/firmware/main/mqtt.c&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35350</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35350"/>
		<updated>2026-06-25T08:03:05Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Compiling the firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO-XX for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. We use a hardware UART on both sides for this.&lt;br /&gt;
* Use https://registry.platformio.org/libraries/thomasfredericks/MicroSlip for framing packets over the serial port.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* Aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* Espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf . Actually my board is not exactly like this, the USB-UART is connected to pins GPIO11 (TX) and GPIO12 (RX), not GPIO25/GPIO24.&lt;br /&gt;
* Espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python and platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/pit711/v2x2map/blob/main/firmware/main/mqtt.c&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35349</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35349"/>
		<updated>2026-06-25T08:02:39Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO-XX for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. We use a hardware UART on both sides for this.&lt;br /&gt;
* Use https://registry.platformio.org/libraries/thomasfredericks/MicroSlip for framing packets over the serial port.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* Aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* Espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf . Actually my board is not exactly like this, the USB-UART is connected to pins GPIO11 (TX) and GPIO12 (RX), not GPIO25/GPIO24.&lt;br /&gt;
* Espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python an platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/pit711/v2x2map/blob/main/firmware/main/mqtt.c&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=File:Esp32-c5-devkitc-1.jpg&amp;diff=35348</id>
		<title>File:Esp32-c5-devkitc-1.jpg</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=File:Esp32-c5-devkitc-1.jpg&amp;diff=35348"/>
		<updated>2026-06-24T17:24:13Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: Bertrik Sikken uploaded a new version of File:Esp32-c5-devkitc-1.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35347</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35347"/>
		<updated>2026-06-24T17:23:53Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* Aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* Espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf . Actually my board is not exactly like this, the USB-UART is connected to pins GPIO11 (TX) and GPIO12 (RX), not GPIO25/GPIO24.&lt;br /&gt;
* Espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python an platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/pit711/v2x2map/blob/main/firmware/main/mqtt.c&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35346</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35346"/>
		<updated>2026-06-24T17:20:12Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.webp|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* Aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* Espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf . Actually my board is not exactly like this, the USB-UART is connected to pins GPIO11 (TX) and GPIO12 (RX), not GPIO25/GPIO24.&lt;br /&gt;
* Espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python an platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/pit711/v2x2map/blob/main/firmware/main/mqtt.c&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35338</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35338"/>
		<updated>2026-06-24T14:28:55Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* Aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* Espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf . Actually my board is not exactly like this, the USB-UART is connected to pins GPIO11 (TX) and GPIO12 (RX), not GPIO25/GPIO24.&lt;br /&gt;
* Espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python an platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/pit711/v2x2map/blob/main/firmware/main/mqtt.c&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35337</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35337"/>
		<updated>2026-06-24T11:03:12Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf . Actually my board is not exactly like this, the USB-UART is connected to pins GPIO11 (TX) and GPIO12 (RX), not &lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python an platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/pit711/v2x2map/blob/main/firmware/main/mqtt.c&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35327</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35327"/>
		<updated>2026-06-23T21:13:46Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* opentraffic map interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python an platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/pit711/v2x2map/blob/main/firmware/main/mqtt.c&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35326</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35326"/>
		<updated>2026-06-23T21:12:49Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python an platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35325</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35325"/>
		<updated>2026-06-23T18:45:34Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Compiling the firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Uses python an platformio, see the README.md in the source archive.&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=File:Esp32-c3-supermini.jpg&amp;diff=35324</id>
		<title>File:Esp32-c3-supermini.jpg</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=File:Esp32-c3-supermini.jpg&amp;diff=35324"/>
		<updated>2026-06-23T18:44:33Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35323</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35323"/>
		<updated>2026-06-23T18:42:29Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
[[File:esp32-c3-supermini.jpg|thumb|right|alt=esp32-c3]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35322</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35322"/>
		<updated>2026-06-22T20:33:29Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C5-devkitC-1 board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35321</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35321"/>
		<updated>2026-06-22T20:33:17Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
&lt;br /&gt;
I got this ESP-C3-devkitC-1 board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35317</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35317"/>
		<updated>2026-06-22T11:08:18Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is &#039;&#039;&#039;serial&#039;&#039;&#039;, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC, to run a python bridge for example&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration page with MQTT settings: host, port, user, pass, base topic&lt;br /&gt;
** Perhaps configure a keystore/certificate for secure mqtt (mqtts), if needed&lt;br /&gt;
** Optional: show some nice stats: mqtt status, packet rate, last packet, packets per type&lt;br /&gt;
** Optional: run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
Practical:&lt;br /&gt;
* The serial link runs over the USB-UART chip of the esp32-c5.&lt;br /&gt;
* A simple command processor runs on the other UART (the emulated USB serial port)&lt;br /&gt;
* On the esp32-c5 side, use pins GND, 5V, GPIO25 for the ESP-ESP serial connection. These pins are right next to each other on the esp32-c5-devkitc-1. Pin GPIO25 is the pin that connects to the USB-UART chip.&lt;br /&gt;
* The esp32-c3 and esp32-c5 have their 5V power lines connected together. Each board derives its own internal power supplies from this 5V.&lt;br /&gt;
* The serial link probably doesn&#039;t have to be very high speed, start with 115200 for example. Try to use a hardware serial peripheral on both sides for this.&lt;br /&gt;
* Probably use the Arduino [https://registry.platformio.org/libraries/bakercp/PacketSerial PacketSerial] library on both sides for framing/deframing packets.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35316</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35316"/>
		<updated>2026-06-22T10:54:05Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
The plan is:&lt;br /&gt;
* Use an esp32-c5 for sniffing 802.11p frames only&lt;br /&gt;
* Use an esp32-c3 (as an inexpensive jellybean part) for receiving sniffed frames from the esp32-c5, connect to WiFi and upload packets over MQTT&lt;br /&gt;
* The interface beteween the two boards is *serial*, this is simpler than SPI as used in other projects:&lt;br /&gt;
** Only three wires required: GND, +5V and serial DATA&lt;br /&gt;
** No need to desolder capacitors on SPI wires of the esp32-c5&lt;br /&gt;
** A serial interface is more universal, e.g. can be connected to an arbitrary linux SBC&lt;br /&gt;
** On the esp32-c5 use the same wires as the existing USB-UART bridge, so you can also receive packets over USB-serial&lt;br /&gt;
* Run a simple web server on the esp-c3:&lt;br /&gt;
** Configuration of MQTT credentials: host, port, user, pass, base topic&lt;br /&gt;
** Keeps a keystore for mqtts (if needed)&lt;br /&gt;
** Perhaps show some nice stats: connection status, packet rate, last packet, packets per type&lt;br /&gt;
** Perhaps run a very basic parser for e.g. CAM messages&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35315</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35315"/>
		<updated>2026-06-22T08:22:47Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* opentraffic map interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the mqtt wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=File:Esp32-c5-devkitc-1.jpg&amp;diff=35314</id>
		<title>File:Esp32-c5-devkitc-1.jpg</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=File:Esp32-c5-devkitc-1.jpg&amp;diff=35314"/>
		<updated>2026-06-22T08:21:46Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35313</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35313"/>
		<updated>2026-06-22T08:21:35Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
[[File:esp32-c5-devkitc-1.jpg|thumb|right|alt=esp32-c5]]&lt;br /&gt;
&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35312</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35312"/>
		<updated>2026-06-22T08:15:12Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|alt=wireshark analysis]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35311</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35311"/>
		<updated>2026-06-22T08:13:25Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right|wireshark]]&lt;br /&gt;
&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=File:Its-g5-wireshark.png&amp;diff=35310</id>
		<title>File:Its-g5-wireshark.png</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=File:Its-g5-wireshark.png&amp;diff=35310"/>
		<updated>2026-06-22T08:12:28Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35309</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35309"/>
		<updated>2026-06-22T08:11:10Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
[[File:its-g5-wireshark.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35308</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35308"/>
		<updated>2026-06-21T10:34:49Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Compiling the firmware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=File:Its-g5.png&amp;diff=35307</id>
		<title>File:Its-g5.png</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=File:Its-g5.png&amp;diff=35307"/>
		<updated>2026-06-21T10:33:48Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35306</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35306"/>
		<updated>2026-06-21T10:33:28Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=its-g5.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
* Finally activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35300</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35300"/>
		<updated>2026-06-21T09:10:44Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
* espressif devkit-c page: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
* Finally activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35299</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35299"/>
		<updated>2026-06-21T07:22:15Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* opentraffic map interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
* Finally activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware for the wire format.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35298</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35298"/>
		<updated>2026-06-21T07:21:59Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* opentraffic map interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
* Finally activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
See https://github.com/MPW1412/openwrt-otm-bridge#wire-format-mimics-the-esp32-c5-firmware&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35297</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35297"/>
		<updated>2026-06-21T07:10:33Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling the firmware ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
* Finally activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;br /&gt;
&lt;br /&gt;
=== opentraffic map interface ===&lt;br /&gt;
TODO: figure out / reverse engineer how to send data&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35296</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35296"/>
		<updated>2026-06-21T06:32:44Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
* How to contribute to opentrafficmap: https://wiki.opentrafficmap.org/?utm_source=chatgpt.com#zur_karte_beitragen&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
* Finally activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35295</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35295"/>
		<updated>2026-06-20T23:17:44Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port. It is connected to an actual USB-UART converter chip and always shows up, regardless of whether the ESP32 is in reset or not.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
* Finally activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35294</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35294"/>
		<updated>2026-06-20T23:11:57Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
Connect your USB-C cable to the &amp;quot;UART&amp;quot; port.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
See https://github.com/bertrik/its-g5-receiver&lt;br /&gt;
&lt;br /&gt;
=== Compiling ===&lt;br /&gt;
Needs python.&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* If you didn&#039;t have a python venv, create it:&lt;br /&gt;
  python -m venv .venv&lt;br /&gt;
* Install platformio into the venv:&lt;br /&gt;
  python pip install platformio&lt;br /&gt;
* Finally activate the venv:&lt;br /&gt;
  bash source .venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
Compile and upload:&lt;br /&gt;
  pio run -t upload&lt;br /&gt;
&lt;br /&gt;
Watch packets come in:&lt;br /&gt;
  pio device monitor&lt;br /&gt;
Packets are logged as a &#039;hexdump&#039;.&lt;br /&gt;
&lt;br /&gt;
The can be converted for wireshark, for example:&lt;br /&gt;
  text2pcap -l 105 message.txt message.pcap&lt;br /&gt;
Then viewed in wireshark:&lt;br /&gt;
  wireshark message.pcap&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35293</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35293"/>
		<updated>2026-06-20T19:42:19Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
* aliexpress product page https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
* espressif schematic https://dl.espressif.com/dl/schematics/SCH_ESP32-C5-DevkitC-1_V1.1_20240621.pdf&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35292</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35292"/>
		<updated>2026-06-20T17:50:50Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals (802.11p) as used in the Netherlands, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages from traffic lights are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35291</id>
		<title>User:Bertrik Sikken</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35291"/>
		<updated>2026-06-20T17:49:40Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* ESP32-C5 to receive CAM/DENM/SPAT message */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Smoel&lt;br /&gt;
 |Name=Bertrik Sikken&lt;br /&gt;
 |Nick=bertrik&lt;br /&gt;
 |Tagline=heb ik niet&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
You can reach me at [mailto:bertrik@sikken.nl bertrik@sikken.nl] or [mailto:bertrik@gmail.com bertrik@gmail.com].&lt;br /&gt;
&lt;br /&gt;
Studied Electrical Engineering at Twente University.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Main interests:&lt;br /&gt;
* reverse-engineering things (USB stuff, mp3 players), worked on http://rockbox.org (sansa clip players)&lt;br /&gt;
* studying bats and making electronics for recording/listening to bat sounds&lt;br /&gt;
* radio stuff, in particular software-defined radio, LoRa networks&lt;br /&gt;
* citizen science and open data (particulate matter measurement, noise, water quality)&lt;br /&gt;
* energy-related stuff, visualisation&lt;br /&gt;
&lt;br /&gt;
Projects I work(ed) on ([https://revspace.nl/index.php?title=User:Bertrik_Sikken&amp;amp;action=purge refresh]):&lt;br /&gt;
{{#ask:[[Category:Project]][[Project Contact::bertrik]]&lt;br /&gt;
|?Project Status&lt;br /&gt;
|headers=show&lt;br /&gt;
|link=all&lt;br /&gt;
|order=ASC,ASC&lt;br /&gt;
|sort=Project Status,Project Name&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project ideas ==&lt;br /&gt;
[[File:always10oclock.jpg|right]]&lt;br /&gt;
[[File:idea.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
This is a list of ideas I&#039;m thinking about, but have not fully developed into an actual project yet.&lt;br /&gt;
&lt;br /&gt;
https://pine64.com/product/128mb-ox64-sbc-available-on-december-2-2022/&lt;br /&gt;
&lt;br /&gt;
TinyGS station:&lt;br /&gt;
https://app.tinygs.com/station/bertrik@1430247931&lt;br /&gt;
&lt;br /&gt;
=== LilyGo T-Radar ===&lt;br /&gt;
https://developer.acconeer.com/home/a121-docs-software/a121-esp32&lt;br /&gt;
&lt;br /&gt;
=== Action 32x32 display ===&lt;br /&gt;
Action sells [https://www.action.com/nl-nl/p/3217439/led-pixelbord/ this ACT1026 display]. You control it over BLE.&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Pupariaa/Bk-Light-AppBypass works to control it&lt;br /&gt;
* software for a similar led display: https://github.com/derkalle4/python3-idotmatrix-client&lt;br /&gt;
&lt;br /&gt;
What I want to do/research:&lt;br /&gt;
* make it controllable over a network, e.g. pixelflut-to-BLE converter&lt;br /&gt;
&lt;br /&gt;
=== investigate thread/matter ===&lt;br /&gt;
Matter/thread is the new IKEA standard for home automation thins apparently. &lt;br /&gt;
Thread is the wireless protocol, matter is a home automation protocol running on top of thread.&lt;br /&gt;
&lt;br /&gt;
I have a couple of nrf52840, these are good in doing thread.&lt;br /&gt;
&lt;br /&gt;
Next steps:&lt;br /&gt;
* check out openthread&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/openthread/openthread.git&lt;br /&gt;
cd openthread&lt;br /&gt;
git submodule update --init --recursive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Prepare development environment:&lt;br /&gt;
  scripts/bootstrap&lt;br /&gt;
* Build it:&lt;br /&gt;
  ./script/build nrf52840 UART_trans -DOT_LOG_LEVEL=OT_LOG_LEVEL_INFO&lt;br /&gt;
&lt;br /&gt;
Thread on ESP32:&lt;br /&gt;
* on ESP32 C6 https://gist.github.com/gtxaspec/d26198daadfb0a8b0a0edeae2d3fd58f&lt;br /&gt;
* https://github.com/espressif/esp-thread-br&lt;br /&gt;
* https://github.com/espressif/esp-idf/tree/master/examples/openthread/ot_rcp&lt;br /&gt;
&lt;br /&gt;
=== action lsc stekker ===&lt;br /&gt;
https://keetsupport.nl/2024/03/20/how-to-flash-lsc-power-plug-with-esphome/&lt;br /&gt;
&lt;br /&gt;
https://community.home-assistant.io/t/detailed-guide-on-how-to-flash-the-new-tuya-beken-chips-with-openbk7231t/437276&lt;br /&gt;
&lt;br /&gt;
=== sipeed maix dock ===&lt;br /&gt;
Bought this a couple of years ago. Get familiar with this board.&lt;br /&gt;
Can I run a chess program on this, for example?&lt;br /&gt;
&lt;br /&gt;
* https://wiki.sipeed.com/soft/maixpy/en/develop_kit_board/maix_dock.html&lt;br /&gt;
&lt;br /&gt;
=== rfid keyfob ===&lt;br /&gt;
* aliexpress page: https://nl.aliexpress.com/item/1005009569496736.html&lt;br /&gt;
* firmware github: &lt;br /&gt;
** https://github.com/RfidResearchGroup/ChameleonUltra&lt;br /&gt;
** https://github.com/GameTec-live/ChameleonUltraGUI&lt;br /&gt;
&lt;br /&gt;
=== advanced lidars for bat detection ===&lt;br /&gt;
livox:&lt;br /&gt;
* github page https://github.com/Livox-SDK/Livox-SDK/tree/master&lt;br /&gt;
* web page: https://www.livoxtech.com/&lt;br /&gt;
&lt;br /&gt;
=== cubecell meshtastic motion detector ===&lt;br /&gt;
I have a cubecell AB01 board.&lt;br /&gt;
This board is focused on low power, has a connection to attach a solar panel and has a lora radio.&lt;br /&gt;
Relatively small amount of RAM, barely enough to run a LoRaWAN stack but probably plenty to run meshtastic&lt;br /&gt;
&lt;br /&gt;
The plan is to build a simple motion detector from this (using a PIR).&lt;br /&gt;
The PIR can wake up the board from low-power, or a timer can wake it periodically.&lt;br /&gt;
&lt;br /&gt;
See also: https://github.com/HelTecAutomation/CubeCell-Arduino/tree/master/libraries/Basics/examples/LowPower&lt;br /&gt;
&lt;br /&gt;
=== configure multitech outdoor gateway ===&lt;br /&gt;
https://www.multitech.net/developer/products/multiconnect-conduit-platform/basestation/&lt;br /&gt;
&lt;br /&gt;
https://multitech.com/product/multitech-conduit-mtcdt-246a-868-eu-gb/&lt;br /&gt;
&lt;br /&gt;
emergency procedure:&lt;br /&gt;
https://www.multitech.net/developer/software/mlinux/using-mlinux/flashing-mlinux-firmware-for-conduit/&lt;br /&gt;
&lt;br /&gt;
=== esp32 wtf ===&lt;br /&gt;
* https://forum.arduino.cc/t/ttgo-lilygo-lora-esp32-26mhz-problem/1353750&lt;br /&gt;
* &amp;quot;26 MHz crystal has been deprecated&amp;quot; https://github.com/espressif/arduino-esp32/issues/10117&lt;br /&gt;
&lt;br /&gt;
=== kakofonie counter ===&lt;br /&gt;
Sample room audio, use neural network to distinguish voices to estimate number of people talking in the past 30 seconds or so.&lt;br /&gt;
Show this number on some kind of display, publish it to MQTT, make a nice graph of it.&lt;br /&gt;
&lt;br /&gt;
Stuff to figure out:&lt;br /&gt;
* this is called &#039;speaker diarization&#039;&lt;br /&gt;
* can it run on an ESP32?&lt;br /&gt;
* make a prototype&lt;br /&gt;
&lt;br /&gt;
=== hypno toad ===&lt;br /&gt;
Put these LEDS https://nl.aliexpress.com/item/1005007583528891.html into https://www.action.com/nl-nl/p/2560347/solar-tuinbeeldje/&lt;br /&gt;
&lt;br /&gt;
Turns out that the default circuit is really basic and output a rough step-up waveform to the LED.&lt;br /&gt;
The self-fading LEDs don&#039;t work very well with that.&lt;br /&gt;
&lt;br /&gt;
Also, putting some IPA on hotglue makes it release really easy.&lt;br /&gt;
&lt;br /&gt;
=== wasbeer / kat classifier ===&lt;br /&gt;
ESP32 with resnet50 neural net to distinguish house cats from other animals, see also:&lt;br /&gt;
* https://ieeexplore.ieee.org/document/10556848/&lt;br /&gt;
&lt;br /&gt;
=== Nespresso brew counter ===&lt;br /&gt;
Several hacker spaces have one of these Nespresso cup coffee makers, but there&#039;s no obvious easy way to monitor usage (monitor ALL the things!).&lt;br /&gt;
Inspired by https://hackaday.com/2021/04/25/arduino-mkr-makes-nespresso-monitoring-easy/ this idea is making an even simpler nespresso monitor,&lt;br /&gt;
using an inexpensive WiFi enabled ESP8266 with an ubiquitous I2S microphone such as the INMP441. &lt;br /&gt;
&lt;br /&gt;
Use this sound monitoring project:&lt;br /&gt;
https://github.com/aleiei/ESP8266-BUG-I2S-MIC&lt;br /&gt;
and turn it into a WiFi connected brew counter.&lt;br /&gt;
&lt;br /&gt;
Software for getting microphone data from an ESP8266/I2S mic into Linux https://github.com/bertrik/EspMicServer&lt;br /&gt;
Nespresso sound is typically 50 Hz with overtones.&lt;br /&gt;
In a recording with the ESP8266, it appears that oddly the 17th harmonic (around 850 Hz) is quite strong.&lt;br /&gt;
&lt;br /&gt;
The plan in the short term is this:&lt;br /&gt;
* apply a gentle IIR filter to subtract any DC bias from the microphone signal&lt;br /&gt;
* calculate autocovariance at offsets 0 and 20 ms (inverse of 50 Hz), representing the total energy and the energy at 50 Hz respectively&lt;br /&gt;
* compare amplitudes to decide about presence of 50 Hz signal, e.g. calculate ratio in dB&lt;br /&gt;
* use this to count the length of time that a 50 Hz signal is heard (increments of 100 ms or so)&lt;br /&gt;
* decide about none / espresso / lungo based on time&lt;br /&gt;
&lt;br /&gt;
Might even integrate with esphome / home assistant later.&lt;br /&gt;
&lt;br /&gt;
=== Remote bat box monitor ===&lt;br /&gt;
Idea:&lt;br /&gt;
* goal: check if remote bat boxes are occupied and identify the species&lt;br /&gt;
* challenges:&lt;br /&gt;
** connectivity: need to transport images/videos (no LoRaWAN), possibly out of range of mobile data networks&lt;br /&gt;
** autonomy: cannot reach the bat box once installed&lt;br /&gt;
** power: no fixed power connection, so probably needs a battery + solar panel&lt;br /&gt;
* design&lt;br /&gt;
** wake up every hour, take a picture, go to sleep, upload photos/videos once per day&lt;br /&gt;
** run from batteries, recharge by solar, rules of thumb&lt;br /&gt;
*** batteries should last for about 10 days&lt;br /&gt;
*** battery should be able to charge in 1 day&lt;br /&gt;
*** consider only 10% of peak solar power&lt;br /&gt;
** KPN &amp;quot;4G-op-zee&amp;quot; somewhat confusing article: https://www.kpn.com/zakelijk/mobiel/roaming/noordzee&lt;br /&gt;
* hardware&lt;br /&gt;
** main processor: raspberry pi zero&lt;br /&gt;
*** raspberry pi power consumption overview: https://www.pidramble.com/wiki/benchmarks/power-consumption&lt;br /&gt;
** this hat to wake up the main CPU: https://www.waveshare.com/wiki/Power_Management_HAT_(B) sold at https://www.kiwi-electronics.com/en/power-management-hat-for-raspberry-pi-with-rtc-and-rp2040-mcu-11373&lt;br /&gt;
&lt;br /&gt;
=== KNMI API ===&lt;br /&gt;
Get familiar with https://developer.dataplatform.knmi.nl/open-data-api&lt;br /&gt;
&lt;br /&gt;
=== Grid frequency measurer with web page ===&lt;br /&gt;
See https://github.com/bertrik/GridFrequency&lt;br /&gt;
SSE source is gridfrequency.local/events&lt;br /&gt;
&lt;br /&gt;
=== WeAct CH55x board ===&lt;br /&gt;
Cheap little boards, using a similar chip as used in USB-serial converters.&lt;br /&gt;
&lt;br /&gt;
The hardware&lt;br /&gt;
https://github.com/WeActStudio/WeActStudio.CH552CoreBoard&lt;br /&gt;
&lt;br /&gt;
Flashing it:&lt;br /&gt;
https://hackaday.io/page/137447-flashing-the-ch552-dev-board-from-the-command-line&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://hackaday.io/project/198238-more-weact-ch5xx&lt;br /&gt;
* https://community.platformio.org/t/manually-adding-support-for-ch55x-controller-by-adding-existing-ardunio-core/41138&lt;br /&gt;
&lt;br /&gt;
=== Zigbee device with esp32 ===&lt;br /&gt;
See https://github.com/P-R-O-C-H-Y/arduino-esp32/blob/8169a434c3e46e1bb7711ebcc04f27267db2093c/libraries/ESP32/examples/Zigbee/Zigbee_Light_Bulb/Zigbee_Light_Bulb.ino&lt;br /&gt;
&lt;br /&gt;
See https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Zigbee&lt;br /&gt;
&lt;br /&gt;
Espressif32 arduino platform git: https://github.com/platformio/platform-espressif32&lt;br /&gt;
&lt;br /&gt;
=== Cameratoezicht in Gouda ===&lt;br /&gt;
Gemeente Gouda publiceert een lijst van camera&#039;s in Gouda, zie&lt;br /&gt;
https://gis.gouda.nl/nl/app/Basisviewer_open#!eAGT8uRiNBRy4ZIRYFKSyKkssjJwdzFxNDMz8TKKsLC0cnb0dQ1y5FIByirgkg3xd43ydPYIAQBXGBFm&lt;br /&gt;
&lt;br /&gt;
Aanmelden (semi-automatisch) bij bijvoorbeeld [https://mapcomplete.org/surveillance Surveillance-under-surveillance] ?&lt;br /&gt;
&lt;br /&gt;
=== SolarEdge ===&lt;br /&gt;
Interact with the solar edge api for PV installations.&lt;br /&gt;
&lt;br /&gt;
https://developers.solaredge.com/&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/solaredge-api&lt;br /&gt;
&lt;br /&gt;
=== Stookalert ===&lt;br /&gt;
Idee: gekleurd lampje dat aangeeft of er op dit moment een stookalert actief is&lt;br /&gt;
&lt;br /&gt;
Implementatie:&lt;br /&gt;
* kijk m.b.v. WiFi locatieservice in welke provincie je je bevindt&lt;br /&gt;
* haal JSON op bij https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* toon de bijbehorende kleur op het lampje&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
* Officiele pagina: https://www.atlasleefomgeving.nl/stookwijzer&lt;br /&gt;
* Achterliggende JSON met toestand per provincie: https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* Er moet ook nog ergens een API zijn die fijnmaziger aangeeft wat de toestand is ...&lt;br /&gt;
&lt;br /&gt;
=== Display of current electricity usage ===&lt;br /&gt;
I have a [https://www.zuidwijk.com/product/slimmelezer-plus/ slimme lezer] connected to the P1 port of my smart electricity meter.&lt;br /&gt;
The default firmware exposes meter readings using an event stream (SSE) at http://slimmelezer.local/events&lt;br /&gt;
&lt;br /&gt;
So for example, you can read this with curl:&lt;br /&gt;
  curl http://slimmelezer.local/events&lt;br /&gt;
With result:&lt;br /&gt;
  event: state&lt;br /&gt;
  data: {&amp;quot;id&amp;quot;:&amp;quot;sensor-power_consumed_phase_1&amp;quot;,&amp;quot;value&amp;quot;:0.046,&amp;quot;state&amp;quot;:&amp;quot;0.046 kW&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Specification of SSE: https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream&lt;br /&gt;
&lt;br /&gt;
What I would like to do is to read these events and control a simple display to display  the current usage number.&lt;br /&gt;
&lt;br /&gt;
=== Participating in ultrasonic sound project ===&lt;br /&gt;
https://bat-migration-europe.netlify.app/project/&lt;br /&gt;
&lt;br /&gt;
Use an audiomoth for this.&lt;br /&gt;
&lt;br /&gt;
=== ESP32 C3 ===&lt;br /&gt;
* [https://www.espressif.com/en/products/socs/esp32-c3 processor page]&lt;br /&gt;
* [https://wiki.luatos.com/chips/esp32c3/index.html luatos basic esp32 c3 board]&lt;br /&gt;
&lt;br /&gt;
=== Flexible LED ticker ===&lt;br /&gt;
Ordered a flexible 32x8 RGB LED display:&lt;br /&gt;
https://nl.aliexpress.com/item/4001296811800.html&lt;br /&gt;
&lt;br /&gt;
Matching diffuser to be 3D printed:&lt;br /&gt;
https://www.thingiverse.com/thing:1903744&lt;br /&gt;
&lt;br /&gt;
=== Washing machine API ===&lt;br /&gt;
https://tratt.net/laurie/blog/2023/displaying_my_washing_machines_remaining_time_with_curl_jq_pizauth.html&lt;br /&gt;
&lt;br /&gt;
=== TinyML ===&lt;br /&gt;
Investigate TinyML, see https://www.tinyml.org/&lt;br /&gt;
Apparently can run on a RP2040 (raspi pi pico).&lt;br /&gt;
&lt;br /&gt;
https://www.hackster.io/mjrobot/esp32-cam-tinyml-image-classification-fruits-vs-veggies-4ab970&lt;br /&gt;
&lt;br /&gt;
=== Bat box busy signal ===&lt;br /&gt;
My brother built little pyramid &#039;blinkies&#039;: solar cell + Lithium-supercapacitor + harvesting circuit + LED encased in clear expoxy.&lt;br /&gt;
&lt;br /&gt;
Can we add a low-power PIR sensor to this, and make a blinky that blinks if movement was detected by the PIR in the past hour?&lt;br /&gt;
&lt;br /&gt;
=== Super tiny RFID ===&lt;br /&gt;
See https://www.sparkfun.com/products/16464 an almost sand grain size RFID chip, 1.25mmx1.25mmx0.55mm&lt;br /&gt;
&lt;br /&gt;
The accompanying reader &amp;quot;M6E Nano&amp;quot; is still quite expensive at $235.95 : https://www.sparkfun.com/products/14066&lt;br /&gt;
&lt;br /&gt;
Uses the MuRata LXMSJZNCMF-198:&lt;br /&gt;
&amp;quot;This product can be used as an ultra small tag and this can be&lt;br /&gt;
fit on any metal objects, non-metal objects, as well as&lt;br /&gt;
embedding into any objects by glue or adhesive and so on.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: ISO18000-63 and EPC global Gen2(v2)&lt;br /&gt;
&lt;br /&gt;
Specification:&lt;br /&gt;
* https://www.gs1.org/standards/rfid/uhf-air-interface-protocol&lt;br /&gt;
&lt;br /&gt;
=== TheThingsNetwork-Sondehub bridge ===&lt;br /&gt;
Uploads balloon telemetry to sondehub.&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/ttnhabbridge/issues/6&lt;br /&gt;
&lt;br /&gt;
=== Actually smart boiler ===&lt;br /&gt;
The boiler for hot water is about half of my electricity bill.&lt;br /&gt;
The idea is to use/build a smart switch that switches it on at time when electricity prices are lowest.&lt;br /&gt;
&lt;br /&gt;
Currently have a &amp;quot;Slimme boiler module&amp;quot; from Eneco, which is *not* actually smart,&lt;br /&gt;
since it allows me no control whatsoever when it switches on (besides cutting the power in the meterkast).&lt;br /&gt;
For example, it will switch on mid-day when my price is high and eneco&#039;s price is low, perhaps good for Eneco, not for me. &lt;br /&gt;
Apparently, they even received a [https://nieuws.eneco.nl/slim-apparaatje-bij-boiler-vangt-pieken-wind--en-zonnestroom-op/ subsidy] for this.&lt;br /&gt;
&lt;br /&gt;
A boiler is a pretty big load, about 3 kW, but it is not inductive.&lt;br /&gt;
&lt;br /&gt;
Alternatives:&lt;br /&gt;
* https://www.shelly.cloud/en-nl/products/product-overview/shelly-plus-1-pm-2-pack/shelly-plus-1-pm&lt;br /&gt;
* https://www.solyxenergy.nl/solar-iboost/ to store excess solar energy in hot water, might also be useful for just controlling a boiler to use cheaper rates&lt;br /&gt;
* tuya smartplug, like https://www.wifilampkoning.nl/merken-slimme-verlichting/tuya/tuya-enkele-smartplug-met-energiemeting ?&lt;br /&gt;
* tuya 20A smart plug: https://nl.aliexpress.com/item/1005003347568206.html&lt;br /&gt;
&lt;br /&gt;
=== Receiving gas meters ===&lt;br /&gt;
Apparently gas meters send gas consumption data to the slimme meter using a wireless link in the 868 MHz band.&lt;br /&gt;
Probably just FSK at 38.4, as mentioned here: https://a35.veron.nl/nieuwe-elektra-en-gasmeters/&lt;br /&gt;
&lt;br /&gt;
Interesting leads:&lt;br /&gt;
* https://github.com/stef/smeter&lt;br /&gt;
* https://www.rtl-sdr.com/reading-household-wireless-utility-meters-with-an-rtl-sdr-and-plotting-the-data-in-home-automation-software/&lt;br /&gt;
* https://github.com/bemasher/rtlamr&lt;br /&gt;
&lt;br /&gt;
=== Multi-network wifi manager ===&lt;br /&gt;
Figure out or create software so that ESP8266/ESP32 wifi manager can use multiple networks to connect (not just one),&lt;br /&gt;
so it allowing storing credentials for more than one network. For example, the network at home, the hacker space, at work.&lt;br /&gt;
Instead of reconfiguring the wifi manager for each network, you just *add* your credentials (and the existing credentials&lt;br /&gt;
are not replaced).&lt;br /&gt;
&lt;br /&gt;
See https://github.com/folkertvanheusden/M.A.X.X&lt;br /&gt;
&lt;br /&gt;
Interesting candidates:&lt;br /&gt;
* https://registry.platformio.org/libraries/martinverges/ESP32%20Wifi%20Manager wifi manager for ESP32, has a REST API for managing wifi network, but is incomplete in the sense that you need to write your own code (e.g. javascript) to actually *use* its API&lt;br /&gt;
* https://github.com/arduino-libraries/Arduino_MultiWiFi is the arduino multi wifi library, to allow connecting to multiple different WiFi networks, but it is not a wifi manager, that starts a captive portal, etc&lt;br /&gt;
&lt;br /&gt;
=== Automated bat counting ===&lt;br /&gt;
Can we automatically count the number of bats from the image of a webcam mounted in a bat colony?&lt;br /&gt;
Perhaps using some kind of AI or machine learning algorithm?&lt;br /&gt;
&lt;br /&gt;
The image in question:&lt;br /&gt;
https://stofradar.nl/coenecoop/&lt;br /&gt;
&lt;br /&gt;
=== Use TheThingsIndoorGateway as Helium/ThingSix hotspot ===&lt;br /&gt;
I have a spare TTIG that could perhaps be used as a Helium gateway, investigate what is possible.&lt;br /&gt;
&lt;br /&gt;
One possiblity is to capture the gateway traffic from the TTN gateway events API, convert uplink data to a format that the Helium network understands and forward it.&lt;br /&gt;
I don&#039;t really care about the Helium crypto tokens, this is just for fun and science.&lt;br /&gt;
&lt;br /&gt;
What I definitely can do:&lt;br /&gt;
* Capture data from the TTN gateway events API, convert it back to Semtech UP format and forward it somewhere to Helium (just not sure where!)&lt;br /&gt;
* See also my https://github.com/bertrik/ttn-gateway-collector project which contains an initial implementation of TTN-to-UDP conversion&lt;br /&gt;
&lt;br /&gt;
Showstoppers:&lt;br /&gt;
* If you want to be a gateway on the Helium network, you have to *pay Helium*! Obviously I don&#039;t want that, I just want to share data to improve *their* network. &lt;br /&gt;
&lt;br /&gt;
Open work:&lt;br /&gt;
* Investigate if Helium has an open uplink API for their hotspots, if so study it etc, without paying the gateway fee&lt;br /&gt;
* Investigate if Thingsix has an open uplink API for their hotspots, if so study it etc, without paying any gateway fee&lt;br /&gt;
* Investigate if Thingsix is just another Helium, with weird crypto money&lt;br /&gt;
&lt;br /&gt;
Interesting stuff:&lt;br /&gt;
* https://docs.helium.com/use-the-network/setup-a-packet-forwarder unfortunately the link to setting up the &#039;light hotspot client&#039; does not work!&lt;br /&gt;
* https://docs.helium.com/mine-hnt/light-hotspots/&lt;br /&gt;
* https://thingsix.com/&lt;br /&gt;
&lt;br /&gt;
=== Adding BLE GATT interface to sensors ===&lt;br /&gt;
The GATT specification allows measurement properties to be defined and transferred continuously over Bluetooth low-energy.&lt;br /&gt;
&lt;br /&gt;
With GATT you can define a collection of properties (e.g. measurement items like temperature/humidity/particulate matter/noise, etc)&lt;br /&gt;
organised in a simple structure of a BLE service.&lt;br /&gt;
The &#039;notification&#039; method allows you to basically push the data continuously to a connected host, e.g. a smart phone.&lt;br /&gt;
&lt;br /&gt;
Services collects characteristic, a characteristic has values with units.&lt;br /&gt;
Each of these (service, characteristic, unit) have their own unique &amp;quot;UUID&amp;quot;.&lt;br /&gt;
This is described in the so-called [https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf 16-bit UUID numbers document]&lt;br /&gt;
&lt;br /&gt;
Interesting stuff in GATT:&lt;br /&gt;
* See GATT_Specification_Supplement_v5 paragraph 3.151, it has a noise characteristic with 1 dB resolution.&lt;br /&gt;
* 0x27C3 is the GATT *unit* for sound pressure&lt;br /&gt;
* 0x181A is the GATT environmental sensing *service*, document name &amp;quot;ESP_V1.0.0.pdf&amp;quot;&lt;br /&gt;
* 0x2A6E is the GATT Characteristic and Object Type for temperature&lt;br /&gt;
* 0x2A6F is the GATT Characteristic and Object Type for humidity&lt;br /&gt;
* 0x2BD5 is the GATT Characteristic and Object Type for Particulate Matter - PM1 Concentration&lt;br /&gt;
* 0x2BD6 is the GATT Characteristic and Object Type for Particulate Matter - PM2.5 Concentration&lt;br /&gt;
* 0x2BD7 is the GATT Characteristic and Object Type for Particulate Matter - PM10 Concentration&lt;br /&gt;
* Unfortunately I cannot find a characteristic for carbon-dioxide (CO2) in the BLE GATT unit document&lt;br /&gt;
&lt;br /&gt;
See also https://programmaticponderings.com/2020/08/04/getting-started-with-bluetooth-low-energy-ble-and-generic-attribute-profile-gatt-specification-for-iot/&lt;br /&gt;
&lt;br /&gt;
=== Reverse engineering XS-8217 bluetooth air quality meter ===&lt;br /&gt;
This is a thing that measures CO2, humidity, temperature, TVOC and formaldehyde.&lt;br /&gt;
&lt;br /&gt;
See also https://wiki.liutyi.info/display/CO2/ZN-2CO3+Inside&lt;br /&gt;
&lt;br /&gt;
This teardown looks a lot like my sensor: https://www.youtube.com/watch?v=APnjhMrJChI&lt;br /&gt;
Mine contains a &amp;quot;TPM-300A&amp;quot; sensor for measuring VOC.&lt;br /&gt;
&lt;br /&gt;
It has a bluetooth interface, device name is XS-8217.&lt;br /&gt;
It has a BLE GATT profile, with the following services&lt;br /&gt;
* service 0xC760&lt;br /&gt;
** characteristic 0xC762 (WRITE)&lt;br /&gt;
** characteristic 0xC761 (NOTIFY)&lt;br /&gt;
*** example data: 0x23 0x06 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
*** example data: 0x23 0x08 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
*** data shown on screen was approximately: CO2=418ppm, HCHO=0.003mg/m3, TVOC=0.013mg/m3, temp=24degC, humi=35%&lt;br /&gt;
&lt;br /&gt;
So data in the characteristic 0xC761 seems to have a 4 byte constant header:&lt;br /&gt;
* 0x23&lt;br /&gt;
* length byte&lt;br /&gt;
&lt;br /&gt;
Then we have for the first message: 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0xF1 is temperature in 0.1 degree Celcius most likely (24.1)&lt;br /&gt;
* 0x00 is ...&lt;br /&gt;
* 0x23 is humidity most likely (35)&lt;br /&gt;
* 0x65 is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
And for the second message: 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0x01 0x9A is the CO2 concentration (410)&lt;br /&gt;
* 0x00 0x0A is TVOC most likely (10)&lt;br /&gt;
* 0x00 0x03 is HCHO most likely (3)&lt;br /&gt;
* 0x0E is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
=== ribbon tweeter for bat audio ===&lt;br /&gt;
Someone gave me this idea:&lt;br /&gt;
Use a ribbon tweeter like this for playing back bat audio:&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/4000973201791.html&amp;lt;/s&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/1005002565880660.html&amp;lt;/s&amp;gt;&lt;br /&gt;
https://nl.aliexpress.com/item/1005002635086050.html&lt;br /&gt;
&lt;br /&gt;
The frequency spectrum shows no sign of dropping off at 20 kHz.&lt;br /&gt;
&lt;br /&gt;
=== 3d glasses ===&lt;br /&gt;
I got some 2nd hand 3d glasses, they look exactly like these ones:&lt;br /&gt;
* GH-15 https://www.dhgate.com/product/g15-dlp-3d-active-shutter-glasses-96-144hz/213983026.html&lt;br /&gt;
* Sintron https://www.amazon.de/Sintron-Kompatibel-TDG-BT500A-TDG-BT400A-Deutschland/dp/B015PCWMZ8&lt;br /&gt;
The common name appears to be &amp;quot;G15-DLP&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A tear-down here:&lt;br /&gt;
* https://blog.danman.eu/3d-shutter-glasses-teardown/&lt;br /&gt;
&lt;br /&gt;
Interesting documents:&lt;br /&gt;
* http://cmst.curtin.edu.au/wp-content/uploads/sites/4/2016/05/2012-28-woods-helliwell-cross-compatibility_of_shutter_glasses.pdf&lt;br /&gt;
* http://cmst.curtin.edu.au/local/docs/pubs/2011-17-woods-helliwell-3D-Sync-IR.pdf&lt;br /&gt;
&lt;br /&gt;
Someone claims he got something to work with some hacks:&lt;br /&gt;
https://www.avsforum.com/threads/how-i-got-cheap-dlp-link-glasses-to-work-great.1887145/&lt;br /&gt;
&lt;br /&gt;
=== Waterniveaumeter ===&lt;br /&gt;
Op verschillende plekken in Gouda staat er water in de kruipruimte van huizen van bewoners.&lt;br /&gt;
Kunnen we dat meten en inzichtelijk maken, voor bewoners, op een kaart bijvoorbeeld?&lt;br /&gt;
&lt;br /&gt;
Idee:&lt;br /&gt;
* in de kruipruimte plaats je een module die waterhoogte kan meten&lt;br /&gt;
* de module bestaat uit een microcontroller en een afstandsmeter, die de waterhoogte bepaalt&lt;br /&gt;
* de gegevens worden via WiFi doorgestuurd naar een centraal punt, waar de data wordt verwerkt en gevisualiseerd&lt;br /&gt;
* op een webpagina kan je een overzicht zien van alle meters die online zijn&lt;br /&gt;
* de meting wordt gedaan door bijv. een laser-afstandsmeter of een ultrasoon-afstandsmeter&lt;br /&gt;
* voeding? lastig, hoe krijg je 5v naar een potentieel natte plek?&lt;br /&gt;
* kosten? verwachting &amp;lt; E 40,-&lt;br /&gt;
&lt;br /&gt;
In Gouda wordt op veel verschillende plekken de grondwaterstand gemeten, zie https://opendata.munisense.net/portal/wareco-water2/group/581/Gouda-KJ38A , maar:&lt;br /&gt;
* geen visualisatie op de kaart, je ziet alleen de meetlokaties d.m.v. een icoontje!&lt;br /&gt;
* geen meetpunten in Gouda noord!&lt;br /&gt;
&lt;br /&gt;
=== Online bat detector ===&lt;br /&gt;
Idea: use an ultrasonic microphone, connect it to a WebSDR, so people can tune into bat sounds remotely.&lt;br /&gt;
&lt;br /&gt;
=== Raspberry pi airplane tracking ===&lt;br /&gt;
Apparently now you can also participate in MLAT tracking of planes that don&#039;t transmit GPS coordinates themselves.&lt;br /&gt;
&lt;br /&gt;
=== APRS gateway ===&lt;br /&gt;
http://qso365.co.uk/2017/02/a-guide-to-setting-up-an-aprs-receive-only-igate-using-a-raspberry-pi-and-an-rtl-sdr-dongle/&lt;br /&gt;
&lt;br /&gt;
=== JQ6500 ===&lt;br /&gt;
Small inexpensive modules that play mp3 from an internal flash. Could be nice for a custom door bell for example.&lt;br /&gt;
&lt;br /&gt;
More info at: &lt;br /&gt;
* https://www.elecfreaks.com/wiki/index.php?title=JQ6500_Mini_MP3_Module&lt;br /&gt;
* https://sparks.gogo.co.nz/jq6500/index.html&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
Cheap FPGA boards and nice applications:&lt;br /&gt;
* https://bitbucket.org/appanp/artificial-neural-networks/wiki/Home/FPGAsAndNeuralNets.md#!sbcs-and-iot-boards &lt;br /&gt;
* [http://nl.aliexpress.com/item/Altera-fpga-cycloneii-ep2c5t144-learning-board-development-board/872520721.html inexpensive ep2c5t144 board] &lt;br /&gt;
* http://land-boards.com/blwiki/index.php?title=Cyclone_II_EP2C5_Mini_Dev_Board&lt;br /&gt;
&lt;br /&gt;
=== Neural networks on low-end hardware ===&lt;br /&gt;
Investigate if you can run a powerful neural network on relatively low-end/cheap/low-power hardware. For example a Raspberry pi.&lt;br /&gt;
A RPI runs Linux, run python, just like some common neural frameworks.&lt;br /&gt;
Do we need hardware acceleration from the GPU and does the RPI GPU support that?&lt;br /&gt;
&lt;br /&gt;
Read list:&lt;br /&gt;
* https://www.zdnet.com/pictures/raspberry-pi-meets-ai-the-projects-that-put-machine-learning-on-the-35-board/&lt;br /&gt;
* https://www.pyimagesearch.com/2017/12/18/keras-deep-learning-raspberry-pi/&lt;br /&gt;
* https://www.indiegogo.com/projects/sipeed-maix-the-world-first-risc-v-64-ai-module#/&lt;br /&gt;
* https://ai.intel.com/intel-neural-compute-stick-2-smarter-faster-plug-and-play-ai-at-the-edge/&lt;br /&gt;
&lt;br /&gt;
Bought a MaixPy:&lt;br /&gt;
* see https://maixpy.sipeed.com/en/&lt;br /&gt;
* see https://www.youtube.com/watch?v=KResVuAIMb4&lt;br /&gt;
* see http://educ8s.tv/sipeed-m1-dock-review/&lt;br /&gt;
* interesting? https://www.instructables.com/id/Transfer-Learning-With-Sipeed-MaiX-and-Arduino-IDE/&lt;br /&gt;
&lt;br /&gt;
=== mini word clock in dutch ===&lt;br /&gt;
Basically an monochrome 8x8 word clock, in Dutch, showing local time in the Netherlands.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bertrik/miniwordclock This git repo] has the current code.&lt;br /&gt;
&lt;br /&gt;
See [https://plus.google.com/103276078656203197145/posts/7ki7rpJzk3a here for a demo] running on an arduino nano.&lt;br /&gt;
&lt;br /&gt;
The plan is to run this from an ESP8266 instead of an arduino nano, so it can get the time from the internet using NTP.&lt;br /&gt;
Andreas Spiess demonstrated on youtube how existing libraries on the ESP8266 can be used to do the local time (including summer-time) calculations.&lt;br /&gt;
&lt;br /&gt;
=== Cypress PSOC5 ===&lt;br /&gt;
Play with the Cypress PSOC5 platform, which combines a ARM Cortex-m3 processor with configurable analog blocks. I&#039;m thinking of combining it with a 24 GHz doppler radar sensor, to process the signal and present it as a USB audio device (stereo signal contains I and Q parts). See [[RadarOnAStick]].&lt;br /&gt;
&lt;br /&gt;
=== Simple Doppler motion sensors ===&lt;br /&gt;
You can find basic doppler microwave motion sensors based on a single transistor, with some weird traces on the PCB very cheaply, for example&lt;br /&gt;
* https://www.aliexpress.com/item/RCWL-0516-microwave-radar-sensor-module-Human-body-induction-switch-module-Intelligent-sensor/32708877914.html&lt;br /&gt;
&lt;br /&gt;
Typically the microwave part of these consists of a single transistor with a rectangular area on one leg and a meandering trace (with lots of vias to the other side) on the other leg.&lt;br /&gt;
The output of this circuit seems to go into a chip very much like the ones used in PIR sensors.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/jdesbonnet/RCWL-0516 for a reverse engineering effort of these doppler radar modules.&lt;br /&gt;
&lt;br /&gt;
=== Bare-bones Arduino bat detector ===&lt;br /&gt;
This is an idea for a very basic heterodyne bat detector, doing signal processing on an Arduino, requiring minimal external components.&lt;br /&gt;
&lt;br /&gt;
The basic principle of a heterodyne detector is that it just mixes (multiplies) the audio signal with a square wave, low-pass filters the result and puts it on a speaker.&lt;br /&gt;
&lt;br /&gt;
Multiplying with a square wave can also be considered to be just alternatively inverting and not-inverting the signal.&lt;br /&gt;
So if you sample an ultrasonic signal at twice the rate you want to multiply, you can just subtract odd samples from even samples and low-pass filter that.&lt;br /&gt;
&lt;br /&gt;
How this can be done in an AVR Arduino:&lt;br /&gt;
* sample the audio signal at twice the detection frequency, say 84 kHz. An AVR should just be able to do that.&lt;br /&gt;
* apply a 1-pole IIR high-pass filter to remove DC bias, this takes one shift instruction and one addition.&lt;br /&gt;
* multiply by the detection frequency, this means just inverting the odd samples.&lt;br /&gt;
* low-pass filter the signal, this can be done using a moving average filter, say 16 samples long (first null at 5.25 kHz). Theoretically, averaging 16 samples should result in two bits extra accuracy. This operation takes some storage, an addition and a subtraction.&lt;br /&gt;
* output the filtered signal using PWM, possibly at the same rate that we are sampling the input audio.&lt;br /&gt;
&lt;br /&gt;
The microphone can be a 40 kHz piezo transducer, to keep it cheap (but also limited to 40 kHz).&lt;br /&gt;
The pre-amplifier can be a single transistor with some resistors around it, providing about 40x gain.&lt;br /&gt;
The arduino does the signal processing (mixing, low-pass filter) to shift the bat audio to human range.&lt;br /&gt;
The speaker amplifier can just be a simple two transistor push-pull circuit, since the output from the Arduino is digital/PWM.&lt;br /&gt;
&lt;br /&gt;
==== AVR Arduino sample rate ====&lt;br /&gt;
As far as I understand, the ADC clock can be set to 1 MHz.&lt;br /&gt;
Conversion takes 13 cycles, so this can be a problem to reach a sample rate above 80 kHz.&lt;br /&gt;
&lt;br /&gt;
=== Indoor radar speed sign ===&lt;br /&gt;
This idea about placing a simple IQ-output radar sensor indoors in the hacker space, do some basic signal processing on the IQ doppler signal and determine movement speed and direction, then display this on a LED display.&lt;br /&gt;
This is of no immediate practical use other than fun, but helps me to gain a bit more experience with microwave radar sensors and eventually build a more effective setup for detecting/counting bats flying in and out of a roost.&lt;br /&gt;
&lt;br /&gt;
Implement this on a PSOC5 platform or on the STM32 using Arduino.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35290</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35290"/>
		<updated>2026-06-20T17:48:55Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating reception and processing of so-called C-ITS or ITS-G5 signals, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35289</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35289"/>
		<updated>2026-06-20T17:48:26Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigating ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating ITS-G5 signals, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35288</id>
		<title>Its-g5</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Its-g5&amp;diff=35288"/>
		<updated>2026-06-20T17:48:07Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: Created page with &amp;quot;{{Project    |Name=ITS-G5    |Picture=yunopicture.png    |Omschrijving=Investigation ITS-G5 signals    |Status=In progress    |Contact=bertrik   }}  == Introduction == This page is about investigating ITS-G5 signals, see also https://en.wikipedia.org/wiki/Vehicle-to-everything These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.  An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
   |Name=ITS-G5&lt;br /&gt;
   |Picture=yunopicture.png&lt;br /&gt;
   |Omschrijving=Investigation ITS-G5 signals&lt;br /&gt;
   |Status=In progress&lt;br /&gt;
   |Contact=bertrik&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This page is about investigating ITS-G5 signals, see also https://en.wikipedia.org/wiki/Vehicle-to-everything&lt;br /&gt;
These signals are exchanged between passenger cars, emergency vehicles, traffic lights and other traffic-related equipment.&lt;br /&gt;
&lt;br /&gt;
An ESP32-C5 development board is capable of receiving WiFi in the 5 GHz band and can receive/sniff these kinds of packets from live traffic.&lt;br /&gt;
&lt;br /&gt;
Stuff to investigate:&lt;br /&gt;
* Source code for an ITS-G5 receiver https://github.com/pit711/v2x2map&lt;br /&gt;
* Crowd-sourced live map of messages received: https://opentrafficmap.org/&lt;br /&gt;
* Simplest source code for Arduino-based sniffer: https://git.devlol.org/jstsmthrgk/simple-its-g5-receiver-firmware&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
I got this board, and it worked for me:&lt;br /&gt;
https://nl.aliexpress.com/item/1005012416463528.html&lt;br /&gt;
&lt;br /&gt;
It has an onboard antenna. There are also other boards with an antenna connection, which allows using an external antenna. This may be better, I don&#039;t know yet.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35284</id>
		<title>User:Bertrik Sikken</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35284"/>
		<updated>2026-06-16T08:45:19Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Smoel&lt;br /&gt;
 |Name=Bertrik Sikken&lt;br /&gt;
 |Nick=bertrik&lt;br /&gt;
 |Tagline=heb ik niet&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
You can reach me at [mailto:bertrik@sikken.nl bertrik@sikken.nl] or [mailto:bertrik@gmail.com bertrik@gmail.com].&lt;br /&gt;
&lt;br /&gt;
Studied Electrical Engineering at Twente University.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Main interests:&lt;br /&gt;
* reverse-engineering things (USB stuff, mp3 players), worked on http://rockbox.org (sansa clip players)&lt;br /&gt;
* studying bats and making electronics for recording/listening to bat sounds&lt;br /&gt;
* radio stuff, in particular software-defined radio, LoRa networks&lt;br /&gt;
* citizen science and open data (particulate matter measurement, noise, water quality)&lt;br /&gt;
* energy-related stuff, visualisation&lt;br /&gt;
&lt;br /&gt;
Projects I work(ed) on ([https://revspace.nl/index.php?title=User:Bertrik_Sikken&amp;amp;action=purge refresh]):&lt;br /&gt;
{{#ask:[[Category:Project]][[Project Contact::bertrik]]&lt;br /&gt;
|?Project Status&lt;br /&gt;
|headers=show&lt;br /&gt;
|link=all&lt;br /&gt;
|order=ASC,ASC&lt;br /&gt;
|sort=Project Status,Project Name&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project ideas ==&lt;br /&gt;
[[File:always10oclock.jpg|right]]&lt;br /&gt;
[[File:idea.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
This is a list of ideas I&#039;m thinking about, but have not fully developed into an actual project yet.&lt;br /&gt;
&lt;br /&gt;
https://pine64.com/product/128mb-ox64-sbc-available-on-december-2-2022/&lt;br /&gt;
&lt;br /&gt;
TinyGS station:&lt;br /&gt;
https://app.tinygs.com/station/bertrik@1430247931&lt;br /&gt;
&lt;br /&gt;
=== ESP32-C5 to receive CAM/DENM/SPAT message ===&lt;br /&gt;
Inspired by https://github.com/pit711/v2x2map I ordered a ESP32-C5-DevKitC-1 to receive C-ITS messages.&lt;br /&gt;
Vehicles broadcast their position and velocity.&lt;br /&gt;
Traffic lights send information about their signal phase and timing.&lt;br /&gt;
&lt;br /&gt;
Live traffic map: https://opentrafficmap.org/&lt;br /&gt;
&lt;br /&gt;
In the Netherlands, SPAT/MAPem messages are not transferred over wifi-p, but over UDAP.&lt;br /&gt;
You need credentials to access that data, it is not clear if it is feasible to hobbyist to access it.&lt;br /&gt;
Interesting project: https://github.com/idkmanLool9/Verkeerslicht&lt;br /&gt;
&lt;br /&gt;
Figure out how to contribute to the above project.&lt;br /&gt;
&lt;br /&gt;
=== LilyGo T-Radar ===&lt;br /&gt;
https://developer.acconeer.com/home/a121-docs-software/a121-esp32&lt;br /&gt;
&lt;br /&gt;
=== Action 32x32 display ===&lt;br /&gt;
Action sells [https://www.action.com/nl-nl/p/3217439/led-pixelbord/ this ACT1026 display]. You control it over BLE.&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Pupariaa/Bk-Light-AppBypass works to control it&lt;br /&gt;
* software for a similar led display: https://github.com/derkalle4/python3-idotmatrix-client&lt;br /&gt;
&lt;br /&gt;
What I want to do/research:&lt;br /&gt;
* make it controllable over a network, e.g. pixelflut-to-BLE converter&lt;br /&gt;
&lt;br /&gt;
=== investigate thread/matter ===&lt;br /&gt;
Matter/thread is the new IKEA standard for home automation thins apparently. &lt;br /&gt;
Thread is the wireless protocol, matter is a home automation protocol running on top of thread.&lt;br /&gt;
&lt;br /&gt;
I have a couple of nrf52840, these are good in doing thread.&lt;br /&gt;
&lt;br /&gt;
Next steps:&lt;br /&gt;
* check out openthread&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/openthread/openthread.git&lt;br /&gt;
cd openthread&lt;br /&gt;
git submodule update --init --recursive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Prepare development environment:&lt;br /&gt;
  scripts/bootstrap&lt;br /&gt;
* Build it:&lt;br /&gt;
  ./script/build nrf52840 UART_trans -DOT_LOG_LEVEL=OT_LOG_LEVEL_INFO&lt;br /&gt;
&lt;br /&gt;
Thread on ESP32:&lt;br /&gt;
* on ESP32 C6 https://gist.github.com/gtxaspec/d26198daadfb0a8b0a0edeae2d3fd58f&lt;br /&gt;
* https://github.com/espressif/esp-thread-br&lt;br /&gt;
* https://github.com/espressif/esp-idf/tree/master/examples/openthread/ot_rcp&lt;br /&gt;
&lt;br /&gt;
=== action lsc stekker ===&lt;br /&gt;
https://keetsupport.nl/2024/03/20/how-to-flash-lsc-power-plug-with-esphome/&lt;br /&gt;
&lt;br /&gt;
https://community.home-assistant.io/t/detailed-guide-on-how-to-flash-the-new-tuya-beken-chips-with-openbk7231t/437276&lt;br /&gt;
&lt;br /&gt;
=== sipeed maix dock ===&lt;br /&gt;
Bought this a couple of years ago. Get familiar with this board.&lt;br /&gt;
Can I run a chess program on this, for example?&lt;br /&gt;
&lt;br /&gt;
* https://wiki.sipeed.com/soft/maixpy/en/develop_kit_board/maix_dock.html&lt;br /&gt;
&lt;br /&gt;
=== rfid keyfob ===&lt;br /&gt;
* aliexpress page: https://nl.aliexpress.com/item/1005009569496736.html&lt;br /&gt;
* firmware github: &lt;br /&gt;
** https://github.com/RfidResearchGroup/ChameleonUltra&lt;br /&gt;
** https://github.com/GameTec-live/ChameleonUltraGUI&lt;br /&gt;
&lt;br /&gt;
=== advanced lidars for bat detection ===&lt;br /&gt;
livox:&lt;br /&gt;
* github page https://github.com/Livox-SDK/Livox-SDK/tree/master&lt;br /&gt;
* web page: https://www.livoxtech.com/&lt;br /&gt;
&lt;br /&gt;
=== cubecell meshtastic motion detector ===&lt;br /&gt;
I have a cubecell AB01 board.&lt;br /&gt;
This board is focused on low power, has a connection to attach a solar panel and has a lora radio.&lt;br /&gt;
Relatively small amount of RAM, barely enough to run a LoRaWAN stack but probably plenty to run meshtastic&lt;br /&gt;
&lt;br /&gt;
The plan is to build a simple motion detector from this (using a PIR).&lt;br /&gt;
The PIR can wake up the board from low-power, or a timer can wake it periodically.&lt;br /&gt;
&lt;br /&gt;
See also: https://github.com/HelTecAutomation/CubeCell-Arduino/tree/master/libraries/Basics/examples/LowPower&lt;br /&gt;
&lt;br /&gt;
=== configure multitech outdoor gateway ===&lt;br /&gt;
https://www.multitech.net/developer/products/multiconnect-conduit-platform/basestation/&lt;br /&gt;
&lt;br /&gt;
https://multitech.com/product/multitech-conduit-mtcdt-246a-868-eu-gb/&lt;br /&gt;
&lt;br /&gt;
emergency procedure:&lt;br /&gt;
https://www.multitech.net/developer/software/mlinux/using-mlinux/flashing-mlinux-firmware-for-conduit/&lt;br /&gt;
&lt;br /&gt;
=== esp32 wtf ===&lt;br /&gt;
* https://forum.arduino.cc/t/ttgo-lilygo-lora-esp32-26mhz-problem/1353750&lt;br /&gt;
* &amp;quot;26 MHz crystal has been deprecated&amp;quot; https://github.com/espressif/arduino-esp32/issues/10117&lt;br /&gt;
&lt;br /&gt;
=== kakofonie counter ===&lt;br /&gt;
Sample room audio, use neural network to distinguish voices to estimate number of people talking in the past 30 seconds or so.&lt;br /&gt;
Show this number on some kind of display, publish it to MQTT, make a nice graph of it.&lt;br /&gt;
&lt;br /&gt;
Stuff to figure out:&lt;br /&gt;
* this is called &#039;speaker diarization&#039;&lt;br /&gt;
* can it run on an ESP32?&lt;br /&gt;
* make a prototype&lt;br /&gt;
&lt;br /&gt;
=== hypno toad ===&lt;br /&gt;
Put these LEDS https://nl.aliexpress.com/item/1005007583528891.html into https://www.action.com/nl-nl/p/2560347/solar-tuinbeeldje/&lt;br /&gt;
&lt;br /&gt;
Turns out that the default circuit is really basic and output a rough step-up waveform to the LED.&lt;br /&gt;
The self-fading LEDs don&#039;t work very well with that.&lt;br /&gt;
&lt;br /&gt;
Also, putting some IPA on hotglue makes it release really easy.&lt;br /&gt;
&lt;br /&gt;
=== wasbeer / kat classifier ===&lt;br /&gt;
ESP32 with resnet50 neural net to distinguish house cats from other animals, see also:&lt;br /&gt;
* https://ieeexplore.ieee.org/document/10556848/&lt;br /&gt;
&lt;br /&gt;
=== Nespresso brew counter ===&lt;br /&gt;
Several hacker spaces have one of these Nespresso cup coffee makers, but there&#039;s no obvious easy way to monitor usage (monitor ALL the things!).&lt;br /&gt;
Inspired by https://hackaday.com/2021/04/25/arduino-mkr-makes-nespresso-monitoring-easy/ this idea is making an even simpler nespresso monitor,&lt;br /&gt;
using an inexpensive WiFi enabled ESP8266 with an ubiquitous I2S microphone such as the INMP441. &lt;br /&gt;
&lt;br /&gt;
Use this sound monitoring project:&lt;br /&gt;
https://github.com/aleiei/ESP8266-BUG-I2S-MIC&lt;br /&gt;
and turn it into a WiFi connected brew counter.&lt;br /&gt;
&lt;br /&gt;
Software for getting microphone data from an ESP8266/I2S mic into Linux https://github.com/bertrik/EspMicServer&lt;br /&gt;
Nespresso sound is typically 50 Hz with overtones.&lt;br /&gt;
In a recording with the ESP8266, it appears that oddly the 17th harmonic (around 850 Hz) is quite strong.&lt;br /&gt;
&lt;br /&gt;
The plan in the short term is this:&lt;br /&gt;
* apply a gentle IIR filter to subtract any DC bias from the microphone signal&lt;br /&gt;
* calculate autocovariance at offsets 0 and 20 ms (inverse of 50 Hz), representing the total energy and the energy at 50 Hz respectively&lt;br /&gt;
* compare amplitudes to decide about presence of 50 Hz signal, e.g. calculate ratio in dB&lt;br /&gt;
* use this to count the length of time that a 50 Hz signal is heard (increments of 100 ms or so)&lt;br /&gt;
* decide about none / espresso / lungo based on time&lt;br /&gt;
&lt;br /&gt;
Might even integrate with esphome / home assistant later.&lt;br /&gt;
&lt;br /&gt;
=== Remote bat box monitor ===&lt;br /&gt;
Idea:&lt;br /&gt;
* goal: check if remote bat boxes are occupied and identify the species&lt;br /&gt;
* challenges:&lt;br /&gt;
** connectivity: need to transport images/videos (no LoRaWAN), possibly out of range of mobile data networks&lt;br /&gt;
** autonomy: cannot reach the bat box once installed&lt;br /&gt;
** power: no fixed power connection, so probably needs a battery + solar panel&lt;br /&gt;
* design&lt;br /&gt;
** wake up every hour, take a picture, go to sleep, upload photos/videos once per day&lt;br /&gt;
** run from batteries, recharge by solar, rules of thumb&lt;br /&gt;
*** batteries should last for about 10 days&lt;br /&gt;
*** battery should be able to charge in 1 day&lt;br /&gt;
*** consider only 10% of peak solar power&lt;br /&gt;
** KPN &amp;quot;4G-op-zee&amp;quot; somewhat confusing article: https://www.kpn.com/zakelijk/mobiel/roaming/noordzee&lt;br /&gt;
* hardware&lt;br /&gt;
** main processor: raspberry pi zero&lt;br /&gt;
*** raspberry pi power consumption overview: https://www.pidramble.com/wiki/benchmarks/power-consumption&lt;br /&gt;
** this hat to wake up the main CPU: https://www.waveshare.com/wiki/Power_Management_HAT_(B) sold at https://www.kiwi-electronics.com/en/power-management-hat-for-raspberry-pi-with-rtc-and-rp2040-mcu-11373&lt;br /&gt;
&lt;br /&gt;
=== KNMI API ===&lt;br /&gt;
Get familiar with https://developer.dataplatform.knmi.nl/open-data-api&lt;br /&gt;
&lt;br /&gt;
=== Grid frequency measurer with web page ===&lt;br /&gt;
See https://github.com/bertrik/GridFrequency&lt;br /&gt;
SSE source is gridfrequency.local/events&lt;br /&gt;
&lt;br /&gt;
=== WeAct CH55x board ===&lt;br /&gt;
Cheap little boards, using a similar chip as used in USB-serial converters.&lt;br /&gt;
&lt;br /&gt;
The hardware&lt;br /&gt;
https://github.com/WeActStudio/WeActStudio.CH552CoreBoard&lt;br /&gt;
&lt;br /&gt;
Flashing it:&lt;br /&gt;
https://hackaday.io/page/137447-flashing-the-ch552-dev-board-from-the-command-line&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://hackaday.io/project/198238-more-weact-ch5xx&lt;br /&gt;
* https://community.platformio.org/t/manually-adding-support-for-ch55x-controller-by-adding-existing-ardunio-core/41138&lt;br /&gt;
&lt;br /&gt;
=== Zigbee device with esp32 ===&lt;br /&gt;
See https://github.com/P-R-O-C-H-Y/arduino-esp32/blob/8169a434c3e46e1bb7711ebcc04f27267db2093c/libraries/ESP32/examples/Zigbee/Zigbee_Light_Bulb/Zigbee_Light_Bulb.ino&lt;br /&gt;
&lt;br /&gt;
See https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Zigbee&lt;br /&gt;
&lt;br /&gt;
Espressif32 arduino platform git: https://github.com/platformio/platform-espressif32&lt;br /&gt;
&lt;br /&gt;
=== Cameratoezicht in Gouda ===&lt;br /&gt;
Gemeente Gouda publiceert een lijst van camera&#039;s in Gouda, zie&lt;br /&gt;
https://gis.gouda.nl/nl/app/Basisviewer_open#!eAGT8uRiNBRy4ZIRYFKSyKkssjJwdzFxNDMz8TKKsLC0cnb0dQ1y5FIByirgkg3xd43ydPYIAQBXGBFm&lt;br /&gt;
&lt;br /&gt;
Aanmelden (semi-automatisch) bij bijvoorbeeld [https://mapcomplete.org/surveillance Surveillance-under-surveillance] ?&lt;br /&gt;
&lt;br /&gt;
=== SolarEdge ===&lt;br /&gt;
Interact with the solar edge api for PV installations.&lt;br /&gt;
&lt;br /&gt;
https://developers.solaredge.com/&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/solaredge-api&lt;br /&gt;
&lt;br /&gt;
=== Stookalert ===&lt;br /&gt;
Idee: gekleurd lampje dat aangeeft of er op dit moment een stookalert actief is&lt;br /&gt;
&lt;br /&gt;
Implementatie:&lt;br /&gt;
* kijk m.b.v. WiFi locatieservice in welke provincie je je bevindt&lt;br /&gt;
* haal JSON op bij https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* toon de bijbehorende kleur op het lampje&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
* Officiele pagina: https://www.atlasleefomgeving.nl/stookwijzer&lt;br /&gt;
* Achterliggende JSON met toestand per provincie: https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* Er moet ook nog ergens een API zijn die fijnmaziger aangeeft wat de toestand is ...&lt;br /&gt;
&lt;br /&gt;
=== Display of current electricity usage ===&lt;br /&gt;
I have a [https://www.zuidwijk.com/product/slimmelezer-plus/ slimme lezer] connected to the P1 port of my smart electricity meter.&lt;br /&gt;
The default firmware exposes meter readings using an event stream (SSE) at http://slimmelezer.local/events&lt;br /&gt;
&lt;br /&gt;
So for example, you can read this with curl:&lt;br /&gt;
  curl http://slimmelezer.local/events&lt;br /&gt;
With result:&lt;br /&gt;
  event: state&lt;br /&gt;
  data: {&amp;quot;id&amp;quot;:&amp;quot;sensor-power_consumed_phase_1&amp;quot;,&amp;quot;value&amp;quot;:0.046,&amp;quot;state&amp;quot;:&amp;quot;0.046 kW&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Specification of SSE: https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream&lt;br /&gt;
&lt;br /&gt;
What I would like to do is to read these events and control a simple display to display  the current usage number.&lt;br /&gt;
&lt;br /&gt;
=== Participating in ultrasonic sound project ===&lt;br /&gt;
https://bat-migration-europe.netlify.app/project/&lt;br /&gt;
&lt;br /&gt;
Use an audiomoth for this.&lt;br /&gt;
&lt;br /&gt;
=== ESP32 C3 ===&lt;br /&gt;
* [https://www.espressif.com/en/products/socs/esp32-c3 processor page]&lt;br /&gt;
* [https://wiki.luatos.com/chips/esp32c3/index.html luatos basic esp32 c3 board]&lt;br /&gt;
&lt;br /&gt;
=== Flexible LED ticker ===&lt;br /&gt;
Ordered a flexible 32x8 RGB LED display:&lt;br /&gt;
https://nl.aliexpress.com/item/4001296811800.html&lt;br /&gt;
&lt;br /&gt;
Matching diffuser to be 3D printed:&lt;br /&gt;
https://www.thingiverse.com/thing:1903744&lt;br /&gt;
&lt;br /&gt;
=== Washing machine API ===&lt;br /&gt;
https://tratt.net/laurie/blog/2023/displaying_my_washing_machines_remaining_time_with_curl_jq_pizauth.html&lt;br /&gt;
&lt;br /&gt;
=== TinyML ===&lt;br /&gt;
Investigate TinyML, see https://www.tinyml.org/&lt;br /&gt;
Apparently can run on a RP2040 (raspi pi pico).&lt;br /&gt;
&lt;br /&gt;
https://www.hackster.io/mjrobot/esp32-cam-tinyml-image-classification-fruits-vs-veggies-4ab970&lt;br /&gt;
&lt;br /&gt;
=== Bat box busy signal ===&lt;br /&gt;
My brother built little pyramid &#039;blinkies&#039;: solar cell + Lithium-supercapacitor + harvesting circuit + LED encased in clear expoxy.&lt;br /&gt;
&lt;br /&gt;
Can we add a low-power PIR sensor to this, and make a blinky that blinks if movement was detected by the PIR in the past hour?&lt;br /&gt;
&lt;br /&gt;
=== Super tiny RFID ===&lt;br /&gt;
See https://www.sparkfun.com/products/16464 an almost sand grain size RFID chip, 1.25mmx1.25mmx0.55mm&lt;br /&gt;
&lt;br /&gt;
The accompanying reader &amp;quot;M6E Nano&amp;quot; is still quite expensive at $235.95 : https://www.sparkfun.com/products/14066&lt;br /&gt;
&lt;br /&gt;
Uses the MuRata LXMSJZNCMF-198:&lt;br /&gt;
&amp;quot;This product can be used as an ultra small tag and this can be&lt;br /&gt;
fit on any metal objects, non-metal objects, as well as&lt;br /&gt;
embedding into any objects by glue or adhesive and so on.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: ISO18000-63 and EPC global Gen2(v2)&lt;br /&gt;
&lt;br /&gt;
Specification:&lt;br /&gt;
* https://www.gs1.org/standards/rfid/uhf-air-interface-protocol&lt;br /&gt;
&lt;br /&gt;
=== TheThingsNetwork-Sondehub bridge ===&lt;br /&gt;
Uploads balloon telemetry to sondehub.&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/ttnhabbridge/issues/6&lt;br /&gt;
&lt;br /&gt;
=== Actually smart boiler ===&lt;br /&gt;
The boiler for hot water is about half of my electricity bill.&lt;br /&gt;
The idea is to use/build a smart switch that switches it on at time when electricity prices are lowest.&lt;br /&gt;
&lt;br /&gt;
Currently have a &amp;quot;Slimme boiler module&amp;quot; from Eneco, which is *not* actually smart,&lt;br /&gt;
since it allows me no control whatsoever when it switches on (besides cutting the power in the meterkast).&lt;br /&gt;
For example, it will switch on mid-day when my price is high and eneco&#039;s price is low, perhaps good for Eneco, not for me. &lt;br /&gt;
Apparently, they even received a [https://nieuws.eneco.nl/slim-apparaatje-bij-boiler-vangt-pieken-wind--en-zonnestroom-op/ subsidy] for this.&lt;br /&gt;
&lt;br /&gt;
A boiler is a pretty big load, about 3 kW, but it is not inductive.&lt;br /&gt;
&lt;br /&gt;
Alternatives:&lt;br /&gt;
* https://www.shelly.cloud/en-nl/products/product-overview/shelly-plus-1-pm-2-pack/shelly-plus-1-pm&lt;br /&gt;
* https://www.solyxenergy.nl/solar-iboost/ to store excess solar energy in hot water, might also be useful for just controlling a boiler to use cheaper rates&lt;br /&gt;
* tuya smartplug, like https://www.wifilampkoning.nl/merken-slimme-verlichting/tuya/tuya-enkele-smartplug-met-energiemeting ?&lt;br /&gt;
* tuya 20A smart plug: https://nl.aliexpress.com/item/1005003347568206.html&lt;br /&gt;
&lt;br /&gt;
=== Receiving gas meters ===&lt;br /&gt;
Apparently gas meters send gas consumption data to the slimme meter using a wireless link in the 868 MHz band.&lt;br /&gt;
Probably just FSK at 38.4, as mentioned here: https://a35.veron.nl/nieuwe-elektra-en-gasmeters/&lt;br /&gt;
&lt;br /&gt;
Interesting leads:&lt;br /&gt;
* https://github.com/stef/smeter&lt;br /&gt;
* https://www.rtl-sdr.com/reading-household-wireless-utility-meters-with-an-rtl-sdr-and-plotting-the-data-in-home-automation-software/&lt;br /&gt;
* https://github.com/bemasher/rtlamr&lt;br /&gt;
&lt;br /&gt;
=== Multi-network wifi manager ===&lt;br /&gt;
Figure out or create software so that ESP8266/ESP32 wifi manager can use multiple networks to connect (not just one),&lt;br /&gt;
so it allowing storing credentials for more than one network. For example, the network at home, the hacker space, at work.&lt;br /&gt;
Instead of reconfiguring the wifi manager for each network, you just *add* your credentials (and the existing credentials&lt;br /&gt;
are not replaced).&lt;br /&gt;
&lt;br /&gt;
See https://github.com/folkertvanheusden/M.A.X.X&lt;br /&gt;
&lt;br /&gt;
Interesting candidates:&lt;br /&gt;
* https://registry.platformio.org/libraries/martinverges/ESP32%20Wifi%20Manager wifi manager for ESP32, has a REST API for managing wifi network, but is incomplete in the sense that you need to write your own code (e.g. javascript) to actually *use* its API&lt;br /&gt;
* https://github.com/arduino-libraries/Arduino_MultiWiFi is the arduino multi wifi library, to allow connecting to multiple different WiFi networks, but it is not a wifi manager, that starts a captive portal, etc&lt;br /&gt;
&lt;br /&gt;
=== Automated bat counting ===&lt;br /&gt;
Can we automatically count the number of bats from the image of a webcam mounted in a bat colony?&lt;br /&gt;
Perhaps using some kind of AI or machine learning algorithm?&lt;br /&gt;
&lt;br /&gt;
The image in question:&lt;br /&gt;
https://stofradar.nl/coenecoop/&lt;br /&gt;
&lt;br /&gt;
=== Use TheThingsIndoorGateway as Helium/ThingSix hotspot ===&lt;br /&gt;
I have a spare TTIG that could perhaps be used as a Helium gateway, investigate what is possible.&lt;br /&gt;
&lt;br /&gt;
One possiblity is to capture the gateway traffic from the TTN gateway events API, convert uplink data to a format that the Helium network understands and forward it.&lt;br /&gt;
I don&#039;t really care about the Helium crypto tokens, this is just for fun and science.&lt;br /&gt;
&lt;br /&gt;
What I definitely can do:&lt;br /&gt;
* Capture data from the TTN gateway events API, convert it back to Semtech UP format and forward it somewhere to Helium (just not sure where!)&lt;br /&gt;
* See also my https://github.com/bertrik/ttn-gateway-collector project which contains an initial implementation of TTN-to-UDP conversion&lt;br /&gt;
&lt;br /&gt;
Showstoppers:&lt;br /&gt;
* If you want to be a gateway on the Helium network, you have to *pay Helium*! Obviously I don&#039;t want that, I just want to share data to improve *their* network. &lt;br /&gt;
&lt;br /&gt;
Open work:&lt;br /&gt;
* Investigate if Helium has an open uplink API for their hotspots, if so study it etc, without paying the gateway fee&lt;br /&gt;
* Investigate if Thingsix has an open uplink API for their hotspots, if so study it etc, without paying any gateway fee&lt;br /&gt;
* Investigate if Thingsix is just another Helium, with weird crypto money&lt;br /&gt;
&lt;br /&gt;
Interesting stuff:&lt;br /&gt;
* https://docs.helium.com/use-the-network/setup-a-packet-forwarder unfortunately the link to setting up the &#039;light hotspot client&#039; does not work!&lt;br /&gt;
* https://docs.helium.com/mine-hnt/light-hotspots/&lt;br /&gt;
* https://thingsix.com/&lt;br /&gt;
&lt;br /&gt;
=== Adding BLE GATT interface to sensors ===&lt;br /&gt;
The GATT specification allows measurement properties to be defined and transferred continuously over Bluetooth low-energy.&lt;br /&gt;
&lt;br /&gt;
With GATT you can define a collection of properties (e.g. measurement items like temperature/humidity/particulate matter/noise, etc)&lt;br /&gt;
organised in a simple structure of a BLE service.&lt;br /&gt;
The &#039;notification&#039; method allows you to basically push the data continuously to a connected host, e.g. a smart phone.&lt;br /&gt;
&lt;br /&gt;
Services collects characteristic, a characteristic has values with units.&lt;br /&gt;
Each of these (service, characteristic, unit) have their own unique &amp;quot;UUID&amp;quot;.&lt;br /&gt;
This is described in the so-called [https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf 16-bit UUID numbers document]&lt;br /&gt;
&lt;br /&gt;
Interesting stuff in GATT:&lt;br /&gt;
* See GATT_Specification_Supplement_v5 paragraph 3.151, it has a noise characteristic with 1 dB resolution.&lt;br /&gt;
* 0x27C3 is the GATT *unit* for sound pressure&lt;br /&gt;
* 0x181A is the GATT environmental sensing *service*, document name &amp;quot;ESP_V1.0.0.pdf&amp;quot;&lt;br /&gt;
* 0x2A6E is the GATT Characteristic and Object Type for temperature&lt;br /&gt;
* 0x2A6F is the GATT Characteristic and Object Type for humidity&lt;br /&gt;
* 0x2BD5 is the GATT Characteristic and Object Type for Particulate Matter - PM1 Concentration&lt;br /&gt;
* 0x2BD6 is the GATT Characteristic and Object Type for Particulate Matter - PM2.5 Concentration&lt;br /&gt;
* 0x2BD7 is the GATT Characteristic and Object Type for Particulate Matter - PM10 Concentration&lt;br /&gt;
* Unfortunately I cannot find a characteristic for carbon-dioxide (CO2) in the BLE GATT unit document&lt;br /&gt;
&lt;br /&gt;
See also https://programmaticponderings.com/2020/08/04/getting-started-with-bluetooth-low-energy-ble-and-generic-attribute-profile-gatt-specification-for-iot/&lt;br /&gt;
&lt;br /&gt;
=== Reverse engineering XS-8217 bluetooth air quality meter ===&lt;br /&gt;
This is a thing that measures CO2, humidity, temperature, TVOC and formaldehyde.&lt;br /&gt;
&lt;br /&gt;
See also https://wiki.liutyi.info/display/CO2/ZN-2CO3+Inside&lt;br /&gt;
&lt;br /&gt;
This teardown looks a lot like my sensor: https://www.youtube.com/watch?v=APnjhMrJChI&lt;br /&gt;
Mine contains a &amp;quot;TPM-300A&amp;quot; sensor for measuring VOC.&lt;br /&gt;
&lt;br /&gt;
It has a bluetooth interface, device name is XS-8217.&lt;br /&gt;
It has a BLE GATT profile, with the following services&lt;br /&gt;
* service 0xC760&lt;br /&gt;
** characteristic 0xC762 (WRITE)&lt;br /&gt;
** characteristic 0xC761 (NOTIFY)&lt;br /&gt;
*** example data: 0x23 0x06 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
*** example data: 0x23 0x08 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
*** data shown on screen was approximately: CO2=418ppm, HCHO=0.003mg/m3, TVOC=0.013mg/m3, temp=24degC, humi=35%&lt;br /&gt;
&lt;br /&gt;
So data in the characteristic 0xC761 seems to have a 4 byte constant header:&lt;br /&gt;
* 0x23&lt;br /&gt;
* length byte&lt;br /&gt;
&lt;br /&gt;
Then we have for the first message: 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0xF1 is temperature in 0.1 degree Celcius most likely (24.1)&lt;br /&gt;
* 0x00 is ...&lt;br /&gt;
* 0x23 is humidity most likely (35)&lt;br /&gt;
* 0x65 is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
And for the second message: 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0x01 0x9A is the CO2 concentration (410)&lt;br /&gt;
* 0x00 0x0A is TVOC most likely (10)&lt;br /&gt;
* 0x00 0x03 is HCHO most likely (3)&lt;br /&gt;
* 0x0E is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
=== ribbon tweeter for bat audio ===&lt;br /&gt;
Someone gave me this idea:&lt;br /&gt;
Use a ribbon tweeter like this for playing back bat audio:&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/4000973201791.html&amp;lt;/s&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/1005002565880660.html&amp;lt;/s&amp;gt;&lt;br /&gt;
https://nl.aliexpress.com/item/1005002635086050.html&lt;br /&gt;
&lt;br /&gt;
The frequency spectrum shows no sign of dropping off at 20 kHz.&lt;br /&gt;
&lt;br /&gt;
=== 3d glasses ===&lt;br /&gt;
I got some 2nd hand 3d glasses, they look exactly like these ones:&lt;br /&gt;
* GH-15 https://www.dhgate.com/product/g15-dlp-3d-active-shutter-glasses-96-144hz/213983026.html&lt;br /&gt;
* Sintron https://www.amazon.de/Sintron-Kompatibel-TDG-BT500A-TDG-BT400A-Deutschland/dp/B015PCWMZ8&lt;br /&gt;
The common name appears to be &amp;quot;G15-DLP&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A tear-down here:&lt;br /&gt;
* https://blog.danman.eu/3d-shutter-glasses-teardown/&lt;br /&gt;
&lt;br /&gt;
Interesting documents:&lt;br /&gt;
* http://cmst.curtin.edu.au/wp-content/uploads/sites/4/2016/05/2012-28-woods-helliwell-cross-compatibility_of_shutter_glasses.pdf&lt;br /&gt;
* http://cmst.curtin.edu.au/local/docs/pubs/2011-17-woods-helliwell-3D-Sync-IR.pdf&lt;br /&gt;
&lt;br /&gt;
Someone claims he got something to work with some hacks:&lt;br /&gt;
https://www.avsforum.com/threads/how-i-got-cheap-dlp-link-glasses-to-work-great.1887145/&lt;br /&gt;
&lt;br /&gt;
=== Waterniveaumeter ===&lt;br /&gt;
Op verschillende plekken in Gouda staat er water in de kruipruimte van huizen van bewoners.&lt;br /&gt;
Kunnen we dat meten en inzichtelijk maken, voor bewoners, op een kaart bijvoorbeeld?&lt;br /&gt;
&lt;br /&gt;
Idee:&lt;br /&gt;
* in de kruipruimte plaats je een module die waterhoogte kan meten&lt;br /&gt;
* de module bestaat uit een microcontroller en een afstandsmeter, die de waterhoogte bepaalt&lt;br /&gt;
* de gegevens worden via WiFi doorgestuurd naar een centraal punt, waar de data wordt verwerkt en gevisualiseerd&lt;br /&gt;
* op een webpagina kan je een overzicht zien van alle meters die online zijn&lt;br /&gt;
* de meting wordt gedaan door bijv. een laser-afstandsmeter of een ultrasoon-afstandsmeter&lt;br /&gt;
* voeding? lastig, hoe krijg je 5v naar een potentieel natte plek?&lt;br /&gt;
* kosten? verwachting &amp;lt; E 40,-&lt;br /&gt;
&lt;br /&gt;
In Gouda wordt op veel verschillende plekken de grondwaterstand gemeten, zie https://opendata.munisense.net/portal/wareco-water2/group/581/Gouda-KJ38A , maar:&lt;br /&gt;
* geen visualisatie op de kaart, je ziet alleen de meetlokaties d.m.v. een icoontje!&lt;br /&gt;
* geen meetpunten in Gouda noord!&lt;br /&gt;
&lt;br /&gt;
=== Online bat detector ===&lt;br /&gt;
Idea: use an ultrasonic microphone, connect it to a WebSDR, so people can tune into bat sounds remotely.&lt;br /&gt;
&lt;br /&gt;
=== Raspberry pi airplane tracking ===&lt;br /&gt;
Apparently now you can also participate in MLAT tracking of planes that don&#039;t transmit GPS coordinates themselves.&lt;br /&gt;
&lt;br /&gt;
=== APRS gateway ===&lt;br /&gt;
http://qso365.co.uk/2017/02/a-guide-to-setting-up-an-aprs-receive-only-igate-using-a-raspberry-pi-and-an-rtl-sdr-dongle/&lt;br /&gt;
&lt;br /&gt;
=== JQ6500 ===&lt;br /&gt;
Small inexpensive modules that play mp3 from an internal flash. Could be nice for a custom door bell for example.&lt;br /&gt;
&lt;br /&gt;
More info at: &lt;br /&gt;
* https://www.elecfreaks.com/wiki/index.php?title=JQ6500_Mini_MP3_Module&lt;br /&gt;
* https://sparks.gogo.co.nz/jq6500/index.html&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
Cheap FPGA boards and nice applications:&lt;br /&gt;
* https://bitbucket.org/appanp/artificial-neural-networks/wiki/Home/FPGAsAndNeuralNets.md#!sbcs-and-iot-boards &lt;br /&gt;
* [http://nl.aliexpress.com/item/Altera-fpga-cycloneii-ep2c5t144-learning-board-development-board/872520721.html inexpensive ep2c5t144 board] &lt;br /&gt;
* http://land-boards.com/blwiki/index.php?title=Cyclone_II_EP2C5_Mini_Dev_Board&lt;br /&gt;
&lt;br /&gt;
=== Neural networks on low-end hardware ===&lt;br /&gt;
Investigate if you can run a powerful neural network on relatively low-end/cheap/low-power hardware. For example a Raspberry pi.&lt;br /&gt;
A RPI runs Linux, run python, just like some common neural frameworks.&lt;br /&gt;
Do we need hardware acceleration from the GPU and does the RPI GPU support that?&lt;br /&gt;
&lt;br /&gt;
Read list:&lt;br /&gt;
* https://www.zdnet.com/pictures/raspberry-pi-meets-ai-the-projects-that-put-machine-learning-on-the-35-board/&lt;br /&gt;
* https://www.pyimagesearch.com/2017/12/18/keras-deep-learning-raspberry-pi/&lt;br /&gt;
* https://www.indiegogo.com/projects/sipeed-maix-the-world-first-risc-v-64-ai-module#/&lt;br /&gt;
* https://ai.intel.com/intel-neural-compute-stick-2-smarter-faster-plug-and-play-ai-at-the-edge/&lt;br /&gt;
&lt;br /&gt;
Bought a MaixPy:&lt;br /&gt;
* see https://maixpy.sipeed.com/en/&lt;br /&gt;
* see https://www.youtube.com/watch?v=KResVuAIMb4&lt;br /&gt;
* see http://educ8s.tv/sipeed-m1-dock-review/&lt;br /&gt;
* interesting? https://www.instructables.com/id/Transfer-Learning-With-Sipeed-MaiX-and-Arduino-IDE/&lt;br /&gt;
&lt;br /&gt;
=== mini word clock in dutch ===&lt;br /&gt;
Basically an monochrome 8x8 word clock, in Dutch, showing local time in the Netherlands.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bertrik/miniwordclock This git repo] has the current code.&lt;br /&gt;
&lt;br /&gt;
See [https://plus.google.com/103276078656203197145/posts/7ki7rpJzk3a here for a demo] running on an arduino nano.&lt;br /&gt;
&lt;br /&gt;
The plan is to run this from an ESP8266 instead of an arduino nano, so it can get the time from the internet using NTP.&lt;br /&gt;
Andreas Spiess demonstrated on youtube how existing libraries on the ESP8266 can be used to do the local time (including summer-time) calculations.&lt;br /&gt;
&lt;br /&gt;
=== Cypress PSOC5 ===&lt;br /&gt;
Play with the Cypress PSOC5 platform, which combines a ARM Cortex-m3 processor with configurable analog blocks. I&#039;m thinking of combining it with a 24 GHz doppler radar sensor, to process the signal and present it as a USB audio device (stereo signal contains I and Q parts). See [[RadarOnAStick]].&lt;br /&gt;
&lt;br /&gt;
=== Simple Doppler motion sensors ===&lt;br /&gt;
You can find basic doppler microwave motion sensors based on a single transistor, with some weird traces on the PCB very cheaply, for example&lt;br /&gt;
* https://www.aliexpress.com/item/RCWL-0516-microwave-radar-sensor-module-Human-body-induction-switch-module-Intelligent-sensor/32708877914.html&lt;br /&gt;
&lt;br /&gt;
Typically the microwave part of these consists of a single transistor with a rectangular area on one leg and a meandering trace (with lots of vias to the other side) on the other leg.&lt;br /&gt;
The output of this circuit seems to go into a chip very much like the ones used in PIR sensors.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/jdesbonnet/RCWL-0516 for a reverse engineering effort of these doppler radar modules.&lt;br /&gt;
&lt;br /&gt;
=== Bare-bones Arduino bat detector ===&lt;br /&gt;
This is an idea for a very basic heterodyne bat detector, doing signal processing on an Arduino, requiring minimal external components.&lt;br /&gt;
&lt;br /&gt;
The basic principle of a heterodyne detector is that it just mixes (multiplies) the audio signal with a square wave, low-pass filters the result and puts it on a speaker.&lt;br /&gt;
&lt;br /&gt;
Multiplying with a square wave can also be considered to be just alternatively inverting and not-inverting the signal.&lt;br /&gt;
So if you sample an ultrasonic signal at twice the rate you want to multiply, you can just subtract odd samples from even samples and low-pass filter that.&lt;br /&gt;
&lt;br /&gt;
How this can be done in an AVR Arduino:&lt;br /&gt;
* sample the audio signal at twice the detection frequency, say 84 kHz. An AVR should just be able to do that.&lt;br /&gt;
* apply a 1-pole IIR high-pass filter to remove DC bias, this takes one shift instruction and one addition.&lt;br /&gt;
* multiply by the detection frequency, this means just inverting the odd samples.&lt;br /&gt;
* low-pass filter the signal, this can be done using a moving average filter, say 16 samples long (first null at 5.25 kHz). Theoretically, averaging 16 samples should result in two bits extra accuracy. This operation takes some storage, an addition and a subtraction.&lt;br /&gt;
* output the filtered signal using PWM, possibly at the same rate that we are sampling the input audio.&lt;br /&gt;
&lt;br /&gt;
The microphone can be a 40 kHz piezo transducer, to keep it cheap (but also limited to 40 kHz).&lt;br /&gt;
The pre-amplifier can be a single transistor with some resistors around it, providing about 40x gain.&lt;br /&gt;
The arduino does the signal processing (mixing, low-pass filter) to shift the bat audio to human range.&lt;br /&gt;
The speaker amplifier can just be a simple two transistor push-pull circuit, since the output from the Arduino is digital/PWM.&lt;br /&gt;
&lt;br /&gt;
==== AVR Arduino sample rate ====&lt;br /&gt;
As far as I understand, the ADC clock can be set to 1 MHz.&lt;br /&gt;
Conversion takes 13 cycles, so this can be a problem to reach a sample rate above 80 kHz.&lt;br /&gt;
&lt;br /&gt;
=== Indoor radar speed sign ===&lt;br /&gt;
This idea about placing a simple IQ-output radar sensor indoors in the hacker space, do some basic signal processing on the IQ doppler signal and determine movement speed and direction, then display this on a LED display.&lt;br /&gt;
This is of no immediate practical use other than fun, but helps me to gain a bit more experience with microwave radar sensors and eventually build a more effective setup for detecting/counting bats flying in and out of a roost.&lt;br /&gt;
&lt;br /&gt;
Implement this on a PSOC5 platform or on the STM32 using Arduino.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35280</id>
		<title>User:Bertrik Sikken</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35280"/>
		<updated>2026-06-15T10:52:21Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Action 32x32 display */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Smoel&lt;br /&gt;
 |Name=Bertrik Sikken&lt;br /&gt;
 |Nick=bertrik&lt;br /&gt;
 |Tagline=heb ik niet&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
You can reach me at [mailto:bertrik@sikken.nl bertrik@sikken.nl] or [mailto:bertrik@gmail.com bertrik@gmail.com].&lt;br /&gt;
&lt;br /&gt;
Studied Electrical Engineering at Twente University.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Main interests:&lt;br /&gt;
* reverse-engineering things (USB stuff, mp3 players), worked on http://rockbox.org (sansa clip players)&lt;br /&gt;
* studying bats and making electronics for recording/listening to bat sounds&lt;br /&gt;
* radio stuff, in particular software-defined radio, LoRa networks&lt;br /&gt;
* citizen science and open data (particulate matter measurement, noise, water quality)&lt;br /&gt;
* energy-related stuff, visualisation&lt;br /&gt;
&lt;br /&gt;
Projects I work(ed) on ([https://revspace.nl/index.php?title=User:Bertrik_Sikken&amp;amp;action=purge refresh]):&lt;br /&gt;
{{#ask:[[Category:Project]][[Project Contact::bertrik]]&lt;br /&gt;
|?Project Status&lt;br /&gt;
|headers=show&lt;br /&gt;
|link=all&lt;br /&gt;
|order=ASC,ASC&lt;br /&gt;
|sort=Project Status,Project Name&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project ideas ==&lt;br /&gt;
[[File:always10oclock.jpg|right]]&lt;br /&gt;
[[File:idea.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
This is a list of ideas I&#039;m thinking about, but have not fully developed into an actual project yet.&lt;br /&gt;
&lt;br /&gt;
https://pine64.com/product/128mb-ox64-sbc-available-on-december-2-2022/&lt;br /&gt;
&lt;br /&gt;
TinyGS station:&lt;br /&gt;
https://app.tinygs.com/station/bertrik@1430247931&lt;br /&gt;
&lt;br /&gt;
=== ESP32-C5 to receive CAM/DENM/SPAT message ===&lt;br /&gt;
Inspired by https://github.com/pit711/v2x2map I ordered a ESP32-C5-DevKitC-1 to receive C-ITS messages.&lt;br /&gt;
Vehicles broadcast their position and velocity.&lt;br /&gt;
Traffic lights send information about their signal phase and timing.&lt;br /&gt;
&lt;br /&gt;
Live traffic map: https://opentrafficmap.org/&lt;br /&gt;
&lt;br /&gt;
Figure out how to contribute to the above project.&lt;br /&gt;
&lt;br /&gt;
=== LilyGo T-Radar ===&lt;br /&gt;
https://developer.acconeer.com/home/a121-docs-software/a121-esp32&lt;br /&gt;
&lt;br /&gt;
=== Action 32x32 display ===&lt;br /&gt;
Action sells [https://www.action.com/nl-nl/p/3217439/led-pixelbord/ this ACT1026 display]. You control it over BLE.&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Pupariaa/Bk-Light-AppBypass works to control it&lt;br /&gt;
* software for a similar led display: https://github.com/derkalle4/python3-idotmatrix-client&lt;br /&gt;
&lt;br /&gt;
What I want to do/research:&lt;br /&gt;
* make it controllable over a network, e.g. pixelflut-to-BLE converter&lt;br /&gt;
&lt;br /&gt;
=== investigate thread/matter ===&lt;br /&gt;
Matter/thread is the new IKEA standard for home automation thins apparently. &lt;br /&gt;
Thread is the wireless protocol, matter is a home automation protocol running on top of thread.&lt;br /&gt;
&lt;br /&gt;
I have a couple of nrf52840, these are good in doing thread.&lt;br /&gt;
&lt;br /&gt;
Next steps:&lt;br /&gt;
* check out openthread&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/openthread/openthread.git&lt;br /&gt;
cd openthread&lt;br /&gt;
git submodule update --init --recursive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Prepare development environment:&lt;br /&gt;
  scripts/bootstrap&lt;br /&gt;
* Build it:&lt;br /&gt;
  ./script/build nrf52840 UART_trans -DOT_LOG_LEVEL=OT_LOG_LEVEL_INFO&lt;br /&gt;
&lt;br /&gt;
Thread on ESP32:&lt;br /&gt;
* on ESP32 C6 https://gist.github.com/gtxaspec/d26198daadfb0a8b0a0edeae2d3fd58f&lt;br /&gt;
* https://github.com/espressif/esp-thread-br&lt;br /&gt;
* https://github.com/espressif/esp-idf/tree/master/examples/openthread/ot_rcp&lt;br /&gt;
&lt;br /&gt;
=== action lsc stekker ===&lt;br /&gt;
https://keetsupport.nl/2024/03/20/how-to-flash-lsc-power-plug-with-esphome/&lt;br /&gt;
&lt;br /&gt;
https://community.home-assistant.io/t/detailed-guide-on-how-to-flash-the-new-tuya-beken-chips-with-openbk7231t/437276&lt;br /&gt;
&lt;br /&gt;
=== sipeed maix dock ===&lt;br /&gt;
Bought this a couple of years ago. Get familiar with this board.&lt;br /&gt;
Can I run a chess program on this, for example?&lt;br /&gt;
&lt;br /&gt;
* https://wiki.sipeed.com/soft/maixpy/en/develop_kit_board/maix_dock.html&lt;br /&gt;
&lt;br /&gt;
=== rfid keyfob ===&lt;br /&gt;
* aliexpress page: https://nl.aliexpress.com/item/1005009569496736.html&lt;br /&gt;
* firmware github: &lt;br /&gt;
** https://github.com/RfidResearchGroup/ChameleonUltra&lt;br /&gt;
** https://github.com/GameTec-live/ChameleonUltraGUI&lt;br /&gt;
&lt;br /&gt;
=== advanced lidars for bat detection ===&lt;br /&gt;
livox:&lt;br /&gt;
* github page https://github.com/Livox-SDK/Livox-SDK/tree/master&lt;br /&gt;
* web page: https://www.livoxtech.com/&lt;br /&gt;
&lt;br /&gt;
=== cubecell meshtastic motion detector ===&lt;br /&gt;
I have a cubecell AB01 board.&lt;br /&gt;
This board is focused on low power, has a connection to attach a solar panel and has a lora radio.&lt;br /&gt;
Relatively small amount of RAM, barely enough to run a LoRaWAN stack but probably plenty to run meshtastic&lt;br /&gt;
&lt;br /&gt;
The plan is to build a simple motion detector from this (using a PIR).&lt;br /&gt;
The PIR can wake up the board from low-power, or a timer can wake it periodically.&lt;br /&gt;
&lt;br /&gt;
See also: https://github.com/HelTecAutomation/CubeCell-Arduino/tree/master/libraries/Basics/examples/LowPower&lt;br /&gt;
&lt;br /&gt;
=== configure multitech outdoor gateway ===&lt;br /&gt;
https://www.multitech.net/developer/products/multiconnect-conduit-platform/basestation/&lt;br /&gt;
&lt;br /&gt;
https://multitech.com/product/multitech-conduit-mtcdt-246a-868-eu-gb/&lt;br /&gt;
&lt;br /&gt;
emergency procedure:&lt;br /&gt;
https://www.multitech.net/developer/software/mlinux/using-mlinux/flashing-mlinux-firmware-for-conduit/&lt;br /&gt;
&lt;br /&gt;
=== esp32 wtf ===&lt;br /&gt;
* https://forum.arduino.cc/t/ttgo-lilygo-lora-esp32-26mhz-problem/1353750&lt;br /&gt;
* &amp;quot;26 MHz crystal has been deprecated&amp;quot; https://github.com/espressif/arduino-esp32/issues/10117&lt;br /&gt;
&lt;br /&gt;
=== kakofonie counter ===&lt;br /&gt;
Sample room audio, use neural network to distinguish voices to estimate number of people talking in the past 30 seconds or so.&lt;br /&gt;
Show this number on some kind of display, publish it to MQTT, make a nice graph of it.&lt;br /&gt;
&lt;br /&gt;
Stuff to figure out:&lt;br /&gt;
* this is called &#039;speaker diarization&#039;&lt;br /&gt;
* can it run on an ESP32?&lt;br /&gt;
* make a prototype&lt;br /&gt;
&lt;br /&gt;
=== hypno toad ===&lt;br /&gt;
Put these LEDS https://nl.aliexpress.com/item/1005007583528891.html into https://www.action.com/nl-nl/p/2560347/solar-tuinbeeldje/&lt;br /&gt;
&lt;br /&gt;
Turns out that the default circuit is really basic and output a rough step-up waveform to the LED.&lt;br /&gt;
The self-fading LEDs don&#039;t work very well with that.&lt;br /&gt;
&lt;br /&gt;
Also, putting some IPA on hotglue makes it release really easy.&lt;br /&gt;
&lt;br /&gt;
=== wasbeer / kat classifier ===&lt;br /&gt;
ESP32 with resnet50 neural net to distinguish house cats from other animals, see also:&lt;br /&gt;
* https://ieeexplore.ieee.org/document/10556848/&lt;br /&gt;
&lt;br /&gt;
=== Nespresso brew counter ===&lt;br /&gt;
Several hacker spaces have one of these Nespresso cup coffee makers, but there&#039;s no obvious easy way to monitor usage (monitor ALL the things!).&lt;br /&gt;
Inspired by https://hackaday.com/2021/04/25/arduino-mkr-makes-nespresso-monitoring-easy/ this idea is making an even simpler nespresso monitor,&lt;br /&gt;
using an inexpensive WiFi enabled ESP8266 with an ubiquitous I2S microphone such as the INMP441. &lt;br /&gt;
&lt;br /&gt;
Use this sound monitoring project:&lt;br /&gt;
https://github.com/aleiei/ESP8266-BUG-I2S-MIC&lt;br /&gt;
and turn it into a WiFi connected brew counter.&lt;br /&gt;
&lt;br /&gt;
Software for getting microphone data from an ESP8266/I2S mic into Linux https://github.com/bertrik/EspMicServer&lt;br /&gt;
Nespresso sound is typically 50 Hz with overtones.&lt;br /&gt;
In a recording with the ESP8266, it appears that oddly the 17th harmonic (around 850 Hz) is quite strong.&lt;br /&gt;
&lt;br /&gt;
The plan in the short term is this:&lt;br /&gt;
* apply a gentle IIR filter to subtract any DC bias from the microphone signal&lt;br /&gt;
* calculate autocovariance at offsets 0 and 20 ms (inverse of 50 Hz), representing the total energy and the energy at 50 Hz respectively&lt;br /&gt;
* compare amplitudes to decide about presence of 50 Hz signal, e.g. calculate ratio in dB&lt;br /&gt;
* use this to count the length of time that a 50 Hz signal is heard (increments of 100 ms or so)&lt;br /&gt;
* decide about none / espresso / lungo based on time&lt;br /&gt;
&lt;br /&gt;
Might even integrate with esphome / home assistant later.&lt;br /&gt;
&lt;br /&gt;
=== Remote bat box monitor ===&lt;br /&gt;
Idea:&lt;br /&gt;
* goal: check if remote bat boxes are occupied and identify the species&lt;br /&gt;
* challenges:&lt;br /&gt;
** connectivity: need to transport images/videos (no LoRaWAN), possibly out of range of mobile data networks&lt;br /&gt;
** autonomy: cannot reach the bat box once installed&lt;br /&gt;
** power: no fixed power connection, so probably needs a battery + solar panel&lt;br /&gt;
* design&lt;br /&gt;
** wake up every hour, take a picture, go to sleep, upload photos/videos once per day&lt;br /&gt;
** run from batteries, recharge by solar, rules of thumb&lt;br /&gt;
*** batteries should last for about 10 days&lt;br /&gt;
*** battery should be able to charge in 1 day&lt;br /&gt;
*** consider only 10% of peak solar power&lt;br /&gt;
** KPN &amp;quot;4G-op-zee&amp;quot; somewhat confusing article: https://www.kpn.com/zakelijk/mobiel/roaming/noordzee&lt;br /&gt;
* hardware&lt;br /&gt;
** main processor: raspberry pi zero&lt;br /&gt;
*** raspberry pi power consumption overview: https://www.pidramble.com/wiki/benchmarks/power-consumption&lt;br /&gt;
** this hat to wake up the main CPU: https://www.waveshare.com/wiki/Power_Management_HAT_(B) sold at https://www.kiwi-electronics.com/en/power-management-hat-for-raspberry-pi-with-rtc-and-rp2040-mcu-11373&lt;br /&gt;
&lt;br /&gt;
=== KNMI API ===&lt;br /&gt;
Get familiar with https://developer.dataplatform.knmi.nl/open-data-api&lt;br /&gt;
&lt;br /&gt;
=== Grid frequency measurer with web page ===&lt;br /&gt;
See https://github.com/bertrik/GridFrequency&lt;br /&gt;
SSE source is gridfrequency.local/events&lt;br /&gt;
&lt;br /&gt;
=== WeAct CH55x board ===&lt;br /&gt;
Cheap little boards, using a similar chip as used in USB-serial converters.&lt;br /&gt;
&lt;br /&gt;
The hardware&lt;br /&gt;
https://github.com/WeActStudio/WeActStudio.CH552CoreBoard&lt;br /&gt;
&lt;br /&gt;
Flashing it:&lt;br /&gt;
https://hackaday.io/page/137447-flashing-the-ch552-dev-board-from-the-command-line&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://hackaday.io/project/198238-more-weact-ch5xx&lt;br /&gt;
* https://community.platformio.org/t/manually-adding-support-for-ch55x-controller-by-adding-existing-ardunio-core/41138&lt;br /&gt;
&lt;br /&gt;
=== Zigbee device with esp32 ===&lt;br /&gt;
See https://github.com/P-R-O-C-H-Y/arduino-esp32/blob/8169a434c3e46e1bb7711ebcc04f27267db2093c/libraries/ESP32/examples/Zigbee/Zigbee_Light_Bulb/Zigbee_Light_Bulb.ino&lt;br /&gt;
&lt;br /&gt;
See https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Zigbee&lt;br /&gt;
&lt;br /&gt;
Espressif32 arduino platform git: https://github.com/platformio/platform-espressif32&lt;br /&gt;
&lt;br /&gt;
=== Cameratoezicht in Gouda ===&lt;br /&gt;
Gemeente Gouda publiceert een lijst van camera&#039;s in Gouda, zie&lt;br /&gt;
https://gis.gouda.nl/nl/app/Basisviewer_open#!eAGT8uRiNBRy4ZIRYFKSyKkssjJwdzFxNDMz8TKKsLC0cnb0dQ1y5FIByirgkg3xd43ydPYIAQBXGBFm&lt;br /&gt;
&lt;br /&gt;
Aanmelden (semi-automatisch) bij bijvoorbeeld [https://mapcomplete.org/surveillance Surveillance-under-surveillance] ?&lt;br /&gt;
&lt;br /&gt;
=== SolarEdge ===&lt;br /&gt;
Interact with the solar edge api for PV installations.&lt;br /&gt;
&lt;br /&gt;
https://developers.solaredge.com/&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/solaredge-api&lt;br /&gt;
&lt;br /&gt;
=== Stookalert ===&lt;br /&gt;
Idee: gekleurd lampje dat aangeeft of er op dit moment een stookalert actief is&lt;br /&gt;
&lt;br /&gt;
Implementatie:&lt;br /&gt;
* kijk m.b.v. WiFi locatieservice in welke provincie je je bevindt&lt;br /&gt;
* haal JSON op bij https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* toon de bijbehorende kleur op het lampje&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
* Officiele pagina: https://www.atlasleefomgeving.nl/stookwijzer&lt;br /&gt;
* Achterliggende JSON met toestand per provincie: https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* Er moet ook nog ergens een API zijn die fijnmaziger aangeeft wat de toestand is ...&lt;br /&gt;
&lt;br /&gt;
=== Display of current electricity usage ===&lt;br /&gt;
I have a [https://www.zuidwijk.com/product/slimmelezer-plus/ slimme lezer] connected to the P1 port of my smart electricity meter.&lt;br /&gt;
The default firmware exposes meter readings using an event stream (SSE) at http://slimmelezer.local/events&lt;br /&gt;
&lt;br /&gt;
So for example, you can read this with curl:&lt;br /&gt;
  curl http://slimmelezer.local/events&lt;br /&gt;
With result:&lt;br /&gt;
  event: state&lt;br /&gt;
  data: {&amp;quot;id&amp;quot;:&amp;quot;sensor-power_consumed_phase_1&amp;quot;,&amp;quot;value&amp;quot;:0.046,&amp;quot;state&amp;quot;:&amp;quot;0.046 kW&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Specification of SSE: https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream&lt;br /&gt;
&lt;br /&gt;
What I would like to do is to read these events and control a simple display to display  the current usage number.&lt;br /&gt;
&lt;br /&gt;
=== Participating in ultrasonic sound project ===&lt;br /&gt;
https://bat-migration-europe.netlify.app/project/&lt;br /&gt;
&lt;br /&gt;
Use an audiomoth for this.&lt;br /&gt;
&lt;br /&gt;
=== ESP32 C3 ===&lt;br /&gt;
* [https://www.espressif.com/en/products/socs/esp32-c3 processor page]&lt;br /&gt;
* [https://wiki.luatos.com/chips/esp32c3/index.html luatos basic esp32 c3 board]&lt;br /&gt;
&lt;br /&gt;
=== Flexible LED ticker ===&lt;br /&gt;
Ordered a flexible 32x8 RGB LED display:&lt;br /&gt;
https://nl.aliexpress.com/item/4001296811800.html&lt;br /&gt;
&lt;br /&gt;
Matching diffuser to be 3D printed:&lt;br /&gt;
https://www.thingiverse.com/thing:1903744&lt;br /&gt;
&lt;br /&gt;
=== Washing machine API ===&lt;br /&gt;
https://tratt.net/laurie/blog/2023/displaying_my_washing_machines_remaining_time_with_curl_jq_pizauth.html&lt;br /&gt;
&lt;br /&gt;
=== TinyML ===&lt;br /&gt;
Investigate TinyML, see https://www.tinyml.org/&lt;br /&gt;
Apparently can run on a RP2040 (raspi pi pico).&lt;br /&gt;
&lt;br /&gt;
https://www.hackster.io/mjrobot/esp32-cam-tinyml-image-classification-fruits-vs-veggies-4ab970&lt;br /&gt;
&lt;br /&gt;
=== Bat box busy signal ===&lt;br /&gt;
My brother built little pyramid &#039;blinkies&#039;: solar cell + Lithium-supercapacitor + harvesting circuit + LED encased in clear expoxy.&lt;br /&gt;
&lt;br /&gt;
Can we add a low-power PIR sensor to this, and make a blinky that blinks if movement was detected by the PIR in the past hour?&lt;br /&gt;
&lt;br /&gt;
=== Super tiny RFID ===&lt;br /&gt;
See https://www.sparkfun.com/products/16464 an almost sand grain size RFID chip, 1.25mmx1.25mmx0.55mm&lt;br /&gt;
&lt;br /&gt;
The accompanying reader &amp;quot;M6E Nano&amp;quot; is still quite expensive at $235.95 : https://www.sparkfun.com/products/14066&lt;br /&gt;
&lt;br /&gt;
Uses the MuRata LXMSJZNCMF-198:&lt;br /&gt;
&amp;quot;This product can be used as an ultra small tag and this can be&lt;br /&gt;
fit on any metal objects, non-metal objects, as well as&lt;br /&gt;
embedding into any objects by glue or adhesive and so on.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: ISO18000-63 and EPC global Gen2(v2)&lt;br /&gt;
&lt;br /&gt;
Specification:&lt;br /&gt;
* https://www.gs1.org/standards/rfid/uhf-air-interface-protocol&lt;br /&gt;
&lt;br /&gt;
=== TheThingsNetwork-Sondehub bridge ===&lt;br /&gt;
Uploads balloon telemetry to sondehub.&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/ttnhabbridge/issues/6&lt;br /&gt;
&lt;br /&gt;
=== Actually smart boiler ===&lt;br /&gt;
The boiler for hot water is about half of my electricity bill.&lt;br /&gt;
The idea is to use/build a smart switch that switches it on at time when electricity prices are lowest.&lt;br /&gt;
&lt;br /&gt;
Currently have a &amp;quot;Slimme boiler module&amp;quot; from Eneco, which is *not* actually smart,&lt;br /&gt;
since it allows me no control whatsoever when it switches on (besides cutting the power in the meterkast).&lt;br /&gt;
For example, it will switch on mid-day when my price is high and eneco&#039;s price is low, perhaps good for Eneco, not for me. &lt;br /&gt;
Apparently, they even received a [https://nieuws.eneco.nl/slim-apparaatje-bij-boiler-vangt-pieken-wind--en-zonnestroom-op/ subsidy] for this.&lt;br /&gt;
&lt;br /&gt;
A boiler is a pretty big load, about 3 kW, but it is not inductive.&lt;br /&gt;
&lt;br /&gt;
Alternatives:&lt;br /&gt;
* https://www.shelly.cloud/en-nl/products/product-overview/shelly-plus-1-pm-2-pack/shelly-plus-1-pm&lt;br /&gt;
* https://www.solyxenergy.nl/solar-iboost/ to store excess solar energy in hot water, might also be useful for just controlling a boiler to use cheaper rates&lt;br /&gt;
* tuya smartplug, like https://www.wifilampkoning.nl/merken-slimme-verlichting/tuya/tuya-enkele-smartplug-met-energiemeting ?&lt;br /&gt;
* tuya 20A smart plug: https://nl.aliexpress.com/item/1005003347568206.html&lt;br /&gt;
&lt;br /&gt;
=== Receiving gas meters ===&lt;br /&gt;
Apparently gas meters send gas consumption data to the slimme meter using a wireless link in the 868 MHz band.&lt;br /&gt;
Probably just FSK at 38.4, as mentioned here: https://a35.veron.nl/nieuwe-elektra-en-gasmeters/&lt;br /&gt;
&lt;br /&gt;
Interesting leads:&lt;br /&gt;
* https://github.com/stef/smeter&lt;br /&gt;
* https://www.rtl-sdr.com/reading-household-wireless-utility-meters-with-an-rtl-sdr-and-plotting-the-data-in-home-automation-software/&lt;br /&gt;
* https://github.com/bemasher/rtlamr&lt;br /&gt;
&lt;br /&gt;
=== Multi-network wifi manager ===&lt;br /&gt;
Figure out or create software so that ESP8266/ESP32 wifi manager can use multiple networks to connect (not just one),&lt;br /&gt;
so it allowing storing credentials for more than one network. For example, the network at home, the hacker space, at work.&lt;br /&gt;
Instead of reconfiguring the wifi manager for each network, you just *add* your credentials (and the existing credentials&lt;br /&gt;
are not replaced).&lt;br /&gt;
&lt;br /&gt;
See https://github.com/folkertvanheusden/M.A.X.X&lt;br /&gt;
&lt;br /&gt;
Interesting candidates:&lt;br /&gt;
* https://registry.platformio.org/libraries/martinverges/ESP32%20Wifi%20Manager wifi manager for ESP32, has a REST API for managing wifi network, but is incomplete in the sense that you need to write your own code (e.g. javascript) to actually *use* its API&lt;br /&gt;
* https://github.com/arduino-libraries/Arduino_MultiWiFi is the arduino multi wifi library, to allow connecting to multiple different WiFi networks, but it is not a wifi manager, that starts a captive portal, etc&lt;br /&gt;
&lt;br /&gt;
=== Automated bat counting ===&lt;br /&gt;
Can we automatically count the number of bats from the image of a webcam mounted in a bat colony?&lt;br /&gt;
Perhaps using some kind of AI or machine learning algorithm?&lt;br /&gt;
&lt;br /&gt;
The image in question:&lt;br /&gt;
https://stofradar.nl/coenecoop/&lt;br /&gt;
&lt;br /&gt;
=== Use TheThingsIndoorGateway as Helium/ThingSix hotspot ===&lt;br /&gt;
I have a spare TTIG that could perhaps be used as a Helium gateway, investigate what is possible.&lt;br /&gt;
&lt;br /&gt;
One possiblity is to capture the gateway traffic from the TTN gateway events API, convert uplink data to a format that the Helium network understands and forward it.&lt;br /&gt;
I don&#039;t really care about the Helium crypto tokens, this is just for fun and science.&lt;br /&gt;
&lt;br /&gt;
What I definitely can do:&lt;br /&gt;
* Capture data from the TTN gateway events API, convert it back to Semtech UP format and forward it somewhere to Helium (just not sure where!)&lt;br /&gt;
* See also my https://github.com/bertrik/ttn-gateway-collector project which contains an initial implementation of TTN-to-UDP conversion&lt;br /&gt;
&lt;br /&gt;
Showstoppers:&lt;br /&gt;
* If you want to be a gateway on the Helium network, you have to *pay Helium*! Obviously I don&#039;t want that, I just want to share data to improve *their* network. &lt;br /&gt;
&lt;br /&gt;
Open work:&lt;br /&gt;
* Investigate if Helium has an open uplink API for their hotspots, if so study it etc, without paying the gateway fee&lt;br /&gt;
* Investigate if Thingsix has an open uplink API for their hotspots, if so study it etc, without paying any gateway fee&lt;br /&gt;
* Investigate if Thingsix is just another Helium, with weird crypto money&lt;br /&gt;
&lt;br /&gt;
Interesting stuff:&lt;br /&gt;
* https://docs.helium.com/use-the-network/setup-a-packet-forwarder unfortunately the link to setting up the &#039;light hotspot client&#039; does not work!&lt;br /&gt;
* https://docs.helium.com/mine-hnt/light-hotspots/&lt;br /&gt;
* https://thingsix.com/&lt;br /&gt;
&lt;br /&gt;
=== Adding BLE GATT interface to sensors ===&lt;br /&gt;
The GATT specification allows measurement properties to be defined and transferred continuously over Bluetooth low-energy.&lt;br /&gt;
&lt;br /&gt;
With GATT you can define a collection of properties (e.g. measurement items like temperature/humidity/particulate matter/noise, etc)&lt;br /&gt;
organised in a simple structure of a BLE service.&lt;br /&gt;
The &#039;notification&#039; method allows you to basically push the data continuously to a connected host, e.g. a smart phone.&lt;br /&gt;
&lt;br /&gt;
Services collects characteristic, a characteristic has values with units.&lt;br /&gt;
Each of these (service, characteristic, unit) have their own unique &amp;quot;UUID&amp;quot;.&lt;br /&gt;
This is described in the so-called [https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf 16-bit UUID numbers document]&lt;br /&gt;
&lt;br /&gt;
Interesting stuff in GATT:&lt;br /&gt;
* See GATT_Specification_Supplement_v5 paragraph 3.151, it has a noise characteristic with 1 dB resolution.&lt;br /&gt;
* 0x27C3 is the GATT *unit* for sound pressure&lt;br /&gt;
* 0x181A is the GATT environmental sensing *service*, document name &amp;quot;ESP_V1.0.0.pdf&amp;quot;&lt;br /&gt;
* 0x2A6E is the GATT Characteristic and Object Type for temperature&lt;br /&gt;
* 0x2A6F is the GATT Characteristic and Object Type for humidity&lt;br /&gt;
* 0x2BD5 is the GATT Characteristic and Object Type for Particulate Matter - PM1 Concentration&lt;br /&gt;
* 0x2BD6 is the GATT Characteristic and Object Type for Particulate Matter - PM2.5 Concentration&lt;br /&gt;
* 0x2BD7 is the GATT Characteristic and Object Type for Particulate Matter - PM10 Concentration&lt;br /&gt;
* Unfortunately I cannot find a characteristic for carbon-dioxide (CO2) in the BLE GATT unit document&lt;br /&gt;
&lt;br /&gt;
See also https://programmaticponderings.com/2020/08/04/getting-started-with-bluetooth-low-energy-ble-and-generic-attribute-profile-gatt-specification-for-iot/&lt;br /&gt;
&lt;br /&gt;
=== Reverse engineering XS-8217 bluetooth air quality meter ===&lt;br /&gt;
This is a thing that measures CO2, humidity, temperature, TVOC and formaldehyde.&lt;br /&gt;
&lt;br /&gt;
See also https://wiki.liutyi.info/display/CO2/ZN-2CO3+Inside&lt;br /&gt;
&lt;br /&gt;
This teardown looks a lot like my sensor: https://www.youtube.com/watch?v=APnjhMrJChI&lt;br /&gt;
Mine contains a &amp;quot;TPM-300A&amp;quot; sensor for measuring VOC.&lt;br /&gt;
&lt;br /&gt;
It has a bluetooth interface, device name is XS-8217.&lt;br /&gt;
It has a BLE GATT profile, with the following services&lt;br /&gt;
* service 0xC760&lt;br /&gt;
** characteristic 0xC762 (WRITE)&lt;br /&gt;
** characteristic 0xC761 (NOTIFY)&lt;br /&gt;
*** example data: 0x23 0x06 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
*** example data: 0x23 0x08 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
*** data shown on screen was approximately: CO2=418ppm, HCHO=0.003mg/m3, TVOC=0.013mg/m3, temp=24degC, humi=35%&lt;br /&gt;
&lt;br /&gt;
So data in the characteristic 0xC761 seems to have a 4 byte constant header:&lt;br /&gt;
* 0x23&lt;br /&gt;
* length byte&lt;br /&gt;
&lt;br /&gt;
Then we have for the first message: 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0xF1 is temperature in 0.1 degree Celcius most likely (24.1)&lt;br /&gt;
* 0x00 is ...&lt;br /&gt;
* 0x23 is humidity most likely (35)&lt;br /&gt;
* 0x65 is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
And for the second message: 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0x01 0x9A is the CO2 concentration (410)&lt;br /&gt;
* 0x00 0x0A is TVOC most likely (10)&lt;br /&gt;
* 0x00 0x03 is HCHO most likely (3)&lt;br /&gt;
* 0x0E is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
=== ribbon tweeter for bat audio ===&lt;br /&gt;
Someone gave me this idea:&lt;br /&gt;
Use a ribbon tweeter like this for playing back bat audio:&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/4000973201791.html&amp;lt;/s&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/1005002565880660.html&amp;lt;/s&amp;gt;&lt;br /&gt;
https://nl.aliexpress.com/item/1005002635086050.html&lt;br /&gt;
&lt;br /&gt;
The frequency spectrum shows no sign of dropping off at 20 kHz.&lt;br /&gt;
&lt;br /&gt;
=== 3d glasses ===&lt;br /&gt;
I got some 2nd hand 3d glasses, they look exactly like these ones:&lt;br /&gt;
* GH-15 https://www.dhgate.com/product/g15-dlp-3d-active-shutter-glasses-96-144hz/213983026.html&lt;br /&gt;
* Sintron https://www.amazon.de/Sintron-Kompatibel-TDG-BT500A-TDG-BT400A-Deutschland/dp/B015PCWMZ8&lt;br /&gt;
The common name appears to be &amp;quot;G15-DLP&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A tear-down here:&lt;br /&gt;
* https://blog.danman.eu/3d-shutter-glasses-teardown/&lt;br /&gt;
&lt;br /&gt;
Interesting documents:&lt;br /&gt;
* http://cmst.curtin.edu.au/wp-content/uploads/sites/4/2016/05/2012-28-woods-helliwell-cross-compatibility_of_shutter_glasses.pdf&lt;br /&gt;
* http://cmst.curtin.edu.au/local/docs/pubs/2011-17-woods-helliwell-3D-Sync-IR.pdf&lt;br /&gt;
&lt;br /&gt;
Someone claims he got something to work with some hacks:&lt;br /&gt;
https://www.avsforum.com/threads/how-i-got-cheap-dlp-link-glasses-to-work-great.1887145/&lt;br /&gt;
&lt;br /&gt;
=== Waterniveaumeter ===&lt;br /&gt;
Op verschillende plekken in Gouda staat er water in de kruipruimte van huizen van bewoners.&lt;br /&gt;
Kunnen we dat meten en inzichtelijk maken, voor bewoners, op een kaart bijvoorbeeld?&lt;br /&gt;
&lt;br /&gt;
Idee:&lt;br /&gt;
* in de kruipruimte plaats je een module die waterhoogte kan meten&lt;br /&gt;
* de module bestaat uit een microcontroller en een afstandsmeter, die de waterhoogte bepaalt&lt;br /&gt;
* de gegevens worden via WiFi doorgestuurd naar een centraal punt, waar de data wordt verwerkt en gevisualiseerd&lt;br /&gt;
* op een webpagina kan je een overzicht zien van alle meters die online zijn&lt;br /&gt;
* de meting wordt gedaan door bijv. een laser-afstandsmeter of een ultrasoon-afstandsmeter&lt;br /&gt;
* voeding? lastig, hoe krijg je 5v naar een potentieel natte plek?&lt;br /&gt;
* kosten? verwachting &amp;lt; E 40,-&lt;br /&gt;
&lt;br /&gt;
In Gouda wordt op veel verschillende plekken de grondwaterstand gemeten, zie https://opendata.munisense.net/portal/wareco-water2/group/581/Gouda-KJ38A , maar:&lt;br /&gt;
* geen visualisatie op de kaart, je ziet alleen de meetlokaties d.m.v. een icoontje!&lt;br /&gt;
* geen meetpunten in Gouda noord!&lt;br /&gt;
&lt;br /&gt;
=== Online bat detector ===&lt;br /&gt;
Idea: use an ultrasonic microphone, connect it to a WebSDR, so people can tune into bat sounds remotely.&lt;br /&gt;
&lt;br /&gt;
=== Raspberry pi airplane tracking ===&lt;br /&gt;
Apparently now you can also participate in MLAT tracking of planes that don&#039;t transmit GPS coordinates themselves.&lt;br /&gt;
&lt;br /&gt;
=== APRS gateway ===&lt;br /&gt;
http://qso365.co.uk/2017/02/a-guide-to-setting-up-an-aprs-receive-only-igate-using-a-raspberry-pi-and-an-rtl-sdr-dongle/&lt;br /&gt;
&lt;br /&gt;
=== JQ6500 ===&lt;br /&gt;
Small inexpensive modules that play mp3 from an internal flash. Could be nice for a custom door bell for example.&lt;br /&gt;
&lt;br /&gt;
More info at: &lt;br /&gt;
* https://www.elecfreaks.com/wiki/index.php?title=JQ6500_Mini_MP3_Module&lt;br /&gt;
* https://sparks.gogo.co.nz/jq6500/index.html&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
Cheap FPGA boards and nice applications:&lt;br /&gt;
* https://bitbucket.org/appanp/artificial-neural-networks/wiki/Home/FPGAsAndNeuralNets.md#!sbcs-and-iot-boards &lt;br /&gt;
* [http://nl.aliexpress.com/item/Altera-fpga-cycloneii-ep2c5t144-learning-board-development-board/872520721.html inexpensive ep2c5t144 board] &lt;br /&gt;
* http://land-boards.com/blwiki/index.php?title=Cyclone_II_EP2C5_Mini_Dev_Board&lt;br /&gt;
&lt;br /&gt;
=== Neural networks on low-end hardware ===&lt;br /&gt;
Investigate if you can run a powerful neural network on relatively low-end/cheap/low-power hardware. For example a Raspberry pi.&lt;br /&gt;
A RPI runs Linux, run python, just like some common neural frameworks.&lt;br /&gt;
Do we need hardware acceleration from the GPU and does the RPI GPU support that?&lt;br /&gt;
&lt;br /&gt;
Read list:&lt;br /&gt;
* https://www.zdnet.com/pictures/raspberry-pi-meets-ai-the-projects-that-put-machine-learning-on-the-35-board/&lt;br /&gt;
* https://www.pyimagesearch.com/2017/12/18/keras-deep-learning-raspberry-pi/&lt;br /&gt;
* https://www.indiegogo.com/projects/sipeed-maix-the-world-first-risc-v-64-ai-module#/&lt;br /&gt;
* https://ai.intel.com/intel-neural-compute-stick-2-smarter-faster-plug-and-play-ai-at-the-edge/&lt;br /&gt;
&lt;br /&gt;
Bought a MaixPy:&lt;br /&gt;
* see https://maixpy.sipeed.com/en/&lt;br /&gt;
* see https://www.youtube.com/watch?v=KResVuAIMb4&lt;br /&gt;
* see http://educ8s.tv/sipeed-m1-dock-review/&lt;br /&gt;
* interesting? https://www.instructables.com/id/Transfer-Learning-With-Sipeed-MaiX-and-Arduino-IDE/&lt;br /&gt;
&lt;br /&gt;
=== mini word clock in dutch ===&lt;br /&gt;
Basically an monochrome 8x8 word clock, in Dutch, showing local time in the Netherlands.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bertrik/miniwordclock This git repo] has the current code.&lt;br /&gt;
&lt;br /&gt;
See [https://plus.google.com/103276078656203197145/posts/7ki7rpJzk3a here for a demo] running on an arduino nano.&lt;br /&gt;
&lt;br /&gt;
The plan is to run this from an ESP8266 instead of an arduino nano, so it can get the time from the internet using NTP.&lt;br /&gt;
Andreas Spiess demonstrated on youtube how existing libraries on the ESP8266 can be used to do the local time (including summer-time) calculations.&lt;br /&gt;
&lt;br /&gt;
=== Cypress PSOC5 ===&lt;br /&gt;
Play with the Cypress PSOC5 platform, which combines a ARM Cortex-m3 processor with configurable analog blocks. I&#039;m thinking of combining it with a 24 GHz doppler radar sensor, to process the signal and present it as a USB audio device (stereo signal contains I and Q parts). See [[RadarOnAStick]].&lt;br /&gt;
&lt;br /&gt;
=== Simple Doppler motion sensors ===&lt;br /&gt;
You can find basic doppler microwave motion sensors based on a single transistor, with some weird traces on the PCB very cheaply, for example&lt;br /&gt;
* https://www.aliexpress.com/item/RCWL-0516-microwave-radar-sensor-module-Human-body-induction-switch-module-Intelligent-sensor/32708877914.html&lt;br /&gt;
&lt;br /&gt;
Typically the microwave part of these consists of a single transistor with a rectangular area on one leg and a meandering trace (with lots of vias to the other side) on the other leg.&lt;br /&gt;
The output of this circuit seems to go into a chip very much like the ones used in PIR sensors.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/jdesbonnet/RCWL-0516 for a reverse engineering effort of these doppler radar modules.&lt;br /&gt;
&lt;br /&gt;
=== Bare-bones Arduino bat detector ===&lt;br /&gt;
This is an idea for a very basic heterodyne bat detector, doing signal processing on an Arduino, requiring minimal external components.&lt;br /&gt;
&lt;br /&gt;
The basic principle of a heterodyne detector is that it just mixes (multiplies) the audio signal with a square wave, low-pass filters the result and puts it on a speaker.&lt;br /&gt;
&lt;br /&gt;
Multiplying with a square wave can also be considered to be just alternatively inverting and not-inverting the signal.&lt;br /&gt;
So if you sample an ultrasonic signal at twice the rate you want to multiply, you can just subtract odd samples from even samples and low-pass filter that.&lt;br /&gt;
&lt;br /&gt;
How this can be done in an AVR Arduino:&lt;br /&gt;
* sample the audio signal at twice the detection frequency, say 84 kHz. An AVR should just be able to do that.&lt;br /&gt;
* apply a 1-pole IIR high-pass filter to remove DC bias, this takes one shift instruction and one addition.&lt;br /&gt;
* multiply by the detection frequency, this means just inverting the odd samples.&lt;br /&gt;
* low-pass filter the signal, this can be done using a moving average filter, say 16 samples long (first null at 5.25 kHz). Theoretically, averaging 16 samples should result in two bits extra accuracy. This operation takes some storage, an addition and a subtraction.&lt;br /&gt;
* output the filtered signal using PWM, possibly at the same rate that we are sampling the input audio.&lt;br /&gt;
&lt;br /&gt;
The microphone can be a 40 kHz piezo transducer, to keep it cheap (but also limited to 40 kHz).&lt;br /&gt;
The pre-amplifier can be a single transistor with some resistors around it, providing about 40x gain.&lt;br /&gt;
The arduino does the signal processing (mixing, low-pass filter) to shift the bat audio to human range.&lt;br /&gt;
The speaker amplifier can just be a simple two transistor push-pull circuit, since the output from the Arduino is digital/PWM.&lt;br /&gt;
&lt;br /&gt;
==== AVR Arduino sample rate ====&lt;br /&gt;
As far as I understand, the ADC clock can be set to 1 MHz.&lt;br /&gt;
Conversion takes 13 cycles, so this can be a problem to reach a sample rate above 80 kHz.&lt;br /&gt;
&lt;br /&gt;
=== Indoor radar speed sign ===&lt;br /&gt;
This idea about placing a simple IQ-output radar sensor indoors in the hacker space, do some basic signal processing on the IQ doppler signal and determine movement speed and direction, then display this on a LED display.&lt;br /&gt;
This is of no immediate practical use other than fun, but helps me to gain a bit more experience with microwave radar sensors and eventually build a more effective setup for detecting/counting bats flying in and out of a roost.&lt;br /&gt;
&lt;br /&gt;
Implement this on a PSOC5 platform or on the STM32 using Arduino.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35279</id>
		<title>User:Bertrik Sikken</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35279"/>
		<updated>2026-06-14T10:03:49Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* ESP32-C5 to receive CAM/DENM/SPAT message */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Smoel&lt;br /&gt;
 |Name=Bertrik Sikken&lt;br /&gt;
 |Nick=bertrik&lt;br /&gt;
 |Tagline=heb ik niet&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
You can reach me at [mailto:bertrik@sikken.nl bertrik@sikken.nl] or [mailto:bertrik@gmail.com bertrik@gmail.com].&lt;br /&gt;
&lt;br /&gt;
Studied Electrical Engineering at Twente University.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Main interests:&lt;br /&gt;
* reverse-engineering things (USB stuff, mp3 players), worked on http://rockbox.org (sansa clip players)&lt;br /&gt;
* studying bats and making electronics for recording/listening to bat sounds&lt;br /&gt;
* radio stuff, in particular software-defined radio, LoRa networks&lt;br /&gt;
* citizen science and open data (particulate matter measurement, noise, water quality)&lt;br /&gt;
* energy-related stuff, visualisation&lt;br /&gt;
&lt;br /&gt;
Projects I work(ed) on ([https://revspace.nl/index.php?title=User:Bertrik_Sikken&amp;amp;action=purge refresh]):&lt;br /&gt;
{{#ask:[[Category:Project]][[Project Contact::bertrik]]&lt;br /&gt;
|?Project Status&lt;br /&gt;
|headers=show&lt;br /&gt;
|link=all&lt;br /&gt;
|order=ASC,ASC&lt;br /&gt;
|sort=Project Status,Project Name&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project ideas ==&lt;br /&gt;
[[File:always10oclock.jpg|right]]&lt;br /&gt;
[[File:idea.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
This is a list of ideas I&#039;m thinking about, but have not fully developed into an actual project yet.&lt;br /&gt;
&lt;br /&gt;
https://pine64.com/product/128mb-ox64-sbc-available-on-december-2-2022/&lt;br /&gt;
&lt;br /&gt;
TinyGS station:&lt;br /&gt;
https://app.tinygs.com/station/bertrik@1430247931&lt;br /&gt;
&lt;br /&gt;
=== ESP32-C5 to receive CAM/DENM/SPAT message ===&lt;br /&gt;
Inspired by https://github.com/pit711/v2x2map I ordered a ESP32-C5-DevKitC-1 to receive C-ITS messages.&lt;br /&gt;
Vehicles broadcast their position and velocity.&lt;br /&gt;
Traffic lights send information about their signal phase and timing.&lt;br /&gt;
&lt;br /&gt;
Live traffic map: https://opentrafficmap.org/&lt;br /&gt;
&lt;br /&gt;
Figure out how to contribute to the above project.&lt;br /&gt;
&lt;br /&gt;
=== LilyGo T-Radar ===&lt;br /&gt;
https://developer.acconeer.com/home/a121-docs-software/a121-esp32&lt;br /&gt;
&lt;br /&gt;
=== Action 32x32 display ===&lt;br /&gt;
Action sells [https://www.action.com/nl-nl/p/3217439/led-pixelbord/ this ACT1026 display]. You control it over BLE.&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Pupariaa/Bk-Light-AppBypass works to control it&lt;br /&gt;
* software for a similar led display: https://github.com/derkalle4/python3-idotmatrix-client&lt;br /&gt;
&lt;br /&gt;
=== investigate thread/matter ===&lt;br /&gt;
Matter/thread is the new IKEA standard for home automation thins apparently. &lt;br /&gt;
Thread is the wireless protocol, matter is a home automation protocol running on top of thread.&lt;br /&gt;
&lt;br /&gt;
I have a couple of nrf52840, these are good in doing thread.&lt;br /&gt;
&lt;br /&gt;
Next steps:&lt;br /&gt;
* check out openthread&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/openthread/openthread.git&lt;br /&gt;
cd openthread&lt;br /&gt;
git submodule update --init --recursive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Prepare development environment:&lt;br /&gt;
  scripts/bootstrap&lt;br /&gt;
* Build it:&lt;br /&gt;
  ./script/build nrf52840 UART_trans -DOT_LOG_LEVEL=OT_LOG_LEVEL_INFO&lt;br /&gt;
&lt;br /&gt;
Thread on ESP32:&lt;br /&gt;
* on ESP32 C6 https://gist.github.com/gtxaspec/d26198daadfb0a8b0a0edeae2d3fd58f&lt;br /&gt;
* https://github.com/espressif/esp-thread-br&lt;br /&gt;
* https://github.com/espressif/esp-idf/tree/master/examples/openthread/ot_rcp&lt;br /&gt;
&lt;br /&gt;
=== action lsc stekker ===&lt;br /&gt;
https://keetsupport.nl/2024/03/20/how-to-flash-lsc-power-plug-with-esphome/&lt;br /&gt;
&lt;br /&gt;
https://community.home-assistant.io/t/detailed-guide-on-how-to-flash-the-new-tuya-beken-chips-with-openbk7231t/437276&lt;br /&gt;
&lt;br /&gt;
=== sipeed maix dock ===&lt;br /&gt;
Bought this a couple of years ago. Get familiar with this board.&lt;br /&gt;
Can I run a chess program on this, for example?&lt;br /&gt;
&lt;br /&gt;
* https://wiki.sipeed.com/soft/maixpy/en/develop_kit_board/maix_dock.html&lt;br /&gt;
&lt;br /&gt;
=== rfid keyfob ===&lt;br /&gt;
* aliexpress page: https://nl.aliexpress.com/item/1005009569496736.html&lt;br /&gt;
* firmware github: &lt;br /&gt;
** https://github.com/RfidResearchGroup/ChameleonUltra&lt;br /&gt;
** https://github.com/GameTec-live/ChameleonUltraGUI&lt;br /&gt;
&lt;br /&gt;
=== advanced lidars for bat detection ===&lt;br /&gt;
livox:&lt;br /&gt;
* github page https://github.com/Livox-SDK/Livox-SDK/tree/master&lt;br /&gt;
* web page: https://www.livoxtech.com/&lt;br /&gt;
&lt;br /&gt;
=== cubecell meshtastic motion detector ===&lt;br /&gt;
I have a cubecell AB01 board.&lt;br /&gt;
This board is focused on low power, has a connection to attach a solar panel and has a lora radio.&lt;br /&gt;
Relatively small amount of RAM, barely enough to run a LoRaWAN stack but probably plenty to run meshtastic&lt;br /&gt;
&lt;br /&gt;
The plan is to build a simple motion detector from this (using a PIR).&lt;br /&gt;
The PIR can wake up the board from low-power, or a timer can wake it periodically.&lt;br /&gt;
&lt;br /&gt;
See also: https://github.com/HelTecAutomation/CubeCell-Arduino/tree/master/libraries/Basics/examples/LowPower&lt;br /&gt;
&lt;br /&gt;
=== configure multitech outdoor gateway ===&lt;br /&gt;
https://www.multitech.net/developer/products/multiconnect-conduit-platform/basestation/&lt;br /&gt;
&lt;br /&gt;
https://multitech.com/product/multitech-conduit-mtcdt-246a-868-eu-gb/&lt;br /&gt;
&lt;br /&gt;
emergency procedure:&lt;br /&gt;
https://www.multitech.net/developer/software/mlinux/using-mlinux/flashing-mlinux-firmware-for-conduit/&lt;br /&gt;
&lt;br /&gt;
=== esp32 wtf ===&lt;br /&gt;
* https://forum.arduino.cc/t/ttgo-lilygo-lora-esp32-26mhz-problem/1353750&lt;br /&gt;
* &amp;quot;26 MHz crystal has been deprecated&amp;quot; https://github.com/espressif/arduino-esp32/issues/10117&lt;br /&gt;
&lt;br /&gt;
=== kakofonie counter ===&lt;br /&gt;
Sample room audio, use neural network to distinguish voices to estimate number of people talking in the past 30 seconds or so.&lt;br /&gt;
Show this number on some kind of display, publish it to MQTT, make a nice graph of it.&lt;br /&gt;
&lt;br /&gt;
Stuff to figure out:&lt;br /&gt;
* this is called &#039;speaker diarization&#039;&lt;br /&gt;
* can it run on an ESP32?&lt;br /&gt;
* make a prototype&lt;br /&gt;
&lt;br /&gt;
=== hypno toad ===&lt;br /&gt;
Put these LEDS https://nl.aliexpress.com/item/1005007583528891.html into https://www.action.com/nl-nl/p/2560347/solar-tuinbeeldje/&lt;br /&gt;
&lt;br /&gt;
Turns out that the default circuit is really basic and output a rough step-up waveform to the LED.&lt;br /&gt;
The self-fading LEDs don&#039;t work very well with that.&lt;br /&gt;
&lt;br /&gt;
Also, putting some IPA on hotglue makes it release really easy.&lt;br /&gt;
&lt;br /&gt;
=== wasbeer / kat classifier ===&lt;br /&gt;
ESP32 with resnet50 neural net to distinguish house cats from other animals, see also:&lt;br /&gt;
* https://ieeexplore.ieee.org/document/10556848/&lt;br /&gt;
&lt;br /&gt;
=== Nespresso brew counter ===&lt;br /&gt;
Several hacker spaces have one of these Nespresso cup coffee makers, but there&#039;s no obvious easy way to monitor usage (monitor ALL the things!).&lt;br /&gt;
Inspired by https://hackaday.com/2021/04/25/arduino-mkr-makes-nespresso-monitoring-easy/ this idea is making an even simpler nespresso monitor,&lt;br /&gt;
using an inexpensive WiFi enabled ESP8266 with an ubiquitous I2S microphone such as the INMP441. &lt;br /&gt;
&lt;br /&gt;
Use this sound monitoring project:&lt;br /&gt;
https://github.com/aleiei/ESP8266-BUG-I2S-MIC&lt;br /&gt;
and turn it into a WiFi connected brew counter.&lt;br /&gt;
&lt;br /&gt;
Software for getting microphone data from an ESP8266/I2S mic into Linux https://github.com/bertrik/EspMicServer&lt;br /&gt;
Nespresso sound is typically 50 Hz with overtones.&lt;br /&gt;
In a recording with the ESP8266, it appears that oddly the 17th harmonic (around 850 Hz) is quite strong.&lt;br /&gt;
&lt;br /&gt;
The plan in the short term is this:&lt;br /&gt;
* apply a gentle IIR filter to subtract any DC bias from the microphone signal&lt;br /&gt;
* calculate autocovariance at offsets 0 and 20 ms (inverse of 50 Hz), representing the total energy and the energy at 50 Hz respectively&lt;br /&gt;
* compare amplitudes to decide about presence of 50 Hz signal, e.g. calculate ratio in dB&lt;br /&gt;
* use this to count the length of time that a 50 Hz signal is heard (increments of 100 ms or so)&lt;br /&gt;
* decide about none / espresso / lungo based on time&lt;br /&gt;
&lt;br /&gt;
Might even integrate with esphome / home assistant later.&lt;br /&gt;
&lt;br /&gt;
=== Remote bat box monitor ===&lt;br /&gt;
Idea:&lt;br /&gt;
* goal: check if remote bat boxes are occupied and identify the species&lt;br /&gt;
* challenges:&lt;br /&gt;
** connectivity: need to transport images/videos (no LoRaWAN), possibly out of range of mobile data networks&lt;br /&gt;
** autonomy: cannot reach the bat box once installed&lt;br /&gt;
** power: no fixed power connection, so probably needs a battery + solar panel&lt;br /&gt;
* design&lt;br /&gt;
** wake up every hour, take a picture, go to sleep, upload photos/videos once per day&lt;br /&gt;
** run from batteries, recharge by solar, rules of thumb&lt;br /&gt;
*** batteries should last for about 10 days&lt;br /&gt;
*** battery should be able to charge in 1 day&lt;br /&gt;
*** consider only 10% of peak solar power&lt;br /&gt;
** KPN &amp;quot;4G-op-zee&amp;quot; somewhat confusing article: https://www.kpn.com/zakelijk/mobiel/roaming/noordzee&lt;br /&gt;
* hardware&lt;br /&gt;
** main processor: raspberry pi zero&lt;br /&gt;
*** raspberry pi power consumption overview: https://www.pidramble.com/wiki/benchmarks/power-consumption&lt;br /&gt;
** this hat to wake up the main CPU: https://www.waveshare.com/wiki/Power_Management_HAT_(B) sold at https://www.kiwi-electronics.com/en/power-management-hat-for-raspberry-pi-with-rtc-and-rp2040-mcu-11373&lt;br /&gt;
&lt;br /&gt;
=== KNMI API ===&lt;br /&gt;
Get familiar with https://developer.dataplatform.knmi.nl/open-data-api&lt;br /&gt;
&lt;br /&gt;
=== Grid frequency measurer with web page ===&lt;br /&gt;
See https://github.com/bertrik/GridFrequency&lt;br /&gt;
SSE source is gridfrequency.local/events&lt;br /&gt;
&lt;br /&gt;
=== WeAct CH55x board ===&lt;br /&gt;
Cheap little boards, using a similar chip as used in USB-serial converters.&lt;br /&gt;
&lt;br /&gt;
The hardware&lt;br /&gt;
https://github.com/WeActStudio/WeActStudio.CH552CoreBoard&lt;br /&gt;
&lt;br /&gt;
Flashing it:&lt;br /&gt;
https://hackaday.io/page/137447-flashing-the-ch552-dev-board-from-the-command-line&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://hackaday.io/project/198238-more-weact-ch5xx&lt;br /&gt;
* https://community.platformio.org/t/manually-adding-support-for-ch55x-controller-by-adding-existing-ardunio-core/41138&lt;br /&gt;
&lt;br /&gt;
=== Zigbee device with esp32 ===&lt;br /&gt;
See https://github.com/P-R-O-C-H-Y/arduino-esp32/blob/8169a434c3e46e1bb7711ebcc04f27267db2093c/libraries/ESP32/examples/Zigbee/Zigbee_Light_Bulb/Zigbee_Light_Bulb.ino&lt;br /&gt;
&lt;br /&gt;
See https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Zigbee&lt;br /&gt;
&lt;br /&gt;
Espressif32 arduino platform git: https://github.com/platformio/platform-espressif32&lt;br /&gt;
&lt;br /&gt;
=== Cameratoezicht in Gouda ===&lt;br /&gt;
Gemeente Gouda publiceert een lijst van camera&#039;s in Gouda, zie&lt;br /&gt;
https://gis.gouda.nl/nl/app/Basisviewer_open#!eAGT8uRiNBRy4ZIRYFKSyKkssjJwdzFxNDMz8TKKsLC0cnb0dQ1y5FIByirgkg3xd43ydPYIAQBXGBFm&lt;br /&gt;
&lt;br /&gt;
Aanmelden (semi-automatisch) bij bijvoorbeeld [https://mapcomplete.org/surveillance Surveillance-under-surveillance] ?&lt;br /&gt;
&lt;br /&gt;
=== SolarEdge ===&lt;br /&gt;
Interact with the solar edge api for PV installations.&lt;br /&gt;
&lt;br /&gt;
https://developers.solaredge.com/&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/solaredge-api&lt;br /&gt;
&lt;br /&gt;
=== Stookalert ===&lt;br /&gt;
Idee: gekleurd lampje dat aangeeft of er op dit moment een stookalert actief is&lt;br /&gt;
&lt;br /&gt;
Implementatie:&lt;br /&gt;
* kijk m.b.v. WiFi locatieservice in welke provincie je je bevindt&lt;br /&gt;
* haal JSON op bij https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* toon de bijbehorende kleur op het lampje&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
* Officiele pagina: https://www.atlasleefomgeving.nl/stookwijzer&lt;br /&gt;
* Achterliggende JSON met toestand per provincie: https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* Er moet ook nog ergens een API zijn die fijnmaziger aangeeft wat de toestand is ...&lt;br /&gt;
&lt;br /&gt;
=== Display of current electricity usage ===&lt;br /&gt;
I have a [https://www.zuidwijk.com/product/slimmelezer-plus/ slimme lezer] connected to the P1 port of my smart electricity meter.&lt;br /&gt;
The default firmware exposes meter readings using an event stream (SSE) at http://slimmelezer.local/events&lt;br /&gt;
&lt;br /&gt;
So for example, you can read this with curl:&lt;br /&gt;
  curl http://slimmelezer.local/events&lt;br /&gt;
With result:&lt;br /&gt;
  event: state&lt;br /&gt;
  data: {&amp;quot;id&amp;quot;:&amp;quot;sensor-power_consumed_phase_1&amp;quot;,&amp;quot;value&amp;quot;:0.046,&amp;quot;state&amp;quot;:&amp;quot;0.046 kW&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Specification of SSE: https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream&lt;br /&gt;
&lt;br /&gt;
What I would like to do is to read these events and control a simple display to display  the current usage number.&lt;br /&gt;
&lt;br /&gt;
=== Participating in ultrasonic sound project ===&lt;br /&gt;
https://bat-migration-europe.netlify.app/project/&lt;br /&gt;
&lt;br /&gt;
Use an audiomoth for this.&lt;br /&gt;
&lt;br /&gt;
=== ESP32 C3 ===&lt;br /&gt;
* [https://www.espressif.com/en/products/socs/esp32-c3 processor page]&lt;br /&gt;
* [https://wiki.luatos.com/chips/esp32c3/index.html luatos basic esp32 c3 board]&lt;br /&gt;
&lt;br /&gt;
=== Flexible LED ticker ===&lt;br /&gt;
Ordered a flexible 32x8 RGB LED display:&lt;br /&gt;
https://nl.aliexpress.com/item/4001296811800.html&lt;br /&gt;
&lt;br /&gt;
Matching diffuser to be 3D printed:&lt;br /&gt;
https://www.thingiverse.com/thing:1903744&lt;br /&gt;
&lt;br /&gt;
=== Washing machine API ===&lt;br /&gt;
https://tratt.net/laurie/blog/2023/displaying_my_washing_machines_remaining_time_with_curl_jq_pizauth.html&lt;br /&gt;
&lt;br /&gt;
=== TinyML ===&lt;br /&gt;
Investigate TinyML, see https://www.tinyml.org/&lt;br /&gt;
Apparently can run on a RP2040 (raspi pi pico).&lt;br /&gt;
&lt;br /&gt;
https://www.hackster.io/mjrobot/esp32-cam-tinyml-image-classification-fruits-vs-veggies-4ab970&lt;br /&gt;
&lt;br /&gt;
=== Bat box busy signal ===&lt;br /&gt;
My brother built little pyramid &#039;blinkies&#039;: solar cell + Lithium-supercapacitor + harvesting circuit + LED encased in clear expoxy.&lt;br /&gt;
&lt;br /&gt;
Can we add a low-power PIR sensor to this, and make a blinky that blinks if movement was detected by the PIR in the past hour?&lt;br /&gt;
&lt;br /&gt;
=== Super tiny RFID ===&lt;br /&gt;
See https://www.sparkfun.com/products/16464 an almost sand grain size RFID chip, 1.25mmx1.25mmx0.55mm&lt;br /&gt;
&lt;br /&gt;
The accompanying reader &amp;quot;M6E Nano&amp;quot; is still quite expensive at $235.95 : https://www.sparkfun.com/products/14066&lt;br /&gt;
&lt;br /&gt;
Uses the MuRata LXMSJZNCMF-198:&lt;br /&gt;
&amp;quot;This product can be used as an ultra small tag and this can be&lt;br /&gt;
fit on any metal objects, non-metal objects, as well as&lt;br /&gt;
embedding into any objects by glue or adhesive and so on.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: ISO18000-63 and EPC global Gen2(v2)&lt;br /&gt;
&lt;br /&gt;
Specification:&lt;br /&gt;
* https://www.gs1.org/standards/rfid/uhf-air-interface-protocol&lt;br /&gt;
&lt;br /&gt;
=== TheThingsNetwork-Sondehub bridge ===&lt;br /&gt;
Uploads balloon telemetry to sondehub.&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/ttnhabbridge/issues/6&lt;br /&gt;
&lt;br /&gt;
=== Actually smart boiler ===&lt;br /&gt;
The boiler for hot water is about half of my electricity bill.&lt;br /&gt;
The idea is to use/build a smart switch that switches it on at time when electricity prices are lowest.&lt;br /&gt;
&lt;br /&gt;
Currently have a &amp;quot;Slimme boiler module&amp;quot; from Eneco, which is *not* actually smart,&lt;br /&gt;
since it allows me no control whatsoever when it switches on (besides cutting the power in the meterkast).&lt;br /&gt;
For example, it will switch on mid-day when my price is high and eneco&#039;s price is low, perhaps good for Eneco, not for me. &lt;br /&gt;
Apparently, they even received a [https://nieuws.eneco.nl/slim-apparaatje-bij-boiler-vangt-pieken-wind--en-zonnestroom-op/ subsidy] for this.&lt;br /&gt;
&lt;br /&gt;
A boiler is a pretty big load, about 3 kW, but it is not inductive.&lt;br /&gt;
&lt;br /&gt;
Alternatives:&lt;br /&gt;
* https://www.shelly.cloud/en-nl/products/product-overview/shelly-plus-1-pm-2-pack/shelly-plus-1-pm&lt;br /&gt;
* https://www.solyxenergy.nl/solar-iboost/ to store excess solar energy in hot water, might also be useful for just controlling a boiler to use cheaper rates&lt;br /&gt;
* tuya smartplug, like https://www.wifilampkoning.nl/merken-slimme-verlichting/tuya/tuya-enkele-smartplug-met-energiemeting ?&lt;br /&gt;
* tuya 20A smart plug: https://nl.aliexpress.com/item/1005003347568206.html&lt;br /&gt;
&lt;br /&gt;
=== Receiving gas meters ===&lt;br /&gt;
Apparently gas meters send gas consumption data to the slimme meter using a wireless link in the 868 MHz band.&lt;br /&gt;
Probably just FSK at 38.4, as mentioned here: https://a35.veron.nl/nieuwe-elektra-en-gasmeters/&lt;br /&gt;
&lt;br /&gt;
Interesting leads:&lt;br /&gt;
* https://github.com/stef/smeter&lt;br /&gt;
* https://www.rtl-sdr.com/reading-household-wireless-utility-meters-with-an-rtl-sdr-and-plotting-the-data-in-home-automation-software/&lt;br /&gt;
* https://github.com/bemasher/rtlamr&lt;br /&gt;
&lt;br /&gt;
=== Multi-network wifi manager ===&lt;br /&gt;
Figure out or create software so that ESP8266/ESP32 wifi manager can use multiple networks to connect (not just one),&lt;br /&gt;
so it allowing storing credentials for more than one network. For example, the network at home, the hacker space, at work.&lt;br /&gt;
Instead of reconfiguring the wifi manager for each network, you just *add* your credentials (and the existing credentials&lt;br /&gt;
are not replaced).&lt;br /&gt;
&lt;br /&gt;
See https://github.com/folkertvanheusden/M.A.X.X&lt;br /&gt;
&lt;br /&gt;
Interesting candidates:&lt;br /&gt;
* https://registry.platformio.org/libraries/martinverges/ESP32%20Wifi%20Manager wifi manager for ESP32, has a REST API for managing wifi network, but is incomplete in the sense that you need to write your own code (e.g. javascript) to actually *use* its API&lt;br /&gt;
* https://github.com/arduino-libraries/Arduino_MultiWiFi is the arduino multi wifi library, to allow connecting to multiple different WiFi networks, but it is not a wifi manager, that starts a captive portal, etc&lt;br /&gt;
&lt;br /&gt;
=== Automated bat counting ===&lt;br /&gt;
Can we automatically count the number of bats from the image of a webcam mounted in a bat colony?&lt;br /&gt;
Perhaps using some kind of AI or machine learning algorithm?&lt;br /&gt;
&lt;br /&gt;
The image in question:&lt;br /&gt;
https://stofradar.nl/coenecoop/&lt;br /&gt;
&lt;br /&gt;
=== Use TheThingsIndoorGateway as Helium/ThingSix hotspot ===&lt;br /&gt;
I have a spare TTIG that could perhaps be used as a Helium gateway, investigate what is possible.&lt;br /&gt;
&lt;br /&gt;
One possiblity is to capture the gateway traffic from the TTN gateway events API, convert uplink data to a format that the Helium network understands and forward it.&lt;br /&gt;
I don&#039;t really care about the Helium crypto tokens, this is just for fun and science.&lt;br /&gt;
&lt;br /&gt;
What I definitely can do:&lt;br /&gt;
* Capture data from the TTN gateway events API, convert it back to Semtech UP format and forward it somewhere to Helium (just not sure where!)&lt;br /&gt;
* See also my https://github.com/bertrik/ttn-gateway-collector project which contains an initial implementation of TTN-to-UDP conversion&lt;br /&gt;
&lt;br /&gt;
Showstoppers:&lt;br /&gt;
* If you want to be a gateway on the Helium network, you have to *pay Helium*! Obviously I don&#039;t want that, I just want to share data to improve *their* network. &lt;br /&gt;
&lt;br /&gt;
Open work:&lt;br /&gt;
* Investigate if Helium has an open uplink API for their hotspots, if so study it etc, without paying the gateway fee&lt;br /&gt;
* Investigate if Thingsix has an open uplink API for their hotspots, if so study it etc, without paying any gateway fee&lt;br /&gt;
* Investigate if Thingsix is just another Helium, with weird crypto money&lt;br /&gt;
&lt;br /&gt;
Interesting stuff:&lt;br /&gt;
* https://docs.helium.com/use-the-network/setup-a-packet-forwarder unfortunately the link to setting up the &#039;light hotspot client&#039; does not work!&lt;br /&gt;
* https://docs.helium.com/mine-hnt/light-hotspots/&lt;br /&gt;
* https://thingsix.com/&lt;br /&gt;
&lt;br /&gt;
=== Adding BLE GATT interface to sensors ===&lt;br /&gt;
The GATT specification allows measurement properties to be defined and transferred continuously over Bluetooth low-energy.&lt;br /&gt;
&lt;br /&gt;
With GATT you can define a collection of properties (e.g. measurement items like temperature/humidity/particulate matter/noise, etc)&lt;br /&gt;
organised in a simple structure of a BLE service.&lt;br /&gt;
The &#039;notification&#039; method allows you to basically push the data continuously to a connected host, e.g. a smart phone.&lt;br /&gt;
&lt;br /&gt;
Services collects characteristic, a characteristic has values with units.&lt;br /&gt;
Each of these (service, characteristic, unit) have their own unique &amp;quot;UUID&amp;quot;.&lt;br /&gt;
This is described in the so-called [https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf 16-bit UUID numbers document]&lt;br /&gt;
&lt;br /&gt;
Interesting stuff in GATT:&lt;br /&gt;
* See GATT_Specification_Supplement_v5 paragraph 3.151, it has a noise characteristic with 1 dB resolution.&lt;br /&gt;
* 0x27C3 is the GATT *unit* for sound pressure&lt;br /&gt;
* 0x181A is the GATT environmental sensing *service*, document name &amp;quot;ESP_V1.0.0.pdf&amp;quot;&lt;br /&gt;
* 0x2A6E is the GATT Characteristic and Object Type for temperature&lt;br /&gt;
* 0x2A6F is the GATT Characteristic and Object Type for humidity&lt;br /&gt;
* 0x2BD5 is the GATT Characteristic and Object Type for Particulate Matter - PM1 Concentration&lt;br /&gt;
* 0x2BD6 is the GATT Characteristic and Object Type for Particulate Matter - PM2.5 Concentration&lt;br /&gt;
* 0x2BD7 is the GATT Characteristic and Object Type for Particulate Matter - PM10 Concentration&lt;br /&gt;
* Unfortunately I cannot find a characteristic for carbon-dioxide (CO2) in the BLE GATT unit document&lt;br /&gt;
&lt;br /&gt;
See also https://programmaticponderings.com/2020/08/04/getting-started-with-bluetooth-low-energy-ble-and-generic-attribute-profile-gatt-specification-for-iot/&lt;br /&gt;
&lt;br /&gt;
=== Reverse engineering XS-8217 bluetooth air quality meter ===&lt;br /&gt;
This is a thing that measures CO2, humidity, temperature, TVOC and formaldehyde.&lt;br /&gt;
&lt;br /&gt;
See also https://wiki.liutyi.info/display/CO2/ZN-2CO3+Inside&lt;br /&gt;
&lt;br /&gt;
This teardown looks a lot like my sensor: https://www.youtube.com/watch?v=APnjhMrJChI&lt;br /&gt;
Mine contains a &amp;quot;TPM-300A&amp;quot; sensor for measuring VOC.&lt;br /&gt;
&lt;br /&gt;
It has a bluetooth interface, device name is XS-8217.&lt;br /&gt;
It has a BLE GATT profile, with the following services&lt;br /&gt;
* service 0xC760&lt;br /&gt;
** characteristic 0xC762 (WRITE)&lt;br /&gt;
** characteristic 0xC761 (NOTIFY)&lt;br /&gt;
*** example data: 0x23 0x06 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
*** example data: 0x23 0x08 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
*** data shown on screen was approximately: CO2=418ppm, HCHO=0.003mg/m3, TVOC=0.013mg/m3, temp=24degC, humi=35%&lt;br /&gt;
&lt;br /&gt;
So data in the characteristic 0xC761 seems to have a 4 byte constant header:&lt;br /&gt;
* 0x23&lt;br /&gt;
* length byte&lt;br /&gt;
&lt;br /&gt;
Then we have for the first message: 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0xF1 is temperature in 0.1 degree Celcius most likely (24.1)&lt;br /&gt;
* 0x00 is ...&lt;br /&gt;
* 0x23 is humidity most likely (35)&lt;br /&gt;
* 0x65 is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
And for the second message: 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0x01 0x9A is the CO2 concentration (410)&lt;br /&gt;
* 0x00 0x0A is TVOC most likely (10)&lt;br /&gt;
* 0x00 0x03 is HCHO most likely (3)&lt;br /&gt;
* 0x0E is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
=== ribbon tweeter for bat audio ===&lt;br /&gt;
Someone gave me this idea:&lt;br /&gt;
Use a ribbon tweeter like this for playing back bat audio:&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/4000973201791.html&amp;lt;/s&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/1005002565880660.html&amp;lt;/s&amp;gt;&lt;br /&gt;
https://nl.aliexpress.com/item/1005002635086050.html&lt;br /&gt;
&lt;br /&gt;
The frequency spectrum shows no sign of dropping off at 20 kHz.&lt;br /&gt;
&lt;br /&gt;
=== 3d glasses ===&lt;br /&gt;
I got some 2nd hand 3d glasses, they look exactly like these ones:&lt;br /&gt;
* GH-15 https://www.dhgate.com/product/g15-dlp-3d-active-shutter-glasses-96-144hz/213983026.html&lt;br /&gt;
* Sintron https://www.amazon.de/Sintron-Kompatibel-TDG-BT500A-TDG-BT400A-Deutschland/dp/B015PCWMZ8&lt;br /&gt;
The common name appears to be &amp;quot;G15-DLP&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A tear-down here:&lt;br /&gt;
* https://blog.danman.eu/3d-shutter-glasses-teardown/&lt;br /&gt;
&lt;br /&gt;
Interesting documents:&lt;br /&gt;
* http://cmst.curtin.edu.au/wp-content/uploads/sites/4/2016/05/2012-28-woods-helliwell-cross-compatibility_of_shutter_glasses.pdf&lt;br /&gt;
* http://cmst.curtin.edu.au/local/docs/pubs/2011-17-woods-helliwell-3D-Sync-IR.pdf&lt;br /&gt;
&lt;br /&gt;
Someone claims he got something to work with some hacks:&lt;br /&gt;
https://www.avsforum.com/threads/how-i-got-cheap-dlp-link-glasses-to-work-great.1887145/&lt;br /&gt;
&lt;br /&gt;
=== Waterniveaumeter ===&lt;br /&gt;
Op verschillende plekken in Gouda staat er water in de kruipruimte van huizen van bewoners.&lt;br /&gt;
Kunnen we dat meten en inzichtelijk maken, voor bewoners, op een kaart bijvoorbeeld?&lt;br /&gt;
&lt;br /&gt;
Idee:&lt;br /&gt;
* in de kruipruimte plaats je een module die waterhoogte kan meten&lt;br /&gt;
* de module bestaat uit een microcontroller en een afstandsmeter, die de waterhoogte bepaalt&lt;br /&gt;
* de gegevens worden via WiFi doorgestuurd naar een centraal punt, waar de data wordt verwerkt en gevisualiseerd&lt;br /&gt;
* op een webpagina kan je een overzicht zien van alle meters die online zijn&lt;br /&gt;
* de meting wordt gedaan door bijv. een laser-afstandsmeter of een ultrasoon-afstandsmeter&lt;br /&gt;
* voeding? lastig, hoe krijg je 5v naar een potentieel natte plek?&lt;br /&gt;
* kosten? verwachting &amp;lt; E 40,-&lt;br /&gt;
&lt;br /&gt;
In Gouda wordt op veel verschillende plekken de grondwaterstand gemeten, zie https://opendata.munisense.net/portal/wareco-water2/group/581/Gouda-KJ38A , maar:&lt;br /&gt;
* geen visualisatie op de kaart, je ziet alleen de meetlokaties d.m.v. een icoontje!&lt;br /&gt;
* geen meetpunten in Gouda noord!&lt;br /&gt;
&lt;br /&gt;
=== Online bat detector ===&lt;br /&gt;
Idea: use an ultrasonic microphone, connect it to a WebSDR, so people can tune into bat sounds remotely.&lt;br /&gt;
&lt;br /&gt;
=== Raspberry pi airplane tracking ===&lt;br /&gt;
Apparently now you can also participate in MLAT tracking of planes that don&#039;t transmit GPS coordinates themselves.&lt;br /&gt;
&lt;br /&gt;
=== APRS gateway ===&lt;br /&gt;
http://qso365.co.uk/2017/02/a-guide-to-setting-up-an-aprs-receive-only-igate-using-a-raspberry-pi-and-an-rtl-sdr-dongle/&lt;br /&gt;
&lt;br /&gt;
=== JQ6500 ===&lt;br /&gt;
Small inexpensive modules that play mp3 from an internal flash. Could be nice for a custom door bell for example.&lt;br /&gt;
&lt;br /&gt;
More info at: &lt;br /&gt;
* https://www.elecfreaks.com/wiki/index.php?title=JQ6500_Mini_MP3_Module&lt;br /&gt;
* https://sparks.gogo.co.nz/jq6500/index.html&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
Cheap FPGA boards and nice applications:&lt;br /&gt;
* https://bitbucket.org/appanp/artificial-neural-networks/wiki/Home/FPGAsAndNeuralNets.md#!sbcs-and-iot-boards &lt;br /&gt;
* [http://nl.aliexpress.com/item/Altera-fpga-cycloneii-ep2c5t144-learning-board-development-board/872520721.html inexpensive ep2c5t144 board] &lt;br /&gt;
* http://land-boards.com/blwiki/index.php?title=Cyclone_II_EP2C5_Mini_Dev_Board&lt;br /&gt;
&lt;br /&gt;
=== Neural networks on low-end hardware ===&lt;br /&gt;
Investigate if you can run a powerful neural network on relatively low-end/cheap/low-power hardware. For example a Raspberry pi.&lt;br /&gt;
A RPI runs Linux, run python, just like some common neural frameworks.&lt;br /&gt;
Do we need hardware acceleration from the GPU and does the RPI GPU support that?&lt;br /&gt;
&lt;br /&gt;
Read list:&lt;br /&gt;
* https://www.zdnet.com/pictures/raspberry-pi-meets-ai-the-projects-that-put-machine-learning-on-the-35-board/&lt;br /&gt;
* https://www.pyimagesearch.com/2017/12/18/keras-deep-learning-raspberry-pi/&lt;br /&gt;
* https://www.indiegogo.com/projects/sipeed-maix-the-world-first-risc-v-64-ai-module#/&lt;br /&gt;
* https://ai.intel.com/intel-neural-compute-stick-2-smarter-faster-plug-and-play-ai-at-the-edge/&lt;br /&gt;
&lt;br /&gt;
Bought a MaixPy:&lt;br /&gt;
* see https://maixpy.sipeed.com/en/&lt;br /&gt;
* see https://www.youtube.com/watch?v=KResVuAIMb4&lt;br /&gt;
* see http://educ8s.tv/sipeed-m1-dock-review/&lt;br /&gt;
* interesting? https://www.instructables.com/id/Transfer-Learning-With-Sipeed-MaiX-and-Arduino-IDE/&lt;br /&gt;
&lt;br /&gt;
=== mini word clock in dutch ===&lt;br /&gt;
Basically an monochrome 8x8 word clock, in Dutch, showing local time in the Netherlands.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bertrik/miniwordclock This git repo] has the current code.&lt;br /&gt;
&lt;br /&gt;
See [https://plus.google.com/103276078656203197145/posts/7ki7rpJzk3a here for a demo] running on an arduino nano.&lt;br /&gt;
&lt;br /&gt;
The plan is to run this from an ESP8266 instead of an arduino nano, so it can get the time from the internet using NTP.&lt;br /&gt;
Andreas Spiess demonstrated on youtube how existing libraries on the ESP8266 can be used to do the local time (including summer-time) calculations.&lt;br /&gt;
&lt;br /&gt;
=== Cypress PSOC5 ===&lt;br /&gt;
Play with the Cypress PSOC5 platform, which combines a ARM Cortex-m3 processor with configurable analog blocks. I&#039;m thinking of combining it with a 24 GHz doppler radar sensor, to process the signal and present it as a USB audio device (stereo signal contains I and Q parts). See [[RadarOnAStick]].&lt;br /&gt;
&lt;br /&gt;
=== Simple Doppler motion sensors ===&lt;br /&gt;
You can find basic doppler microwave motion sensors based on a single transistor, with some weird traces on the PCB very cheaply, for example&lt;br /&gt;
* https://www.aliexpress.com/item/RCWL-0516-microwave-radar-sensor-module-Human-body-induction-switch-module-Intelligent-sensor/32708877914.html&lt;br /&gt;
&lt;br /&gt;
Typically the microwave part of these consists of a single transistor with a rectangular area on one leg and a meandering trace (with lots of vias to the other side) on the other leg.&lt;br /&gt;
The output of this circuit seems to go into a chip very much like the ones used in PIR sensors.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/jdesbonnet/RCWL-0516 for a reverse engineering effort of these doppler radar modules.&lt;br /&gt;
&lt;br /&gt;
=== Bare-bones Arduino bat detector ===&lt;br /&gt;
This is an idea for a very basic heterodyne bat detector, doing signal processing on an Arduino, requiring minimal external components.&lt;br /&gt;
&lt;br /&gt;
The basic principle of a heterodyne detector is that it just mixes (multiplies) the audio signal with a square wave, low-pass filters the result and puts it on a speaker.&lt;br /&gt;
&lt;br /&gt;
Multiplying with a square wave can also be considered to be just alternatively inverting and not-inverting the signal.&lt;br /&gt;
So if you sample an ultrasonic signal at twice the rate you want to multiply, you can just subtract odd samples from even samples and low-pass filter that.&lt;br /&gt;
&lt;br /&gt;
How this can be done in an AVR Arduino:&lt;br /&gt;
* sample the audio signal at twice the detection frequency, say 84 kHz. An AVR should just be able to do that.&lt;br /&gt;
* apply a 1-pole IIR high-pass filter to remove DC bias, this takes one shift instruction and one addition.&lt;br /&gt;
* multiply by the detection frequency, this means just inverting the odd samples.&lt;br /&gt;
* low-pass filter the signal, this can be done using a moving average filter, say 16 samples long (first null at 5.25 kHz). Theoretically, averaging 16 samples should result in two bits extra accuracy. This operation takes some storage, an addition and a subtraction.&lt;br /&gt;
* output the filtered signal using PWM, possibly at the same rate that we are sampling the input audio.&lt;br /&gt;
&lt;br /&gt;
The microphone can be a 40 kHz piezo transducer, to keep it cheap (but also limited to 40 kHz).&lt;br /&gt;
The pre-amplifier can be a single transistor with some resistors around it, providing about 40x gain.&lt;br /&gt;
The arduino does the signal processing (mixing, low-pass filter) to shift the bat audio to human range.&lt;br /&gt;
The speaker amplifier can just be a simple two transistor push-pull circuit, since the output from the Arduino is digital/PWM.&lt;br /&gt;
&lt;br /&gt;
==== AVR Arduino sample rate ====&lt;br /&gt;
As far as I understand, the ADC clock can be set to 1 MHz.&lt;br /&gt;
Conversion takes 13 cycles, so this can be a problem to reach a sample rate above 80 kHz.&lt;br /&gt;
&lt;br /&gt;
=== Indoor radar speed sign ===&lt;br /&gt;
This idea about placing a simple IQ-output radar sensor indoors in the hacker space, do some basic signal processing on the IQ doppler signal and determine movement speed and direction, then display this on a LED display.&lt;br /&gt;
This is of no immediate practical use other than fun, but helps me to gain a bit more experience with microwave radar sensors and eventually build a more effective setup for detecting/counting bats flying in and out of a roost.&lt;br /&gt;
&lt;br /&gt;
Implement this on a PSOC5 platform or on the STM32 using Arduino.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35278</id>
		<title>User:Bertrik Sikken</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=User:Bertrik_Sikken&amp;diff=35278"/>
		<updated>2026-06-13T21:55:57Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Project ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Smoel&lt;br /&gt;
 |Name=Bertrik Sikken&lt;br /&gt;
 |Nick=bertrik&lt;br /&gt;
 |Tagline=heb ik niet&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
You can reach me at [mailto:bertrik@sikken.nl bertrik@sikken.nl] or [mailto:bertrik@gmail.com bertrik@gmail.com].&lt;br /&gt;
&lt;br /&gt;
Studied Electrical Engineering at Twente University.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Main interests:&lt;br /&gt;
* reverse-engineering things (USB stuff, mp3 players), worked on http://rockbox.org (sansa clip players)&lt;br /&gt;
* studying bats and making electronics for recording/listening to bat sounds&lt;br /&gt;
* radio stuff, in particular software-defined radio, LoRa networks&lt;br /&gt;
* citizen science and open data (particulate matter measurement, noise, water quality)&lt;br /&gt;
* energy-related stuff, visualisation&lt;br /&gt;
&lt;br /&gt;
Projects I work(ed) on ([https://revspace.nl/index.php?title=User:Bertrik_Sikken&amp;amp;action=purge refresh]):&lt;br /&gt;
{{#ask:[[Category:Project]][[Project Contact::bertrik]]&lt;br /&gt;
|?Project Status&lt;br /&gt;
|headers=show&lt;br /&gt;
|link=all&lt;br /&gt;
|order=ASC,ASC&lt;br /&gt;
|sort=Project Status,Project Name&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project ideas ==&lt;br /&gt;
[[File:always10oclock.jpg|right]]&lt;br /&gt;
[[File:idea.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
This is a list of ideas I&#039;m thinking about, but have not fully developed into an actual project yet.&lt;br /&gt;
&lt;br /&gt;
https://pine64.com/product/128mb-ox64-sbc-available-on-december-2-2022/&lt;br /&gt;
&lt;br /&gt;
TinyGS station:&lt;br /&gt;
https://app.tinygs.com/station/bertrik@1430247931&lt;br /&gt;
&lt;br /&gt;
=== ESP32-C5 to receive CAM/DENM/SPAT message ===&lt;br /&gt;
Inspired by https://github.com/pit711/v2x2map I ordered a ESP32-C5-DevKitC-1 to receive C-ITS messages.&lt;br /&gt;
Vehicles broadcast their position and velocity.&lt;br /&gt;
Traffic lights send information about their signal phase and timing.&lt;br /&gt;
&lt;br /&gt;
=== LilyGo T-Radar ===&lt;br /&gt;
https://developer.acconeer.com/home/a121-docs-software/a121-esp32&lt;br /&gt;
&lt;br /&gt;
=== Action 32x32 display ===&lt;br /&gt;
Action sells [https://www.action.com/nl-nl/p/3217439/led-pixelbord/ this ACT1026 display]. You control it over BLE.&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Pupariaa/Bk-Light-AppBypass works to control it&lt;br /&gt;
* software for a similar led display: https://github.com/derkalle4/python3-idotmatrix-client&lt;br /&gt;
&lt;br /&gt;
=== investigate thread/matter ===&lt;br /&gt;
Matter/thread is the new IKEA standard for home automation thins apparently. &lt;br /&gt;
Thread is the wireless protocol, matter is a home automation protocol running on top of thread.&lt;br /&gt;
&lt;br /&gt;
I have a couple of nrf52840, these are good in doing thread.&lt;br /&gt;
&lt;br /&gt;
Next steps:&lt;br /&gt;
* check out openthread&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/openthread/openthread.git&lt;br /&gt;
cd openthread&lt;br /&gt;
git submodule update --init --recursive&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Prepare development environment:&lt;br /&gt;
  scripts/bootstrap&lt;br /&gt;
* Build it:&lt;br /&gt;
  ./script/build nrf52840 UART_trans -DOT_LOG_LEVEL=OT_LOG_LEVEL_INFO&lt;br /&gt;
&lt;br /&gt;
Thread on ESP32:&lt;br /&gt;
* on ESP32 C6 https://gist.github.com/gtxaspec/d26198daadfb0a8b0a0edeae2d3fd58f&lt;br /&gt;
* https://github.com/espressif/esp-thread-br&lt;br /&gt;
* https://github.com/espressif/esp-idf/tree/master/examples/openthread/ot_rcp&lt;br /&gt;
&lt;br /&gt;
=== action lsc stekker ===&lt;br /&gt;
https://keetsupport.nl/2024/03/20/how-to-flash-lsc-power-plug-with-esphome/&lt;br /&gt;
&lt;br /&gt;
https://community.home-assistant.io/t/detailed-guide-on-how-to-flash-the-new-tuya-beken-chips-with-openbk7231t/437276&lt;br /&gt;
&lt;br /&gt;
=== sipeed maix dock ===&lt;br /&gt;
Bought this a couple of years ago. Get familiar with this board.&lt;br /&gt;
Can I run a chess program on this, for example?&lt;br /&gt;
&lt;br /&gt;
* https://wiki.sipeed.com/soft/maixpy/en/develop_kit_board/maix_dock.html&lt;br /&gt;
&lt;br /&gt;
=== rfid keyfob ===&lt;br /&gt;
* aliexpress page: https://nl.aliexpress.com/item/1005009569496736.html&lt;br /&gt;
* firmware github: &lt;br /&gt;
** https://github.com/RfidResearchGroup/ChameleonUltra&lt;br /&gt;
** https://github.com/GameTec-live/ChameleonUltraGUI&lt;br /&gt;
&lt;br /&gt;
=== advanced lidars for bat detection ===&lt;br /&gt;
livox:&lt;br /&gt;
* github page https://github.com/Livox-SDK/Livox-SDK/tree/master&lt;br /&gt;
* web page: https://www.livoxtech.com/&lt;br /&gt;
&lt;br /&gt;
=== cubecell meshtastic motion detector ===&lt;br /&gt;
I have a cubecell AB01 board.&lt;br /&gt;
This board is focused on low power, has a connection to attach a solar panel and has a lora radio.&lt;br /&gt;
Relatively small amount of RAM, barely enough to run a LoRaWAN stack but probably plenty to run meshtastic&lt;br /&gt;
&lt;br /&gt;
The plan is to build a simple motion detector from this (using a PIR).&lt;br /&gt;
The PIR can wake up the board from low-power, or a timer can wake it periodically.&lt;br /&gt;
&lt;br /&gt;
See also: https://github.com/HelTecAutomation/CubeCell-Arduino/tree/master/libraries/Basics/examples/LowPower&lt;br /&gt;
&lt;br /&gt;
=== configure multitech outdoor gateway ===&lt;br /&gt;
https://www.multitech.net/developer/products/multiconnect-conduit-platform/basestation/&lt;br /&gt;
&lt;br /&gt;
https://multitech.com/product/multitech-conduit-mtcdt-246a-868-eu-gb/&lt;br /&gt;
&lt;br /&gt;
emergency procedure:&lt;br /&gt;
https://www.multitech.net/developer/software/mlinux/using-mlinux/flashing-mlinux-firmware-for-conduit/&lt;br /&gt;
&lt;br /&gt;
=== esp32 wtf ===&lt;br /&gt;
* https://forum.arduino.cc/t/ttgo-lilygo-lora-esp32-26mhz-problem/1353750&lt;br /&gt;
* &amp;quot;26 MHz crystal has been deprecated&amp;quot; https://github.com/espressif/arduino-esp32/issues/10117&lt;br /&gt;
&lt;br /&gt;
=== kakofonie counter ===&lt;br /&gt;
Sample room audio, use neural network to distinguish voices to estimate number of people talking in the past 30 seconds or so.&lt;br /&gt;
Show this number on some kind of display, publish it to MQTT, make a nice graph of it.&lt;br /&gt;
&lt;br /&gt;
Stuff to figure out:&lt;br /&gt;
* this is called &#039;speaker diarization&#039;&lt;br /&gt;
* can it run on an ESP32?&lt;br /&gt;
* make a prototype&lt;br /&gt;
&lt;br /&gt;
=== hypno toad ===&lt;br /&gt;
Put these LEDS https://nl.aliexpress.com/item/1005007583528891.html into https://www.action.com/nl-nl/p/2560347/solar-tuinbeeldje/&lt;br /&gt;
&lt;br /&gt;
Turns out that the default circuit is really basic and output a rough step-up waveform to the LED.&lt;br /&gt;
The self-fading LEDs don&#039;t work very well with that.&lt;br /&gt;
&lt;br /&gt;
Also, putting some IPA on hotglue makes it release really easy.&lt;br /&gt;
&lt;br /&gt;
=== wasbeer / kat classifier ===&lt;br /&gt;
ESP32 with resnet50 neural net to distinguish house cats from other animals, see also:&lt;br /&gt;
* https://ieeexplore.ieee.org/document/10556848/&lt;br /&gt;
&lt;br /&gt;
=== Nespresso brew counter ===&lt;br /&gt;
Several hacker spaces have one of these Nespresso cup coffee makers, but there&#039;s no obvious easy way to monitor usage (monitor ALL the things!).&lt;br /&gt;
Inspired by https://hackaday.com/2021/04/25/arduino-mkr-makes-nespresso-monitoring-easy/ this idea is making an even simpler nespresso monitor,&lt;br /&gt;
using an inexpensive WiFi enabled ESP8266 with an ubiquitous I2S microphone such as the INMP441. &lt;br /&gt;
&lt;br /&gt;
Use this sound monitoring project:&lt;br /&gt;
https://github.com/aleiei/ESP8266-BUG-I2S-MIC&lt;br /&gt;
and turn it into a WiFi connected brew counter.&lt;br /&gt;
&lt;br /&gt;
Software for getting microphone data from an ESP8266/I2S mic into Linux https://github.com/bertrik/EspMicServer&lt;br /&gt;
Nespresso sound is typically 50 Hz with overtones.&lt;br /&gt;
In a recording with the ESP8266, it appears that oddly the 17th harmonic (around 850 Hz) is quite strong.&lt;br /&gt;
&lt;br /&gt;
The plan in the short term is this:&lt;br /&gt;
* apply a gentle IIR filter to subtract any DC bias from the microphone signal&lt;br /&gt;
* calculate autocovariance at offsets 0 and 20 ms (inverse of 50 Hz), representing the total energy and the energy at 50 Hz respectively&lt;br /&gt;
* compare amplitudes to decide about presence of 50 Hz signal, e.g. calculate ratio in dB&lt;br /&gt;
* use this to count the length of time that a 50 Hz signal is heard (increments of 100 ms or so)&lt;br /&gt;
* decide about none / espresso / lungo based on time&lt;br /&gt;
&lt;br /&gt;
Might even integrate with esphome / home assistant later.&lt;br /&gt;
&lt;br /&gt;
=== Remote bat box monitor ===&lt;br /&gt;
Idea:&lt;br /&gt;
* goal: check if remote bat boxes are occupied and identify the species&lt;br /&gt;
* challenges:&lt;br /&gt;
** connectivity: need to transport images/videos (no LoRaWAN), possibly out of range of mobile data networks&lt;br /&gt;
** autonomy: cannot reach the bat box once installed&lt;br /&gt;
** power: no fixed power connection, so probably needs a battery + solar panel&lt;br /&gt;
* design&lt;br /&gt;
** wake up every hour, take a picture, go to sleep, upload photos/videos once per day&lt;br /&gt;
** run from batteries, recharge by solar, rules of thumb&lt;br /&gt;
*** batteries should last for about 10 days&lt;br /&gt;
*** battery should be able to charge in 1 day&lt;br /&gt;
*** consider only 10% of peak solar power&lt;br /&gt;
** KPN &amp;quot;4G-op-zee&amp;quot; somewhat confusing article: https://www.kpn.com/zakelijk/mobiel/roaming/noordzee&lt;br /&gt;
* hardware&lt;br /&gt;
** main processor: raspberry pi zero&lt;br /&gt;
*** raspberry pi power consumption overview: https://www.pidramble.com/wiki/benchmarks/power-consumption&lt;br /&gt;
** this hat to wake up the main CPU: https://www.waveshare.com/wiki/Power_Management_HAT_(B) sold at https://www.kiwi-electronics.com/en/power-management-hat-for-raspberry-pi-with-rtc-and-rp2040-mcu-11373&lt;br /&gt;
&lt;br /&gt;
=== KNMI API ===&lt;br /&gt;
Get familiar with https://developer.dataplatform.knmi.nl/open-data-api&lt;br /&gt;
&lt;br /&gt;
=== Grid frequency measurer with web page ===&lt;br /&gt;
See https://github.com/bertrik/GridFrequency&lt;br /&gt;
SSE source is gridfrequency.local/events&lt;br /&gt;
&lt;br /&gt;
=== WeAct CH55x board ===&lt;br /&gt;
Cheap little boards, using a similar chip as used in USB-serial converters.&lt;br /&gt;
&lt;br /&gt;
The hardware&lt;br /&gt;
https://github.com/WeActStudio/WeActStudio.CH552CoreBoard&lt;br /&gt;
&lt;br /&gt;
Flashing it:&lt;br /&gt;
https://hackaday.io/page/137447-flashing-the-ch552-dev-board-from-the-command-line&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* https://hackaday.io/project/198238-more-weact-ch5xx&lt;br /&gt;
* https://community.platformio.org/t/manually-adding-support-for-ch55x-controller-by-adding-existing-ardunio-core/41138&lt;br /&gt;
&lt;br /&gt;
=== Zigbee device with esp32 ===&lt;br /&gt;
See https://github.com/P-R-O-C-H-Y/arduino-esp32/blob/8169a434c3e46e1bb7711ebcc04f27267db2093c/libraries/ESP32/examples/Zigbee/Zigbee_Light_Bulb/Zigbee_Light_Bulb.ino&lt;br /&gt;
&lt;br /&gt;
See https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/Zigbee&lt;br /&gt;
&lt;br /&gt;
Espressif32 arduino platform git: https://github.com/platformio/platform-espressif32&lt;br /&gt;
&lt;br /&gt;
=== Cameratoezicht in Gouda ===&lt;br /&gt;
Gemeente Gouda publiceert een lijst van camera&#039;s in Gouda, zie&lt;br /&gt;
https://gis.gouda.nl/nl/app/Basisviewer_open#!eAGT8uRiNBRy4ZIRYFKSyKkssjJwdzFxNDMz8TKKsLC0cnb0dQ1y5FIByirgkg3xd43ydPYIAQBXGBFm&lt;br /&gt;
&lt;br /&gt;
Aanmelden (semi-automatisch) bij bijvoorbeeld [https://mapcomplete.org/surveillance Surveillance-under-surveillance] ?&lt;br /&gt;
&lt;br /&gt;
=== SolarEdge ===&lt;br /&gt;
Interact with the solar edge api for PV installations.&lt;br /&gt;
&lt;br /&gt;
https://developers.solaredge.com/&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/solaredge-api&lt;br /&gt;
&lt;br /&gt;
=== Stookalert ===&lt;br /&gt;
Idee: gekleurd lampje dat aangeeft of er op dit moment een stookalert actief is&lt;br /&gt;
&lt;br /&gt;
Implementatie:&lt;br /&gt;
* kijk m.b.v. WiFi locatieservice in welke provincie je je bevindt&lt;br /&gt;
* haal JSON op bij https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* toon de bijbehorende kleur op het lampje&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
* Officiele pagina: https://www.atlasleefomgeving.nl/stookwijzer&lt;br /&gt;
* Achterliggende JSON met toestand per provincie: https://www.lml.rivm.nl/stookalert/stookalert.json&lt;br /&gt;
* Er moet ook nog ergens een API zijn die fijnmaziger aangeeft wat de toestand is ...&lt;br /&gt;
&lt;br /&gt;
=== Display of current electricity usage ===&lt;br /&gt;
I have a [https://www.zuidwijk.com/product/slimmelezer-plus/ slimme lezer] connected to the P1 port of my smart electricity meter.&lt;br /&gt;
The default firmware exposes meter readings using an event stream (SSE) at http://slimmelezer.local/events&lt;br /&gt;
&lt;br /&gt;
So for example, you can read this with curl:&lt;br /&gt;
  curl http://slimmelezer.local/events&lt;br /&gt;
With result:&lt;br /&gt;
  event: state&lt;br /&gt;
  data: {&amp;quot;id&amp;quot;:&amp;quot;sensor-power_consumed_phase_1&amp;quot;,&amp;quot;value&amp;quot;:0.046,&amp;quot;state&amp;quot;:&amp;quot;0.046 kW&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
Specification of SSE: https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream&lt;br /&gt;
&lt;br /&gt;
What I would like to do is to read these events and control a simple display to display  the current usage number.&lt;br /&gt;
&lt;br /&gt;
=== Participating in ultrasonic sound project ===&lt;br /&gt;
https://bat-migration-europe.netlify.app/project/&lt;br /&gt;
&lt;br /&gt;
Use an audiomoth for this.&lt;br /&gt;
&lt;br /&gt;
=== ESP32 C3 ===&lt;br /&gt;
* [https://www.espressif.com/en/products/socs/esp32-c3 processor page]&lt;br /&gt;
* [https://wiki.luatos.com/chips/esp32c3/index.html luatos basic esp32 c3 board]&lt;br /&gt;
&lt;br /&gt;
=== Flexible LED ticker ===&lt;br /&gt;
Ordered a flexible 32x8 RGB LED display:&lt;br /&gt;
https://nl.aliexpress.com/item/4001296811800.html&lt;br /&gt;
&lt;br /&gt;
Matching diffuser to be 3D printed:&lt;br /&gt;
https://www.thingiverse.com/thing:1903744&lt;br /&gt;
&lt;br /&gt;
=== Washing machine API ===&lt;br /&gt;
https://tratt.net/laurie/blog/2023/displaying_my_washing_machines_remaining_time_with_curl_jq_pizauth.html&lt;br /&gt;
&lt;br /&gt;
=== TinyML ===&lt;br /&gt;
Investigate TinyML, see https://www.tinyml.org/&lt;br /&gt;
Apparently can run on a RP2040 (raspi pi pico).&lt;br /&gt;
&lt;br /&gt;
https://www.hackster.io/mjrobot/esp32-cam-tinyml-image-classification-fruits-vs-veggies-4ab970&lt;br /&gt;
&lt;br /&gt;
=== Bat box busy signal ===&lt;br /&gt;
My brother built little pyramid &#039;blinkies&#039;: solar cell + Lithium-supercapacitor + harvesting circuit + LED encased in clear expoxy.&lt;br /&gt;
&lt;br /&gt;
Can we add a low-power PIR sensor to this, and make a blinky that blinks if movement was detected by the PIR in the past hour?&lt;br /&gt;
&lt;br /&gt;
=== Super tiny RFID ===&lt;br /&gt;
See https://www.sparkfun.com/products/16464 an almost sand grain size RFID chip, 1.25mmx1.25mmx0.55mm&lt;br /&gt;
&lt;br /&gt;
The accompanying reader &amp;quot;M6E Nano&amp;quot; is still quite expensive at $235.95 : https://www.sparkfun.com/products/14066&lt;br /&gt;
&lt;br /&gt;
Uses the MuRata LXMSJZNCMF-198:&lt;br /&gt;
&amp;quot;This product can be used as an ultra small tag and this can be&lt;br /&gt;
fit on any metal objects, non-metal objects, as well as&lt;br /&gt;
embedding into any objects by glue or adhesive and so on.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also: ISO18000-63 and EPC global Gen2(v2)&lt;br /&gt;
&lt;br /&gt;
Specification:&lt;br /&gt;
* https://www.gs1.org/standards/rfid/uhf-air-interface-protocol&lt;br /&gt;
&lt;br /&gt;
=== TheThingsNetwork-Sondehub bridge ===&lt;br /&gt;
Uploads balloon telemetry to sondehub.&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/ttnhabbridge/issues/6&lt;br /&gt;
&lt;br /&gt;
=== Actually smart boiler ===&lt;br /&gt;
The boiler for hot water is about half of my electricity bill.&lt;br /&gt;
The idea is to use/build a smart switch that switches it on at time when electricity prices are lowest.&lt;br /&gt;
&lt;br /&gt;
Currently have a &amp;quot;Slimme boiler module&amp;quot; from Eneco, which is *not* actually smart,&lt;br /&gt;
since it allows me no control whatsoever when it switches on (besides cutting the power in the meterkast).&lt;br /&gt;
For example, it will switch on mid-day when my price is high and eneco&#039;s price is low, perhaps good for Eneco, not for me. &lt;br /&gt;
Apparently, they even received a [https://nieuws.eneco.nl/slim-apparaatje-bij-boiler-vangt-pieken-wind--en-zonnestroom-op/ subsidy] for this.&lt;br /&gt;
&lt;br /&gt;
A boiler is a pretty big load, about 3 kW, but it is not inductive.&lt;br /&gt;
&lt;br /&gt;
Alternatives:&lt;br /&gt;
* https://www.shelly.cloud/en-nl/products/product-overview/shelly-plus-1-pm-2-pack/shelly-plus-1-pm&lt;br /&gt;
* https://www.solyxenergy.nl/solar-iboost/ to store excess solar energy in hot water, might also be useful for just controlling a boiler to use cheaper rates&lt;br /&gt;
* tuya smartplug, like https://www.wifilampkoning.nl/merken-slimme-verlichting/tuya/tuya-enkele-smartplug-met-energiemeting ?&lt;br /&gt;
* tuya 20A smart plug: https://nl.aliexpress.com/item/1005003347568206.html&lt;br /&gt;
&lt;br /&gt;
=== Receiving gas meters ===&lt;br /&gt;
Apparently gas meters send gas consumption data to the slimme meter using a wireless link in the 868 MHz band.&lt;br /&gt;
Probably just FSK at 38.4, as mentioned here: https://a35.veron.nl/nieuwe-elektra-en-gasmeters/&lt;br /&gt;
&lt;br /&gt;
Interesting leads:&lt;br /&gt;
* https://github.com/stef/smeter&lt;br /&gt;
* https://www.rtl-sdr.com/reading-household-wireless-utility-meters-with-an-rtl-sdr-and-plotting-the-data-in-home-automation-software/&lt;br /&gt;
* https://github.com/bemasher/rtlamr&lt;br /&gt;
&lt;br /&gt;
=== Multi-network wifi manager ===&lt;br /&gt;
Figure out or create software so that ESP8266/ESP32 wifi manager can use multiple networks to connect (not just one),&lt;br /&gt;
so it allowing storing credentials for more than one network. For example, the network at home, the hacker space, at work.&lt;br /&gt;
Instead of reconfiguring the wifi manager for each network, you just *add* your credentials (and the existing credentials&lt;br /&gt;
are not replaced).&lt;br /&gt;
&lt;br /&gt;
See https://github.com/folkertvanheusden/M.A.X.X&lt;br /&gt;
&lt;br /&gt;
Interesting candidates:&lt;br /&gt;
* https://registry.platformio.org/libraries/martinverges/ESP32%20Wifi%20Manager wifi manager for ESP32, has a REST API for managing wifi network, but is incomplete in the sense that you need to write your own code (e.g. javascript) to actually *use* its API&lt;br /&gt;
* https://github.com/arduino-libraries/Arduino_MultiWiFi is the arduino multi wifi library, to allow connecting to multiple different WiFi networks, but it is not a wifi manager, that starts a captive portal, etc&lt;br /&gt;
&lt;br /&gt;
=== Automated bat counting ===&lt;br /&gt;
Can we automatically count the number of bats from the image of a webcam mounted in a bat colony?&lt;br /&gt;
Perhaps using some kind of AI or machine learning algorithm?&lt;br /&gt;
&lt;br /&gt;
The image in question:&lt;br /&gt;
https://stofradar.nl/coenecoop/&lt;br /&gt;
&lt;br /&gt;
=== Use TheThingsIndoorGateway as Helium/ThingSix hotspot ===&lt;br /&gt;
I have a spare TTIG that could perhaps be used as a Helium gateway, investigate what is possible.&lt;br /&gt;
&lt;br /&gt;
One possiblity is to capture the gateway traffic from the TTN gateway events API, convert uplink data to a format that the Helium network understands and forward it.&lt;br /&gt;
I don&#039;t really care about the Helium crypto tokens, this is just for fun and science.&lt;br /&gt;
&lt;br /&gt;
What I definitely can do:&lt;br /&gt;
* Capture data from the TTN gateway events API, convert it back to Semtech UP format and forward it somewhere to Helium (just not sure where!)&lt;br /&gt;
* See also my https://github.com/bertrik/ttn-gateway-collector project which contains an initial implementation of TTN-to-UDP conversion&lt;br /&gt;
&lt;br /&gt;
Showstoppers:&lt;br /&gt;
* If you want to be a gateway on the Helium network, you have to *pay Helium*! Obviously I don&#039;t want that, I just want to share data to improve *their* network. &lt;br /&gt;
&lt;br /&gt;
Open work:&lt;br /&gt;
* Investigate if Helium has an open uplink API for their hotspots, if so study it etc, without paying the gateway fee&lt;br /&gt;
* Investigate if Thingsix has an open uplink API for their hotspots, if so study it etc, without paying any gateway fee&lt;br /&gt;
* Investigate if Thingsix is just another Helium, with weird crypto money&lt;br /&gt;
&lt;br /&gt;
Interesting stuff:&lt;br /&gt;
* https://docs.helium.com/use-the-network/setup-a-packet-forwarder unfortunately the link to setting up the &#039;light hotspot client&#039; does not work!&lt;br /&gt;
* https://docs.helium.com/mine-hnt/light-hotspots/&lt;br /&gt;
* https://thingsix.com/&lt;br /&gt;
&lt;br /&gt;
=== Adding BLE GATT interface to sensors ===&lt;br /&gt;
The GATT specification allows measurement properties to be defined and transferred continuously over Bluetooth low-energy.&lt;br /&gt;
&lt;br /&gt;
With GATT you can define a collection of properties (e.g. measurement items like temperature/humidity/particulate matter/noise, etc)&lt;br /&gt;
organised in a simple structure of a BLE service.&lt;br /&gt;
The &#039;notification&#039; method allows you to basically push the data continuously to a connected host, e.g. a smart phone.&lt;br /&gt;
&lt;br /&gt;
Services collects characteristic, a characteristic has values with units.&lt;br /&gt;
Each of these (service, characteristic, unit) have their own unique &amp;quot;UUID&amp;quot;.&lt;br /&gt;
This is described in the so-called [https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf 16-bit UUID numbers document]&lt;br /&gt;
&lt;br /&gt;
Interesting stuff in GATT:&lt;br /&gt;
* See GATT_Specification_Supplement_v5 paragraph 3.151, it has a noise characteristic with 1 dB resolution.&lt;br /&gt;
* 0x27C3 is the GATT *unit* for sound pressure&lt;br /&gt;
* 0x181A is the GATT environmental sensing *service*, document name &amp;quot;ESP_V1.0.0.pdf&amp;quot;&lt;br /&gt;
* 0x2A6E is the GATT Characteristic and Object Type for temperature&lt;br /&gt;
* 0x2A6F is the GATT Characteristic and Object Type for humidity&lt;br /&gt;
* 0x2BD5 is the GATT Characteristic and Object Type for Particulate Matter - PM1 Concentration&lt;br /&gt;
* 0x2BD6 is the GATT Characteristic and Object Type for Particulate Matter - PM2.5 Concentration&lt;br /&gt;
* 0x2BD7 is the GATT Characteristic and Object Type for Particulate Matter - PM10 Concentration&lt;br /&gt;
* Unfortunately I cannot find a characteristic for carbon-dioxide (CO2) in the BLE GATT unit document&lt;br /&gt;
&lt;br /&gt;
See also https://programmaticponderings.com/2020/08/04/getting-started-with-bluetooth-low-energy-ble-and-generic-attribute-profile-gatt-specification-for-iot/&lt;br /&gt;
&lt;br /&gt;
=== Reverse engineering XS-8217 bluetooth air quality meter ===&lt;br /&gt;
This is a thing that measures CO2, humidity, temperature, TVOC and formaldehyde.&lt;br /&gt;
&lt;br /&gt;
See also https://wiki.liutyi.info/display/CO2/ZN-2CO3+Inside&lt;br /&gt;
&lt;br /&gt;
This teardown looks a lot like my sensor: https://www.youtube.com/watch?v=APnjhMrJChI&lt;br /&gt;
Mine contains a &amp;quot;TPM-300A&amp;quot; sensor for measuring VOC.&lt;br /&gt;
&lt;br /&gt;
It has a bluetooth interface, device name is XS-8217.&lt;br /&gt;
It has a BLE GATT profile, with the following services&lt;br /&gt;
* service 0xC760&lt;br /&gt;
** characteristic 0xC762 (WRITE)&lt;br /&gt;
** characteristic 0xC761 (NOTIFY)&lt;br /&gt;
*** example data: 0x23 0x06 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
*** example data: 0x23 0x08 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
*** data shown on screen was approximately: CO2=418ppm, HCHO=0.003mg/m3, TVOC=0.013mg/m3, temp=24degC, humi=35%&lt;br /&gt;
&lt;br /&gt;
So data in the characteristic 0xC761 seems to have a 4 byte constant header:&lt;br /&gt;
* 0x23&lt;br /&gt;
* length byte&lt;br /&gt;
&lt;br /&gt;
Then we have for the first message: 0x10 0x04 0xF1 0x00 0x23 0x65&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0xF1 is temperature in 0.1 degree Celcius most likely (24.1)&lt;br /&gt;
* 0x00 is ...&lt;br /&gt;
* 0x23 is humidity most likely (35)&lt;br /&gt;
* 0x65 is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
And for the second message: 0x10 0x04 0x01 0x9A 0x00 0x0A 0x00 0x03 0x0E&lt;br /&gt;
* 0x10 0x04 fixed header&lt;br /&gt;
* 0x01 0x9A is the CO2 concentration (410)&lt;br /&gt;
* 0x00 0x0A is TVOC most likely (10)&lt;br /&gt;
* 0x00 0x03 is HCHO most likely (3)&lt;br /&gt;
* 0x0E is ... checksum perhaps&lt;br /&gt;
&lt;br /&gt;
=== ribbon tweeter for bat audio ===&lt;br /&gt;
Someone gave me this idea:&lt;br /&gt;
Use a ribbon tweeter like this for playing back bat audio:&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/4000973201791.html&amp;lt;/s&amp;gt;&lt;br /&gt;
&amp;lt;s&amp;gt;https://nl.aliexpress.com/item/1005002565880660.html&amp;lt;/s&amp;gt;&lt;br /&gt;
https://nl.aliexpress.com/item/1005002635086050.html&lt;br /&gt;
&lt;br /&gt;
The frequency spectrum shows no sign of dropping off at 20 kHz.&lt;br /&gt;
&lt;br /&gt;
=== 3d glasses ===&lt;br /&gt;
I got some 2nd hand 3d glasses, they look exactly like these ones:&lt;br /&gt;
* GH-15 https://www.dhgate.com/product/g15-dlp-3d-active-shutter-glasses-96-144hz/213983026.html&lt;br /&gt;
* Sintron https://www.amazon.de/Sintron-Kompatibel-TDG-BT500A-TDG-BT400A-Deutschland/dp/B015PCWMZ8&lt;br /&gt;
The common name appears to be &amp;quot;G15-DLP&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
A tear-down here:&lt;br /&gt;
* https://blog.danman.eu/3d-shutter-glasses-teardown/&lt;br /&gt;
&lt;br /&gt;
Interesting documents:&lt;br /&gt;
* http://cmst.curtin.edu.au/wp-content/uploads/sites/4/2016/05/2012-28-woods-helliwell-cross-compatibility_of_shutter_glasses.pdf&lt;br /&gt;
* http://cmst.curtin.edu.au/local/docs/pubs/2011-17-woods-helliwell-3D-Sync-IR.pdf&lt;br /&gt;
&lt;br /&gt;
Someone claims he got something to work with some hacks:&lt;br /&gt;
https://www.avsforum.com/threads/how-i-got-cheap-dlp-link-glasses-to-work-great.1887145/&lt;br /&gt;
&lt;br /&gt;
=== Waterniveaumeter ===&lt;br /&gt;
Op verschillende plekken in Gouda staat er water in de kruipruimte van huizen van bewoners.&lt;br /&gt;
Kunnen we dat meten en inzichtelijk maken, voor bewoners, op een kaart bijvoorbeeld?&lt;br /&gt;
&lt;br /&gt;
Idee:&lt;br /&gt;
* in de kruipruimte plaats je een module die waterhoogte kan meten&lt;br /&gt;
* de module bestaat uit een microcontroller en een afstandsmeter, die de waterhoogte bepaalt&lt;br /&gt;
* de gegevens worden via WiFi doorgestuurd naar een centraal punt, waar de data wordt verwerkt en gevisualiseerd&lt;br /&gt;
* op een webpagina kan je een overzicht zien van alle meters die online zijn&lt;br /&gt;
* de meting wordt gedaan door bijv. een laser-afstandsmeter of een ultrasoon-afstandsmeter&lt;br /&gt;
* voeding? lastig, hoe krijg je 5v naar een potentieel natte plek?&lt;br /&gt;
* kosten? verwachting &amp;lt; E 40,-&lt;br /&gt;
&lt;br /&gt;
In Gouda wordt op veel verschillende plekken de grondwaterstand gemeten, zie https://opendata.munisense.net/portal/wareco-water2/group/581/Gouda-KJ38A , maar:&lt;br /&gt;
* geen visualisatie op de kaart, je ziet alleen de meetlokaties d.m.v. een icoontje!&lt;br /&gt;
* geen meetpunten in Gouda noord!&lt;br /&gt;
&lt;br /&gt;
=== Online bat detector ===&lt;br /&gt;
Idea: use an ultrasonic microphone, connect it to a WebSDR, so people can tune into bat sounds remotely.&lt;br /&gt;
&lt;br /&gt;
=== Raspberry pi airplane tracking ===&lt;br /&gt;
Apparently now you can also participate in MLAT tracking of planes that don&#039;t transmit GPS coordinates themselves.&lt;br /&gt;
&lt;br /&gt;
=== APRS gateway ===&lt;br /&gt;
http://qso365.co.uk/2017/02/a-guide-to-setting-up-an-aprs-receive-only-igate-using-a-raspberry-pi-and-an-rtl-sdr-dongle/&lt;br /&gt;
&lt;br /&gt;
=== JQ6500 ===&lt;br /&gt;
Small inexpensive modules that play mp3 from an internal flash. Could be nice for a custom door bell for example.&lt;br /&gt;
&lt;br /&gt;
More info at: &lt;br /&gt;
* https://www.elecfreaks.com/wiki/index.php?title=JQ6500_Mini_MP3_Module&lt;br /&gt;
* https://sparks.gogo.co.nz/jq6500/index.html&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
Cheap FPGA boards and nice applications:&lt;br /&gt;
* https://bitbucket.org/appanp/artificial-neural-networks/wiki/Home/FPGAsAndNeuralNets.md#!sbcs-and-iot-boards &lt;br /&gt;
* [http://nl.aliexpress.com/item/Altera-fpga-cycloneii-ep2c5t144-learning-board-development-board/872520721.html inexpensive ep2c5t144 board] &lt;br /&gt;
* http://land-boards.com/blwiki/index.php?title=Cyclone_II_EP2C5_Mini_Dev_Board&lt;br /&gt;
&lt;br /&gt;
=== Neural networks on low-end hardware ===&lt;br /&gt;
Investigate if you can run a powerful neural network on relatively low-end/cheap/low-power hardware. For example a Raspberry pi.&lt;br /&gt;
A RPI runs Linux, run python, just like some common neural frameworks.&lt;br /&gt;
Do we need hardware acceleration from the GPU and does the RPI GPU support that?&lt;br /&gt;
&lt;br /&gt;
Read list:&lt;br /&gt;
* https://www.zdnet.com/pictures/raspberry-pi-meets-ai-the-projects-that-put-machine-learning-on-the-35-board/&lt;br /&gt;
* https://www.pyimagesearch.com/2017/12/18/keras-deep-learning-raspberry-pi/&lt;br /&gt;
* https://www.indiegogo.com/projects/sipeed-maix-the-world-first-risc-v-64-ai-module#/&lt;br /&gt;
* https://ai.intel.com/intel-neural-compute-stick-2-smarter-faster-plug-and-play-ai-at-the-edge/&lt;br /&gt;
&lt;br /&gt;
Bought a MaixPy:&lt;br /&gt;
* see https://maixpy.sipeed.com/en/&lt;br /&gt;
* see https://www.youtube.com/watch?v=KResVuAIMb4&lt;br /&gt;
* see http://educ8s.tv/sipeed-m1-dock-review/&lt;br /&gt;
* interesting? https://www.instructables.com/id/Transfer-Learning-With-Sipeed-MaiX-and-Arduino-IDE/&lt;br /&gt;
&lt;br /&gt;
=== mini word clock in dutch ===&lt;br /&gt;
Basically an monochrome 8x8 word clock, in Dutch, showing local time in the Netherlands.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bertrik/miniwordclock This git repo] has the current code.&lt;br /&gt;
&lt;br /&gt;
See [https://plus.google.com/103276078656203197145/posts/7ki7rpJzk3a here for a demo] running on an arduino nano.&lt;br /&gt;
&lt;br /&gt;
The plan is to run this from an ESP8266 instead of an arduino nano, so it can get the time from the internet using NTP.&lt;br /&gt;
Andreas Spiess demonstrated on youtube how existing libraries on the ESP8266 can be used to do the local time (including summer-time) calculations.&lt;br /&gt;
&lt;br /&gt;
=== Cypress PSOC5 ===&lt;br /&gt;
Play with the Cypress PSOC5 platform, which combines a ARM Cortex-m3 processor with configurable analog blocks. I&#039;m thinking of combining it with a 24 GHz doppler radar sensor, to process the signal and present it as a USB audio device (stereo signal contains I and Q parts). See [[RadarOnAStick]].&lt;br /&gt;
&lt;br /&gt;
=== Simple Doppler motion sensors ===&lt;br /&gt;
You can find basic doppler microwave motion sensors based on a single transistor, with some weird traces on the PCB very cheaply, for example&lt;br /&gt;
* https://www.aliexpress.com/item/RCWL-0516-microwave-radar-sensor-module-Human-body-induction-switch-module-Intelligent-sensor/32708877914.html&lt;br /&gt;
&lt;br /&gt;
Typically the microwave part of these consists of a single transistor with a rectangular area on one leg and a meandering trace (with lots of vias to the other side) on the other leg.&lt;br /&gt;
The output of this circuit seems to go into a chip very much like the ones used in PIR sensors.&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/jdesbonnet/RCWL-0516 for a reverse engineering effort of these doppler radar modules.&lt;br /&gt;
&lt;br /&gt;
=== Bare-bones Arduino bat detector ===&lt;br /&gt;
This is an idea for a very basic heterodyne bat detector, doing signal processing on an Arduino, requiring minimal external components.&lt;br /&gt;
&lt;br /&gt;
The basic principle of a heterodyne detector is that it just mixes (multiplies) the audio signal with a square wave, low-pass filters the result and puts it on a speaker.&lt;br /&gt;
&lt;br /&gt;
Multiplying with a square wave can also be considered to be just alternatively inverting and not-inverting the signal.&lt;br /&gt;
So if you sample an ultrasonic signal at twice the rate you want to multiply, you can just subtract odd samples from even samples and low-pass filter that.&lt;br /&gt;
&lt;br /&gt;
How this can be done in an AVR Arduino:&lt;br /&gt;
* sample the audio signal at twice the detection frequency, say 84 kHz. An AVR should just be able to do that.&lt;br /&gt;
* apply a 1-pole IIR high-pass filter to remove DC bias, this takes one shift instruction and one addition.&lt;br /&gt;
* multiply by the detection frequency, this means just inverting the odd samples.&lt;br /&gt;
* low-pass filter the signal, this can be done using a moving average filter, say 16 samples long (first null at 5.25 kHz). Theoretically, averaging 16 samples should result in two bits extra accuracy. This operation takes some storage, an addition and a subtraction.&lt;br /&gt;
* output the filtered signal using PWM, possibly at the same rate that we are sampling the input audio.&lt;br /&gt;
&lt;br /&gt;
The microphone can be a 40 kHz piezo transducer, to keep it cheap (but also limited to 40 kHz).&lt;br /&gt;
The pre-amplifier can be a single transistor with some resistors around it, providing about 40x gain.&lt;br /&gt;
The arduino does the signal processing (mixing, low-pass filter) to shift the bat audio to human range.&lt;br /&gt;
The speaker amplifier can just be a simple two transistor push-pull circuit, since the output from the Arduino is digital/PWM.&lt;br /&gt;
&lt;br /&gt;
==== AVR Arduino sample rate ====&lt;br /&gt;
As far as I understand, the ADC clock can be set to 1 MHz.&lt;br /&gt;
Conversion takes 13 cycles, so this can be a problem to reach a sample rate above 80 kHz.&lt;br /&gt;
&lt;br /&gt;
=== Indoor radar speed sign ===&lt;br /&gt;
This idea about placing a simple IQ-output radar sensor indoors in the hacker space, do some basic signal processing on the IQ doppler signal and determine movement speed and direction, then display this on a LED display.&lt;br /&gt;
This is of no immediate practical use other than fun, but helps me to gain a bit more experience with microwave radar sensors and eventually build a more effective setup for detecting/counting bats flying in and out of a roost.&lt;br /&gt;
&lt;br /&gt;
Implement this on a PSOC5 platform or on the STM32 using Arduino.&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Meshcore&amp;diff=35276</id>
		<title>Meshcore</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Meshcore&amp;diff=35276"/>
		<updated>2026-06-08T23:10:06Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Revspace meshcore repeater */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
 |Name=MeshCore&lt;br /&gt;
 |Status=In progress&lt;br /&gt;
 |Picture=Meshtower.png&lt;br /&gt;
 |Contact=Bas&lt;br /&gt;
 |Contact1=Anne Jan&lt;br /&gt;
 |Contact2=Paul&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
 |Name=Workshop/Lecture MeshCore&lt;br /&gt;
 |DateStart=29 November 2025 15:00&lt;br /&gt;
 |DateEnd=29 November 2025 18:00&lt;br /&gt;
 |Info=Lecture/Workshop about MeshCore&lt;br /&gt;
 |InfoLocation=RevSpace&lt;br /&gt;
 |InfoOpen=12:30&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
= Revspace meshcore repeater =&lt;br /&gt;
Er is een Revspace meshcore repeater, type [https://heltec.org/project/meshtower/ MeshTower], gegevens per 2026-6-6:&lt;br /&gt;
* Fysiek staat ie bovenop de kast rechts naast de bar&lt;br /&gt;
* Geconfigureerd met settings volgens https://meshcore.envoyage.io/configurator/&lt;br /&gt;
* Firmware 1.15&lt;br /&gt;
* SF7/CR5&lt;br /&gt;
* 2-byte hashes (mode 1) + regio scopes&lt;br /&gt;
* Naam &amp;quot;RevSpace&amp;quot;, password bekend bij [[Bertrik]] en [[Crashjuh]]&lt;br /&gt;
&lt;br /&gt;
Nieuwe firmware flashen:&lt;br /&gt;
* Schroef het kastje open&lt;br /&gt;
* Steek een kabel in de USB-C van de meshtower en het andere eind in je computer&lt;br /&gt;
* Ergens naast de USB-C connector zit een klein knopje (reset of RST), druk die 2x kort in (binnen 1 seconde)&lt;br /&gt;
* Op je computer zie je een USB drive verschijnen, de meshtower is nu in bootloader mode&lt;br /&gt;
* Flash een firmware via de web interface van https://meshcore.co.uk/flasher.html , kies &amp;quot;Heltec MeshSolar / MeshTower&amp;quot;, kies rol repeater.&lt;br /&gt;
&lt;br /&gt;
Configureren:&lt;br /&gt;
* Via de browser lukte mij niet&lt;br /&gt;
* Uiteindelijk geconfigureerd via USB-seriele poort console:&lt;br /&gt;
```&lt;br /&gt;
screen /dev/ttyACM0 115200&lt;br /&gt;
```&lt;br /&gt;
In seriele poort console kan je commando&#039;s intypen zoals:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Radio instellingen (EU868): set radio 869.618,62.5,7,5&lt;br /&gt;
Advert interval: set advert.interval 180&lt;br /&gt;
Flood advert interval: set flood.advert.interval 50&lt;br /&gt;
Naam: set name RevSpace&lt;br /&gt;
Eigenaar: set owner.info bertrik@gmail.com&lt;br /&gt;
Latitude: set lat 52.0862&lt;br /&gt;
Longitude: set lon 4.3947&lt;br /&gt;
RX delay: set rxdelay 0.0&lt;br /&gt;
TX delay: set txdelay 0.5&lt;br /&gt;
Interference threshold: set int.thresh 1&lt;br /&gt;
Max hop count: set flood.max 48&lt;br /&gt;
TX power: set tx 22&lt;br /&gt;
EU regio aanmaken: region put eu&lt;br /&gt;
Land regio aanmaken: region put nl&lt;br /&gt;
Provincie regio aanmaken: region put nl-zh nl&lt;br /&gt;
Bredere regio 1 aanmaken: region put nl-hag nl&lt;br /&gt;
Bredere regio 2 aanmaken: region put nl-lid nl&lt;br /&gt;
Gemeente regio aanmaken: region put nl-zh-lsv nl-zh&lt;br /&gt;
Plaats regio aanmaken: region put nl-zh-lds nl-zh&lt;br /&gt;
Flood toestaan: EU: region allowf eu&lt;br /&gt;
Flood toestaan: land: region allowf nl&lt;br /&gt;
Flood toestaan: provincie: region allowf nl-zh&lt;br /&gt;
Flood toestaan: bredere regio 1: region allowf nl-hag&lt;br /&gt;
Flood toestaan: bredere regio 2: region allowf nl-lid&lt;br /&gt;
Flood toestaan: gemeente: region allowf nl-zh-lsv&lt;br /&gt;
Flood toestaan: plaats: region allowf nl-zh-lds&lt;br /&gt;
Standaardregio (provincie): region default nl-zh&lt;br /&gt;
Thuisregio: region home nl-zh-lds&lt;br /&gt;
Regio&#039;s opslaan: region save&lt;br /&gt;
Path hash mode: set path.hash.mode 1&lt;br /&gt;
Loop detectie: set loop.detect moderate&lt;br /&gt;
Duty cycle: set dutycycle 10&lt;br /&gt;
Admin wachtwoord: password ***&lt;br /&gt;
Herstarten: reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Workshop=&lt;br /&gt;
Een introductie in MeshCore en als je een compatible apparaatje meeneemt (wij hebben ook een aantal mee, dus geen aankoopplicht ;) ): tevens een workshop om er mee te beginnen!&lt;br /&gt;
 &lt;br /&gt;
Heb je eerder dit jaar tijdens het Hackerhotel een Meshtastic kitje aangeschaft, maar niets meer met je Meshtastic gedaan? Dan is dat kitje met Heltec V3 een prima starter bij deze MeshCore workshop.&lt;br /&gt;
&lt;br /&gt;
Je kunt eventueel een Heltec V3 meebestellen voor 25 euro incl btw. Zet dat dan even in de tabel hieronder erbij. Maar je mag natuurlijk ook je eigen spul meenemen.&lt;br /&gt;
&lt;br /&gt;
==Inhoud==&lt;br /&gt;
* Wat is MeshCore&lt;br /&gt;
* Waarom is het leuk&lt;br /&gt;
* Verschillende rollen&lt;br /&gt;
* Hardware (en hoe het uit de hand loopt)&lt;br /&gt;
* Configuratie&lt;br /&gt;
* Demo&lt;br /&gt;
* Speeltijd en hulp met het werkend krijgen.&lt;br /&gt;
&lt;br /&gt;
https://pad.bitlair.nl/p/lora&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/presentation/d/1h6CC3s-rCDkTylBscA9Ky0ZhBM5mxv8rZMoFVbLMzFs/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
==Aanmelden==&lt;br /&gt;
Let op: we kunnen maximaal 20 deelnemers huisvesten en begeleiden.&lt;br /&gt;
&lt;br /&gt;
Je kunt geen Heltec v3 meer meebestellen. Hij is zonder case nog wel leverbaar via TinyTronics: https://www.tinytronics.nl/nl/development-boards/microcontroller-boards/met-lora/heltec-wi-fi-lora-32-esp32-s3-sx1262-met-0.96-inch-oled-display&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Naam !! Meebestellen Heltec V3 !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Crashjuh || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| polyfloyd || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Colomax || 2x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Atoomnet || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| blaat || 1x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 1x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wilbert || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| CH23 || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| TeQ || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Kartoffel || nee&lt;br /&gt;
|-&lt;br /&gt;
| Ries || ja || .&lt;br /&gt;
|-&lt;br /&gt;
| Gori || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Dimi || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Muad-Dib || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| florian || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Colomax + 1 || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| FooBar || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| - || - || .&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Inkoopactie voor een Meshcore Router op de space=&lt;br /&gt;
&lt;br /&gt;
We willen de https://heltec.org/project/meshtower/ MeshTower van Heltec. Er is al MeshCore firmware voor.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Wie !! Hoeveel tientjes !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| Bas || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| CH23 || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wilbert || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Crashjuh || 3 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Elborro || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| sting || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Colomax || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Boekenwuurm || 1 || nee&lt;br /&gt;
|-&lt;br /&gt;
| thomas || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| jelle || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| cmpxchg || 1 || nee&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Voorbeeld || Voorbeeld || Voorbeeld&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Totaal: 200 euro van de 200 euro&lt;br /&gt;
&lt;br /&gt;
Wil je ook een MeshTower meebestellen of iets anders van HelTec? Dat kan, zet het hieronder jouw bestelling. Met meerdere MeshTowers zakt de prijs van 230 euro per stuk naar ongeveer 200!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Wie !! Wat !! Totaal ex verzenden in $ !! Totaal berekend door Bas incl verzenden !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| RandomData (via Bas)|| 1x MeshTower|| .|| 200|| Ja&lt;br /&gt;
|- &lt;br /&gt;
| Bas || 1x Heltec V4 || .|| x || Ja&lt;br /&gt;
|-&lt;br /&gt;
| Bart Jan (RandomData) || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 1x MeshTower || .||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| BlackDragon || 1x Heltec V4 || 20 || 25 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || 1x Heltec V4 || 20 || ?? || ja&lt;br /&gt;
|-&lt;br /&gt;
| HS Nijmegen via Bas || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| cmpxchg || 1x MeshTower ||.||200|| ja&lt;br /&gt;
|-&lt;br /&gt;
| Synq || 1x MeshTower, 1x V3||.||225||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Elborro || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Dimi || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De inkoopactie is gesloten. Alle hardware is besteld (9x MeshTower, 6x V3 en 3x V4).&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Meshcore&amp;diff=35275</id>
		<title>Meshcore</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Meshcore&amp;diff=35275"/>
		<updated>2026-06-08T19:27:55Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
 |Name=MeshCore&lt;br /&gt;
 |Status=In progress&lt;br /&gt;
 |Picture=Meshtower.png&lt;br /&gt;
 |Contact=Bas&lt;br /&gt;
 |Contact1=Anne Jan&lt;br /&gt;
 |Contact2=Paul&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
 |Name=Workshop/Lecture MeshCore&lt;br /&gt;
 |DateStart=29 November 2025 15:00&lt;br /&gt;
 |DateEnd=29 November 2025 18:00&lt;br /&gt;
 |Info=Lecture/Workshop about MeshCore&lt;br /&gt;
 |InfoLocation=RevSpace&lt;br /&gt;
 |InfoOpen=12:30&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
= Revspace meshcore repeater =&lt;br /&gt;
Er is een Revspace meshcore repeater, type [https://heltec.org/project/meshtower/ MeshTower], gegevens per 2026-6-6:&lt;br /&gt;
* Fysiek staat ie bovenop de kast rechts naast de bar&lt;br /&gt;
* Geconfigureerd met settings volgens https://meshcore.envoyage.io/configurator/&lt;br /&gt;
* Firmware 1.15&lt;br /&gt;
* Radio settings 869.618,62.5,7,5&lt;br /&gt;
* Regio scopes: weet ik niet meer precies, i.i.g. nl, nl-zh, nl-hag&lt;br /&gt;
* 2-byte hashes&lt;br /&gt;
* Naam &amp;quot;RevSpace&amp;quot;, password bekend bij [[Bertrik]] en [[Crashjuh]]&lt;br /&gt;
&lt;br /&gt;
Nieuwe firmware flashen:&lt;br /&gt;
* Schroef het kastje open&lt;br /&gt;
* Steek een kabel in de USB-C van de meshtower en het andere eind in je computer&lt;br /&gt;
* Ergens naast de USB-C connector zit een klein knopje reset of RST, druk die 2x kort in&lt;br /&gt;
* Op je computer zie je een USB drive verschijnen, de meshtower is nu in bootloader mode&lt;br /&gt;
* Flash een firmware via de web interface van https://meshcore.co.uk/flasher.html , kies &amp;quot;Heltec MeshSolar / MeshTower&amp;quot;, kies rol repeater.&lt;br /&gt;
&lt;br /&gt;
Configureren:&lt;br /&gt;
* Via de browser lukte mij niet&lt;br /&gt;
* Uiteindelijk geconfigureerd via USB-seriele poort console:&lt;br /&gt;
```&lt;br /&gt;
screen /dev/ttyACM0 115200&lt;br /&gt;
```&lt;br /&gt;
* In seriele poort console kan je commando&#039;s intypen zoals &#039;set radio ...&#039;&lt;br /&gt;
&lt;br /&gt;
=Workshop=&lt;br /&gt;
Een introductie in MeshCore en als je een compatible apparaatje meeneemt (wij hebben ook een aantal mee, dus geen aankoopplicht ;) ): tevens een workshop om er mee te beginnen!&lt;br /&gt;
 &lt;br /&gt;
Heb je eerder dit jaar tijdens het Hackerhotel een Meshtastic kitje aangeschaft, maar niets meer met je Meshtastic gedaan? Dan is dat kitje met Heltec V3 een prima starter bij deze MeshCore workshop.&lt;br /&gt;
&lt;br /&gt;
Je kunt eventueel een Heltec V3 meebestellen voor 25 euro incl btw. Zet dat dan even in de tabel hieronder erbij. Maar je mag natuurlijk ook je eigen spul meenemen.&lt;br /&gt;
&lt;br /&gt;
==Inhoud==&lt;br /&gt;
* Wat is MeshCore&lt;br /&gt;
* Waarom is het leuk&lt;br /&gt;
* Verschillende rollen&lt;br /&gt;
* Hardware (en hoe het uit de hand loopt)&lt;br /&gt;
* Configuratie&lt;br /&gt;
* Demo&lt;br /&gt;
* Speeltijd en hulp met het werkend krijgen.&lt;br /&gt;
&lt;br /&gt;
https://pad.bitlair.nl/p/lora&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/presentation/d/1h6CC3s-rCDkTylBscA9Ky0ZhBM5mxv8rZMoFVbLMzFs/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
==Aanmelden==&lt;br /&gt;
Let op: we kunnen maximaal 20 deelnemers huisvesten en begeleiden.&lt;br /&gt;
&lt;br /&gt;
Je kunt geen Heltec v3 meer meebestellen. Hij is zonder case nog wel leverbaar via TinyTronics: https://www.tinytronics.nl/nl/development-boards/microcontroller-boards/met-lora/heltec-wi-fi-lora-32-esp32-s3-sx1262-met-0.96-inch-oled-display&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Naam !! Meebestellen Heltec V3 !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Crashjuh || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| polyfloyd || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Colomax || 2x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Atoomnet || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| blaat || 1x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 1x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wilbert || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| CH23 || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| TeQ || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Kartoffel || nee&lt;br /&gt;
|-&lt;br /&gt;
| Ries || ja || .&lt;br /&gt;
|-&lt;br /&gt;
| Gori || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Dimi || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Muad-Dib || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| florian || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Colomax + 1 || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| FooBar || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| - || - || .&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Inkoopactie voor een Meshcore Router op de space=&lt;br /&gt;
&lt;br /&gt;
We willen de https://heltec.org/project/meshtower/ MeshTower van Heltec. Er is al MeshCore firmware voor.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Wie !! Hoeveel tientjes !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| Bas || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| CH23 || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wilbert || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Crashjuh || 3 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Elborro || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| sting || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Colomax || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Boekenwuurm || 1 || nee&lt;br /&gt;
|-&lt;br /&gt;
| thomas || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| jelle || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| cmpxchg || 1 || nee&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Voorbeeld || Voorbeeld || Voorbeeld&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Totaal: 200 euro van de 200 euro&lt;br /&gt;
&lt;br /&gt;
Wil je ook een MeshTower meebestellen of iets anders van HelTec? Dat kan, zet het hieronder jouw bestelling. Met meerdere MeshTowers zakt de prijs van 230 euro per stuk naar ongeveer 200!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Wie !! Wat !! Totaal ex verzenden in $ !! Totaal berekend door Bas incl verzenden !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| RandomData (via Bas)|| 1x MeshTower|| .|| 200|| Ja&lt;br /&gt;
|- &lt;br /&gt;
| Bas || 1x Heltec V4 || .|| x || Ja&lt;br /&gt;
|-&lt;br /&gt;
| Bart Jan (RandomData) || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 1x MeshTower || .||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| BlackDragon || 1x Heltec V4 || 20 || 25 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || 1x Heltec V4 || 20 || ?? || ja&lt;br /&gt;
|-&lt;br /&gt;
| HS Nijmegen via Bas || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| cmpxchg || 1x MeshTower ||.||200|| ja&lt;br /&gt;
|-&lt;br /&gt;
| Synq || 1x MeshTower, 1x V3||.||225||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Elborro || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Dimi || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De inkoopactie is gesloten. Alle hardware is besteld (9x MeshTower, 6x V3 en 3x V4).&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Meshcore&amp;diff=35274</id>
		<title>Meshcore</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Meshcore&amp;diff=35274"/>
		<updated>2026-06-08T17:34:31Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Revspace meshcore repeater */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
 |Name=MeshCore&lt;br /&gt;
 |Status=In progress&lt;br /&gt;
 |Picture=Meshtower.png&lt;br /&gt;
 |Contact=Bas, Anne Jan, Paul&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
 |Name=Workshop/Lecture MeshCore&lt;br /&gt;
 |DateStart=29 November 2025 15:00&lt;br /&gt;
 |DateEnd=29 November 2025 18:00&lt;br /&gt;
 |Info=Lecture/Workshop about MeshCore&lt;br /&gt;
 |InfoLocation=RevSpace&lt;br /&gt;
 |InfoOpen=12:30&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
= Revspace meshcore repeater =&lt;br /&gt;
Er is een Revspace meshcore repeater, type [https://heltec.org/project/meshtower/ MeshTower], gegevens per 2026-6-6:&lt;br /&gt;
* Fysiek staat ie bovenop de kast rechts naast de bar&lt;br /&gt;
* Geconfigureerd met settings volgens https://meshcore.envoyage.io/configurator/&lt;br /&gt;
* Firmware 1.15&lt;br /&gt;
* Radio settings 869.618,62.5,7,5&lt;br /&gt;
* Regio scopes: weet ik niet meer precies, i.i.g. nl, nl-zh, nl-hag&lt;br /&gt;
* 2-byte hashes&lt;br /&gt;
* Naam &amp;quot;RevSpace&amp;quot;, password bekend bij [[Bertrik]] en [[Crashjuh]]&lt;br /&gt;
&lt;br /&gt;
Nieuwe firmware flashen:&lt;br /&gt;
* Schroef het kastje open&lt;br /&gt;
* Steek een kabel in de USB-C van de meshtower en het andere eind in je computer&lt;br /&gt;
* Ergens naast de USB-C connector zit een klein knopje reset of RST, druk die 2x kort in&lt;br /&gt;
* Op je computer zie je een USB drive verschijnen, de meshtower is nu in bootloader mode&lt;br /&gt;
* Flash een firmware via de web interface van https://meshcore.co.uk/flasher.html , kies &amp;quot;Heltec MeshSolar / MeshTower&amp;quot;, kies rol repeater.&lt;br /&gt;
&lt;br /&gt;
Configureren:&lt;br /&gt;
* Via de browser lukte mij niet&lt;br /&gt;
* Uiteindelijk geconfigureerd via USB-seriele poort console:&lt;br /&gt;
```&lt;br /&gt;
screen /dev/ttyACM0 115200&lt;br /&gt;
```&lt;br /&gt;
* In seriele poort console kan je commando&#039;s intypen zoals &#039;set radio ...&#039;&lt;br /&gt;
&lt;br /&gt;
=Workshop=&lt;br /&gt;
Een introductie in MeshCore en als je een compatible apparaatje meeneemt (wij hebben ook een aantal mee, dus geen aankoopplicht ;) ): tevens een workshop om er mee te beginnen!&lt;br /&gt;
 &lt;br /&gt;
Heb je eerder dit jaar tijdens het Hackerhotel een Meshtastic kitje aangeschaft, maar niets meer met je Meshtastic gedaan? Dan is dat kitje met Heltec V3 een prima starter bij deze MeshCore workshop.&lt;br /&gt;
&lt;br /&gt;
Je kunt eventueel een Heltec V3 meebestellen voor 25 euro incl btw. Zet dat dan even in de tabel hieronder erbij. Maar je mag natuurlijk ook je eigen spul meenemen.&lt;br /&gt;
&lt;br /&gt;
==Inhoud==&lt;br /&gt;
* Wat is MeshCore&lt;br /&gt;
* Waarom is het leuk&lt;br /&gt;
* Verschillende rollen&lt;br /&gt;
* Hardware (en hoe het uit de hand loopt)&lt;br /&gt;
* Configuratie&lt;br /&gt;
* Demo&lt;br /&gt;
* Speeltijd en hulp met het werkend krijgen.&lt;br /&gt;
&lt;br /&gt;
https://pad.bitlair.nl/p/lora&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/presentation/d/1h6CC3s-rCDkTylBscA9Ky0ZhBM5mxv8rZMoFVbLMzFs/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
==Aanmelden==&lt;br /&gt;
Let op: we kunnen maximaal 20 deelnemers huisvesten en begeleiden.&lt;br /&gt;
&lt;br /&gt;
Je kunt geen Heltec v3 meer meebestellen. Hij is zonder case nog wel leverbaar via TinyTronics: https://www.tinytronics.nl/nl/development-boards/microcontroller-boards/met-lora/heltec-wi-fi-lora-32-esp32-s3-sx1262-met-0.96-inch-oled-display&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Naam !! Meebestellen Heltec V3 !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Crashjuh || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| polyfloyd || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Colomax || 2x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Atoomnet || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| blaat || 1x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 1x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wilbert || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| CH23 || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| TeQ || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Kartoffel || nee&lt;br /&gt;
|-&lt;br /&gt;
| Ries || ja || .&lt;br /&gt;
|-&lt;br /&gt;
| Gori || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Dimi || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Muad-Dib || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| florian || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Colomax + 1 || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| FooBar || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| - || - || .&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Inkoopactie voor een Meshcore Router op de space=&lt;br /&gt;
&lt;br /&gt;
We willen de https://heltec.org/project/meshtower/ MeshTower van Heltec. Er is al MeshCore firmware voor.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Wie !! Hoeveel tientjes !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| Bas || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| CH23 || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wilbert || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Crashjuh || 3 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Elborro || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| sting || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Colomax || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Boekenwuurm || 1 || nee&lt;br /&gt;
|-&lt;br /&gt;
| thomas || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| jelle || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| cmpxchg || 1 || nee&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Voorbeeld || Voorbeeld || Voorbeeld&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Totaal: 200 euro van de 200 euro&lt;br /&gt;
&lt;br /&gt;
Wil je ook een MeshTower meebestellen of iets anders van HelTec? Dat kan, zet het hieronder jouw bestelling. Met meerdere MeshTowers zakt de prijs van 230 euro per stuk naar ongeveer 200!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Wie !! Wat !! Totaal ex verzenden in $ !! Totaal berekend door Bas incl verzenden !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| RandomData (via Bas)|| 1x MeshTower|| .|| 200|| Ja&lt;br /&gt;
|- &lt;br /&gt;
| Bas || 1x Heltec V4 || .|| x || Ja&lt;br /&gt;
|-&lt;br /&gt;
| Bart Jan (RandomData) || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 1x MeshTower || .||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| BlackDragon || 1x Heltec V4 || 20 || 25 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || 1x Heltec V4 || 20 || ?? || ja&lt;br /&gt;
|-&lt;br /&gt;
| HS Nijmegen via Bas || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| cmpxchg || 1x MeshTower ||.||200|| ja&lt;br /&gt;
|-&lt;br /&gt;
| Synq || 1x MeshTower, 1x V3||.||225||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Elborro || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Dimi || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De inkoopactie is gesloten. Alle hardware is besteld (9x MeshTower, 6x V3 en 3x V4).&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Karaburan&amp;diff=35273</id>
		<title>Karaburan</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Karaburan&amp;diff=35273"/>
		<updated>2026-06-08T09:06:52Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: /* Cheap non-bluetooth EC/TDS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
 |Name=Karaburan&lt;br /&gt;
 |Picture=karaburan.png&lt;br /&gt;
 |Omschrijving=Monitoring water quality&lt;br /&gt;
 |Status=In progress&lt;br /&gt;
 |Contact=bertrik&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Next steps ==&lt;br /&gt;
* &amp;lt;s&amp;gt;engage with PX4 community on getting a feel if this is useful to use and if so, how to get started&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;figure out how to duplicate an MQTT stream&amp;lt;/s&amp;gt; don&#039;t bother&lt;br /&gt;
* write python scripts&lt;br /&gt;
** &amp;lt;s&amp;gt;arduino turbidity&amp;lt;/s&amp;gt; don&#039;t bother&lt;br /&gt;
** &amp;lt;s&amp;gt;turbidity-to-mqtt&amp;lt;/s&amp;gt; maybe make this ROS module&lt;br /&gt;
** &amp;lt;s&amp;gt;HID-to-mqtt&amp;lt;/s&amp;gt; maybe make this ROS module&lt;br /&gt;
** position/velocity listener script: latitude, longitude, altitude, heading/bearing/track/whatever, velocity&lt;br /&gt;
* hook things into systemd / udev&lt;br /&gt;
* analoog in op de pi:&lt;br /&gt;
** https://elektronicavoorjou.nl/product/adc-pi/&lt;br /&gt;
** https://www.123materialen.com/products/zeer-nauwkeurige-ads1256-dac8552-ad-da-board-voor-raspberry-pi_1676153&lt;br /&gt;
** FreeJoy project&lt;br /&gt;
* UPS voor pi: https://elektronicavoorjou.nl/product/raspberry-pi-ups-hat/&lt;br /&gt;
* 1-wire stuff:&lt;br /&gt;
** 1-wire adapter emulation on an stm32: https://github.com/alitekin2fx/stm32_ds2480_emu&lt;br /&gt;
** owfs.org for easy interfacing with multiple 1-wire devices in a hierarchical way on linux&lt;br /&gt;
* Figure out the udev/hotplug mess, we probably need this because many of our peripherals use a serial port:&lt;br /&gt;
** in how many places can we store the udev renaming logic (config files)&lt;br /&gt;
** can we automate this, make it user friendlier, e.g. some kind of &amp;quot;insert device X now&amp;quot; script&lt;br /&gt;
&lt;br /&gt;
Check:&lt;br /&gt;
* https://www.rtvnoord.nl/natuur/1215705/vuilrobot-maakt-jachthaven-winschoten-schoon-beter-dan-met-een-schepnet&lt;br /&gt;
&lt;br /&gt;
=== USB HID as analog input ===&lt;br /&gt;
An stm32 based bluepill board can be flashed with firmware to allow its analog inputs to be exposed as USB HID sliders.&lt;br /&gt;
&lt;br /&gt;
Flashing the bluepill with openocd to the freejoy firmware:&lt;br /&gt;
* install openocd&lt;br /&gt;
  sudo apt install openocd&lt;br /&gt;
* connect an stlinkv2 to an stm32 bluepill, connect the stlinkv2 to USB&lt;br /&gt;
* flash the freejoy firmware as follows:&lt;br /&gt;
** download the firmware from https://github.com/FreeJoy-Team/FreeJoy&lt;br /&gt;
** create a symlink to the hex file called firmware.hex&lt;br /&gt;
** flash the firmware from the command line&lt;br /&gt;
  openocd -s /usr/share/openocd/scripts -f interface/stlink.cfg -f target/stm32f1x.cfg -c init -c &amp;quot;program firmware.hex verify reset exit&amp;quot;&lt;br /&gt;
* watch the kernel logs&lt;br /&gt;
  sudo dmesg -w&lt;br /&gt;
* connect the stm32 using a USB cable&lt;br /&gt;
* download the freejoy configurator from https://github.com/FreeJoy-Team/FreeJoyConfiguratorQt&lt;br /&gt;
* start the configurator and load the karaburan.cfg setting&lt;br /&gt;
* Write config to device -&amp;gt; it should reboot now and come up with the new settings&lt;br /&gt;
&lt;br /&gt;
Verify that it works:&lt;br /&gt;
* install the evtest package&lt;br /&gt;
* run&lt;br /&gt;
  evtest /dev/input/by-id/usb-FreeJoy_FreeJoy_v1.7.1-event-if00&lt;br /&gt;
&lt;br /&gt;
See also https://github.com/vostrenkov/EazyJoy&lt;br /&gt;
&lt;br /&gt;
=== influxdb ===&lt;br /&gt;
See https://hub.docker.com/_/influxdb&lt;br /&gt;
&lt;br /&gt;
See https://github.com/bertrik/karaburan/tree/master/influxdb&lt;br /&gt;
&lt;br /&gt;
=== ROS ===&lt;br /&gt;
Investigation:&lt;br /&gt;
* Use ROS 2, not the old ROS 1&lt;br /&gt;
* Cannot work comfortably with debian, works best with ubuntu&lt;br /&gt;
* Using gpsd:&lt;br /&gt;
** install ros-jazzy-desktop&lt;br /&gt;
** ros2 launch gpsd_client gpsd_client-launch.py&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Topics:&lt;br /&gt;
* air quality sensors&lt;br /&gt;
** ammonia&lt;br /&gt;
** NOx&lt;br /&gt;
* water chemical analysis&lt;br /&gt;
** nitrates&lt;br /&gt;
** ammonia&lt;br /&gt;
** dissolved oxygen&lt;br /&gt;
** sulfide/sulfate&lt;br /&gt;
** phosphates?&lt;br /&gt;
** salinity (chlorides?)&lt;br /&gt;
* water physical analysis&lt;br /&gt;
** temperature&lt;br /&gt;
** clarity/turbidity -&amp;gt; investigate standard ways of measuring/expressing this&lt;br /&gt;
** conductivity/total dissolved solids&lt;br /&gt;
** water properties by light reflection, hyperspectral/polarity&lt;br /&gt;
** depth?&lt;br /&gt;
* boat control&lt;br /&gt;
** trajectory -&amp;gt; steering&lt;br /&gt;
** idea: interface with the remote control, not with the boat&lt;br /&gt;
** idea: find a boat with easily hackable remote control protocol&lt;br /&gt;
** idea: can we get sensor data over this link too, e.g. GPS?&lt;br /&gt;
* camera control&lt;br /&gt;
* post-processing&lt;br /&gt;
** data presentation&lt;br /&gt;
*** video/photo stitching&lt;br /&gt;
*** time lapse view&lt;br /&gt;
*** map view of properties&lt;br /&gt;
* use cases&lt;br /&gt;
** verify with domain experts, how to engage?&lt;br /&gt;
** slootview, under/above water&lt;br /&gt;
** minimum viable prototype&lt;br /&gt;
** high-res measurement by location, by time&lt;br /&gt;
* materials&lt;br /&gt;
** boat selection&lt;br /&gt;
** processing platform selection&lt;br /&gt;
** communication platform selection&lt;br /&gt;
&lt;br /&gt;
== Investigate RTK GPS ==&lt;br /&gt;
Goal: figure out if it is practically possible to achieve cm resolution with a 200-euro GPS and a free correction service: YES&lt;br /&gt;
&lt;br /&gt;
* https://www.nsgi.nl/referentiepunten-en-gnss-data/gnss-data/real-time-streams public correction data service&lt;br /&gt;
* https://www.ardusimple.nl/rtk-in-5-minutes/&lt;br /&gt;
* RTK in action https://www.youtube.com/watch?v=Oc1LBFDj2MA&lt;br /&gt;
* Use with Linux / gpsd: https://stackoverflow.com/questions/77314115/drotek-gpsd-and-ntrip-correction-data-for-precise-positioning ?&lt;br /&gt;
* Chipsets&lt;br /&gt;
** Quectel LC29H (default: 115200 bps)&lt;br /&gt;
*** review: see https://rtklibexplorer.wordpress.com/2024/04/28/dual-frequency-rtk-for-less-than-60-with-the-quectel-lc29hea/&lt;br /&gt;
*** configuration: https://rtklibexplorer.wordpress.com/2024/05/06/configuring-the-quectel-lc29hea-receiver-for-real-time-rtk-solutions/&lt;br /&gt;
** uBLOX ZED-F9P&lt;br /&gt;
* Boards&lt;br /&gt;
** UM980 / UM982&lt;br /&gt;
&lt;br /&gt;
Edit /etc/default/gpsd, set GPSD_OPTIONS:&lt;br /&gt;
  GPSD_OPTIONS=&amp;quot;-Gn ntrip://user:pass@ntrip.kadaster.nl:2101/CBW100NLD0&amp;quot;&lt;br /&gt;
Option -G exposes the control socket on all network interfaces, option -n keeps the GPS active if there is no one currently connected.&lt;br /&gt;
&lt;br /&gt;
Plotting live location on a map:&lt;br /&gt;
* Configure gpsd to expose its socket to the outside world: last section of https://gpsd.gitlab.io/gpsd/troubleshooting.html&lt;br /&gt;
* In QGIS, press ctrl+0 to show the GPS information tab, enter the name of the remote gpsd (port 2947)&lt;br /&gt;
&lt;br /&gt;
Station at Stolwijk (close to Gouda): https://gnss1.tudelft.nl/dpga/station/Stolwijk.html#STWK ?&lt;br /&gt;
&lt;br /&gt;
Starting from the command line:&lt;br /&gt;
* stop gpsd.socket&lt;br /&gt;
  sudo systemctl stop gpsd.socket&lt;br /&gt;
* run from command line&lt;br /&gt;
  sudo /usr/sbin/gpsd -Gn -D 1 -N /dev/ttyUSB0 .... (not sure yet)&lt;br /&gt;
&lt;br /&gt;
=== Validation ===&lt;br /&gt;
How to show that RTK GPS is actually accurate?&lt;br /&gt;
&lt;br /&gt;
* Relative positioning: with an &amp;quot;fix RTK&amp;quot; solution, place the antenna at 4 points 25cm apart, each point for 20 seconds or so -&amp;gt; you see 4 distinct clusters of points&lt;br /&gt;
* Positioning over short time: put it in a fixed location, make sure that it has &amp;quot;fix RTK&amp;quot; solution, take 100 measurements or so -&amp;gt; determine the radius of the circle that contains 90% of the points&lt;br /&gt;
* Positioning over longer time: do this for (say) an hour&lt;br /&gt;
* Absolute positioning: look up a national reference point, for example &amp;quot;RD-punt 389346&amp;quot;, located on the Sluisdijk between Gouda and Moordrecht. Technical data: https://www.nsgi.nl/iv-api/rdinfo/rdpoint/389346&lt;br /&gt;
** see https://www.nsgi.nl/referentiepunten-en-gnss-data/informatie-referentiepunten/rdinfo and enter 389346&lt;br /&gt;
** latitude: 51° 59&#039; 49,64048&amp;quot; , longitude: 4° 41&#039; 19,90765&amp;quot;, or 51.99712236/4.68886324&lt;br /&gt;
&lt;br /&gt;
==== Comparison with reference coordinate ====&lt;br /&gt;
On october 4th 2024, we took the RTK GPS to a kernnet reference point at 51.99712236/4.68886324, results below:&lt;br /&gt;
&lt;br /&gt;
From https://www.nsgi.nl/iv-api/rdinfo/rdpoint/389346:&lt;br /&gt;
* Year 2021: &amp;quot;51 59 49,64004&amp;quot;, &amp;quot;4 41 19,90584&amp;quot;, 48.039. In decimal degrees that is &lt;br /&gt;
&lt;br /&gt;
Differences between the reference point and the measurements are calculated to easting (&#039;X&#039;) and northing (&#039;Y&#039;), unit meter. To calculate distance in meters, we use a linear approximation:&lt;br /&gt;
* For dy: 40075km/360 = 111,319 m/deg&lt;br /&gt;
* For dx: dy * cos(latitude) = 68,549 m/deg&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Measurements + deviations&lt;br /&gt;
|-&lt;br /&gt;
! Name !! Latitude !! Longitude !! dx (m) !! dy (m) !! absolute (m) !! Remark&lt;br /&gt;
|-&lt;br /&gt;
| Reference 2012 || 51.99712236 || 4.68886324 || - || - || 0 || by definition&lt;br /&gt;
|-&lt;br /&gt;
| Reference 2021 || 51.99712223 || 4.68886273 || - || - || 0 || by definition&lt;br /&gt;
|-&lt;br /&gt;
| Screenshot 1 || 51.99712217 || 4.68886567 || 0.167 || -0.021 || 0.168 || - &lt;br /&gt;
|-&lt;br /&gt;
| Screenshot 2 || 51.99712200 || 4.68886533 || 0.143 || -0.040 || 0.149 || -&lt;br /&gt;
|-&lt;br /&gt;
| Meting 1 || 51.9971220 || 4.6888663 || 0.210 || -0.040 || 0.214 || -&lt;br /&gt;
|-&lt;br /&gt;
| Meting 2 || 51.9971222 || 4.6888660 || 0.189 || -0.018 || 0.190 || -&lt;br /&gt;
|-&lt;br /&gt;
| Average || - || - || 0.177 || -0.030 || 0.180 || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
According to [https://www.unavco.org/software/geodetic-utilities/plate-motion-calculator/plate-motion-calculator.html this page], the rate of movement is about&lt;br /&gt;
15.75mm/year to the north and 17.45 mm/year to the east (ITRF2020 model).&lt;br /&gt;
Over 12 years, that amounts to 0.189m north and 0.209m east.&lt;br /&gt;
&lt;br /&gt;
== Air quality sensors ==&lt;br /&gt;
&lt;br /&gt;
=== Nitrogen compounds in air ===&lt;br /&gt;
According to https://www.rivm.nl/stikstof/monitoren-advies-onderzoek/overzicht-stikstofmetingen/metingen-stikstof-in-de-lucht average (typical?) values of&lt;br /&gt;
* Ammonia (NH3): 6.7 ug/m3 (9.6 ppb)&lt;br /&gt;
* NOx: 27.3 ug/m3&lt;br /&gt;
* NO2: 18.6 ug/m3 (9.9 ppb)&lt;br /&gt;
&lt;br /&gt;
(ppb-conversion using https://www.breeze-technologies.de/blog/air-pollution-how-to-convert-between-mgm3-%C2%B5gm3-ppm-ppb/ )&lt;br /&gt;
&lt;br /&gt;
RIVM report on inexpensive nitrogen-in-air sensors: https://www.samenmeten.nl/sensoren-voor-no2&lt;br /&gt;
Conclusion: most sensors are not sensitive enough to be used in typical outdoor conditions, with perhaps one exception: alphasense NO2-B43F&lt;br /&gt;
&lt;br /&gt;
== Sonar sensors ==&lt;br /&gt;
Investigate this because it allows us to measure depth.&lt;br /&gt;
&lt;br /&gt;
AliExpress has several types of affordable sonar sensors, focused at detecting fish, but also able to measure depth.&lt;br /&gt;
&lt;br /&gt;
I ordered this one: https://nl.aliexpress.com/item/1005006388343879.html&lt;br /&gt;
* 125 kHz main frequency, range up to 200 ft deep (about 60m)&lt;br /&gt;
* bluetooth low-power interface (basically serial-over-BLE)&lt;br /&gt;
* built-in battery, powers on automatically when submerged&lt;br /&gt;
* reports 120-element array with raw sonar return intensity-vs-depth&lt;br /&gt;
* measures water temperature&lt;br /&gt;
* about 45 euro&lt;br /&gt;
&lt;br /&gt;
Fish helper pro application for android https://apkpure.com/fish-helper-pro/com.fishfinderpro.xdx&lt;br /&gt;
&lt;br /&gt;
=== Debug tool ===&lt;br /&gt;
I wrote a python script to connect to it from a linux computer: https://github.com/bertrik/wireless-sonar-sensor&lt;br /&gt;
&lt;br /&gt;
It&#039;s connects to a &amp;quot;Fish Helper Pro&amp;quot; wireless sonar sensor over bluetooth low-energy, reports depth and temperature&lt;br /&gt;
&lt;br /&gt;
=== ROS2 integration ===&lt;br /&gt;
The most appropriate message for a simple range would be: https://docs.ros2.org/foxy/api/sensor_msgs/msg/Range.html&lt;br /&gt;
&lt;br /&gt;
There are other messages to perhaps report the raw echo return array.&lt;br /&gt;
&lt;br /&gt;
== Water physical analysis ==&lt;br /&gt;
=== Turbidity / clarity ===&lt;br /&gt;
See https://en.wikipedia.org/wiki/Turbidity&lt;br /&gt;
&lt;br /&gt;
Aliexpress sensor &#039;&#039;&#039;TS-300B&#039;&#039;&#039;: https://nl.aliexpress.com/item/1005006732956937.html&lt;br /&gt;
Has a range 0 ~ 1000 ± 30 NTU&lt;br /&gt;
&lt;br /&gt;
Order of magnitude for turbidity:&lt;br /&gt;
* Drinking water upper limit: &#039;&#039;&#039;4 NTU&#039;&#039;&#039; (European turbidity standard for drinking water)&lt;br /&gt;
* Ambient water: 10-150 NTU. The US state of Washington use a &amp;quot;background&amp;quot; value of &#039;&#039;&#039;50 NTU&#039;&#039;&#039; as reference.&lt;br /&gt;
&lt;br /&gt;
(see https://en.wikipedia.org/wiki/Turbidity#Standards_and_test_methods )&lt;br /&gt;
&lt;br /&gt;
So the Aliexpress sensor is suited only for &amp;quot;dirty&amp;quot; water.&lt;br /&gt;
&lt;br /&gt;
=== Water measurement probes ===&lt;br /&gt;
* https://nl.aliexpress.com/item/1005003784454381.html BLE-9908 Inexpensie &amp;quot;Yieryi&amp;quot; PH/EC/Temp probe with bluetooth and app, about E25,- (Uses 3x LR44 coin cell batteries)&lt;br /&gt;
* Several different models: https://nl.aliexpress.com/item/1005007810989801.html&lt;br /&gt;
** EZ9901: TDS/pH/temp&lt;br /&gt;
** EZ9902: EC/pH/temp&lt;br /&gt;
** EZ9908: EC/TDS/pH/temp&lt;br /&gt;
** EZ9909: TDS/EC/pH/salt/temp&lt;br /&gt;
* The bluetooth versions are probably as above, with numbers like BLE9902 and BLE9908&lt;br /&gt;
* Yiery BLE9902: https://shop.yieryimeters.com/products/yieryi-ble-9902-3-in-1-digital-ph-meter-with-bluetooth-ec-and-temperature-measurement-ideal-for-water-quality-testing-in-pools-fish-tanks-hydroponics-more&lt;br /&gt;
* BLE-EC01 is a bluetooth EC meter, can find it here https://www.amazon.com/BLE-EC01-Smart4-TDS-Temp-Meter/dp/B0DPZZC7BV, not on AliExpress?&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
* Some probes indicate EC (electrical conductivity), other indicate TDS (total dissolved liquids). TDS is derived from EC (knowing the liquid type). EC is the more universal/fundamental property!&lt;br /&gt;
* EC is typically expressed in uS/cm or mS/cm (micro or milli siemens per centimeter), say 500 uS/cm for outdoor water.&lt;br /&gt;
* EC is temperature dependent, typically you need the value extrapolated to 25 degrees Celcius. Temperature-EC correlation rule of thumb: about 2% more conductive per K.&lt;br /&gt;
* pH sensors are almost by definition fragile and last only a limited time, so probably don&#039;t bother trying to use one at all. The pH of outdoor water might not be that interesting to measure.&lt;br /&gt;
* I expect the non-TuYa meters to use an easier to handle bluetooth protocol, avoiding the need for complicated encryption with a key that can only be fetched for a limited time using a tuya developer account.&lt;br /&gt;
&lt;br /&gt;
==== BT785 ====&lt;br /&gt;
I bought this one: Tuya compatible BT785 EC meter: https://nl.aliexpress.com/i/1005007462079781.html inexpensive, focused on EC, runs on 4x LR44.&lt;br /&gt;
Speaks the TuYa protocol (requires a secret key that you can fetch through the developer console).&lt;br /&gt;
This is quite cumbersome: you have to register as a developer, fetch the key before time runs out and developer access is limited.&lt;br /&gt;
&lt;br /&gt;
Does NOT speak the universal serialport access protocol as described here:&lt;br /&gt;
https://developer.tuya.com/en/docs/iot/tuya-cloud-universal-serial-port-access-protocol?id=K9hhi0xxtn9cb&lt;br /&gt;
&lt;br /&gt;
More information on this wiki: https://revspace.nl/BT785&lt;br /&gt;
Code: https://github.com/bertrik/bt785&lt;br /&gt;
&lt;br /&gt;
==== Cheap non-bluetooth EC/TDS ====&lt;br /&gt;
I got this one: https://nl.aliexpress.com/item/1005007267608479.html&lt;br /&gt;
&lt;br /&gt;
Tear-down on hackaday: https://hackaday.io/project/184764-ectds-temp-meter-teardown&lt;br /&gt;
More info: https://dankar.github.io/hydrowatch/2014/11/20/interfacing-a-cheap-tds-meter-with-micro-controller/&lt;br /&gt;
&lt;br /&gt;
Comparison with the BT785, using tap water:&lt;br /&gt;
* BT785: EC = 706 us/cm2, temperature = 20.7&lt;br /&gt;
* cheapie: EC = 482 us/cm2, temperature = 24.2&lt;br /&gt;
&lt;br /&gt;
The cheapie probably underestimates the EC, because its temperature reading is too high.&lt;br /&gt;
A temperature error of about 5 degrees means an error of about 10 percent.&lt;br /&gt;
&lt;br /&gt;
Approximately +2% per °C increase in temperature (around room temperature).&lt;br /&gt;
&lt;br /&gt;
== Boat control ==&lt;br /&gt;
Typically the wireless link looks like this:&lt;br /&gt;
* 2.4 GHz working frequency&lt;br /&gt;
* 500m range&lt;br /&gt;
&lt;br /&gt;
Interesting links:&lt;br /&gt;
* Flytec-2011 remote control https://nl.aliexpress.com/item/1005002984723718.html&lt;br /&gt;
* Replacement board for various boats with &amp;quot;18&amp;quot; in their type number: https://nl.aliexpress.com/item/1005006115484716.html&lt;br /&gt;
* DIY Multi-protocol module: https://github.com/pascallanger/DIY-Multiprotocol-TX-Module&lt;br /&gt;
&lt;br /&gt;
=== remote control ===&lt;br /&gt;
Image of remote control RF chip:&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
Parts:&lt;br /&gt;
* 12.000 MHz crystal/oscillator&lt;br /&gt;
* 16-pin control chip: 20_CL6L071&lt;br /&gt;
* 6-pin RF chip: 1110 / VKA3, could be an rx/tx switch, amplifier or filter circuit&lt;br /&gt;
&lt;br /&gt;
See also: https://www.open-tx.org/&lt;br /&gt;
&lt;br /&gt;
Next steps:&lt;br /&gt;
* map out the connections between the mainboard and the rf board, expected: VCC, GND, spi ?&lt;br /&gt;
&lt;br /&gt;
== Use cases ==&lt;br /&gt;
material:&lt;br /&gt;
* https://www.youtube.com/watch?v=cMk0bGvIU1E&lt;br /&gt;
* https://iplo.nl/thema/water/oppervlaktewater/kaderrichtlijn-water&lt;br /&gt;
* kaartje: https://krw-nutrend.netlify.app/ -&amp;gt; 2 meetpunten op de reeuwijkse plassen, tijdresolutie is 1 jaar?&lt;br /&gt;
&lt;br /&gt;
Useful distinction, typically used in documents/guidelines:&lt;br /&gt;
* chemical quality, what substances are present in the water?&lt;br /&gt;
* biological / ecology quality, what kind of living organisms live in the water?&lt;br /&gt;
&lt;br /&gt;
=== Reeuwijkse plassen ===&lt;br /&gt;
See&lt;br /&gt;
* https://www.rijnland.net/wat-doet-rijnland/in-uw-buurt/reeuwijkse-plassen/ their stated goal: CLEAR WATER&lt;br /&gt;
* https://www.rijnland.net/regels-op-een-rij/subsidies-en-andere-financi%C3%ABle-bijdragen/&lt;br /&gt;
&lt;br /&gt;
potential applications:&lt;br /&gt;
* inspect water sides (oever) over time&lt;br /&gt;
* underwater camera: detect invasive cray fish&lt;br /&gt;
* sample water properties at high spatial resolution, high time resolution&lt;br /&gt;
* early detection of indicators for cyanobacteria: temperature and nutrients&lt;br /&gt;
&lt;br /&gt;
=== Detect/find pollution source ===&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== udev handling of serial ports ===&lt;br /&gt;
Many peripheral devices are connected through serial.&lt;br /&gt;
The plan is to have an udev config file with renaming rules, so each peripheral gets a stable name in /dev .&lt;br /&gt;
The plan is also to create the udev config using some python: insert device X now -&amp;gt; write line to udev config.&lt;br /&gt;
&lt;br /&gt;
The udev config file is:&lt;br /&gt;
  /etc/udev/rules.d/99-usb-serial.rules&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# LIDAR serial converter&lt;br /&gt;
SUBSYSTEM==&amp;quot;tty&amp;quot;, ATTRS{idVendor}==&amp;quot;10c4&amp;quot;, ATTRS{idProduct}==&amp;quot;ea60&amp;quot;, SYMLINK+=&amp;quot;ttyLIDAR&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;dialout&amp;quot;&lt;br /&gt;
# quectel GPS&lt;br /&gt;
SUBSYSTEM==&amp;quot;tty&amp;quot;, ATTRS{idVendor}==&amp;quot;1a86&amp;quot;, ATTRS{idProduct}==&amp;quot;7523&amp;quot;, SYMLINK+=&amp;quot;ttyGPS&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;dialout&amp;quot;&lt;br /&gt;
# ublox GPS&lt;br /&gt;
SUBSYSTEM==&amp;quot;tty&amp;quot;, ATTRS{idVendor}==&amp;quot;0403&amp;quot;, ATTRS{idProduct}==&amp;quot;6001&amp;quot;, SYMLINK+=&amp;quot;ttyGPS&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;dialout&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An USB-nano also appears to have a USB vendor/product id of 1a86/7523 (&amp;quot;USB2.0-Serial&amp;quot;) ... same as the quectel GPS?&lt;br /&gt;
&lt;br /&gt;
Same for &amp;quot;AI thinker&amp;quot; USB-serial: vendor/product id of 1a86/7523 (product: &amp;quot;USB2.0-Serial&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
To (re)load the properties:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo udevadm control --reload-rules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== reading temperature sensor ===&lt;br /&gt;
The idea is to to use a DB18B20 temperature sensor, read it using an arduino nano board acting as a 1-wire adapter.&lt;br /&gt;
Use openwire-fs as user-side openwire software http://owfs.org&lt;br /&gt;
&lt;br /&gt;
Preparation:&lt;br /&gt;
* Add the regular user to the &#039;dialout&#039; group, so it can access serial ports&lt;br /&gt;
  sudo adduser &amp;lt;name&amp;gt; dialout&lt;br /&gt;
&lt;br /&gt;
Setting up the hardware:&lt;br /&gt;
* connect the DS18B20 to the connector board with the pull-ups&lt;br /&gt;
* wire the connector board to the arduino nano, see ...&lt;br /&gt;
* plug the arduino nano in the pi&lt;br /&gt;
&lt;br /&gt;
Setting up the software:&lt;br /&gt;
* Install openwire fs&lt;br /&gt;
  sudo apt install owfs&lt;br /&gt;
* Create the openwire fs mountpoint&lt;br /&gt;
  sudo mkdir /mnt/1wire&lt;br /&gt;
* Configure owfs, edit /etc/owfs.conf&lt;br /&gt;
  server: device = /dev/ttyUSB0&lt;br /&gt;
  mountpoint = /mnt/1wire&lt;br /&gt;
  allow_other&lt;br /&gt;
  (comment out the line with the FAKE devices)&lt;br /&gt;
* Configure systemd services&lt;br /&gt;
  sudo systemctl enable owserver owhttpd&lt;br /&gt;
  sudo systemctl disable owftpd&lt;br /&gt;
* Start the systemd service&lt;br /&gt;
  sudo systemctl start owserver owhttpd&lt;br /&gt;
* Check the logs&lt;br /&gt;
  sudo journalctl -xeu owserver -f&lt;br /&gt;
* Open a browser to view the web interface&lt;br /&gt;
  http://localhost:2121 or&lt;br /&gt;
  http://raspberrypi.local:2121&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=Meshcore&amp;diff=35272</id>
		<title>Meshcore</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=Meshcore&amp;diff=35272"/>
		<updated>2026-06-08T08:59:13Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Project&lt;br /&gt;
 |Name=MeshCore&lt;br /&gt;
 |Status=In progress&lt;br /&gt;
 |Picture=Meshtower.png&lt;br /&gt;
 |Contact=Bas, Anne Jan, Paul&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Event&lt;br /&gt;
 |Name=Workshop/Lecture MeshCore&lt;br /&gt;
 |DateStart=29 November 2025 15:00&lt;br /&gt;
 |DateEnd=29 November 2025 18:00&lt;br /&gt;
 |Info=Lecture/Workshop about MeshCore&lt;br /&gt;
 |InfoLocation=RevSpace&lt;br /&gt;
 |InfoOpen=12:30&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
= Revspace meshcore repeater =&lt;br /&gt;
Er is een Revspace meshcore repeater, type MeshTower, gegevens per 2026-6-6:&lt;br /&gt;
* Fysiek staat ie bovenop de kast rechts naast de bar&lt;br /&gt;
* Geconfigureerd met settings volgens https://meshcore.envoyage.io/configurator/&lt;br /&gt;
* Firmware 1.15&lt;br /&gt;
* Radio settings 869.618,62.5,7,5&lt;br /&gt;
* Regio scopes: weet ik niet meer precies, i.i.g. nl, nl-zh, nl-hag&lt;br /&gt;
* 2-byte hashes&lt;br /&gt;
* Naam &amp;quot;RevSpace&amp;quot;, password bekend bij [[Bertrik]] en [[Crashjuh]]&lt;br /&gt;
&lt;br /&gt;
Nieuwe firmware flashen:&lt;br /&gt;
* Schroef het kastje open&lt;br /&gt;
* Steek een kabel in de USB-C van de meshtower en het andere eind in je computer&lt;br /&gt;
* Ergens naast de USB-C connector zit een klein knopje reset of RST, druk die 2x kort in&lt;br /&gt;
* Op je computer zie je een USB drive verschijnen, de meshtower is nu in bootloader mode&lt;br /&gt;
* Flash een firmware via de web interface van https://meshcore.co.uk/flasher.html , kies &amp;quot;Heltec MeshSolar / MeshTower&amp;quot;, kies rol repeater.&lt;br /&gt;
&lt;br /&gt;
Configureren:&lt;br /&gt;
* Via de browser lukte mij niet&lt;br /&gt;
* Uiteindelijk geconfigureerd via USB-seriele poort console:&lt;br /&gt;
```&lt;br /&gt;
screen /dev/ttyACM0 115200&lt;br /&gt;
```&lt;br /&gt;
* In seriele poort console kan je commando&#039;s intypen zoals &#039;set radio ...&#039;&lt;br /&gt;
&lt;br /&gt;
=Workshop=&lt;br /&gt;
Een introductie in MeshCore en als je een compatible apparaatje meeneemt (wij hebben ook een aantal mee, dus geen aankoopplicht ;) ): tevens een workshop om er mee te beginnen!&lt;br /&gt;
 &lt;br /&gt;
Heb je eerder dit jaar tijdens het Hackerhotel een Meshtastic kitje aangeschaft, maar niets meer met je Meshtastic gedaan? Dan is dat kitje met Heltec V3 een prima starter bij deze MeshCore workshop.&lt;br /&gt;
&lt;br /&gt;
Je kunt eventueel een Heltec V3 meebestellen voor 25 euro incl btw. Zet dat dan even in de tabel hieronder erbij. Maar je mag natuurlijk ook je eigen spul meenemen.&lt;br /&gt;
&lt;br /&gt;
==Inhoud==&lt;br /&gt;
* Wat is MeshCore&lt;br /&gt;
* Waarom is het leuk&lt;br /&gt;
* Verschillende rollen&lt;br /&gt;
* Hardware (en hoe het uit de hand loopt)&lt;br /&gt;
* Configuratie&lt;br /&gt;
* Demo&lt;br /&gt;
* Speeltijd en hulp met het werkend krijgen.&lt;br /&gt;
&lt;br /&gt;
https://pad.bitlair.nl/p/lora&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/presentation/d/1h6CC3s-rCDkTylBscA9Ky0ZhBM5mxv8rZMoFVbLMzFs/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
==Aanmelden==&lt;br /&gt;
Let op: we kunnen maximaal 20 deelnemers huisvesten en begeleiden.&lt;br /&gt;
&lt;br /&gt;
Je kunt geen Heltec v3 meer meebestellen. Hij is zonder case nog wel leverbaar via TinyTronics: https://www.tinytronics.nl/nl/development-boards/microcontroller-boards/met-lora/heltec-wi-fi-lora-32-esp32-s3-sx1262-met-0.96-inch-oled-display&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Naam !! Meebestellen Heltec V3 !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Crashjuh || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| polyfloyd || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Colomax || 2x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Atoomnet || Nee || .&lt;br /&gt;
|-&lt;br /&gt;
| blaat || 1x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 1x || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wilbert || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| CH23 || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| TeQ || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Kartoffel || nee&lt;br /&gt;
|-&lt;br /&gt;
| Ries || ja || .&lt;br /&gt;
|-&lt;br /&gt;
| Gori || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Dimi || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Muad-Dib || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| florian || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| Colomax + 1 || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| FooBar || nee || .&lt;br /&gt;
|-&lt;br /&gt;
| - || - || .&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Inkoopactie voor een Meshcore Router op de space=&lt;br /&gt;
&lt;br /&gt;
We willen de https://heltec.org/project/meshtower/ MeshTower van Heltec. Er is al MeshCore firmware voor.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Wie !! Hoeveel tientjes !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| Bas || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| CH23 || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wilbert || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Crashjuh || 3 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Elborro || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| sting || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Colomax || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Boekenwuurm || 1 || nee&lt;br /&gt;
|-&lt;br /&gt;
| thomas || 1 || ja&lt;br /&gt;
|-&lt;br /&gt;
| jelle || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 2 || ja&lt;br /&gt;
|-&lt;br /&gt;
| cmpxchg || 1 || nee&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| Voorbeeld || Voorbeeld || Voorbeeld&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Totaal: 200 euro van de 200 euro&lt;br /&gt;
&lt;br /&gt;
Wil je ook een MeshTower meebestellen of iets anders van HelTec? Dat kan, zet het hieronder jouw bestelling. Met meerdere MeshTowers zakt de prijs van 230 euro per stuk naar ongeveer 200!&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Bijschrift&lt;br /&gt;
|-&lt;br /&gt;
! Wie !! Wat !! Totaal ex verzenden in $ !! Totaal berekend door Bas incl verzenden !! Betaald?&lt;br /&gt;
|-&lt;br /&gt;
| RandomData (via Bas)|| 1x MeshTower|| .|| 200|| Ja&lt;br /&gt;
|- &lt;br /&gt;
| Bas || 1x Heltec V4 || .|| x || Ja&lt;br /&gt;
|-&lt;br /&gt;
| Bart Jan (RandomData) || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Lukkie || 1x MeshTower || .||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| BlackDragon || 1x Heltec V4 || 20 || 25 || ja&lt;br /&gt;
|-&lt;br /&gt;
| Wheeze_NL || 1x Heltec V4 || 20 || ?? || ja&lt;br /&gt;
|-&lt;br /&gt;
| HS Nijmegen via Bas || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| cmpxchg || 1x MeshTower ||.||200|| ja&lt;br /&gt;
|-&lt;br /&gt;
| Synq || 1x MeshTower, 1x V3||.||225||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Elborro || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
| Dimi || 1x MeshTower ||.||200||Ja&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
De inkoopactie is gesloten. Alle hardware is besteld (9x MeshTower, 6x V3 en 3x V4).&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
	<entry>
		<id>https://revspace.nl/wiki/index.php?title=File:Meshtower.png&amp;diff=35271</id>
		<title>File:Meshtower.png</title>
		<link rel="alternate" type="text/html" href="https://revspace.nl/wiki/index.php?title=File:Meshtower.png&amp;diff=35271"/>
		<updated>2026-06-07T10:12:58Z</updated>

		<summary type="html">&lt;p&gt;Bertrik Sikken: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bertrik Sikken</name></author>
	</entry>
</feed>