## 1 Introduction  
Sensor networks have expanded our ability to monitor and study the world. They have been used for a wide range of applications, such as monitoring air pollution [1], urban noise [2] or energy management of smart buildings [3]. As their use cases expand, sensor networks become more complex and powerful, enabling a new range of physical stimuli to be accurately recorded, processed, ingested and analysed. However, implementing sensor networks is an enormous endeavour with high cost in time and resources. Many decisions have to be made, from which devices to use to which protocols to employ for connecting them. In addition, the deployment and upkeep of sensor networks is critical and time consuming, which requires sophisticated monitoring and alerting tools. Nowadays, it is difficult to build on top of other people's work as there are few accessible open-source solutions suitable for integration into different devices, leading to countless hours of engineering and software design invested every time. Of note is the case of high throughput sensor applications that incorporate audio or video data capture. Multithreading is typically needed to enable concurrent data capture, processing and writing to disk. If not handled correctly multiple threads accessing hardware devices or disk locations can lead to race conditions that can result in data corruption or even hardware freezes. Race conditions and hardware lockups can be incredibly difficult to identify and diagnose and are usually only addressed by more experienced developersrather than domain specific researchers implementing sensors networks. Sensor networks deployed externally in hard to reach locations have a critical need for stability over long periods of time and are particularly sensitive to these kinds of thread-borne failures, which can manifest at arbitrary times, often after many hours, weeks or even months of operation. The cost of addressing these failures in the field is high; thus, ensuring stable code operation is key. REIP is a Reconfigurable Environmental Intelligence Platform for fast sensor network prototyping, including an efficient and scalable sensor runtime. Given a sensing application and a set of requirements, REIP aims to alleviate the work of designing a remote sensor network by providing tools for sensor node design, software and hardware integration, bandwidth management, and other time-costly aspects. In this work, we present the first and central tool of REIP referred to as the REIP SDK (or software framework)--a modular API containing a set of re-usable, plug-and-play software blocks that integrate solutions for different hardware and software components by following the best practices. Moreover, we implement this API as a flexible, open-source software framework in Python, with the goal of it being user-friendly and, most importantly, to encourage contributions and extensions in the future. Its block libraries can also serve as a reference on how to implement different aspects of the sensor software even when users choose/need to build a custom solution. (The repository is hosted at [[https://github.com/reip-project/reip-pipelines](https://github.com/reip-project/reip-pipelines)]([https://github.com/reip-project/reip-pipelines](https://github.com/reip-project/reip-pipelines)) (updated on 25 April 2022)). It should be noted that our work is aimed at building sensors with edge computing capabilities of Linux-based high performance SBCs (Single Board Computers), such as the NVIDIA Jetson _et al._ (2018) or Raspberry Pi (2018); _et al._ (2018). The amount of data generated by modern sensing platforms (especially those containing video cameras) is such that it is often infeasible to upload all of it to the cloud for later processing. On-the-edge real time processing of sensor data is required to filter out the background noise or generate more compact representations of the data, and in such scenarios an efficient utilisation of the hardware capabilities offered by the computing platform is key.