Open modular hardware and software kit for creations of remote experiments accessible from PC and mobile devices

The goal of this paper is to introduce open modular hardware and software system “iSES Remote Lab SDK” (iSES – internet School Experimental Studio) designed for easy creation of real remotely controlled laboratories (RCL) that are accessible from PC, tablets and mobile phones. Open modular system “iSES Remote Lab SDK” consists of approx. 20 freely distributable JavaScript objects in a commented source code. Widgets are highly configurable and provide many well documented options and allow to build a complex measurement and control interface with data and video transfer. Open modular system “iSES Remote Lab SDK” can communicate with different measurement platforms (ISES, Arduino are ready; CMA CoachLab, Vernier etc. are tested), and also common universal measurement devices with a COM or USB port, further universal rotation and linear motion stepper motors, etc.). We have built 18 remote experiments up to now, that are freely offered. Any user may have an access to the RCL on PC and mobile devices (iPad, smart phone, etc.) as well. Even non-programmers can build up a simple RCL and publish it in 15 minutes on the Internet! System “iSES Remote Lab SDK“ has obtained the GOLC Online Laboratory Award 2016 in the category Remote Controlled Lab.


I. INTRODUCTION
Firstly, we discuss very briefly why only a few open remote labs are available on the Internet nowadays.In this paper we describe a simple software and hardware kit "iSES Remote Lab SDK" [1] that might help to increase the number of real remote experiments.
Remote experiments naturally started appearing with the advent of internet around 1991.First papers on this topic can be found e.g. in [2], [3], [4] and many others.
These experiments required specialized software on both sides of their client-server architecture.Together with proliferation of web pages and applications, some of the remote experiments started utilizing web browsers as their client-side software.
First remote experiments of authors were created around 2001-2002 and they were based on Java runtime browser plugin [5].This was feasible for a long time, until security issues started reducing their usability and ultimately rendered JRE obsolete as web technology around 2013.
JavaScript took the dominant role of website interactivity and the experimental interfaces had to be completely reworked.
We can see the development of remote laboratories in review works.In 2004 there were approximately 60 remote laboratories, in 2006 the number rose to 120 and in 2011 there were already over 300 remote laboratories createdsee [6], [7].It is important to note that only 17 of 300 laboratories in 2011 fulfilled non-stop and public availability, with e-text support, and without password access.Another review study of 100 remote experiments can be found in [8].
The newest overview study of remote experiments appeared in 2016 where 61 remote laboratories were mentioned [9].Our project [10] already using "iSES Remote Lab SDK" is also mentioned there.Another notable project is RemLabNet [11] that also uses the same library.More projects in the overview are WebLab Deusto from Universidad de Deusto in Spain [12], Galileo Group Remote Laboratory [13], Physil@b [14], Mobile Remote Laboratory [15], Remote Experimentation Laboratory RExLAB [16], UNEDLabs [17] and many others.
Why are there so few remote experiments?Perhaps they are too expensive, require constant service and it is hard to create new ones.
Why are there so few remote experiments?After 2010 many of the existing remote experiments started to disappear.Universities started to actively block access with passwords and made their remote experiments accessible to their own students only.
Why are there so few remote experiments?We feel that too many institutions concentrate on RLMS (Remote Laboratory Management Systems), clouds [21]- [24], Massive Open Online Courses (MOOCs) and Massive Open Online Labs (MOOLs) [25] etc., but no newer remote experiments are created actually.
Most of the remote experiments are based on LabVIEW hardware, e.g.[26]- [29], or DIY (Do-It-Yourself) development platforms with microcontrollers.Recently we can see remote experiments based on FPGA development platform [30], [31].
It should be noted that LabVIEW platform does not yet offer a user-friendly solution for experiment control using web browserruntime engine has to be installed.Access from smart phones is also problematicsee [32].The LabVIEW Run-time Engine is necessary to view Remote Front Panels.You must use the plugin that corresponds with the version of the LabVIEW Run-Time Engine that you are using.Accessing Remote Front Panels requires the use of NPAPI plugins, which are not supported in any version of Google Chrome (Version 42 or higher), or in Microsoft Edge.
That's why we developed hardware and software kit "iSES Remote Lab SDK" that can be used for easy creation of both simple and complicated remote laboratories utilizing wide spectrum of measuring hardwareprofessional expensive equipment but also low-cost platforms like Arduino.Specifically, Arduino DIY (Do-It-Yourself) platform can effectively motivate many teachers and students in their effort to create their own remote experiments.

