Skip to main content
ARS Home » Southeast Area » Stoneville, Mississippi » Sustainable Water Management Research » Research » Publications at this Location » Publication #378682

Research Project: Development of Sustainable Water Management Technologies for Humid Regions

Location: Sustainable Water Management Research

Title: Python software integrates with microcontrollers and electronic hardware to ease development for open-source research and scientific applications

Author
item Fisher, Daniel
item Fletcher, Reginald
item Anapalli, Saseendran
item PINNAMENENI, SRINIVASA - Oak Ridge Institute For Science And Education (ORISE)

Submitted to: Modern Intrumentation
Publication Type: Peer Reviewed Journal
Publication Acceptance Date: 1/25/2021
Publication Date: 1/28/2021
Citation: Fisher, D.K., Fletcher, R.S., Anapalli, S.S., Pinnameneni, S.R. 2021. Python software integrates with microcontrollers and electronic hardware to ease development for open-source research and scientific applications. Modern Intrumentation. https://doi.org/10.4236/ait.2021.111004.
DOI: https://doi.org/10.4236/ait.2021.111004

Interpretive Summary: 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 often offer limited flexibility for end users. Open-source hardware and software are increasingly being used by the research and scientific communities to satisfy unique data and information requirements. The Arduino microcontroller project has resulted in many successful applications, but its C/C++ programming language can be intimidating for users with limited programming experience. The open-source Python programming language has gained popularity and is often used as an introductory language for computer programming and software development. A version of Python, CircuitPython, was developed to extend the use of Python for programming hardware devices such as programmable microcontrollers. It maintains much of the original Python features and adds support for accessing electronic hardware. Researchers with the USDA ARS's Sustainable Water Management Research Unit at Stoneville, MS, have developed monitoring systems using the CircuitPython programming language for 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.

Technical 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.