About this website

This website is being served from a TiDAL badge from Electromagnetic Field 2022. The badge contains an ESP32 microcontroller and runs MicroPython. On it I am running a modified version of picoweb, hacked to be a bit more performant and better suit my needs.
It's very satisfying that I've been able to reuse something I already had, lying in a drawer, instead of continuing to host my site on someone else's computer, or buying extra hardware to do it. Consider it a small experiment in permacomputing. And it is still an experiment - I may end up wanting to do more with this website than this hardware is capable of. But right now I am enjoying the constraints - it encourages you to be creative.
Although this is running on a microcontroller, microcontrollers are not what they used to be. There have been sites in the past running from 8-bit devices with firmware written in assembly. My device is more than 10 times faster, with possibly 1000 times more memory. That allows for the software to be written in Python, making development a lot easier. It's actually a pretty capable system, and I believe a lot of the slowness is coming from the wireless connection rather than the CPU. Let's bear in mind how wasteful a lot of modern computing can be, and how few resources are actually needed for a lot of our tasks.
Some server info:
Clock frequency | 160 MHz |
RAM | 8 MB |
Flash | 8 MB (4 MB internal filesystem) |
Storage | SD card |
Power consumption | 0.2 W idle, 0.4 W when busy |
Connectivity | WiFi |
And some live server stats:
Uptime | 3d 2h 30m |
Homepage hits | 5113 |
Human homepage hits? | 1080 |
Free memory | 7994 KB |
Disk usage | 2 MB |
I've made some modifications to the badge:
- An SD card holder has been glued to the back and soldered to the GP0/1/2/3 pins
- The battery has been removed. As the server is constantly powered, I didn't want to have to worry about the battery potentially going spicy. In order to run the badge from USB without a battery, U2 should be bypassed by bridging pins 3 and 4 (see schematic). Once this is done, never reinsert the battery, or it will see the full 5 volts!
- The chip antenna, which is known to have some issues, has been replaced with 6cm of wire. This seems to have improved the quality of the connection.
todo list:
- caching?
look into TLS - need to update micropython to a later version- (eventually) consider rewriting the server in C for ultimate performance and nerd points