You are on page 1of 3

1

An Overview of the NET Playground - A


Heterogeneous, Multi-Functional Network Test Bed
Paul Schwenteck∗, Sandra Zimmermann∗ , Caspar von Lengerke∗, Giang T. Nguyen†¶ ,
Christian Scheunert‡, Frank H. P. Fitzek∗¶
∗ Deutsche Telekom Chair of Communication Networks, TU Dresden, Germany
† Haptic Communication Systems, TU Dresden, Germany
‡ Chair of Communication Theory, TU Dresden, Germany
¶ Centre for Tactile Internet with Human-in-the-Loop (CeTI)
arXiv:2307.02239v1 [eess.SY] 5 Jul 2023

E-mails: {firstname.lastname}@tu-dresden.de

Abstract—This paper provides an overview of the hardware the development of individual shell scripts for each relay, tai-
and software components used in our test bed project the NET lored to their specific roles within the project, and a combined
Playground. All source information is stored in the GitLab version for simultaneous control. Additionally, we explore the
repository in [1]. In the Hardware section, we present sketches
and 3D views of mechanical parts and technical drawings of utilization of Ansible, an automation tool, in conjunction with
printed boards. The Software section discusses relay control using an inventory file and ansible-playbooks. We explain how host
shell scripts and the utilization of Ansible for automation. We groups are defined based on IP addresses, and we provide
also introduce a C++ framework for connecting with the INA231 examples of general-purpose ansible-playbooks for powering
energy sensor. This paper serves as a reference for understanding on/off Odroids and installing/configuring IPFS on designated
and replicating our project’s hardware and software components.
host groups.
Furthermore, we introduce a C++ framework for connecting
Index Terms—Hardware test bed, energy measurement, dis- with the INA231 energy sensor. This framework facilitates
tributed architectures
TCP-based communication,

II. H ARDWARE
I. I NTRODUCTION
In the Hardware Section, we have gathered a comprehen-
The successful execution of any project relies on the sive collection of sketches for the individual components of
effective integration of hardware and software components. our project. To ensure organized data management, we have
This paper presents a detailed overview of the hardware classified the information into two distinct groups:
and software aspects employed in our GitLab repository [1], i) Mechanical Parts: This group comprises various compo-
the NET Playground test bed, providing valuable insights nents, such as the sturdy frame, all the essential metal parts,
into its design and functionality. The NET Playground is and the transparent plexiglass plates. We have meticulously
a heterogeneous, multi-functional network testbed with 128 prepared detailed 3D views of these mechanical elements,
single-board computers connected in an extensive network. providing a comprehensive understanding of their structure,
All data in the repository is freely available to all and will dimensions, and interconnections. These visual representations
continue to be updated. So the content of this overview may offer valuable insights into the overall design and facilitate
still change in the future. accurate hardware assembly.
The hardware section showcases our meticulous approach ii) Printed Boards: In this category, we have focused on
to gathering and organizing essential information. We present the intricate circuitry of our project. Specifically, we have
a comprehensive collection of sketches, 3D views, and di- documented the technical drawings and schematics of critical
mension drawings for the individual components utilized in boards, including the level shifter, relay board, and the board
our project. The mechanical parts, including the sturdy frame, housing the INA231 energy sensor. These detailed drawings
metal components, and transparent plexiglass plates, are pre- allow for a precise understanding of the circuit connections,
sented with detailed 3D views. Additionally, we document the component placement, and proper positioning of the relevant
technical drawings and pictures of the printed boards, such as electronic elements. Additionally, we have provided dimension
the level shifter, relay board, and INA231 energy sensor board. drawings for the metal parts associated with the printed
The software section delves into two critical aspects: relay boards, enabling a comprehensive understanding of their exact
control and orchestration with Ansible. We introduce a shell measurements.
script specifically developed for relay control, highlighting its
III. S OFTWARE
role as an interface between software and hardware compo-
nents. The script defines the Odroid pins and their connection A. Relay Control
to a level shifter, which enables efficient switching of the Here, we have included the shell script responsible for
relays and precise regulation of the power supply. We discuss controlling the relays that govern the power supply of our
2

