Iron Coder is an integrated development environment for the development of embedded firmware in the Rust programming language, designed with a focus on ease of use. Embedded devices can serve as hands-on platforms that engage those who use them, and thus play an important role in computing education; however, these same devices also pose a significant barrier to entry due to the wide variety of hardware options, complexity of the toolchains and libraries needed to program them, and enigmatic nature of documentation. Platforms such as Arduino, CircuitPython, and Raspberry Pi, among others, have redefined who is able to work with embedded systems by providing developers with an all-in-one hardware-software system that addresses these challenges. Iron Coder provides this approachability for the Rust language by allowing programmers to graphically define the hardware architecture of their system, assist in generating and validating the associated firmware, linking to related library crates, and providing example code and platform-specific tools for development. The tool’s design is oriented towards students and hobbyists, whose primary concerns are ease of use, community support, and a rewarding experience that builds intuition. By decreasing the barrier to entry for embedded Rust, our hope is to increase the language’s adoption in academia, industry, and hobby use, resulting in the fulfillment of the language’s promise as a safe, robust, and performant platform for embedded systems.
With its integration of hardware and software elements, Iron Coder enables the creation of a cohesive, streamlined experience for educators and students in computer engineering fields such as robotics, IoT, and autonomous systems. Beyond this, the platform has potential as a research tool to study the ways in which students learn computer engineering material, especially at the hardware-software interface.
Iron Coder is designed to target all major operating systems as well as WebAssembly, with smooth operation even on low-power devices such as single-board computers. Additionally, the tool is designed to continue to grow via community-driven support – the project is open-source and hosted on GitHub, open to public contributions, and will grow as community members add support for additional hardware platforms. Iron Coder development is ongoing, with involvement of undergraduate computer engineering students at the University of XXX. Features and documentation that will allow for further community engagement are underway, and the long-term goal of the project is to become a popular and useful tool among open-source development environments, especially in an educational setting.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.