I have written my own firmware for the UM2: https://github.com/ErwinRieger/ddprint. This was done for two main reasons:
- Implement a reliable USB interface to print over USB.
- Offload work from the AtMega processor to the host - the 2560 CPU is at its limits with all the stuff it has to do (path planning, stepper control, GUI, USB communication and so on).
This also has the nice side effect that the development of new features can be done mainly on the host side and in Python.
Similar Firmware Projects
Other firmware projects that split the work into two parts, a firmware part running on the printer and a host part running on a more powerful computer (PC, Raspi etc.):