One of my early ideas for using my Cortex based development boards for more practical things was to implement a simple logic analyzer. It appeared to me that simply sampling the GPIO ports and recording changes with time stamps would be good enough for protocols like I2C or even SPI (when it’s slow enough). I did want to learn the ARM CMSIS library as well, so I forked a very nice demo project for the STM32 board on GitHub, and built a simple, SUMP compatible logic analyzer. It’s not perfect yet, e.g. there is no buffering at all, and I’m suspecting the timings are still off, but it was definitely fun to build! Next up is likely a CoreForth version ;)