When the OpenICE team recently had an opportunity to begin exploration with Edison we weren’t sure what to expect. Maker platforms like BeagleBone Black and Raspberry Pi have set lofty expectations of ease-of-use for a new platform. Edison met our expectations and did so in a remarkably small form factor that significantly narrows the gap between lab experiment and product design. Within a few hours we were up and running our Java software with a variety of libraries compiled for x86 Linux. A few hours after that we had connected a number of medical devices, with interfaces ranging from RS-232 to Bluetooth EDR, to OpenICE using the Intel Edison as an adapter.
(Jump ahead to configure OpenICE on Intel Edison)
David Hunt has performed some interesting benchmark tests comparing Intel Edison performance with BeagleBone Black and Raspberry Pi. Initial indications are that the Edison is an outstanding performer among the set of remarkably small general purpose computers. The Edison won’t replace your laptop anytime soon but it does have WiFi and Bluetooth aboard; making it almost shocking that the latest BeagleBone Black and Raspberry Pi do not. Empirical measurements of the power consumption of Edison are still hard to come by so we did some measurements on our own. For reference we also measured consumption under similar load for a BeagleBone Black Rev-C. The comparison is apples to oranges for a variety of reasons, however, the results were dramatic enough to warrant sharing. The Edison sipped power even with the WiFi radio continuously active. With a maximum observed draw of 176 mA the unit we tested never exceeded 1 Watt of power consumption. The implications for battery life will be remarkable. The current measurement results convinced us to also conduct an empirical “real world” run-down test of the Edison on battery power. The results are below.
We measured current drawn by BeagleBone Black and Edison in 100 samples over the course of 20 seconds in three scenarios. First we conducted a baseline test merely connected to each device with an ssh session. Next we downloaded a large file from the internet with wget. And last we ran an OpenICE software simulator of a multiparameter phsyiological monitor. One would expect the Edison to be at a power consumption disadvantage using wireless connectivity but that was definitely not the case. In every scenario the Edison performed the task with facility and drawing a fraction of the power of the BeagleBone Black.
** NOTE:100 samples in 20 seconds, bar represents mean with whiskers at min and max
To test the Edison battery life, we attached it to the modular battery block from SparkFun. The block provides power to the Edison from a small, 400mAh single cell LiPo battery. The Edison was setup using the detailed instructions below. During the test, the Edison was running an OpenICE simulated multiparameter patient monitor Device-Adapter. The simulated patient monitor sent simulated real-time vital signs data and waveforms to the lab’s OpenICE network via WiFi. For those following along at home, enter
root@edison:~# ./OpenICE-0.6.3/bin/OpenICE -app ICE_Device_Interface -device Multiparameter -domain 15 &.
The Edison was also running a script to log power levels and timestamps. The Edison Poky image comes with a neat command line utility called
battery-voltage which outputs the following:
root@edison:~# battery-voltage Battery Voltage = 4200 mV Battery level = 100%
The following bash script was used to log the battery info and a time stamp every 10 seconds producing a CSV with the format
Battery Voltage = 4200 mV,Battery level = 100%,Wed Jul 22 16:11:50 UTC 2015.
sed was used to clean the csv for easy graphing.
1 #!/bin/bash 2 while true 3 do 4 v=$(battery-voltage | tr "\n" ",") 5 d=$(date) 6 echo $v$d >> powerTest.log 7 sleep 10 8 done
The Edison - with it’s x86 architecture, WiFi, 400mAh battery, Linux file system, logging script and OpenICE simulated patient monitor - ran for 3:45:14 before battery exhaustion.
This test shows huge promise for the platform. It is impressive that the relatively small battery (it’s small enough to hide in the watch cases above) still provides 3.75 hours of power to the system running a full patient monitor simulation via WiFi. Using a beefier battery and configuring a more conservative software setup, the battery figures could be extended dramatically - not to mention Intel’s potential future optimization of the young Edison platform. Platforms like Edison demonstrate a bright future not only for wearable and pervasive sensing technologies but also demonstrate the ease with which Medical Device Manufacturers can (and should) adopt next-generation sensor data emission to help create a robust IoT data ecosystem around each patient to improve safety and outcomes.
The primary landing page for Intel Edison can be found here.
Installing the latest Yocto Linux Image using a Mac
Access the Edison console
screen /dev/tty.usbserial-NNNNNNNN 115200
Change device name, change password, and connect wifi
configure_edison --setupon the console to launch an interactive setup. Follow the prompts to set a password, hostname, WiFi SSID and password.
Installing the latest Java JRE
As the Edison houses a full Atom processor any standard JRE for x86 Linux can be used. We used the latest from Oracle. We downloaded locally to our mac then used secure copy to move the file to the edison. The previous interactive setup revealed the IP assigned the edison by DHCP - be sure to use it in the following command.
scp ~/Downloads/jre-8u51-linux-i586.tar.gz firstname.lastname@example.org:
For convenience we extracted the JRE to /usr/local, set JAVA_HOME, and linked the java executable to /usr/local/bin
mkdir -p /usr/local cd /usr/local tar xzf ~/jre-8u51-linux-i586.tar.gz export JAVA_HOME=/usr/local/jre1.8.0_51 mkdir -p /usr/local/bin cd /usr/local/bin ln -s $JAVA_HOME/bin/java
Installing OpenICE software
The current version of OpenICE is 1.0.0; we downloaded the zipped version of the release to the Edison board with wget
We extracted the OpenICE software and ran a software simulator as follows.
unzip OpenICE-1.0.0.zip cd OpenICE-1.0.0 chmod a+x bin/OpenICE bin/OpenICE -app ICE_Device_Interface -device Multiparameter -domain 15
Connecting RS-232 devices
Run the OpenICE software specifying the correct device type and serial-over-USB port. We tested with the Capnostream20 device.
bin/OpenICE -app ICE_Device_Interface -device Capnostream20 -domain 15 -address ttyUSB0
Connecting Bluetooth devices
Basic instructions from Intel can be found here. Unfortunately, it appears that this pairing process has to be repeated each time the device is restarted.
rfkill unblock bluetooth
devices(check to see if the device you are attempting to connect was previously paired, if so remove)
remove <device id>(in case the device had been previously discovered)
pair <device id>
trust <device id>(trust this device for future connections)
rfcomm bind /dev/rfcomm0 <device id>will set up a serial port through which the bluetooth device can be accessed.
Launch an OpenICE Device Interface
bin/OpenICE -app ICE_Device_Interface -device Nonin -domain 15 -address rfcomm0
Edison is a promising platform we’re excited develop on and use with OpenICE. To learn more about OpenICE, check out our intro docs.