Help with porting uLisp to the STM32F405


I now have a beta version of ARM uLisp that works on the Adafruit Feather STM32F405 Express.

uLisp runs OK, and it seems very fast; for example, (tak 18 12 6) gives a time of 2.9 secs. However, the Arduino core serial port implementation seems pretty broken, and I can’t upload anything more than a few lines of Lisp without getting dropped characters.

If anyone has a board and would be interested in helping to get uLisp to work well on that platform please get in touch, and I’ll get you a copy of the beta.

See: Adafruit Feather STM32F405 Express.



I looked briefly at the Arduino core being used, and it looks like there is a very odd licensing issue at play in it. In short, STMicroelectronics uses a genuinely bizarre copyright license that expressly prohibits its use with open source software, including by explicit reference MIT-licenced code.


That’s a bit discouraging. It seems then that STMicroelectronics aren’t very interested in supporting the Arduino user base.


I’m not sure. The licence used doesn’t seem like it’s actually been lawyer-vetted; at the very least not by a competent lawyer. The intent behind the clause seems to be “you can’t forcibly open source this code”, but that’s not possible anyway, contrary to misperceptions by some because of the so-called viral clauses of the GNU GPL.


I found some interesting discussions on the forums relating to STM32CubeProgrammer, the proprietary STM programmer for their processors, which gives an insight into STM’s attitude. For example, see:

To develop uLisp for the STM32F405 I eventually gave up trying to get STM32CubeProgrammer to work on the Mac, and bought a Black Magic Probe, which worked like a dream.