• We now have native compilation for ESP32! That opens a lot of possibilities!
  • Mirage is available for ESP32 target, it allows to build complex applications for this platform, such as an HTTPS server.
  • All this work is stored under a Github organization: well-typed-lightbulbs.

Native backend

  • OCaml 4.06.0 with xtensa target and custom settings to build the bytecode runtime on the ESP32. The best way to have a functional cross-esp32 toolchain is to install the ocaml-esp32 opam package from opam-cross-esp32. It requires an 4.06.0+32bit base compiler.
  • I have code generation and linking working. This is an example with the files I used to build my native hello world!

Cross-compilation of a Mirage unikernel

Mirage unikernel samples

  • Three sample docker scripts that build for ESP32: esp32-docker-samples. They build C, OCaml and Mirage code.
  • Three sample Mirage applications: mirage-esp32-samples. hello_world: a basic printer. ap_dhcp: an access point delivering IPs trough DHCP. lcd_wifi_demo: makes use of network and lcd screen features.