Building real-time embedded applications on QduinoMC: a web-connected 3D printer case study
MetadataShow full item record
CitationZhuoqun Cheng, Richard West, Ying Ye. 2017. "Building Real-Time Embedded Applications on QduinoMC: A Web-connected 3D Printer Case Study." Proceedings Of The 23Rd IEEE Real-Time And Embedded Technology And Applications Symposium (RTAS 2017). Pittsburgh, PA, 2017-04-18 - 2017-04-21
Single Board Computers (SBCs) are now emerging with multiple cores, ADCs, GPIOs, PWM channels, integrated graphics, and several serial bus interfaces. The low power consumption, small form factor and I/O interface capabilities of SBCs with sensors and actuators makes them ideal in embedded and real-time applications. However, most SBCs run non-realtime operating systems based on Linux and Windows, and do not provide a user-friendly API for application development. This paper presents QduinoMC, a multicore extension to the popular Arduino programming environment, which runs on the Quest real-time operating system. QduinoMC is an extension of our earlier single-core, real-time, multithreaded Qduino API. We show the utility of QduinoMC by applying it to a specific application: a web-connected 3D printer. This differs from existing 3D printers, which run relatively simple firmware and lack operating system support to spool multiple jobs, or interoperate with other devices (e.g., in a print farm). We show how QduinoMC empowers devices with the capabilities to run new services without impacting their timing guarantees. While it is possible to modify existing operating systems to provide suitable timing guarantees, the effort to do so is cumbersome and does not provide the ease of programming afforded by QduinoMC.