PLX-DAQ version 2 - now with 64 bit support! (and further new features)

Hi jl1cny,

might be I found the problem. I was able to recreate the same issue when using baud rates greater then 19200. Might be that it is just to fast for my PC / your PC and or Excel or the Arduino.

When using baud rate of 9600 or 19200 all my get / set commands were executed correctly.

I attached a test sketch and a special Excel sheet for you to try.

The sketch has 4 test cases:

  • read int from B4 to B8 and show in DirectDebug window
  • read string from C4 to C8 and show in DirectDebug window
  • read string from E4 to E8, store it, put a random string in E4 to E8 and put old value in D4 to D8 (read / change / switch)
  • read int from G4 to G8, increase by one, put result in G4 to G8 and put old value in F4 to F8 (read / increase / switch)

All is running well with baud up to 19200.

Please just give it try and in case it is running well try to reduce your baud rate.

And one more thing, when posting code please use the code tags for better readability.

[ code]put code here[/ code]

and remove blanks'

PLX-DAQ-TestingSketch.zip (139 KB)

Updates Updates Updates :smiley: :smiley:


=============================================================
This version is already outdated !! Link to always most recent version of PLX DAQ v2 here:
==> https://forum.arduino.cc/index.php?topic=437398.msg3013761#msg3013761 <==
=============================================================


What’s new in “version 2.8” aka Change log:

  • fixed an issue with the LABEL command. Columns that should labeled either TIME, TIMER or DATE where translated as well thus the column was not labeled with e.g., DATE but accidentally resolved to current system date (e.g., 21.02.2017)
  • fixed in issue with 32 bit Office versions and sleep function. Should be working on 64 bit and 32 bit versions again. Issue was reported by ankoo here
  • removed two deprecated commands from PLX DAQ v1 (RESET and CMD?) as they were of no use anymore
  • realigned source code for better readability, reused functions more often to reduce redundancy, commented out old checkbox calls from PLX DAQ v1 that are deprecated within commands
  • corrected a mistake in the comments of the default sketch (column naming)

Backlog for next version(s):

  • find a solution for Excel crashing when moving the window around while logging. Priority: low ; Workaround: don’t move window while logging ; Status: clueless…
  • solve get cell / set cell mix up reported by jl1cny here. Priority: high ; Workaround: none(!) ; Status: in contact with Sam directly via email to identify issue. Best guess is an issue in Arduino code where different variables point to the same addresses in RAM

Image-Link: http://www.freebie-base.de/Pics/PLX_DAQ_v2.8.png
(hosted on my server, no traffic hijack)

=============================================================
This version is already outdated !! Link to always most recent version of PLX DAQ v2 here:
==> https://forum.arduino.cc/index.php?topic=437398.msg3013761#msg3013761 <==
=============================================================

PLX-DAQ-v2-DefaultSketch.ino (2.2 KB)

PLX-DAQ-v2.8.zip (139 KB)

Hi NetDevil

Many thanks for the ClearRange command. This enables an easy workaround for the inability to read from other sheets. Just set a cell in Simple Data (that is not cleared) equal to the cell in the other sheet you want to read from.

SASv

P.S. In your version 2.8 update you state in Backlog for next version(s): "solve get cell / set cell mix up reported by jl1cny here. Priority: high ; Workaround: none(!)" But for those who can afford lower baud rates you already posted a workaround, it is to lower the baud rate. I checked it and it works. As I have occasional issues with 9600 baud, I will be using 4800.

Hi SASv, thanks for your feedback. Let's see:

SASv: This enables an easy workaround for the inability to read from other sheets. Just set a cell in Simple Data (that is not cleared) equal to the cell in the other sheet you want to read from.

Interesting issue. You are right, you can only read values from the current sheet and with having had only CLEARSHEET your reference cell was deleted as well. I will add a feature within the next version to read data from other sheets (by name) as well. Right now I am thinking of something like:

// ## NOTE: function not yet implemented in PLX DAQ v2
Serial.println("CELL,GET,FROMSHEET,MyConfigSheet,C,5");

