Version 1.0.7 (GPS, saving of experiment states, …)

While we are already working on the big stuff like zoomable graphs, we decided to release yet another minor update in-between with some interesting features.

Full Changelog

And again, the full changelog for those who want to know every little detail or those who don’t like videos…

Changes for both Android and iOS

  • Save or share and load experiment states including your recorded data – even across platforms.
  • GPS support.
  • Audio autocorrelation and spectrum show corresponding musical notes.
  • You can now pick between different number of samples in audio spectrum.
  • New experiments: Accelerometer and magnetometer spectrum.
  • Time period of audio scope is now selectable.
  • Improved algorithm for audio autocorrelation.
  • Audio amplitude can now be calibrated to give sound pressure level in dB.
  • Splash screen with university logo.
  • Show magnetometer accuracy.
  • Move clear function to the action bar as a button.
  • Minor improvements to TalkBack / VoiceOver by adding descriptions to unlabeled buttons.
  • Buffer for acoustic stopwatch and inelastic collision has been increased, which might help on slower phones.

Changes for Android

  • Fix crash on Android 7.1 and Android O when reading non-3D sensors (like pressure or light).
  • Fix crash when rotating while the description hint starts showing.
  • Fix crash on bad experiment icons in main menu.

Changes for iOS

  • Fix crash on consecutive Fourier transforms.
  • Code has been converted to Swift 3. Ideally, there should be no noticable change. Ideally.
  • Old, discontinued audio engine has been replaced.
  • Fix: VoiceOver stopped working when phyphox handled audio.
  • University logo added to credits dialog.

File format update to version 1.5

  • Allow initializing buffers using a list of values.
  • Add mapping of ranges to value element to show text instead of numbers.
  • Add accuracy channel to sensors (magnetometer only).
  • Allow for dynamic sleep times of analysis cycles.
  • New analysis modules: round and log.
  • Fix handling of start value in subrange module.
  • Fix on Android: FFT module now uses actual number of data points instead of just the buffer size.
  • Fix on iOS: Button elements could not use buffers as inputs.

The editor and Wiki entries will be updated over the next few hours.

Version 1.0.6 (New experiments, minor updates)

Again, this is not yet the big update announced a while ago. But there have been so many minor fixes, improvements and new ideas, that it’s time to publish another minor update. The sum turns out to be an update which is not so small after all, so let’s have a look at a few highlights…

New experiment: Inelastic collision

This amazing experiment has been suggested to me by Mirko Zeppmeisel, a physics teacher from Munich. It is based on the acoustic stopwatch and analyses the sound from a bouncing ball. From the timing of these collisions the experiment derives the initial height, the maximum height between the bounces and the ratio of energy preserved on each collision.

Timer experiments

Also suggested by Mirko Zeppmeisel, some more stopwatches have been added based on different sensor inputs. Besides the acoustic stopwatch already in phyphox, we now have a motion stopwatch (based on the accelerometer), an optical stopwatch (based on the light sensor) and a proximity stopwatch. Oh, by the way, the latter one uses the proximity sensor, which is also supported since this version.

Raw sensor experiments

The basic sensor experiments don’t have a rate limit any more and work at the maximum rate supported by your device. The downside might be, that these experiments hence have become more device specific and the amount of data might be heavy on slow phones, but many have asked for this and it might be worth a try. Also, these experiments now give the absolute value of the 3D data as well.



Resonance and string length

The oscillator experiments “spring” and “pendulum” have a new tab, which plots the amplitude vs. frequency. This way you can directly measure the resonance of a driven oscillator (there will be a video on this soon). Also, the pendulum experiment has yet another new page, which allows you to determine the length of the string of the pendulum. So, instead of calculating g for a given string, you can assume g = 9.81 m/s² and calculate the length.

Elevator with acceleration

The elevator experiment now shows the acceleration from the accelerometer along with the height and velocity from the barometer.



Full Changelog

The full changelog for those who want to know every little detail…

Changes for both Android and iOS

  • New experiment: Inelastic collision.
  • New timer experiments: Motion stopwatch, proximity stopwatch and optical stopwatch. The existing acoustic stopwatch has been moved to this section.
  • Support for the proximity sensor.
  • Raw sensor experiments now also give the absolute value of 3D data.
  • The info button at the top now opens a small menu with links to our FAQ, help and experiment collection.
  • Added resonance page to the experiments “spring” and “pendulum”.
  • The “pendulum” experiment now has a page, which allows estimating the length of the string.
  • Added a third view to the “sonar”, plotting the correlation against the raw time axis.
  • Performance improvements for “sonar” and “acoustic stopwatch” for slower devices.
  • The “elevator” experiment now also shows the acceleration using the accelerometer.
  • The remote interface starts in a new “narrow” layout, similar to a phone screen. You can still switch to the old full-screen layouts via the menu of the remote interface.
  • The rate limit for the raw data experiments has been removed, so they acquire data at the maximum rate allowed by your device.
  • Fix: Graph scaling not applied on remote interface.

