The provided web-based editor that uses WebUSB to flash programs to the robot, and a REST API to produce MicroPython bytecode to run on the device, works just fine (https://www.edpyapp.com/v3/) -- but I wanted to give my kids a fully offline experience with no web browsers (or GUI) involved.
So with a bit of help from Claude and Gemini, I was able to port the USB flashing mechanism to Python and reverse-engineer the interned strings embedded in bytecode from the API. Now they can use a local editor and command-line util to upload their programs.
Since my own very first programming experience involved using LOGO in 90s to control some LEGO Technic sets and draw turtle graphics, I wanted to re-create this experience for them, so I built a LOGO to Python transpiler, leaning heavily on the Lark parser.
There's plenty more to do to make all of Edison's features available from LOGO, and to tighten up the workflow for USB uploads and diagnostics, and to have a more unified build system - but it works as is, and I hope Edison owners will try it out! PRs welcome.
-
A reflection on this project: making a LOGO-based robotics environment has been on my backlog of side projects for more than 5 years, and while I certainly have mixed feelings about and experiences with AI-assisted coding, these tools definitely helped me overcome the cold-start problem for this project. The code may not be exactly how I would've chosen to write it, but it exists, and the debug cycles have been fast, I've spent maybe two hours total on it so far.