II. SIMPLE MODULAR HARDWARE AND SOFTWARE KIT
"ISES REMOTE LAB SDK" "iSES Remote Lab SDK" is an open modular hardware and software kit designed for easy creation of real remotely controlled laboratories (RCLs) that are accessible from PC, tablets and smart phones.This open development kit enables even beginners to build up their professional RCLs, ideal for education purposes.Developers may use any available common hardware.In order to share your experimental setup with the other Internet users, you only need to put our widget components together, which is also very easy.Remotely controlled labs based on iSES Remote Lab SDK provide the remote control and measurement with live video stream, easy experimental data record and download for further processing e.g. in MS Excel.
A. Hardware kit of "iSES Remote Lab SDK" Open modular system "iSES Remote Lab SDK" (Fig 1) can communicate with different measurement platforms (ISES [33]- [36] and Arduino [37] are ready; CMA CoachLab [38], Vernier [39] etc. are tested), and also with common universal measurement devices connected via a COM or USB port, e.g.multimeters like UT-61E, environmental multimeter DT-2232, power supply PSP 1405, ISES USB Geiger-Müller Counter, Ocean Optics USB 2000 series spectrometer, further universal rotation and linear motion stepper motors, or also school kits like the Phywe Franck-Hertz experiment.Hardware kit of "iSES Remote Lab SDK" with different measurement platforms

Hardware and software kit for remote labs with systems ISES
The system ISES has been developed at the Faculty of Mathematics and Physics, Charles University since 1985 (starting with 8-bit PCs with DOS up to contemporary ISES system for PCIe, USB, LAN Windows 10, [33]- [36]).
ISES has 20 modules and sensors for Physics, Chemistry and Biology for remote or local experiments: input modules/sensors (temperature, voltmeter, ammeter…), output modules/sensors (relay, repro, booster, etc.).For more details and technical parameters about ISES modules see [40].Furthermore, it is possible to use Vernier, Pasco, etc. analog sensors or your own device for which we can produce special plugins.
The system ISES Professional (Fig 2) features 6x analog input channels, 2x analog output channel for modules/sensors, 2x digital output channels with sampling frequency of 100 kHz, PCI or PCIe (PCI express) ADDA 12-bit card.Software "iSES Remote Lab SDK" can handle up to 4 ISES-PCI Professional units.
The newest system ISES-LAN belongs to IoT (Internet of Things), and includes a PC with Windows 10 operating system (not Arduino, Raspberry Pi etc.).ISES-LAN features 2x analog input, 1x analog output channel, 5x digital outputs/inputs with sampling frequency of 100 kHz.Software "iSES Remote Lab SDK" can handle up to 4 ISES-LAN units.

Arduino and "iSES Remote Lab SDK -lite version"
For simple remote experiment we need only an Arduino board and the freeware "iSES Remote Lab SDKlite version", (downloadable at the front page [10]).Lite version has only one analog input pin A0 (e.g. for temperature sensor) and one digital output pin D3 (e.g. for relay).Therefore, the freeware "iSES Remote Lab SDKlite version" allows measurement with 1 analog input, control for 1 digital output, data record and export (e.g. to MS Excel).

Arduino and "iSES Remote Lab SDK -full version"
Software "iSES Remote Lab SDKfull version" enables to create remote experiments with all platforms of Arduino (Uno, Due, Mega, Galileo, Leonardo, etc.).Full version has 15 analog input pins A0-A15 (e.g. for temperature sensor, light sensor, etc.) and 15 digital I/O pins D0-D15 (e.g. for relay or PWM for servo, etc.).Software "iSES Remote Lab SDKfull version" allows measurement with 15 analog inputs, control for 15 digital outputs, data record and export (e.g. to MS Excel), and more 15 widgets for advanced management and processing.
Arduino and Vernier Sensors with "iSES Remote Lab SDK" Arduino Shield for Vernier sensors and software "iSES Remote Lab SDK" enables to create remote experiments with all the Arduino platforms (Uno, Due, Mega, Galileo, Leonardo, etc.) and with analog or digital Vernier sensors.
Arduino Relay board and "iSES Remote Lab SDK" Special board with Arduino Duemilanove and 8 relays is useful for relay-control of a remote experiment.

