to what extent is this Smalltalk all the way down ? Can I replace the drivers with Smalltalk code ?
In general, I think Smalltalk is not that well suited as a systems programming language since garbage collection might mess with your timing and you would also need to find a way to handle asynchronous events (such as interrupts).
Nevertheless, Smalltalk has been used for low-level control of robots, e.g. in NXTalk [2] for the Mindstorms NXT ARM7 platform. However, the VM also relied on C code (the LegOS project) for driver code.
[1] https://github.com/organix/pijFORTHos [2] https://www.hpi.uni-potsdam.de/hirschfeld/projects/nxtalk/in...