SASv: P.S. In your version 2.8 update you state in Backlog for next version(s): "solve get cell / set cell mix up reported by jl1cny here. Priority: high ; Workaround: none(!)" But for those who can afford lower baud rates you already posted a workaround, it is to lower the baud rate. I checked it and it works. As I have occasional issues with 9600 baud, I will be using 4800.

Good to know it is working well for you. I still need to get to the bottom of the issue and was hoping the workaround would suite for more people. Could you post me the code you are having issue with at 9600 baud? Are you using more then 1 variable to store data?

Hi NetDevil

Apologies, I should have specified that I had occasional issues at 9600 baud with version 2.3. Version 2.8 has no issues at 9600 baud, and I will be switching to version 2.8.

A "CELL,GET,FROMSHEET,MyConfigSheet,C,5" command would be great.

Many thanks!

Hey there, I added the command to the programm and did some more research on the issues with the window crash and cell mix up. Unfortunately there is no update on those issues yet. Still pretty mysterious … Nevertheless I’ll reduce the priority as baud rates of around 9600 seem to work without any problems.


=============================================================
This version is already outdated !! Link to always most recent version of PLX DAQ v2 here:
==> https://forum.arduino.cc/index.php?topic=437398.msg3013761#msg3013761 <==
=============================================================


What’s new in “version 2.9” aka Change log:

  • Extended the CELL,GET command to read cells from other sheets as well.
    Syntax is Serial.println(“CELL,GET,FROMSHEET,SheetName,Column,Row”); ==> e.g., Serial.println(“CELL,GET,FROMSHEET,Simple Data,E,4”);

  • Updated the default sketch to include the new command

Backlog for next version(s):

  • find a solution for Excel crashing when moving the window around while logging. Priority: low ; Workaround: don’t move window while logging ; Status: clueless…
  • solve get cell / set cell mix up reported by jl1cny here. Priority: medium; Workaround: use baud rates smaller 25.000; Status: in contact with Sam directly via email to identify issue. Best guess is an issue in Arduino code with Serial.ParseInt not getting values out of buffer correctly
  • implement new feature CLEARDATA. Command CLEARSHEET does not clear labels. Thus CLEARDATA should clear all data starting cell A2 with all columns and all rows, CLEARSHEET should start at cell A1 with all columns and rows (thus including labels in row 1).

Guideline to migrate from old version to new one:

  • if you want to use the new version of PLX DAQ v2 but want to keep all your configured sheets in old Excel version of PLX DAQ try the following steps to copy all sheets, references and formulas easily to the new version:
  • Download new PLX DAQ Excel and open, open your Excel as well.
  • In your old Excel select first sheet (e.g., “Simple Data”), then hold shift key and select last sheet, right click firest sheet and select “Move or Copy”
  • select new PLX DAQ Excel in the dropdown, select “move to end”, select “Create a copy” and press OK.
  • It should copy all sheets to the new version. Might be Excel will rename “Simple Data” to “Simple Data (2)” because it is already in new version of PLX DAQ default workbook but you can easily remove the new sheet and rename yours back to “Simple Data”

Image-Link: http://www.freebie-base.de/Pics/PLX_DAQ_v2.9.png
(hosted on my server, no traffic hijack)

=============================================================
This version is already outdated !! Link to always most recent version of PLX DAQ v2 here:
==> https://forum.arduino.cc/index.php?topic=437398.msg3013761#msg3013761 <==
=============================================================

PLX-DAQ-v2.9.zip (144 KB)

PLX-DAQ-v2-DefaultSketch.ino (2.57 KB)

Possible Workaround to GET/SET Issues for High Baud Rates

I found that the GET, SET, and the new Serial.println(“CELL,GET,FROMSHEET,SheetName,Column,Row”);
commands can work well even at high baud rates if a small delay is added after serial interactions.
The following test code was tested in three computers (two Windows 7 and one Windows 10):

