Description

Log and Stream Sensor Data

With SensorLog you can read out sensor data of your iPhone, iPad and Apple Watch.

The sensor data (csv or JSON format) can be saved to file, streamed via TCP/UDP, or send as HTTP GET/POST request.

iPhone und iPad Logging:

- Sensor data can be sampled with up to 100Hz (depending on the version of your iOS device and fore or background mode).

- Sensor data can be streamed in server or client mode supporting TCP and UDP protocol. Streaming is supported up to 100Hz depending on the network speed and the receiving client or server configuration.

- Via HTTP(S) GET/POST request sensor data can be sent in JSON (POST) or form-url encoded (GET and POST) format to a REST API. Up to 20Hz upload rate is supported depending on the network speed and receiving server configuration.


Apple Watch Logging:

- Logging Option 1: Logging duration up to 1 hour
Supports logging of all selectable sensor data with up to 50Hz in background. Higher sampling rates up to 100 Hz are possible by selecting less sensors. Streaming (only client modus, TCP) and HTTP requests are supported.

- Logging Option 2: Logging duration greater 1 hour
While in background only logging of accelerometer data with up to 50Hz is supported. In foreground logging of all sensors with up to 100Hz is supported. Streaming and HTTP requests are only supported in foreground.

- Streaming is supported up to 100Hz depending on the network speed, the receiving server configuration, and chosen logging option. A coupled iPhone with LAN/WAN access is required

- Via HTTP(S) GET/POST request sensor data can be sent in JSON (POST) or form-url encoded (GET and POST) format to a REST API. Up to 10Hz upload rate is supported depending on the network speed and receiving server.

The following data of the iOS framework (iPhone, iPad) is provided by SensorLog (depending on the device version):
- CLLocation: latitude, longitude, altitude, speed, course, verticalAccuracy, horizontalAccuracy, floor (please note: this is not GPS raw data!)
- CLHeading: heading.x, heading.y, heading.z, trueHeading, magneticHeading, headingAccuracy
- CMAccelerometer: acceleration.x, acceleration.y, acceleration.z
- CMGyroData: rotationRate.x, rotationRate.y, rotationRate.z
- CMMagnetometerData: raw magneticField.x, magneticField.z, magneticField.z
- CMDeviceMotion: yaw, roll, pitch, rotationRate, userAcceleration, attitudeReferenceFrame, quaternions, gravity, magneticField, heading, magneticField.accuracy
- AVAudioRecorder: peakPower, averagePower (decibels)
- Core ML Model output (supported type int, double, string, dictionary)
- CMMotionActivity: Activity, activity.startDate, activity.confidence
- CMPedometer: numberOfSteps, startDate, distance, endDate, pedometerAverageActivePace, pedometerCurrentPace, pedometerCurrentCadence,
floorsAscended, floorsDescended
- CMAltimeter: relativeAltitude, pressure
- logging of WIFI and network carrier IP addresses
- logging of the device orientation
- logging of battery level
- labelling of the logged data

On the Apple Watch SensorLog supports logging of the following data:
- CLLocation: latitude, longitude, altitude, speed, course, verticalAccuracy, horizontalAccuracy, floor
- CMAccelerometer: acceleration.x, acceleration.y, acceleration.z
- CMDeviceMotion: yaw, roll, pitch, rotationRate, userAcceleration, attitudeReferenceFrame, quaternions, gravity, magneticField, heading, magneticField.accuracy
- CMMotionActivity: Activity, activity.startDate, activity.confidence
- CMPedometer: numberOfSteps, startDate, distance, endDate, floorsAscended, floorsDescended
- CMAltimeter: relativeAltitude, pressure
- Battery information

Machine Learning:
SensorLog supports Core ML models created with Apple's Create ML app. Simply log data with SensorLog, train a model on the data in Create ML, load the exported model in SensorLog, and log its prediction with SensorLog. Supported Create ML models are: Activity Classifier, Tabular Regressor, and Tabular Classifier.

What’s New

Version 3.8

iPhone:
- now only sensor data charts are shown for those sensors selected to be logged
- added option to set minute logging rate
- added option to delete all log files at once
- added option to reset Pedometer data automatically at midnight
- added watch remote control to start / stop watch logging, data labelling (Watch has to be in reach of iPhone and SensorLog has to be running in foreground on the watch)
- added MLModelOutput chart
- added Magnetometer chart
- added logging timestamp for almost all sensors
- improved background handling
- added DeviceMotion heading data for logging
- bugfix: remove leading and trailing whitespaces from selected field separator

watch:
- added deviceID log feature
- added "fill missing data with previous data" this allows to reduce size of log files
- added option to delete all log files at once
- added option to reset Pedometer data automatically at midnight
- improved upload of files to iPhone (file is split into chunks for upload)
- added additional iPhone DeviceMotion data to watch UI
- added DeviceMotion heading data for logging
- added support for CMAttitudeReferenceFrame setting (necessary for DeviceMotion magnetic sensor data)

iOS 14.3 watchOS 7.2 required

Ratings and Reviews

4.5 out of 5
28 Ratings

28 Ratings

Npvw ,

Works out of the box

Worked as expected and very easily.
I cannot say yet if it is accurate but was able to log data to a file and email it without hassle.
I need to just make sense of what the state options mean? Bernd can you explain perhaps? 0-5?

Good and simple app.

Developer Response ,

Thanks for your feedback. With the state option ( or label in Version 2.3 ) you can tag the recorded sensor data. The state ( label ) information can be of benefit if you want to tag your data for later post processing as for instance if you want to use it for machine learning tasks. For example use state / label „1“ while walking and label „2“ while jumping. Later on you can easily identify the „jump“ and „walk“ data in your log by the label column.

Lumberton NJ ,

Output File Time Tags worthless

App measurement data collection is easy to initiate but limitations in the output measurement file time tags make the data useless for performing engineering analysis. I am using it to log time tagged earth magnetic field measurements. I tried to log the data at 100 hz but when I inspected the data file the time tags only have 1 decimal point of accuracy (0.1 sec) and there are multiple rows of data with the same time tag; thus when I collect data at say 100 hz, the data entries are not exactly 100 hz but some mismatch of approx 100 hz.

Any way I can force the output to be exactly the hz I want.

Also can you increase the time tag accuracy down to at least the hz you are collecting data at (e.g. If 100 hz data collection, then time tags accurate to 0.01 sec).

Without these fixes to you app, your app is worthless for engineers using it for engineering applications.

Developer Response ,

Hi Lumberton, please double check to correctly import the logged data. Depending on the program you use to read the log file you may have data conversion / transformation issues (for instance that may happen if you import the data in MS Excel without using the data import functionality and not defining the correct data types). For detailed information on the different sensor timestamps and therewith connected sampling rates please have a look at the explanations and links provided under the Configuration -> Info view of the app. Please feel free to contact me via email sensorlog@berndthomas.net. I would appreciate to help you via email.

Eroyee167 ,

Excellent App!

This is the only app I found, after hours of searching, that provides a reliable data stream of gps coordinates and other sensors to a custom url (rest endpoint). Bernd is very responsive to questions! Recommend this app to anyone seeking a way to stream data. Thank you Bernd!

App Privacy

The developer, Bernd Thomas, indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy.

Data Not Collected

The developer does not collect any data from this app.

Privacy practices may vary, for example, based on the features you use or your age. Learn More

Supports

  • Family Sharing

    With Family Sharing set up, up to six family members can use this app.

You May Also Like