Tremaroli, Nicholas James2023-06-222023-06-222023-06-21vt_gsexam:37806http://hdl.handle.net/10919/115472Firmware development for Low-Level Controllers is an extremely complex task. Single-threaded microcontrollers are most commonly used for these controllers and thus are only capable of executing a single task at a time. Microcontroller software tends to be designed for an extremely specific task with little room for scalability or code reuse. Additionally, the state of a microcontroller at run-time is very difficult to observe and thus makes it harder to debug and develop these control systems. To alleviate these development issues, a software framework was designed to simplify firmware development for Hardware Abstract Layered (HAL) control systems. The software framework was implemented on Texas Instruments TM4C123GXL Tivas on a multi-joint robot with the purpose of experimenting on a distributed microcontroller system. All of the software for the microcontroller was implemented into one program with initialization files from the high-level controller to configure each individual Tiva based on its functionality in the distributed system. The EtherCAT communication protocol is used primarily for its fast communication speed between high-level and low-level controllers. A basic GUI development environment accompanies the framework to aid in the initial development of a custom controller firmware and thus reduce development time. Additionally, this framework is designed to be easily scalable such that a real-time operating system (RTOS) can be implemented with minimal effort should the developer desire to do so. The proposed software framework thus overcomes major challenges when developing firmware for low-level controllers making development overall less time-consuming. Further, this framework can be used for many different robotic applications with a low-level multi-layered control architecture.ETDenCreative Commons Attribution 4.0 InternationalFirmwareMicrocontrollerFrameworkRoboticsHumanoidLow-Level NetworkingLow-Level ControlsAdaptive Firmware Framework for Microcontroller DevelopmentThesis