High RPM digital tachometer data logging

Hi peeps!

I'm looking at trying to build a tachometer for small DC motors that is also capable of measuring a motors torque. The idea is to sends the time via USB serial that a flywheel with a known inertia breaks a light gate (twice per revolution for balance).

I will use my PC to record the micros() times and using MATLAB I can calculate the angular velocity with high fidelity and thus the angular acceleration and the torque (since inertia will be known).

My question is based on the data logging. I want to measure motors with fairly high RPM (think 80,000 no load RPM or so) and the micros() returns a 32 bit variable. 80,000/60 * 2 * 32 = ~85,300 bits/ second. Thats getting pretty dang close to the 115200 max baud rate of the serial link.

I also want to run a small I2C 7seg display to display some data every half second or so (test time remaining and current KRPM)

So I'm throwing the idea out there for comment; please lemme know if you see anything that may cause a problem with this!

Is this a feasible way to do this?
Will there be a baud rate issue?
Is there a better way of doing this?
I could probably do something like only send every 2nd, 3rd, etc value but I would rather have the data as complete as possible.
Maybe I could compress/encode the data and reinterpret it in MATLAB?
Send back a delta in the micros() and not use a 32bit value?

Cheers!

Rhino_Aus:
Thats getting pretty dang close to the 115200 max baud rate of the serial link.

115200 is not the max baud of the serial link .It's just the Arduino Serial Monitor that can't do high speeds.
An Uno or Mega should work fine at 500,000 baud or even 1,000,000 baud. And a Leonardo can work much faster than that.

You might run into a problem with the latency in the USB system - if so try sending several readings in a block (maybe 64 bytes, or close to that) rather than one reading at a time

...R