Loginskip to content

Tool release - NXTLogger v. 1.0 beta

nxtasy/
personal/
development/
projects/
news/
NXT Repository/Utilities/

I have uploaded an installer executable (notice this is a large 54Mb file due to LabView 8.2 run-time engine) which installs ‘NXTLogger’. This application, whose window is shown above, allows you to do simple data logging from the NXT to the PC (running Windows). To work with it, you must connect your NXT and your PC via Bluetooth from the NXT menus (i.e. with the NXT being the Master, and the PC being the Slave). It records data obtained from a program running on the NXT. The program can be quite simple, like the one below:

In the program I’ve simply recorded timer value. It is VERY important to set the Send BT Message to ‘Number’ instead of the default ‘Text’. When running this program, I recorded 200 seconds with 3 milisecond intervals between samples, i.e. 330 Hz.

A somewhat more elaborate (and useful) program would record also some sensor value, like the raw data from the sound sensor:

Implementing your own datalogging should be a trivial extension of these two examples.

What is the advantage over other datalogging techniques? Brian Davis has published some well documented data-logging MyBlocks which utilize the NXT filesystem. This method, however, suffers from three problems:
(1) The amount of data which it can store is limited due to the small FLASH on the NXT. This is especially painful since the file access block writes numbers as text and not binary files (so does NXTLogger, but on the PC hard drive…)
(2) It has unpredictable delays of tens of milliseconds when the NXT buffers fill up and it performs FLASH write operation
(3) It uses excessively the FLASH, which personally I hate writing/erasing without real reason… I know it should be OK for a million cycles, but why get there?

The biggest advantage of FLASH based logging, is that you don’t need an active Bluetooth connection to a PC nearby.

A user manual is in the works, but needs your comments and questions so I know what problems to address. I’ve opened a discussion topic in our forums here for this purpose.