OCaml Labs internship overview
My research on OCaml/ESP32 devices was done as a research project in Cambridge Computer Laboratory’s OCaml Labs. The internship lasted 5 months, from March to July 2018, and I worked under the supervision of Anil Madhavapeddy. I presented my internship work on September 4, and I got a final mark of 18/20, confirming the validation of my first year of Master’s degree in computer science !
As a recap, I achieved:
- a working OCaml native compilation backend for Xtensa architecture.
- an opam distribution containing cross-compilation package support for ESP32.
- decent Mirage integration, including:
- operating system features: time, events and collaborative threading.
- network features: TCP/IP, DHCP, DNS, HTTP, TLS.
- esp32 features: Wifi, LCD screen.
- mirage command line interface integration that allows easy builds.
All the information you might need to actually use this project is available on the status page.
ICFP 2018 - OCaml Workshop talk
My talk was accepted for the OCaml Workshop co-located with ICFP 2018 in Saint-Louis, USA. Informations on the talk are available on the ICFP 2018 website: here. A video will be available soon. You can find the slides here. Finally, here are some pictures!
What comes next ?
I’ll pause my ESP32 work, to focus on other fields and courses for a semester. However this is not the end of the project and there remains a lot to achieve. Things that I want to do include building new libraries to take advantage of ESP32 features and make them available trough Mirage abstractions.
- Programming Ultra-Low Power processor
- Reading sensors
- Integrating sensors in the event system
- Bluetooth integration
- Reducing OCaml memory footprint