The Neotron Saga - throwing your project in the bin and starting again - J. Pallant
Back in 2019 I had an fun embedded project, and it worked quite well. I even got a couple of talks out of it. But it was built as a series of tech demos, one feature piled on top of another. There were no sound software engineering principles behind it. And so I thought, now is the time to start over and Do It Right this time. Jump forward four years, two job changes, one global pandemic and one new CPU, and here we are. I now have a one dead project and one gargantuan monster of a project I can never realistically complete or even keep control of. And the latter still isn’t as fully featured as the former even after so much effort. But it’s probably… better? Here is a a tale of caution should you ever be tempted to do a “big bang” reboot. But it also has some discussion on Rust FFI, a bit of electronics design, some computer history and maybe a neat Embedded Rust demo. This talk is laid out chronologically, starting an outline of my previous project with its conference runs in 2018/2019. I talk about the new project, and why I felt the need to start from scratch. I talk about its inspiration, looking at milestones in computer history. I talk about the big changes during the project (the RP2040 microcontroller came out, we had a pandemic, I changed jobs twice, I got some grant money, Twitter did the whole waves hands) and talk about where the new project is at right now. There are no hard and fast answers to “Should I start again on my project?” but we’ll hopefully finish with some neat demos of Rust running on embedded hardware paid for by the Rust Foundation. 🦀 *About Jonathan Pallant* 🦀 (https://hachyderm.io/@thejpster) Rust programmer since 2016. Member of the Rust Leadership Council. Co-founder of the Rust Embedded Working Group. Full-time Rust consultant and trainer. Part-time writer/designer of a home-brew open source Operating System in Rust and the open-source computer it runs on. Can be blamed for Rust support for: PS/2 Keyboards, SD Cards on microcontrollers, several RTOSes, the RP2040 microcontroller, the BeagleBoard X15, the Nordic nRF9160, and probably more I’ve forgotten.