Changes for Android

  • We now read the recording from the mic in smaller chunks to improve the timing of the analysis cycle.
  • Default margins removed from all view elements as these are now controlled by the new separator view module. (See file format changes below.)
  • Name the sensor which is not available when trying to open an experiment.
  • Fix: Crashes when experiments use string icons with less than three character.
  • Fix: Rare crash when showing hint tooltip.
  • Fix: Do not show save-locally dialog if the experiment was not loaded successfully. Trying to save in such cases led to a crash.
  • Fix: The optimization for the analysis assumes it can skip empty buffers as there is no data to be processed, resulting in problems, when a buffer is empty because it has been cleared intentionally. Instead we now keep track if a buffer has been touched.
  • Fix: When averaging, the first sensor value is returned immediately without averaging.
  • Fix: The edit box in the experiment “Magnetic ruler” resets to the default value.
  • Fix: Repeatable inputs were not mapped correctly if they were not used in the first period of repeatable inputs. This affected the rangefilter in a way, that it would not behave correctly if the second input should be filtered, but not the first one.

Changes for iOS

  • Audio recordings are buffered internally and only exposed to the analysis buffers just before an analysis cycle starts. This way, it is guaranteed, that the buffer will not be changed during the analysis process and you do not need to create a local copy. This makes it consistent with the behavior of the Android version.
  • Display a hyphen instead of “NaN”.
  • Added a default text when sharing a screenshot. This hopefully prevents some third-party apps from inserting the image file path as default text.
  • Fix: Range filter does not work correctly in cases in which the first value of the second input is filtered.
  • Fix: Remote access stops working after leaving the app and returning to the existing session.

File format update to version 1.4

  • New absolute output for all sensors, so you do not have to calculate it yourself in your analysis.
  • New separator view element. This allows to add margins or lines to group your views.
  • New analysis module: subrange. This simply returns the values within an index range. Much faster than using the rangefilter for this task.
  • The analysis modules “if” and “append” as well as the view “button” now allow a new input type. Besides “value” and “buffer”, you may now set them to “empty”, practically being a constant buffer of length zero.
  • Slightly change behavior for “if” module: If the output is flagged to be cleared before writing, this is only done if the condition for an input has been met. This means, that the output is not cleared if there was no input for a certain case and you can conditionally clear an output by assigning an input of type “empty” to a case.

Version 1.0.5 (minor improvements and fixes)

As I explained in the last update I am mostly working on the next major update and there will only be updates in-between to fix bugs. Well – this is one of those updates.

Changes for both Android and iOS

  • We now use the calibrated magnetometer by default and allow switching to the raw magnetometer from the menu if available on the device.
  • Added an explanation link to the sensor-not-available notification.
  • Acoustic stopwatch now supports multiple timers and allows for setting a minimum delay.
  • Sonar now features a reverse mode where you enter a distance and can determine the speed of sound.
  • Fix: Append-module now accepts value-type input.
  • Fix: Update fails when switching to raw data in remote experiment of the roll experiment (and possibly others).
  • Fix: Some spelling errors in the experiments.

Changes for Android

  • Fix: Very short audio loops failed.
  • Fix: Remote access failed when infinite numbers occur.
  • Fix: Crash on Samsung Galaxy S4 when repeatedly playing audio.

Changes for iOS

  • Fix: Run analysis even when not triggered by a sensor event to allow for self-modifying experiments like a gradually changing tone generator.
  • Fix: Possible crash in average module (race condition mostly triggered on iOS8).
  • Fix: Axis labels were not translated in the remote interface.
  • Fix: Crash in binning module when dx is set to zero.
  • Fix: Handle audio setup changes (plugging in a headset) more gracefully.

Version 1.0.4: Acoustic Stopwatch

So, here is the new update 1.0.4 with our new experiment: The acoustic stopwatch. Again, this is more a tool than a full experiment, but a very useful one. The watch starts counting when there is a noise above a (selectable) threshold and it will stop again on a second noise.

A simple usage case is a free fall experiment, in which you create the first noise when releasing a weight (for example by popping a balloon or hitting a mount) and the second sound is generated by the impact of the weight. Of course, there are some other improvements and bugfixes as well as an update to the file format (to make the acoustic stopwatch possible). You will find the full list at the end of this post.

Future plans

For now, it looks like this will be the last minor 1.0.x update and I will now start working on the next major step, which will be 1.1.0. Of course, if there are some major bugs or a nice new experiment, which can easily be added, there will be a 1.0.5 inbetween, but for now I will look at the two major changes: Better graphs (zooming, multi-data etc.) and a better workflow for custom experiments without transferring the files manually.

Unfortunately, I cannot tell when this will be ready. This depends on how much time I am able to invest and on how complex the new features are. Also, the graphs will require some testing before an official release – but I will share info on the progress.

Now for the changelog:

Main Changes

  • New experiment: Acoustic stopwatch
  • More options when exporting in CSV format: There now are variants with a comma as decimal point and the number format is now consistent across both platforms.
  • Grey out experiments that are unavailable
  • Add video links to the experiment menu as well (or any link marked as highlight)

Changes to the phyphox file format

  • New analysis module: if
  • New view element: button
  • New initializing attribute for buffers

