Introduction: Linkit One - Live Data Monitored in Excel and Displayed Using a Dashboard
There are lots of ways to collect data from prototyping platforms like the Linkit One many of which you will have to pay for. Probably the simplest is to use Excel for your collection and manipulation.
For example:
- Use the serial port and Windmill http://www.windmill.co.uk/excel/
But if you want free then try PLX-DAQ from Paralax inc. Once set up to serial print the data you need this excel adding takes the figures and drops them neatly into specified columns. Its a live feed to the column will only grow, unless you impliment VBA code to limit and refresh the column.
Once the data is in Excel then its up to you as to how its manipulated and displayed.
Step 1: Software and Board Set Up
Ive said in the previous guides that putting lots of detail into a section like this is a way of padding out, so I will try to keep it short. Especially as the manufacturers of the software required are less likely to miss out specifics about their apps.
Install the Linkit One board
The board comes with a 5 step plan that takes you to all the locations you need and here they are - all you have to do is follow the links and use the videos freely available of the suppliers web sites:
1. Install the Arduino IDE 1.5.6 or later (I recommend the 1.5.6) Arduino.cc/en/main/software
2. Register on MediaTek Labs – labs.mediatek.com/register
3. Download Linkit Developer’s Guide – labs.mediatek.com/Linkitguide
4. Install Linkit SDK for Arduino – labs.mediatek.com/linkitsdk
5. Select the Linkit One board (from Tools / Boards in the Arduino application)
Microsoft Excel - Sorry you will have to pay for this bit of software
Excel Addin Macro This is the important bit - Parallax - PLX-DAQ is an addin that uses serial communication to transfer the data as long as you can identify the com port this application will work. select the link above to download direct from the Parallax site.
Step 2: PLX-DAQ Features
this bit is taken straight from the Parallax website:
PLX-DAQ Features PLX-DAQ is a Parallax microcontroller data acquisition add-on tool for Microsoft Excel. Any of our microcontrollers connected to any sensor and the serial port of a PC can now send data directly into Excel. PLX-DAQ has the following features:
- Plot or graph data as it arrives in real-time using Microsoft Excel
- Record up to 26 columns of data
- Mark data with real-time (hh:mm:ss) or seconds since reset
- Read/Write any cell on a worksheet
- Read/Set any of 4 checkboxes on control the interface
- Example code for the BS2, SX (SX/B) and Propeller available
- Baud rates up to 128K
- Supports Com1-15
System Requirements
- Microsoft Windows 98
- Microsoft Office/Excel 2000 to 2003
- May not work with newer software; no longer supported
It does work with excel 2013 this is the version I am using
Step 3: PLX-DAQ Usage in Excel
Once you have downloaded the PLX zipped file - unpack it and it will create a directory on your desktop that contains an excel file.
- this is your starting point for data collection. Note the form that opens up Make sure you select the port your Linkit One board is connected to and that the Baud rate is set in line with your boards settings. DAQ will collect at baud rates 9600 to 128000. When you click on connect - if the board has been uploaded with a sketch your data will start to fill the first three columns
Step 4: Example Code
Variables required for the Linkit one Code
LABLE - Used to define the column headings.
Syntax: Serial.println (“LABEL, INT_COLUMN”);
DATE, TIME - Allows the serial port to send data to Excel.
Syntax: Serial.print (“DATE, TIME,”); Serial.println (val);
Note: Serial.print (“DATE, TIME,”) must be used before each Serial.println();
ROW, SET, k, - This allows control over the row that excel accepts data.
Syntax: Serial.println(ROW, SET, #);
The column control: Serial.print(“,”) ; Like CSV
Example code
The following bit of arduino code sends data via the serial connection and is collected by PLX-DAQ when you open the PLX spreadsheet and click connect.
Note there is no need to add any components just yet this code will run as it stands.
Its not very good - and only a start so that you can see what the basic functions of the variables do before I apply them to an application for an example of real data capture.
The code uses two values x and y - Y is fixed and X increments, when x is greater than y it is reset to 0 and the row count is also reset to stop the data set getting too large.
Keep in mind this is only an example to give an indicator as to how to apply the variables in your code.
int x = 0;
int row = 0;
int y=50;
void setup() {
Serial.begin(128000); // opens serial port, sets data rate to 128000 bps
Serial.println("CLEARDATA");
Serial.println("LABEL,Time,x,y"); }
void loop() {
Serial.print("DATA,TIME,"); Serial.print(x); Serial.print(","); Serial.println(y);
row++;
x++;
if (x > y) {
row=0;
x=0;
Serial.println("ROW,SET,2");
}
delay(100);
}
Step 5: Wire Up the Hardware
The hardware requirements for this instructable are
- Linkit One board
- Jumper wires
- 33 ohm resistors
- LEDs - low power
- Light dependant resistor (LDR)
- Variable resistor (pot)
- Bread Board (optional)
Take a look at the two photos and recreate the connections as shown, when wiring and LED place the resistor to between the board pin connection and the anode of the LED the Cathode goes to GND on the board

A Pot has three connections (Left / Middle / Right)
- Right - connect to the GND on the board
- Middle - Connect to the A2 pin (analogue connection) on the board
- Left - connect to the 5v board pin

Step 6: Actual Code to Generate Data
You can simply copy this code or download the file at the end
byte ledPin[] = {4,5,6,7,8,9,10,11,12};
float ledDelay(65);
float testLow=0;
int row = 0;
int direction=1;
int currentLED = 0;
unsigned long changeTime;
float potPin = A2;
void setup(){
pinMode(13, OUTPUT);
Serial.begin(9600); // opens serial port, sets data rate9600 bps
Serial.println("CLEARDATA"); //clears any residual data
Serial.println("LABEL,Time,limit,Pin,Light Level"); //set the headings for the data transfer to excel Serial.println("ROW,SET,2");
for (int x=0; x<9; x++){
pinMode(ledPin[x], OUTPUT);
}
changeTime = millis();
}
void loop(){
ledDelay = analogRead(potPin);
if ((millis()-changeTime)>ledDelay){
changeLED();
changeTime=millis();
}
}
void changeLED(){
for (int x=0; x<9; x++){
digitalWrite(ledPin[x],LOW);
}
digitalWrite(ledPin[currentLED], HIGH);
currentLED += direction;
if (currentLED ==8){
direction = -1;
}
if (currentLED ==0){
direction = 1;
}
if (ledDelay <=20) {
digitalWrite(13, HIGH);
testLow=0;
}
if (ledDelay >20) {
digitalWrite(13, LOW);
testLow=1;
}
Serial.print("DATA,TIME,");
Serial.print(testLow);
Serial.print(",");
Serial.print(currentLED);
Serial.print(",");
Serial.println(ledDelay);
row++;
if (row > 200) //set the excel data limit {
row=0;
Serial.println("ROW,SET,2");
}
delay(100);
}
Step 7: Excel Dashboard
dashboard can be a little tricky to edit so have a play, but only save once you are happy with the settings you want to use.
- Open the excel file containing the PLX-DAQ setup.
- The file in this instructable has three dials and a chart - all of which can be tailored to your needs
- Example - Select one of the dials
- Then select the Page Layout from the excel ribbon menu and then click on the selection pane
- This brings up a list of all the objects on the charts and dials. By selecting the required objects you can change settings, add calculations etc see image
- To change the needle position double click the needle then update the formula for the correct data locations.
- In my spreadsheet the data locations are on sheet 1 (they have to be held separately from the simple data sheet. Take a look at the structures and you should be able to adapt the file to your needs.
Step 8:
This section contains a video for the data Aquisition as well as the arduino file (although you can just copy and paste it from the text above) as well as the eddited spreadsheet with the Dashboard I created to show off the live readins from the circuit.

Participated in the
Epilog Contest VII
11 Comments
2 years ago
Hello Hukbmbear. Thanks for the very useful instructable. Got it all to work but wanted to put "⁰C" in the heading. I get ⁰ C but with a capital "A" before it. I googled it but can't find anything. Do you by chance know if it is possible? Thanks
Reply 2 years ago
If I understand correctly - in excel to put the O as a superscript double click in the cell that it is in - select the O then right click and format text - select superscript and accept, as you only highlighted the o it will be the only character changed. Hope this is what you where looking for
Reply 2 years ago
Got the dials to work too! Easier than I expected. Just had to modify links slightly. Did you create the images etc for the dials yourself? Neat demonstration example. Perhaps for school projects for students
Reply 2 years ago
Hello Hukbmbear. Thanks. I will try. I can also edit and add the ⁰ symbol after the monitoring has started. I thought there maybe a way to have it entered automatically.
Got graphs working easily but your dials did not load load correctly got an error missing files) however, I think I got the idea of how it works and will try to incorporate / Transfer it into mine. Thanks again! Very well made instructables. I Like your others too!
5 years ago
thank you,,, it have very match my project but the change of needle not response
Reply 5 years ago
Hi when this happens you need to check the mapping of the data coming in to the cell that provides the numbers to the needle position. If you right click the tabs and unhide any hidden sheets - there is one that has the data table in it - Its possible that your data may by slightly off and so would not work.
Before you start make a copy of your file.
6 years ago
Great job. Thank you for sharing...
Reply 6 years ago
Thanks glad you like the guide
7 years ago
Another great use of the linkit one. I was amazed to see that such a thing could be done with excel. Very well done :)
7 years ago
Fun way to monitor data. I didn't know that you could do this with Excel
Reply 7 years ago
thanks - yes you can do alot with excel - the PLX file is simply a bit of VBA within the spreadsheet that allows you to read the serial port data being printed by the board. So what ever you want to send from the Linkit One can be captured. You could write your own VBA, but the PLX file works great and gives you everything you could want.
Have fun with it