// First you must have NetDevil’s Excel file PLX-DAQ-v2.9.xlsm open and
// PLX-DAQ-v2.9 connected at the appropriate port with the desired baud rate.
// Download it from
// https://forum.arduino.cc/index.php?topic=437398.msg3160058#msg3160058
// Enter a numerical value in cell J3 of sheet Simple Data
// Enter a numerical value in cell F6 of sheet Further sheet
// Code for a second serial port (SoftSerial) has been added so that one serial port can
// be dedicated for output to Excel using NetDevil’s PLX-DAQ-v2.9 and the
// other serial port to the Arduino monitor
// A CP2102 cable does the job well for connecting the Arduino soft serial
// pins to a 2nd computer USB.

//PRELIMINARIES
#include <SoftwareSerial.h> // include the software serial port library

//Soft serial pins
#define rxPin 8 //connect to green wire of CP2102 or to orange wire of FTDI
#define txPin 7 //connect to white wire of CP2102 or to yellow wire of FTDI

// set up a new serial port
SoftwareSerial excelSerial = SoftwareSerial(rxPin, txPin);

unsigned long baudr = 38400; //Do not forget to change the baud rate in PLX-DAQ and in the serial monitor
byte tdelay = 3;

void setup(void) {
// define pin modes for tx, rx:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
// set baud rates for both ports
excelSerial.begin(baudr);
delay(tdelay);
Serial.begin(baudr);
delay(tdelay); //A workaround to the GET/SET issues is to put a small delay after serial interaction commands
// testing SET
excelSerial.println(“ClearRange,A,1,F,100”);
delay(tdelay);
float Ans = 42;
Serial.println(Ans);
delay(tdelay);
excelSerial.print(“CELL,SET,D3,”);
delay(tdelay);
excelSerial.println(Ans);
delay(tdelay);
// testing GET
Serial.print(F("Test print is "));
delay(tdelay); // To be safe I have added delays even where they are probably not needed
excelSerial.println(“CELL,GET,J3”);
delay(tdelay);
float NotAns = excelSerial.parseFloat();
delay(tdelay);
Serial.println(NotAns);
delay(tdelay);
// testing GET FROMSHEET (thanks NetDevil)
excelSerial.println(“CELL,GET,FROMSHEET,Further sheet,F,6”);
delay(tdelay);
float AnsAns = excelSerial.parseFloat();
delay(tdelay);
Serial.println(AnsAns);
delay(tdelay);
Serial.println(“DONE”);
}

void loop(void) {;}

//End of code

Update:
Further testing using a Windows 10 computer showed that this workaround is not effective 100% of the time at 115200 baud.
At 115200 baud & tdelay = 3, all printouts were correct about 85% of the time (34/40 trials).
At 115200 baud & tdelay = 10, all printouts were correct about 90% of the time (18/20 trials).
At 38400 baud & tdelay =10, 20 out of 20 trials were completely successful.
At 38400 baud & tdelay =3, 30 out of 30 trials were completely successful.

Previous Caution Removed:
I had previously cautioned that an inexpensive CP2102 cable from China failed to perform. I was incorrect, it was a loose wire.

UPDATED - Further Investigation on the delay GET/SET workaround - UPDATED

I investigated which delays are really needed in the above code using an Adafruit CP2102 cable. My starting point was 38400 baud with 3 msec delays, which had successes in 30 out of 30 previous trials. This time I used a Windows 8.1 computer.

  1. 20 new trials at 38400 baud with all delays active at 3 msec: 20 complete successes

As I had the number 53.90 in “SimpleData”!J3 and 42.42 in “Further sheet”!F6, the correct result is to print on the Arduino monitor:

42.00
Test print is 53.90
42.42
DONE

  1. 20 new trials at 38400 baud with all delays commented out: 0 complete successes

16 out of the 20 answers were:

42.00
Test print is 0.00
53.90
DONE

which pointed out that a delay may be necessary before the CELL,GET command

  1. 20 new trials at 38400 baud activating the delay before the CELL,GET,J3 command: 19 complete successes