Fixes for Android

  • Improved behavior when hiding keyboard
  • Fix possible crash when switching to different app
  • Update views in stopped state
  • Fix auto-orientation not respecting system setting
  • Fix opening phyphox:// URLs with parameters
  • Fix for the (half-official) Bluetooth support. Note, that this will changed and replaced by Bluetooth 4.0 / BLE in the future.
  • Apply size setting of value view element to the remote interface.

Fixes for iOS

  • Fix magnetometer calibration factor. (Note: We are using the uncalibrated magnetometer values, which may be way off from what you expect for small fields like the earth’s magnetic field, but which should be good for stronger field. However, we might switch to the calibrated one in the future to avoid confusion, but which might introduce other problems.)
  • Fix for not stripping trailing zeros if a fixed number of digits is defined for a value view element

Version 1.0.3 with new experiments

In this new update two new experiments have been added: Centrifugal acceleration and inclination. While the latter is just a tool to measure the inclination of a plane, centrifugal acceleration is a lot of fun while being amazingly simple. Just rotate your phone at a fixed radius r at different angular velocities ω to visualize the relation of the centrifugal acceleration a.

centrifugal

In other words: Just put your phone into a salad spinner or on a carrousel to show a = r·ω². (The picture shows an earlier version of the experiment using a salad spinner)

Besides that, 1.0.3 introduces some new analysis modules (the wiki will be updated in the next few hours) and addresses many bugs, especially two common crashes on iOS. Here is the full changelog:

Changes

  • New experiments: Centrifugal force and inclination
  • Simple view for raw sensors, just giving numbers
  • Improved descriptions and labels for several experiments
  • Better time axis calculation in elevator experiment
  • Updated experiment file format to 1.2: New modules for statistics and trigonometry. Also more control over value and graph view elements.

Fixes on iOS

  • Disappearing view elements after rotation or scrolling
  • Crash when starting web interface on iOS8
  • Crash when entering zeros in Doppler effect
  • Crash in autocorrelation module (experiments “Spring”, “Pendulum” and “Autocorrelation”)
  • Missing data points in remote interface (mostly elevator and roll)
  • Could not open external experiments on iOS8
  • Strip white-spaces from description

Fixes on Android

  • Fix wrong play-button animation after screen being turned off
  • Do not show the save-locally-dialog again after rotation
  • Show “-” instead of “NaN” when no data is available
  • Improved reliability of remote interface when doing partial data updates
  • Fix possible crash when switching apps while graph is visible
  • Fix crash when closing experiment without dismissing the info-tooltip

Version 1.0.2

We have just released version 1.0.2 which mostly adds some guides to alleviate some typical confusion for new users:

Changes

  • Hint to guide inexperienced users to the experiment info.
  • Ask if externally loaded experiment should be added to collection. (You can still do so later via the menu as before.)
  • Disable back swipe gesture to avoid involuntarily closing an experiment when swiping between tabs. (iOS only)
  • Limit min/max of allowed values in some experiments (phyphox file format has been updated for this)
  • Values entered in experiments are now only used for calculations after the user confirms the input (hitting the confirmation button on the virtual keyboard) or changes the focus away from the edit box. This behaviour now matches the one from the iOS version and prevents unnecessary recalculations while entering numbers. (Android only)

Fixes

  • Fix decimal values not being allowed. (iOS only)
  • Fix problematic recalculation when clearing buffer. (iOS only)
  • Handle flawed phyphox files more gracefully and report errors. This will be improved further in future updates. (iOS only)

Version 1.0.1 for iOS with several bugfixes

We have just releases version 1.0.1 with bug fixes for iOS (on Android version 1.0.0 remains the most recent version):

Fixes

  • Fix crashes on iPad when trying to export data or sharing a screenshot.
  • Fix rare crash in experiment most likely to occur when switching apps or displaying a dialog.
  • Fix remote interface being unable to reconnect after switching to a different experiment.

Minor changes

  • Added now mandatory explanation when requesting permission to access the microphone.
  • Internal code changes required for iOS 10 targets. These changes should not be visible, but since some libraries have been updated, there may still be some changes, that we did not anticipate.
  • If you find more errors, please tell us and bear with us. Especially, if the experiment editor or its results are not working as expected, just write an email to kuhlen@physik.rwth-aachen.de and I am happy to help your.

    Phyphox 1.0.0 is now available!

    This is it, the great kick-off. Today (Monday, 12th September 2016) phyphox has been released to the public. Go ahead and get it from Google’s Play Store or Apple’s App Store (for free, of course).

    Jetzt bei Google Play

    If you are not yet sure, what to do with it, have a look at our videos and the experiments in the Wiki. There are not yet that many videos, but from now on I will add more experiment videos about once a month. If you want to know about any new content or updates right away, you should follow us on your preferred social media platform:

    [Youtube], [Twitter], [Facebook]

    Of course, there is still a lot to do and this is just the start. Please let us know what you do with phyphox, tell us about any great ideas for new experiments and of course report bugs and missing features.

    Cheers to you all and have fun with phyphox!