In order to use Evolved Horizon™ to collect data from a thermocouple via an ARDUINO, the signal needs to be boosted using an amplifier such as the Adafruit MAX31855 breakout board, which is then connected to the digital i/o pins on the ARDUINO. This tutorial describes the whole process from hardware setup to data analyze.
Step 1 Hardware setup
This step requires a small amount of assembly, which will be described here. This amplifier only works with K-type thermocouples.
The Adafruit board comes with a 2-pin terminal block for connection to the thermocouple, and a pin header for connecting to the board. These need to be soldered together.
The thermocouple is then connected to the terminal block on the amplifier, observing the polarity marked on the board. The negative wire of a K-type thermocouple will be coloured red and will be magnetic. If you connect the wrong way around, the temperature recorded will be wrong, and you will see that it decreases as the junction gets warmer. A 0.01 μF capacitor should be added across the thermocouple leads if it will be used in electrically noisy environments.
Jumper leads are then connected from the pin header to the Arduino board. Ground and Vin are connected to corresponding pins on the Adafruit, the 3V tap is ignored, and DO, CS and CLK are connected to whichever pins have been assigned to these functions on the Arduino.
The system is now ready for Evolved Horizon™ to be run.
Step 2 Application start, Firmware and User preperations
Double-click on the Evolved Horizon shortcut to start the Booter. The Booter first checks booter updates, license, and Evolved Horizon updates, and then starts the actual application. The reminder of this step may be skipped if
a) you already have uploaded the Stardots Arduino firmware to a supported Arduino and
b) have an Evolved Horizon user that you want to use.
Click the Setup button on the launch screen, as seen below.
By clicking on Setup button you are presented to the Configuration & Information interface. If you wish, you may add a new user by clicking on the “+” button below the user table, as seen in the screenshot below.
To be able to use an Arduino for Evolved Horizon, you must upload a firmware to it. This tutorial describes the upload process, but there is a seperate, and more detailed tutorial on how to upload Stardots Firmware to an Arduino. A firmware is a piece of code that Stardots have written in C++ that provides the link between your computer and the hardware of the Arduino. The firmware is located in your /bin/resources/hardware/firmware folder under your Evolved Horizon installation folder and the application will auto-detect any new firmware available for upload. Please select your Arduiono model and use the newest firmware.
There are often many choices for buffer size. This size indicates the amount of data points your Arduiono may hold. The buffers are in compile-time, meaning that they are static, and must be choosen before uploading the firmware. Compile-time buffers are preferable to use in embedded systems due to various details that will not be discussed here. The buffer sizes are displayed in [length x width] notations. Length is the number of data-points per channel, and width is the number of channels. In this tutorial we choose an Arduino Zero, firmware [18.104.22.168], 300 x 12 buffer size (up to 300 datapoints and 12 channels) and let the application decide the USB-port.
Please plug your USB cable into your computer and to the programming port of the Arduino board. Remove all other USB cables (if any)! Press Upload.
Close the “Configuration & Information” interface by clicking the back-arrow or by closing the window. You are now ready to launch the application and define your experiment.
Step 3 Launch Evoled Horizon and configure Modules
At the launch screen, choose the user and press Launch. The only mode supported at this time is local. We are planning to support remote client/server to be able to remotely configure modules, run experiments and analyse the data. After the launch sequence is completed, you are presented with the Welcome Screen of the Client. Here you may enter Evolved Horizon four main interfaces: Console, Modules, I/O and Analysis. The Console is the interface were you may see detailed information from the server, run various commands or whole scripts. The Console will not be discussed in detail in this tutorial. The I/O interface is what runs the experiments, i.e., the real-time acquiring of the sensors. The Analysis interface includes a combined database viewer/editor/exporter as well as a visualizer and signal processing tool.
For now, lets turn our attention to the Modules, and display its interface by clicking on the icon. You are now presented with the configuration interface for all the various modules; an in-depth description of Modules is found in the manual found in the documentation section.
We start from the bottom of the I/O-modules by clicking on the Plots on the left side. Lets configure a Line Plot for the acquired thermocouple data. Press the + button to create a new Plot. Give the plot a suitable Id (it will be used later), and some x- and y-axis lables. Check the X-Axis Flow under Advanced settings. This setting will constantly update the limits of the x-axis and, hence, simulate a “flow”. However, this settings could be somewhat taxing on your hardware, if you do not have enough computer performance, uncheck this setting.
Lets now define a thermocouple channel by clicking Channels->New ->Sensor Chip -> ThermoCouple -> Adafruit 31855, as seen below. Choose a suitable Id and match the Data Port / DO, Chip Select Port / CS and Clock Port / CLK to those digital pins on the Arduino that you have connected your Adafruit to (see step 1 above). Couple the channel to the plot, i.e., configure where the channel shall plot its data, by selecting our line plot from the Plot setting under Sub modules. Click Create and see the channel table to verify that is correctly configured.
Now lets create a new device: our newly flashed Arduino Zero (or whatever device you may have). The interesting setting will be the USB port; it must match the port which your operating system has designated. There are various ways to discover the correct USB port of the Arduino:
- (Easiest). Open the console of the Evolved Horizon by clicking on the console button located in the lower left corner of every interface. Type
serialfor a list of devives connected to the computer.
- (Windows) Open or search for “device manager” or type
devmgmt.msc. Expand the “Ports” to see the list.
- (MAC/Linux) Evolved Horizon is currently not supported
After you have created the Arduino device module, verify that the device is properly connected by inspecting the status column of the deive list. It should read “Ready”. If not, please verify the USB-port and that you have successfully uploaded the firmware to it (as described in Step 2 above).
Now we have to define a Session module that essentially couples the device with the channels, in addition to defining the sample rate and sample length; see screenshot below for an example. Please note that a session requires exactly one device and 1-64 channels and are defined in the Sub Modules section.
We are almost finished. We need two more modules; a Database and an Assembly. Since we want to store all collected sensor data, we want to configure a database module (although this module is optional); lets create a binary, file-based database. Key settings here are, as always, the Id and the Database Root Folder. The actual database will reside in the <Database root folder>/<Id>/. Please choose folder located on a fast drive that you have access to, and that you have a backup strategy.
Finally, we are ready for the Assembly module; the final module in the I/O Modules tree. This module is what you run in the I/O interface. You want to give it a short describing Id and to couple it with a database (optionally) and 1-64 sessions.
It is now perhaps easier to understand the I/O module hierarchy. You may now define new experiments by resuing the previous defined modules, and by constructing new ones. The possibilites are virtaully endless.
Yay – a bit of scouffling, but we are now ready to start measuring the temperature! Return to the Welcome screen by clicking the Back button in the top-left corner or by closing the window.
Step 4 Start the I/O
Having defined a complete Assembly with at least one session, we may now start it by adding it to the I/O queue and verify that the Start button is enabled. If not, something is wrong, and the status may give you hint of what it is. Also, in the Console, additional error info may be given.
Great – You have now successfully conducted a thermocouple experiement! Its now easy to conduct more identical experiment (run them again), or change the existing one. For example you could:
- Add more thermocouple sensors (add more Channels and couple them with the Session)
- Adjust the rendering of data (e.g., add another Plot, histogram, and couple it with a Channel)
- Adjust the session time to 1 hour instead of 1 minute (go to the Session settings)
- Increase the sample rate (go to Session settings)
We would love to have your comments, feedback, questions and suggestions; please e-mail us: firstname.lastname@example.org
Step 5 (optional) Examine the result and export data
To see the data you just recorded is a piece of cake: just enter the Analysis interface, find and select the experiment just conducted and finally click on the Visualize Data button. Export the data by clicking on the second button from the left below the database table, Export database. It will bring out a Export to dialog where you may choose the folder and filename and filetype (Excel or .csv).
Advanced data-analysis will be in another tutorial.
You may skip the manual module creation process by downloading and running the thermocouple tutorial script; unzip the scriptfile into your users script folder, open the Evolved Horizon console and type
Thermocouple Tutorial and press enter. Done!