Python Software Integrates with Microcontrollers and Electronic Hardware to Ease Development for Open-Source Research and Scientific Applications

Abstract
Many options exist for developing and implementing monitoring systems for research and scientific applications. Commercially, available systems and devices, however, are usually built using proprietary tools and programming instructions, and often offer limited flexibility for end users. The use of open-source hardware and software has been embraced by the research and scientific communities and can be used to target unique data and information requirements. Development based on the Arduino microcontroller project has resulted in many successful applications, and the Arduino hardware and software environment continues to expand and become more powerful but can be intimidating for users with limited electronics or programming experience. The open-source Python language has gained in popularity and is being taught in schools and universities as an introduction to computer programming and software development due to its simple structure, ease of use, and large standard library of functions. A project called CircuitPython was developed to extend the use of Python to programming hardware devices such as programmable microcontrollers and maintains much of the original Python language and features, with additional support for accessing and controlling microcontroller hardware. The objective of the work reported here is to discuss the CircuitPython programming language and demonstrate its use in the development of research and scientific applications. Several open-source sensing and monitoring systems developed using open-source hardware and the open-source CircuitPython programming language are presented and described.