The only failure was the first test

  1. 20 trials at 115200 baud with 3 msec delays before the CELL,GET and CELL,GET,FROMSHEET commands: 15 complete successes.

  2. 20 trials at 115200 baud with 10 msec delays before the CELL,GET and CELL,GET,FROMSHEET commands: only 5 complete successes!

The majority of failures printed

42.00
Test print is 53.00
942.42
DONE

  1. 10 trials at 115200 baud with 100 msec delays before the CELL,GET and CELL,GET,FROMSHEET commands: 0 complete successes!

Update: If tdelay is changed from byte to integer
Result: 10/10 complete successes

  1. 20 trials at 57600 baud with 3 msec delays before the CELL,GET and CELL,GET,FROMSHEET commands: 20 complete successes.

  2. 20 trials at 74880 baud with 3 msec delays before the CELL,GET and CELL,GET,FROMSHEET commands: 20 complete successes.

REVISED CONCLUSION
Placing delays before CELL,GET and CELL,GET,FROMSHEET commands seems to be completely effective for rates <= 74880 baud.

Delays of 3 msec were successful for the above test, but larger delays are needed if the Excel cells read from involve lengthy calculations.

I am not sure what is happening at 115200 baud. Perhaps it is an issue of the software serial port. Even though the current documentation states that it works up to 115200 baud, older documentation indicated issues at that rate.

Hi SASv,

thank you very very much for all the effort you put in researching the issue and the posts you've made !! I still owe you an email as well ;)

I will try to reproduce your results over the weekend and try to verify them. Also I might publish a demo sheet for general testing purposes thus everyone can participate. It seems to be coming down to a general Arduino issue and maybe not Excel / PLX DAQ which would be kind of hard to fix other then to use your mentioned delays.

Thanks again and I'll get back to you :)

sir, where should placed this zip code..i am not understand ?? please give steps to use it?

[u]On the delay workaround for the CELL, GET and CELL, GET,FROMSHEET commands for 115200 baud[/u]

As indicated in the earlier post, I started suspecting that the issue at 115200 baud may be related to the software serial port I have been using. The code below has removed it and gave the correct result (in cells J7-J11) in 18 out of 20 trials.

// 1. Open NetDevil's Excel file PLX-DAQ-v2.9.xlsm but do not connect PLX-DAQ
// (https://forum.arduino.cc/index.php?topic=437398.msg3160058#msg3160058)
// Enter a numerical value in cell J3 of sheet Simple Data
// Enter a numerical value in cell F6 of sheet Further sheet
// 2. Setting the port for the Arduino USB (in Tools), upload the sketch
// 3. With the Arduino serial monitor CLOSED connect PLX-DAQ at the same port
// 4. For repeating trials disconnect and reconnect PLX-DAQ

unsigned long baudr = 115200;  //Do not forget to change the baud rate in PLX-DAQ

int tdelay = 100;

void setup(void) {
  Serial.begin(baudr);
  Serial.println("ClearRange,A,1,F,100");
  Serial.println("ClearRange,J,7,J,11");
  delay(tdelay);
  delay(tdelay);
  // 1st test of CELL,SET
  float Ans = 42;
  delay(tdelay);
  Serial.print("CELL,SET,J7,"); 
  Serial.println(Ans);
  delay(tdelay);
  // 2nd test of CELL,SET
  Serial.print("CELL,SET,J8,"); 
  Serial.println(F("Test print is "));
  // Test of CELL,GET
  delay(tdelay);
  Serial.println("CELL,GET,J3");
  float NotAns = Serial.parseFloat();
  delay(tdelay);
  Serial.print("CELL,SET,J9,"); 
  Serial.println(NotAns);
  // Test of GET FROMSHEET (thanks NetDevil)
  delay(tdelay);
  Serial.println("CELL,GET,FROMSHEET,Further sheet,F,6");
  float AnsAns = Serial.parseFloat();
  delay(tdelay);
  Serial.print("CELL,SET,J10,"); 
  Serial.println(AnsAns);
  // Final printout
  delay(tdelay);
  Serial.print("CELL,SET,J11,");
  Serial.println("DONE");
}