devices. The script is a crucial interface between the software the two tasks. It is also possible to define variables like power
and hardware components, allowing us to manage the relay’s that can be defined when executing the ansible-playbook.
operation effectively. −−−
We have defined the pins on the odroid within the script, # T h i s p l a y b o o k t u r n s on a l l o d r o i d s ;
our chosen microcontroller for relay control. These pins are # c o n t r o l − o d r o i d s n e e d t o be c o n n e c t e d
connected to a level shifter, which facilitates the conversion of − hosts : odroids − c o n tr o l
the output voltage to 5 V. This 5 V output is then utilized to become : y e s
tasks :
effectively switch the relays, enabling us to accurately regulate − name : copy swr f i l e t o r e m o t e h o s t
the power supply to our devices. copy :
To provide comprehensive control over the relay system, s r c : . / gpio . sh
we have developed individual shell scripts for each of the d e s t : / home / o d r o i d /
four relays. This approach allows us to tailor the behavior − name : s w i t c h o d r o i d s {{ power }}
shell :
of each relay based on its specific role within the project. | b a s h / home / o d r o i d / g p i o . s h {{ power }}
These individual scripts provide fine-grained control, Whether
activating or deactivating a particular device or managing The ansible-playbook ipfs init installs and configures In-
power flow to specific components. terplanetary File System (IPFS) [3], [4] on the defined host
Additionally, we have also created a combined version of the group. For the script to work, we first need to build IPFS on the
shell script. This unified script allows us to control multiple destination device and copy the built version of IPFS into the
relays simultaneously, streamlining the management process directory of the ansible-playbook. The playbook then copies
and simplifying the overall control of the power supply. the build version to all device and initiate it. Additionally, it
created an IPFS service file, so it starts when the device is
booted. Logs from the IPFS service are stored in /var/ on the
B. Ansible
device. The service file is included in the directory.
Ansible [2] works with a combination of an inventory The individual playbooks are divided according to the ex-
file and ansible-playbooks. The inventory defines host groups periments. We have only one experiment that measures energy
depending on their IP addresses. A group consists of a [name] consumption in an IPFS peer-to-peer network. The individual
and an IP address range. In our case, we have a group called playbooks are divided according to the experiments. We have
[odroids-testgroup] that consists of devices with IP addresses only one experiment that measures energy consumption in
ranging from 192.168.1.1 to 192.168.1.16. In addition to the an IPFS peer-to-peer network. Here we have defined scripts
address range, we can define the ssh password that Ansible that define the link properties like delay and bandwidth on
should use when connecting to the device, which is, in our one. Fixed links are essential for a deterministic measurement
case, odroid. When executing ansible-playbooks, the path to process. Another playbook deletes all added content in IPFS
the inventory needs to be defined with the -i flag. and resets all traffic control settings. This way, the odroids can
# The i n v e n t o r y f i l e f o r t h e NET PLayground
be used for another experiment without previous presets.

[ odroids − te s tg ro u p ] C. INA231
192.168.1.[1:16] ansible ssh pass =odroid
For the connection with the INA231 sensor, we have de-
[ odr oi ds − t e s t g r o u p −consumer ] veloped a framework in C++. Installing the framework on a
192.168.1.1 ansible ssh pass =odroid device can be connected to any other device with a connected
[ odroids − c o n t r o l ] INA231. The connection is established via TCP. The measured
192.168.[1:8].42 ansible ssh pass =odroid current of the INA231 is sent over the established TCP con-
nection. Thus, a central device can retrieve the measurement
We divide our ansible-playbooks into two categories—one data from all devices in the network. Installing can be done
for general purposes and one for specific use cases. The with the install.sh file included in the install files. Additional
two ansible-playbooks for general purpose are odroids power help is offered in the help.txt.
and ipfs init. Generally usable ansible-playbook. The ansible- For the connection with the INA231 sensor, we have devel-
playbook odroids power copies the gpio.sh, script to all oped a robust and flexible framework in C++. This framework
control-droids and runs the script on them. The host group facilitates seamless integration of the INA231 sensor with
odroid-control is defined in the inventory file. The sh-script other devices in our project. Installing the framework on a
defines gpio pins for the shifter board connected to the relays. device can easily connect to any other device equipped with
Periodically all pins are activated, which switches the relays an INA231 sensor, enabling efficient data communication and
and powers the individual odroids. The control-odroid must measurement retrieval.
not switch all nodes simultaneously, as that would lead to The connection between devices is established using TCP,
voltage spikes in the power supply and damage it. In the a reliable and widely-used communication protocol. Through
following, we show the code for the playbook, which includes this TCP connection, the measured current values from the
the host group odroids-control defined in the inventory, the INA231 sensor are transmitted, allowing for real-time mon-
option become for executing the tasks on a sudo level, and itoring and data collection. This approach enables a central
3

device to retrieve measurement data from multiple devices in


the network, providing a centralized and comprehensive view
of the energy consumption across the project.
To facilitate the installation process, we have included an
installation script, install.sh, in the install files. This script
streamlines the framework’s setup on the target device, en-
suring a smooth and hassle-free installation experience. Addi-
tionally, we provide a detailed help file, help.txt, which offers
comprehensive instructions and guidance for configuring and
utilizing the framework effectively.

ACKNOWLEDGMENT
Funded in part by the German Research Foundation (DFG,
Deutsche Forschungsgemeinschaft) as part of Germany’s Excellence
Strategy – EXC 2050/1 – Project ID 390696704 – Cluster of Excel-
lence ”Centre for Tactile Internet with Human-in-the-Loop” (CeTI) of
Technische Universität Dresden as well as by the German Research
Foundation (DFG, Deutsche Forschungsgemeinschaft) under Project
ID 450566247 and the Federal Ministry of Education and Research
of Germany in the programme of ”Souverän. Digital. Vernetzt.” –
Joint project 6G-life – projectID: 16KISK001K and 16KISK002

R EFERENCES
[1] P. Schwenteck, “Net playground,” https://gitlab.com/Paulteck/
net-playground, 2023.
[2] L. Hochstein and R. Moser, Ansible: Up and Running: Automating
configuration management and deployment the easy way. ” O’Reilly
Media, Inc.”, 2017.
[3] J. Benet, “Ipfs - content addressed, versioned, p2p file system,” 2014.
[4] D. Trautwein, A. Raman, G. Tyson, I. Castro, W. Scott, M. Schubotz,
B. Gipp, and Y. Psaras, “Design and evaluation of ipfs: A storage
layer for the decentralized web,” in Proceedings of the ACM
SIGCOMM 2022 Conference. New York, NY, USA: Association
for Computing Machinery, 2022, p. 739–752. [Online]. Available:
https://doi.org/10.1145/3544216.3544232

You might also like