Possible combinations of hardware platforms for your remote lab
The hardware and software kit "iSES Remote Lab SDK" enables to build a remote experiment not only with one hardware platform (ISES or Arduino or with common laboratory instruments (multimeters, power supplies, etc.), but the remote experiment can be assembled from any combination of heterogeneous data acquisition systems or devices.Therefore, anyone can create quite complicated remote experiment without limitations.
In order to build a remote experiment using more heterogeneous data acquisition devices, it would be useful to work e.g. with measurement systems like Vernier, Pasco, CMA Coach, etc. that have no output channel (analog or digital).These systems cannot provide controltype remote experiments that allow to change parameters of the experiment.Thus combinations like Vernier plus Arduino might satisfy anyone's requirements on both remote measurement of quantities (sensing) and the control of the remote experimental setup as well.

More remote experiments on one computer
The kit "iSES Remote Lab SDK" features the possibility to run more remote experiments simultaneously on one computer, which might offer a solution for only one public IP address.The number of remote experiments controlled by one computer depends on the PC performance, the speed of Internet connection, and it is determined by video stream transfer.

B. Software kit of "iSES Remote Lab SDK" Client-server design
Server-side part of a remote experiment consists of experimental hardware connected to a dedicated computer, which runs MeasureServer and optionally ImageServer application.MeasureServer provides twoway communication with the hardware, while ImageServer creates a video stream captured by the webcam.As the real-time data connection is realized by WebSocket technology, a web server must also be installed and running.In most of our experimental setups the web server runs on the same dedicated computer and serves both user interface in a form of webpage and relays the WebSocket connection to the MeasureServer.
Clients connect to the experiment through regular web browsers.Client browser has to support JavaScript and WebSocket technologies.These are however standard features of all modern browsers in most devices and are required by various other internet applications.In case the WebSocket protocol is not supported on client side, connection automatically switches to HTTP fallback so that measurement is still possible, although with degraded performance.

iSES Remote Lab SDK for user interface design
To build the actual user interface of the experiment we have prepared a library of approx.20 JavaScript components (widgets).This library is freely distributable under Creative Commons license and their source code is commented and freely modifiable by experienced programmers.
However, widgets are highly configurable and provide many thoroughly documented options, which are available by default and which allow even non-programmers to build a complex measuring and controlling interface with data and video transfer.Among built-in features, users have access to real-time spline interpolation, simple processing, export of data in various formats, graphical output and other sophisticated functionality.
User interface widgets are mostly based on JQuery and few other freely available JavaScript libraries that are distributed together with the SDK.By using these standard elements, the user interface visual design is also highly customizable.Web-page developers are able to alter the default design using standard methods (mostly CSS) to fit the webpage in which the interface is embedded.
Widgets cover all standard interface elements that are needed for design and control of the experiment.There are three basic groups: 1. VLButton, VLOptionSwitcher, VLSlotValueSelect, VLDatePicker and VLSlider are direct UI elements that are used for hardware control.
2. VLDataOutput, VLValueDisplay, VLChart and VLCamera are designed for display of experimental data.Either in the form of file export or visual chart.Before their display the data can be arbitrarily preprocessed.Great effort was put into the design of the preprocessing chains, so that all types of output share the same data settings.Therefore, the data acquisition method (e.g.realtime vs. recorded), data processing and data output method are configurable independently and can be freely changed during the development without affecting others.

3.
VLExperimentControl, VLExperimentSelect, VLConnetion and VLQueueDisplay are mostly invisible widgets that monitor and control the overall experiment state.

Example experiment interfaces
For non-experienced experiment designers we prepared the Collection of pre-built simple experiments such as remote analog record of one quantity (e.g.temperature), remote analog control of one channel (e.g.switch relay), remote control of digital inputs and outputs, time dependence of two or more quantities, XY dependence of input and output quantities, remote control of linear and stepper motors, remote data transfer from multimeters with COM port, data record, data export, WEB camera stream etc.The examples have the simplest possible code and mostly use default settings for all the components.These simple interfaces can be arbitrarily merged and combined, so even beginners are able to rapidly develop complex interfaces.They can immediately control their own remote experiments via mobile phone or tablet.
This set of examples can be accessed online on http://www.ises.info/index.php/en/systemises/collection.Detailed description can be found in [41]- [43].

C. Showcase of remote experiments
On web http://www.ises.info/index.php/en/laboratoryyou can find showcase of experiments based on "iSES Remote Lab SDK" (Table I) and also videos demonstrating how to work with them.Many experiments also contain an assignment, e-texts with the theory, and examples of data processing.From the log-record (see Table II) we can read that a student selected the measurement of the Volt-Ampere characteristics of a vacuum phototube (mode 0 at the beginning) and had to wait in a queue for 88 seconds till he took control of the experimental setup.He switched the mercury lamp on (Sv1) and after approx.5 min of playing and getting familiar with the interface he started data recording and systematically measured all the V-A characteristics for six available frequencies of light (Sf0-5).The student always used automatic measurement (Ma1) that takes approx.40 s.Finally, he stopped recording (Ps) and downloaded (Pd) his own data for further processingdetermination of the stopping-voltage values and the experimental value of Planck constant.The value in curly brackets {...} corresponds to the time duration since previous action in seconds.Parentheses (...) contain a parameter, e.g. an index of the selected filter.
Furthermore, log records include some basic classification of activities for statistical analysis (Ssettings, Mmeasurement, Padvanced processing of data).We managed to find 4-5 behavior patterns, e.g.students' decisions to download and process someone else's data records when he/she is completely lost or because of traffic jams just before deadline.We also detected some kind of students' disengagement and perhaps confusion by the user interface, which helps to develop new and better remote laboratories and to improve user interface as well.Details can be found in [44] - [46].

CONCLUSIONS
We have introduced the hardware and software kit "iSES Remote Lab SDK" suitable for easy creation of real remotely controlled experiments.The hardware kit can be combined of different measurement platforms (e.g.Arduino), common universal measuring devices, and professional control and measurement systems like ISES.The software kit "iSES Remote Lab SDK" consists of approx.20 freely distributable JavaScript widgets under the Creative Commons license (CC BY-NC-SA).This platform has recently received the 2016 GOLC Online Laboratory Award [47].
The freeware "iSES Remote Lab SDKlite version" and Arduino platforms can be exploited by beginners for a simple and good-quality remote experiment.We believe in increase of the number of real remotely controlled experiments.
We declare that anyone can freely use the direct links to our remote experiments accessible 365/7/24 at http://www.ises.info/index.php/en/laboratory,providing that we are informed about its usage so that we can have some feedback and data for the development, improvement, and scientific research purposes.Thank you for your collaboration and sharing your experience with iSES remote labs with us.

Figure 1 .
Figure 1.Hardware kit of "iSES Remote Lab SDK" with different measurement platforms

Figure 6 .
Figure 6.Remote experiment Background radiation monitoring with USB G-M Counter, http://kdt-26.karlov.mff.cuni.cz/ .Stepper motors, linear positioning, XY positioning Robust industrial linear or XY positioning device is suitable for non-stop operating remote experiments, featuring advanced settings of the velocity and acceleration (Fig 7).

Figure 7 .
Figure 7. Linear positioning, XY positioning with control board Stepper motor, RS-232 Water level control Remote Water Level Control (Fig 8) is a remote laboratory demonstration.It represents multi-user and very simple remote control for beginners.

Figure 8 .
Figure 8. Water Level Control Phywe Franck-Hertz experiment kit as a remote lab Traditional school aids like the Phywe Franck-Hertz experiment (Fig 9) can be simply transformed to a remote laboratory where a webcam view offers more details visible in a neon tube than what one can see with a naked eye.

TABLE II .
EXAMPLE OF A LOG RECORD DERIVED FROM THE LOG FILE OF THE REMOTE LABORATORY ON THE PHOTOELECTRIC EFFECT.