Prior to the PiRinter3D software we are using now, we were prototyping with our hardware setup and a GCode interpreter written in Python. Although it was functionally correct and met our goal of only using a RaspberryPi, it had to be run from a terminal and lacked a GUI.
The code and project info can be found at GitHub: RaspberryPi3DGcodeInterpreter
The PiRinter3D software was created using Qt C++ (developed entirely on a RaspberryPi as well). The basic GCode logic and temperature reading alogrithms were mostly ported over from the Python code, with special exceptions for threading and error checking and correction. PiRinter3D takes advantage of configuration bundles insted of hard coded variables specific to the orginal hardware. This allows the software to be used with multiple printer configurations. PiRinter3D has a responsive GUI and realtime displays of temperature readings, GCode instructions, motor positionings, estimated times, and printing status.
The code and project info can be found at GitHub: PiRinter3D