We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Realtime 3D Graphics on a MicroPython ESP32

Formale Metadaten

Titel
Realtime 3D Graphics on a MicroPython ESP32
Untertitel
Hacking the EMFCamp Conference Badge
Serientitel
Anzahl der Teile
542
Autor
Mitwirkende
Lizenz
CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
This is not really a "how-to" -- it's more of a "what-did" I spent an unreasonable amount of time writing a software 3D renderer for an extremely small and low-power ESP32 device running MicroPython. I will talk about the problems I encountered, the optimisations I made, and the eventual contributions I was able to make back to the MicroPython project. If you've been to other hacker conferences like EMFCamp or MCH, you may be familiar with the tradition giving attendees interesting hardware on a lanyard instead of a traditional conference badge. Attendees are encouraged to experiment with and hack on the device both at the conference and afterwards. This year at EMFCamp 2022, the conference badge was a USB thumb drive sized ESP32 device running MicroPython. It has a joystick, an accelerometer, the cutest little LiPo battery, and a lovely 135x240 pixel colour TFT display. It seemed like it would be a fun single-weekend exercise to write a little 3D renderer for it in Python. It turned out to be a "fun" multi-weekend exercise, but I learned a lot that I'd like to share. I learned how to workaround problems in the tooling. I learned there were problems in the display driver. I learned about optimising Python. I learned how to write native MicroPython modules to rewrite some hot functions in C. I learned about optimising how the Python talks to the C. And I even learned how to contribute some improvements back to the MicroPython project. I will bring the device with me, catch me after the talk to see it rendering Utah teapots up close.