---
title: "Week 3, Friday: ESP32 Ethernet and Thai Food Festival"
date: 2024-08-16T21:55:00+02:00
---

{{< image frame="true" width="17em" float="right" src="/img/headline/ixosound.png" alt="Credit: Ixo Sound, Youtube" >}}

I have only two goals for the day. Firstly, I need to write my journal entry for yesterday, as I was
a little bit too tired to write lucid text. I went to bed at only 22:30 or so, and got up this
morning at 09:30, so I'll make up for lost time and write the artical for yesterday, today. Then,
something cool came in the mail today: a set of ESP32 (Wroom) microcontrollers with a builtin
Ethernet PHY. I shall play with them in the afternoon using an old friend: Mongoose OS which is
based on FreeRTOS and ESP-IDF, a surprisingly complete little microcontroller OS. I used to be very
active in this community, and may still have my commit-bit set on GitHub.

The first task is pretty quickly retrofitted - I may make it a habit to write the journal in the
next morning, as often times later at night I'm sleepy (this is somewhat out of character for me, as
normally I will go to bed at 02:00 or 03:00 even, but these last few days I've been tired in the
evenings. Interesting!

I make myself fried eggs for lunch, and eat a bowl of the ramen I had left over from yesterday.
Then, I roll up my sleeves, go downstairs and get ready to design the PDU. I may write more about
the in-depth technical bits on my [[IPng.ch](https://ipng.ch/)] articles, but for now, I just start
with the basics:

1.  A front panel that has 16pcs of 220V C13 connector, in two groups (feed A on the left, and feed
    B on the right).
1.  A rear panel that has 2pcs of 220V input, 2pcs 10Amp fuse, and a power switch and cutout for the
    ESP32's ethernet RJ45 port.
1.  Some plumbing on the inside to keep the low voltage and 220V lines through a modbus enabled 16
    channel ammeter.
1.  A firmware based on Mongoose OS that supports WiFi, Ethernet, mDNS, RPC, OTA and Prometheus.

For the 3D printed parts, it's all relatively simple (flat) geometry. It reminds me that at some
point, I will stop 3D printing 2D parts, but rather buy a laser cutter so I can do some etching,
engraving and cutting through materials like wood, acrylic and so on. But that will be for another
day - I have the 3D printer, so I'm going to use the tools that I already have!

I have a lot of fun hacking on this little thing. There's something about the juxtaposition of
having a datacenter scale day job where petabytes is the norm, and then going back home to program a
firmware on a microcontroller with 80KB of ram and 1MB of flash. I'm lucky on this Wroom32, as it
has a whopping 200KB of RAM and 8MB of flash - I will have plenty of room to spare, and already look
forward to writing some code for it.

But, we have a date tonight! At 17:30, Max and Betty will pick us up as we're going to B&uuml;lach
for the [[Thai Food Festival](https://www.thaifoodfestival.ch/)]. It's an amazing ambiance, and we
also bump in to Uli and Christine, who scurry off into a quieter corner of the fairgrounds. Quinn
and I kind of wished we joined them, because the music is a bit loud; so we decide to take a walk
around the festival, then outside of it through the quaint town of B&uuml;lach, and eventually we
rejoin the group.

At about 21:15 we are all fed and watered and take off back to Br&uuml;ttisellen. Thanks for a great
evening, Betty and Max! Quinn wants to spend some time with his friends, and Marina and I watch a
few more episodes of _Coppers_, the flemish police series. They do solve the crimes every time
(da-doi!) but there is a red thread that connects the episodes throughout the series. I won't give
it away :)

At about 23:00 Marina turns in for the night and I go downstairs to do "Part B" of "Goal 1", which
is write the article for today. Then, I also do a bit of a stress test on my firmware so far -- I've
loaded it up with OTA (where 'air' here means over the Ethernet connection!) and Prometheus, and
am hitting it over the ethernet controller at 10Hz on its `/metrics` endpoint. So far, so good: no
leaks of memory, CPU, brownouts, packetlo\_ or other undesirables. Tomorrow, I'll continue with the
physical parts (routing 220V cables) and 3D print the supporting guides and brackets for the casing.

To celebrate the day, I pour myself a _Nardini_ white Grappa and print a few test parts, before
turning in for the night. The Grappa does surprise me a little bit because the first taste I have is
_liquorice_ and ths econd sensation is _100-Proof_, and I quite enjoy the glass, or maybe two.


## Pictures of the Day

{{< gallery-category >}}
  {{< gallery-photo fn="2024-08-16/IMG_0679.JPG" caption="A picture of a WT32-ETH01 module with Wroom32 and 100Mbit Ethernet PHY. It pings!" >}}
  {{< gallery-photo fn="2024-08-16/IMG_0682.JPG" caption="Max and I are at the Thai food street festival" >}}
  {{< gallery-photo fn="2024-08-16/IMG_0683.JPG" caption="We have tasty trinks (lemongrass+honey, and berry+dates)" >}}
  {{< gallery-photo fn="2024-08-16/IMG_0684.JPG" caption="THe food festival in B&uuml;lach is happening!" >}}
  {{< gallery-photo fn="2024-08-16/IMG_0685.JPG" caption="We order and nom on a spicy noodle soup, mie and fried rice" >}}
  {{< gallery-photo fn="2024-08-16/IMG_0686.JPG" caption="Quinn and I take a walk and find this guy" >}}
  {{< gallery-photo fn="2024-08-16/IMG_0688.JPG" caption="This chef is pumping out dishes at one per minute, and they are all made-to-order. Amazing!" >}}
  {{< gallery-photo fn="2024-08-16/IMG_0689.JPG" caption="Quinn and I are being welcomed to Thailand" >}}
  {{< gallery-photo fn="2024-08-17/IMG_0690.JPG" caption="I 3D printed a case for the ESP32 device, which will sit in a PDU" >}}
  {{< gallery-photo fn="2024-08-16/espidf.png" caption="The WT32-ETH01 modules come pre-flashed with a working ESP-IDF firmware. I'm reflashing them with a Mongoose OS app though, more on that later!" >}}
{{< /gallery-category >}}

{{< gallery-modal >}}
{{< gallery-script >}}
