<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Copyright is held by the author/owner(s).
AVI, June</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Remotino: Supporting End-User Developers in Prototyping Embedded Devices</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Volkmar Pipek</string-name>
          <email>volkmar.pipek@uni-siegen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Author Keywords Debugging; Prototyping; End-User-Development; Appropriation; Internet of Things</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Julian Dax University of Siegen 57072 Siegen</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Thomas Ludwig University of Siegen 57072 Siegen</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of Siegen 57072 Siegen</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <volume>0</volume>
      <fpage>7</fpage>
      <lpage>10</lpage>
      <abstract>
        <p>In recent years, platforms such as Arduino have made it easier for makers and hobbyists to create “smart objects” and connected devices. However, there are some unique barriers when developing embedded systems that challenge non-professionals. We derive these barriers from existing literature on end-userdevelopment (EUD) in general and in particular EUD for embedded devices. In this paper, we present the first prototype of a tool that supports end users to overcome some of these barriers by addressing problems of missing information and lack of understanding as well as providing visibility and help in decomposition. Our prototype comprises enhanced functionality for the debugging and prototyping process of hardware by showing the current and past state of the embedded device, and allowing end users to remotely control it, when they want to focus on circuit design.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        With the proliferation of Internet of Things (IoT), it has
more and more impact on the everyday life of average
citizen. This evolution implies that configuration,
understanding and programming of IoT technology is
getting more and more relevant for a diverse group of
people who are not traditional programmers. However,
the IoT ecosystem is complex and poses new
challenges to individualization of soft- and hardware [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
as well as understanding the hardware in relation to its
context [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The maker community has developed
various hard- and software-systems in recent years
which make working with electronics and
microcontrollers easier for non-professional
programmers than before (e.g. Arduino,
https://www.arduino.cc/). While IoT and embedded
systems are not synonymous, they are an important
piece of the IoT ecosystem.
      </p>
    </sec>
    <sec id="sec-2">
      <title>EUD for Embedded Systems</title>
      <p>
        End-user development (EUD) is defined by the aim of
developing “methods, techniques, and tools that allow
users of software systems, acting as non-professional
software developers, to create, modify or extend a
software artifact at some point” [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. EUD asks how
end-users can be provided with support to incorporate
and adapt software artifacts to their work practice. With
regard to EUD, there is an ongoing discourse focusing
on studying appropriation as well as how to design
support for these kinds of activities. A common insight
is that it is important for end users to learn how they
operate their machines [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Developing embedded systems comes with its own
special challenges. In this paper, we focus on problems
with decomposition and problems with visibility.
Decomposition – one of the core goals of software
engineering – is the the idea that a problem should be
split up in “mind-sized bites” [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] in order to be
solvable. The decomposition problem in embedded
systems development is due to the fact that the
“powerful separation of computation (software) from
physicality (platform and environment), which has been
one of the central ideas enabling the science of
computing, does not work for embedded systems” [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
This separation problem is what makes decomposition
hard to archive. When debugging embedded systems,
programmers oftentimes face the challenge, that they
do not know if the bug they are trying to fix is soft- or
hardware related [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. To answer this question,
programmers need to decompose the integrated,
embedded system into the hard- and the software
components in their head. They need to make sure that
either the soft- or the hardware works correctly.
The second major reason why developing embedded
systems is so challenging is the lack of visibility and
observability. It is a well-known problem in embedded
systems development, that the internal state of the
hard and -software system is largely invisible to the
developer [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Booth and Stumpf [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] studied
nonprofessional Arduino programmers and called this
problem the “information barrier”. Programmers do not
know which state the program and the electric circuit is
in at a given time and they have only very limited ways
to find it out (debuggers are not available in the
Arduino platform). Observing, how the state of the
embedded system changes over time is especially
difficult. Our research question was therefore how to
support end users in understanding and debugging
embedded systems.
      </p>
    </sec>
    <sec id="sec-3">
      <title>Research Approach</title>
      <p>To pave the way for answering the research question,
our approach tries to address the challenges of
archiving decomposition and visibility only in relation to
debugging and prototyping of the electrical circuit. For
that, we developed a GUI application called Remotino.
Remotino allows end users to remote control the digital
and analog pins on the Arduino form a computer
plugged into the Arduino board and to view the inputs
on these pins. This way, users can see how the
electrical circuit interacts with the Arduino
microcontroller by viewing the input and they can test
out their circuit by sending output. This helps with
decomposition, as the user can focus purely on the
electrical circuit first and does not need the ask himself
the question, if the problem is hard- or software
related. It also helps with visibility and observability in
the prototyping phase.</p>
    </sec>
    <sec id="sec-4">
      <title>Implementation</title>
      <p>To implement Remotino, we chose the Johnny-Five
JavaScript library (http://johnny-five.io/) and the
Electron application framework
(http://electron.atom.io/). The Johnny-Five JavaScript
consists of a server, which has to be installed on the
Arduino and a client library, which sends commands to
the server using the Firmata protocol
(https://github.com/firmata/protocol). To provide a
modern, cross platform GUI we chose the Electron
framework, which is based on the Chrome Browser and
allows the creation of native applications using web
technologies.</p>
    </sec>
    <sec id="sec-5">
      <title>User Interface</title>
      <p>In the user interface, we chose to represent each pin of
the Arduino (besides the pins for the serial ports) as a
separate row (see figure 2). As some Arduinos have
more than 50 pins, users can filter the pins and only
show pins which are digital only, allow analogue output,
allow analog input (analog pins can always also be put
in digital mode) or are enabled.</p>
      <p>In order to send a value to a pin or to receive values
from it, the pin needs to be “enabled” with using a
checkbox. The pins can then be switched in different
operation modes (digital in, digital out, analogue in,
analogue out) depending on their capabilities. Remotino
knows which pins support which modes and which
microcontroller is attached to it as this information is
made available by the Johnny-Five library. For each
enabled pin, the current value is shown and the values
of the last 10 seconds are plotted.</p>
    </sec>
    <sec id="sec-6">
      <title>Future Work</title>
      <p>In future versions of our tool, we want to include the
possibility to use pins that are not simple digital or
analog pins. A first step in this is the support for serial
ports. We are also working on an integrated event plot,
which shows an overview of all enabled pins and
visualizes when significant changes on these pins
happen. Moreover, macro-recording and playback
functionality is planned.</p>
      <p>For further requirements analysis and evaluation of the
usability and applicability, Remotino will be tested in
the setting of a university course on embedded
programming for students that have no high
programming experience and that mainly focus rather
on the design of the hardware artifacts than the
programming itself. Based in this long-term evaluation
we will be able to examine the appropriation of
embedded systems based on Remotino.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Booth</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Stumpf</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>End-user experiences of visual and textual programming environments for Arduino</article-title>
          .
          <source>Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)</source>
          , (
          <year>2013</year>
          ),
          <fpage>25</fpage>
          -
          <lpage>39</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Henzinger</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Sifakis</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>The embedded systems design challenge</article-title>
          .
          <source>Proceedings of the 14th International Symposium on Formal Methods (FM), Lecture Notes in Computer Science</source>
          , (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Kubitza</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Towards</surname>
          </string-name>
          <article-title>a Toolkit for the Rapid Creation of Smart Environments</article-title>
          . In P. Díaz,
          <string-name>
            <given-names>V.</given-names>
            <surname>Pipek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ardito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Jensen</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Aedo and A</article-title>
          . Boden, eds.,
          <string-name>
            <surname>End-User Development</surname>
          </string-name>
          SE -
          <volume>21</volume>
          . Springer International Publishing,
          <year>2015</year>
          ,
          <fpage>230</fpage>
          -
          <lpage>235</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Lieberman</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paternò</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Wulf</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <article-title>End-user development: An emerging paradigm</article-title>
          .
          <source>End User Development SE - 1 9</source>
          , (
          <year>2006</year>
          ),
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ludwig</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stickel</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boden</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Pipek</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <article-title>Towards Sociable Technologies: An Empirical Study on Designing Appropriation Infrastructures for 3D Printing</article-title>
          .
          <source>Designing Interactive Systems</source>
          , (
          <year>2014</year>
          ),
          <fpage>835</fpage>
          -
          <lpage>844</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Papert</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>Mindstorms: Children, computers and powerful ideas</article-title>
          .
          <source>New Ideas in Psychology 1</source>
          , (
          <year>1983</year>
          ),
          <fpage>87</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Vermeulen</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <article-title>Functional debug techniques for embedded systems</article-title>
          .
          <source>IEEE Design and Test of Computers 25</source>
          ,
          <issue>3</issue>
          (
          <year>2008</year>
          ),
          <fpage>208</fpage>
          -
          <lpage>215</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>