top of page

Software Overview

Dependencies

  • TivaWare

    • 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

  • FreeRTOS

    • For coordinating tasks that can occur periodically 

  • Git

    • 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

Software FD.png
bottom of page