void loop(void) {;}

Testing results: delay = 0 : completely correct 0/10 delay =10 : completely correct 19/20 delay = 100: completely correct 18/20

CONCLUSIONS 1. Delays help but do not guarantee success at 115200 2. Failures do not seem to be an issue with the previously used software serial port

Hi SASv,

I tried to reproduce your findings but somehow I wasn’t successful … I used one and two flushs before and after each Serial.parseInt(); and also delays before and after Serial.parseInt(); But still I got mix-ups even at 30.000 baud.

Attached you can find a ZIP file which contains a sketch and an Excel sheet. In this Excel sheet there are 4 test case scenarios and the sketch will cover those scenarios. In the sketch you can set whether you want to use one or two flushs before or after Serial.parseInt(); as well as if you want to use a delay before and after Serial.parseInt(); and which amount if milliseconds it should wait.

May I ask you to try to verify your experiences with it? In the end, only 100% accuracy is acceptable. That’s why I appreciate you running like 20 tries of the same text case and get 18 of 20 or so. This shows that there is no 100% accuracy yet and I have to work on improving the program.

As I am a bit short on time lately I will have to cover all the other open issues some time soon.

Greetings

PLX-DAQ-Cellvalue-Manipulator-Test-v4.zip (139 KB)

=============================================================
This version is already outdated !! Link to always most recent version of PLX DAQ v2 here:
==> https://forum.arduino.cc/index.php?topic=437398.msg3013761#msg3013761 <==
=============================================================

Anyways I created a new version today and even created a Beginner Guide for people to get a better understanding of how PLX DAQ v2 works and how they can start using it. It also lists all commands that are available for Arduino thus even the more experienced users might benefit from that guide :slight_smile:



What’s new in “Version 2.10” aka Change log:

  • I wrote a 9 pages long Beginners Guide to PLX DAQ v2 for newbies to get started with the tool.

  • Extended the CELL,SET command to be able to set cells on other sheets as well (after CELL,GET with version 2.9 :wink: )
    Syntax is Serial.println(“CELL,SET,ONSHEET,SheetName,Column,Row,Value”); ==> e.g., Serial.println(“CELL,SET,ONSHEET,Simple Data,E,4,My Test String”);

  • Modified CLEARSHEET command. It will now clear data starting at row 1. So it will clear the whole sheet as its name suggests. To clear only the data I added a new command CLEARDATA. I think the names are less ambiguous now :wink:

  • Updated the default sketch to include the new commands

Backlog for next version(s):

  • find a solution for Excel crashing when moving the window around while logging. Priority: low ; Workaround: don’t move window while logging ; Status: clueless…
  • solve get cell / set cell mix up reported by jl1cny here. Priority: medium; Workaround: use baud rates smaller 25.000; Status: in contact with Sam SASv directly via email to identify issue. Best guess is an issue in Arduino code with Serial.ParseInt not getting values out of buffer correctly
  • Double check if both issues above existed in PLX DAQ v1 as well. In case yes => we are screwed

Image-Link: http://www.freebie-base.de/Pics/PLX_DAQ_v2.10.png
(hosted on my server, no traffic hijack)

=============================================================
This version is already outdated !! Link to always most recent version of PLX DAQ v2 here:
==> https://forum.arduino.cc/index.php?topic=437398.msg3013761#msg3013761 <==
=============================================================

Beginners Guide to PLX DAQ v2.doc (168 KB)

PLX-DAQ-v2.10.zip (284 KB)

PLX-DAQ-v2-DefaultSketch.ino (2.97 KB)

Hi NetDevil

The PLX-DAQ-Cellvalue-Manipulator-Test-v4 is impressive. And unfortunately, what had worked best in my tests, putting delays before GET and SET commands, did not work. (I had also tried flushes previously with mixed results, worse than adding the delays). So, I hope your much more capable hands will come up with a solution. CORRECTION: See post below

