Micro Code

Michael's blog about teaching, hardware, software and the things in between

Fifteen minutes of (Internet) fame

September 05, 2020 — Michael Engel

Since my previous post on the bare-metal Smalltalk-80 version I built, a number of things have happened.

First, the bare-metal runtime environments I used were rather dated; they did neither support more recent Raspberry Pi models than those based on the original ARM11 (BCM2835, i.e. Raspberry Pi 1 and Zero/Zero W) and the old version of the uspi USB library did not support USB hubs. Since the Raspberry Pi Zero only has a single USB port, connecting keyboard and mouse requires a hub...

So I switched my implementation (github link), now called "crosstalk", to the much more recent circle library, which enabled support for more recent Raspberry Pi models (up to the Raspberry Pi 4, however there is no multi-core support).

Thus, my fifteen minutes of Internet fame started. Since there was some interest in my little project, I created a post on linkedin, which was mentioned in a tweet by Michael Haupt (thanks for all the great feedback!).

Subsequently, the story was picked up by some news outlets:

I got lots of positive feedback (thanks to all who commented, liked my article and starred my github repo!) and some people on the Internet even dared to give it a try. No haters so far, so there's still hope for the Internet ;-).

So, that's my fifteen minutes of fame. However, a number of problems remain:

  • Line drawing operations crash on BCM2835-based systems (this has worked with the old version...)
  • USB didn't work on the 8 GB version of the Raspberry Pi 4 - this seems to be fixed in the most recent version of circle (have to test it)

Also, there are a number of limitations:

  • The resolution must not exceed 2^20 pixels. 1280x720 works nicely, as shown in the picture below (5.5 inch display by seeed studio)
  • The system is still relatively slow, since a significant part of the performance-cricital functionality is still implemented in Smalltalk (and there's no JIT compiler)

Smalltalk on Raspi Zero W + 5" display

Alas, more work to do - but there's also other interesting projects upcoming, together with my students. So... stay tuned!

Tags: Smalltalk, Raspberry, bare-metal