
Software Overview
Dependencies
-
-
TI created libraries for peripheral drivers, GUI, etc.
-
Grlib
-
UI Library that integrates with our display
-
-
USB_Host_Msc
-
USB Library that allows for the TivaC to act as a USB Host
-
-
-
-
For coordinating tasks that can occur periodically
-
-
-
Version control and changes archive
-
Allows for one team member's independent progress that is able to be merged with another team member's
-



Architecture
The system was designed to be responsive and synchronized by using multiple threads to all service different requirements. The list of threads includes:​​​
-
UI Thread
-
Update UI with printer state
-
Monitor for inputs
-
-
Memory Access Threads
-
Read files from USB into on-chip memory
-
Send batches of G-Code instructions to be parsed
-
Synchronized using task notifications or semaphores
-
-
Error Handling Thread
-
Handle errors and recover the system when possible
-
-
Initialization Thread/POST
-
Initialize system hardware
-
-
Calibration Thread
-
Move motors to known position to calibrate the printer
-
-
Parsing Thread
-
Parse G-Code from Memory into instructions and store in a queue
-
Synchronized
-
-
Printing Thread
-
Read next instruction and actuate the motors
-
Synchronized
-