And thanks for the new SET command.

Hi again NetDevil

I spoke too soon. It seems the more involved the test the longer the delays needed before GET and SET commands.

I used your test with the flags set:

bool useFlushPriorToRead = 0;
bool useDoubleFlushPriorToRead = 0;
bool useFlushAfterRead = 0;
bool useDoubleFlushAfterRead = 0;

bool useDelayPriorToRead = 0;
int delayPriorToRead = 500;
bool useDelayAfterRead = 0;
int delayAfterRead = 1000;
int tGETSET = 500; //place before every GET and SET

In other words, I replaced the test delays and flushes with a large delay before every GET and SET command (what had worked in my tests).

Here are the results:

38400 baud: 100% success for all tests (if I understood tests 03 and 04 correctly). 57600 baud: 100% success for all tests 74880 baud: mostly correct but no longer 100%

Increasing the delays to 1000 did not help at 74880 baud, but the slower scroll rate helped me verify continual success at 57600 baud.

In my own program I had failure of a SET command at 9600 baud (it did not show up in the raw data logger). It required a 500 msec delay (200 did not work) in the line above it to work.

UPDATE: Further testing showed that placing a 30 msec delay before each of the 8 GETs and SETs of the test gave continual success at 38500 and 57600 baud. However, even increasing the delays to 10000 msec did not make the test continually successful at 74880 baud.

Finally, another clue to the puzzle might be what I observed in a program I am developing. The code involves 9600 baud communication and has several GETs and SETs in the infinite loop. After several iterations there is a final GET and SET (the infinite loop "ends" with a very long delay). The last SET failed until I increased the delay before it to 500 msec. At that time some of the loop GETs and SETs had 100 msec delays. However, when I decreased them to 3 msec, the final SET again failed. To return to success I had to increase its delay to 800 msec. So there seems to be a cummulative effect from prior GETs and SETs.

FURTHER UPDATE: Increasing the stop bits to 2 (Serial.begin(baudRate,SERIAL_8N2); ) might help a bit. It is no solution, but it seems to increase the frequency of correct results.

Hi SASv,

thanks once more for the intensive testing you have done :) I implemented your suggestion into the cellvalue manipulator (500ms delay for every GET and SET) and it did indeed do the trick for higher baud rates (I had some successful test runs with 60.000 baud :) ).

I am still kind of clueless why it is working this way though. Having a delay before GET/SET shouldn't hamper the read later on .... I mean, why pause, then send a GET, then read directly and it is ok? I would understand if we need a delay between the GET and the read to get the buffer free. Or use a flush on Arduino side or Excel side before the read / send ... crazy ....

Its sad to see such large delays are needed since they really slow down the overall performance. However using "only" standard DATA,Value1,Value2,Value3 commands never produced any issues even at highest baud rates so far and I guess thats the most important part. I will add a note to my Beginners Guide to be careful with CELL,GET and CELL,SET and using at least some delays prio to it (between 100 ms and 500 ms) thus everyone should at least be aware of the issue. I need to update that guide anyways to format chapter headings and include a table of contents.

That adding up of needed delays based on the number of prio GETs/SETs is crazy and confusing as well. One could write a bachelor thesis I guess in order to figure out what the exact needed value for your final GET/SET must be based on how many prior GETs/SETs were used with which delay :D

You definitely earned yourself some Karma points (at least that is all I can offer right now over the internet :) )

I might try some times querying the checkbox values to see if it is the same behavior (well I guess it will be).

One more thing I wanted to ask you about: when posting code please use the code tags for better readability. It helps a lot especially with the long code statements ;)

[ code]put code here[/ code]

and remove blanks

Greetings!

P.S.: I will try to give you an answer to your email within the next days as well! I promise.

Hi NetDevil:

