Update here: https://youtu.be/e6W0MP1_1Po
I made a pair of Morse Code Transceivers using Micropython on the BBC Microbit. In the config you can set pwr, wpm, channel 0-99, sidetone. Update: Connected the MI:Power boards from https://www.kitronik.co.uk/5610-mipower-board-for-the-bbc-microbit.html These make sweet little gadgets. Range is whole house through walls so far as I can tell. I've managed to squeeze into the code a menu, just shake and send the character which represents the option you want. Without flashing again the menu allows changes to speed, sidetone, channel, and power. It is also persistent between power cycles! I wanted to bundle a tutor mode but I think it will need to be written in C because micropython takes up too much space. Some folks interested in protocol see here (not actually cw behind the scenes): https://devzone.nordicsemi.com/blogs/783/intro-to-shockburstenhanced-shockburst/
Updated code is on github: https://github.com/jg00dman/m0rvj_microbit_cw_transceiver/tree/v2-beta