I will corroborate your statement "However using "only" standard DATA,Value1,Value2,Value3 commands never produced any issues even at highest baud rates so far and I guess thats the most important part." Also the ClearRange command has never failed me. And a lot of programs do not require high baud rates. Furthermore, in most cases 500 ms delays are overkill. I run successfully your test with delays as low as 30 ms at 57600 baud. My recommendation to users is to start with a small delay, test it, and increase it only if it proves unsuccessful. I also recommend increasing the stop bits to 2 (Serial.begin(baudRate,SERIAL_8N2); ).

The class I am designing has benefited tremendously from PLX-DAQ version 2. I am very grateful to you.

P.S. And thanks for the information about code tags. I will be using them from now on :) .

hey, thank you for all the work, I will test it later for my project

Hey guys. Well it’s been a while - nearly 2 months! But there is a new version available now! I did some groundwork and tried to tidy up a lot of code but in the end I’m just half done … that’s why I thought I might release the updates I already have and keep the rest for later :wink: And well there are quite a few new features!



What’s new in “Version 2.11” aka Change log:

  • Extended DATA command by the parameter AUTOSCROLL_XY. Autoscroll will automatically scroll your Excel sheet along with each new row of data which is read and posted. XY can be replaced by any number (e.g., 20) to control how many additional lines should be shown above as well during scrolling.
    Please note: AUTOSCROLL feature is available only in Office 2013 and newer. In older versions the command will be ignored by PLX DAQ.
  • Added a new function: GetRandom(min,max). It basically just returns a random number between min and max. Very useful if you need a random number for Arduino’s randomSeed() to be initialized
  • Added several features to the direct debug window. The size can now be increased or decreased (to a certain extend), content can be cleared and you can decide what you want to log: incoming data, outgoing data, system data. Also a time stamp can be added if wanted.
  • Added a default line break after all data send to the Arduino. Thus no more delays are necessary before or after get/set calls. In order to read incoming data one should use either Serial.readStringUntil(10); or Serial.readStringUntil(10).toInt(); or Serial.readStringUntil(10).toFloat(); from now on
  • Optimized the way Excel processes multiple incoming lines of data for better performance
  • There are some new parameters which can be changed on the (hidden) settings sheet in Excel. Those “Expert Configs” should be handled with care. They are about the buffer sizes for your COM port. In case you decide to spam massive amount of data to Excel and increase the baud rate you might experience data loss. Try increasing the buffer sizes then.
  • Added a “PowerDemos” directory with some nice (at least I think so) demos. First demo is a moving self updating graph visualizing data from the Arduino.
  • Updated the Beginners Guide to reflect all new commands - and optimized the formatting as well
  • Updated the default sketch to include the new commands

Backlog for next version(s):

  • find a solution for Excel crashing when moving the window around while logging. Priority: low ; Workaround: don’t move window while logging ; Status: clueless…
  • Double check if issue above existed in PLX DAQ v1 as well. In case yes => we are screwed
  • Rework API calls and general COM port communication handling for better stability. Very promising example to be found here. Works with up to 2.000.000 baud

Guideline to migrate from old version to new one ==> see Beginners Guide attached

Image-Link: http://www.freebie-base.de/Pics/PLX_DAQ_v2.11.png
(hosted on my server, no traffic hijack)

PLX-DAQ-v2.11.zip (502 KB)

PLX-DAQ-v2-PowerDemos-v01.zip (193 KB)

Beginners Guide to PLX DAQ v2 (rev1).doc (188 KB)

__Old-Versions-changelog.doc (44.5 KB)

PLX-DAQ-v2-DefaultSketch.ino (3.94 KB)

@NetDevil

Thanks a lot for the PLX_DAQ updates, it's working like a charm. You'll probably be able to tell I'm a newbie by the nature of my question, but where in the demo code exactly does it get the data for Date, Time, Timer, and milli? I'm trying to modify your demo to print temperature, however I get this:

http://imgur.com/a/yD78e

I modified the code a bit but left pretty much everything intact. https://pastebin.com/dNMuHbvQ