New version: phyphox 1.2.1

We have just released the new version 1.2.1, and once again, it is a much larger update than our modest version numbers might suggest.

Spectroscopy
While phyphox cannot split light into its wavelengths out of the box using built-in resources alone, phone spectrometer projects using an inexpensive diffraction grating or a piece of a CD or DVD have been around for a long time. These setups allow you to disperse light into a rainbow, but until now, you could mostly only take a photo with your phone to analyze later. Phyphox now provides the ability to linearize the image by converting it into relative luminance and then average it column- or row-wise to display the actual spectrum. If you use the phone on a tripod in a fixed setup, you can also select points, assign them to known wavelengths, and calibrate the spectrum.

LED Stroboscope
Also new is the flashlight stroboscope. Here, phyphox uses the phone’s flash LED to offer a stroboscope feature. You can select the frequency and duty cycle, and using an oscilloscope and a photodiode, you can easily verify that phyphox reaches the target frequency very reliably. Unfortunately, phyphox cannot verify exactly when the phone actually switches the LED, so it does not notice when it gets too fast. This means that above a certain frequency, individual “light events” are missed and the stroboscope becomes irregular. Depending on the device, this can happen at 20 Hz, 50 Hz, or 100 Hz. Fortunately, you can tell by looking at the light: if a sudden change occurs while slowly increasing the frequency (flickering or a sudden drop in brightness), you should be skeptical.

Tone Generator
Strictly speaking, the revised tone generator is just the most direct effect visible to the user. Behind the scenes, phyphox can now dynamically hide UI elements, supports various wave functions since the last version, and operates its audio engine in stereo. All of this has been packed into the tone generator: you can now configure up to three channels, switch from sine to square and sawtooth waveforms, and route individual channels to either the left or right speaker. Of course, we do not want to overwhelm learners with options, which is why the tone generator initially appears in its familiar “simple” mode. In the second tab, you can activate additional channels and advanced features.

New Languages
Most of you will naturally not see this, but we are nevertheless very proud that our volunteer translators have been hard at work again, translating phyphox into their respective native languages. Our latest additions are Gujarati, Korean, and Tamil. As a team accustomed to working with the Latin alphabet, seeing these (from our point of view) exotic scripts reminds us just how international phyphox has become.

Many Small Improvements
That was by no means everything. We have replaced the outdated Excel format xls with the newer xlsx, removing the 65,535-row limit. In the main menu, multiple experiment configurations can now be selected for deletion by pressing and holding them. In the settings, you can set default filenames for exports, screenshots, and saved states (including placeholders). Many experiments now feature a selection option when clearing data, allowing you to keep calibration values or settings. The entire Bluetooth engine on Android has been rewritten from scratch, as has the support for MQTT. Many new modules and functions are now available for those who create custom experiment configurations.

The full list of changes and improvements can be found at https://phyphox.org/docs/reference/version-history/1.2.1/.

New Documentation and Tests
And for those who know phyphox really well, the biggest change of all should stand out in that changelog link: we have launched a new technical documentation at https://phyphox.org/docs. Why is this the biggest update? Because this documentation is more than just updated text. Here, we utilized AI in a way that indisputably improves projects without introducing new issues. The entire legacy documentation, the codebase of both apps (Android and iOS), a collection of hundreds of experiment configurations created over the years, and weeks of proofreading and decision-making in response to AI queries have led to a sharp, machine-readable definition of the phyphox file format (and, incidentally, the REST API). The new documentation is a hybrid of explanatory guides and automatically generated information derived from these machine-readable formats.

This not only means that it is now much clearer what happens when creating an experiment configuration, but also that it can be tested automatically much more easily. Using this sharp definition, automated tests were fed for Android, iOS, and the experiment editor—finding and resolving over 100 differences between the two app versions alone. In the process, phyphox has (finally) gained a proper testing system that checks app functionality via code snippets (all analysis modules), UI tests in emulators (menus, control elements, languages, and the interfaces of all experiments), and ultimately seven representative physical devices (testing Bluetooth, audio, and sensors).

The beta phase was significantly shorter than usual this time, yet this is likely the most thoroughly verified version of phyphox to date.

As always, we hope you enjoy the new features and look forward to your feedback and suggestions.

Version 1.1.3: Network interface

We have just released a new version with quite a few improvements and fixes. But most importantly, phyphox now has a new network interface. At the moment you will only notice (at the very bottom of the main menu) that it allows you to collect some data about your sensors, which you can submit to us as we try to build a sensor database.

However, some experiments using the network interface as well as its documentation and editor support will follow soon.

Changelog

Changes on Android and iOS

  • New network interface allowing to send and/or receive data to/from network services.
  • New sensor db experiment, that allows you to contribute information about your device to our new (upcoming) sensor database.
  • Highlight nearest BLE devices if multiple with same name are present.
  • Use common time reference for multiple sensors, improving their synchronization.
  • Location services (i.e. GPS) now use a database to translate elevation above the reference geoid and the WGS84 ellipsoid directly in phyphox and giving both values. This also fixes getting ellipsoid instead of geoid data on Android 10 devices.

Changes on Android

  • Notify user if location service is not enabled when trying to scan for BLE devices.
  • Fix attribute clash of phyphox and the web editor.
  • Fix remote access problem on Android 4 devices.
  • Improve title display for long titles
  • Code maintenance under the hood (thanks to “TacoTheDank”)

Changes on iOS

  • Fix wrong values if picking data points from logarithmic plots
  • Fix applause meter losing scores
  • Use advertised name of BLE devices instead of the local name buffered by iOS (for example fixing problems with Owon multimeters)
  • Update BLE scan results, so changes in signal strength can be seen
  • Fix analysis logic: Run analysis if input data has been changed by previous analysis run
  • Fix some analysis crashes due to invalid integers
  • Include EduRoom SDK (eduroom.de)
  • Accept old “out” attribute for audio inputs to fix compatibility issues with older experiments

File format version 1.8

  • Elements to define network interface
  • autoConnect function to allow connection to BLE devices without scanning
  • New formatting options for info elements: bold, italic, align and size
  • New option to ignore sensor availability

Version 1.1.2: Phyphox je od sada dostupan i na srpskom jeziku

We have just released another update with some bugfixes, some improvements (bright mode for remote access) and a Serbian translation thanks to Marina Dorocki. You can find more details in the changelog below.

Changelog

Changes on Android and iOS

  • Serbian translation
  • Remote access stores settings (font size, layout) until the end of the browser session
  • Remote access now has a bright mode (should help on low-contrast projectors)
  • Fix error in distance calculation of location/GPS experiment. (Introduced in 1.1.0, please check any distance data generated in 1.1.0 or 1.1.1)
  • Add 1/min to acceleration spectrum and magnetic spectrum to directly get RPM from engines

Changes on Android

  • Save scroll position of experiment list after entering an experiment or adding/removing items

Changes on iOS

  • Add gap between value and unit in value view elements to avoid confusing units
  • Show optional dialogs and hints (save experiment locally, press arrow to start, etc.) after showing the Bluetooth scan dialog instead of not showing them at all
  • Fix separators in experiment layouts

Version 1.1.1 with bugfixes

We heave just released version 1.1.1 with some important bugfixes. Please, if you still find any errors in phyphox, let us know via email (staacks@physik.rwth-aachen.de), via our forums or via the tracker on github.

Changelog

Changes on Android

  • Offer additional apps when exporting (using a view-intent in addition to the share-intent)
  • Fix crash in data picker

Changes on iOS

  • Fix: Elevator experiment not working due to an error in the new formula parser
  • Fix: Crash of color plot (mostly when starting the sonar experiment)
  • Fix: Color map not showing if any z value is infinite (encountered in magnetic spectrum)
  • Fix: Crash when picking data points in graph with history (i.e. in the sonar experiment)
  • Fix: Crash in reduce module for fewer y than x data points
  • Fixes for iOS 13: Crash when opening experiments and design of tab bar

The big update has arrived: phyphox 1.1.0

Finally, after much more time than anticipated, the big update has been released: Version 1.1.0

This one includes interactive graphs (zooming, picking points, measuring differences between points), new graph types (multiple data sets, bar charts, color plots), experiment transfer via QR codes and an extremely versatile Bluetooth Low Energy interface.

We could write entire articles on each of these and there are so many more improvements and small details… Well, here is a video with a quick overview of the big ones.

If this is not yet enough for you, here is the full changelog:

Changelog

Changes on Android and iOS

  • Phyphox is licenced under the GNU General Public Licence from this version onwards
  • Bluetooth Low Energy support
  • Bluetooth Experiments included: Generic heart rate sensor, generic HID mouse, PocketLab One, PocketLab Voyager, Sensirion Smart Humigadget, Texas Instruments SensorTag CC1350/CC2650
  • Interactive graphs (zooming, picking points, linear fit)
  • New experiment: Applause meter
  • Multi-line plots
  • Bar charts
  • Color plots (used in spectrum experiments)
  • Open experiments from zip files or QR codes
  • Raw sensor experiments now feature a multi-line version
  • New languages: Chinese (simplified script), French, Vietnamese
  • Acoustic stopwatch has a new “many” tab , which allows measuring of an unlimited number of events, giving each interval and calculating the rate (Hz or bpm) and average interval of all events
  • Improvements to make the sonar more reliable
  • Performance optimizations for several experiments
  • Distance from start info for GPS-Experiment
  • Inclination experiment now features several different reference systems
  • Removed the libraries jquery and flot from the remote interface, which now uses chart.js instead
  • Remote interface now starts with a font-size recommended by the browser and allows changing the font size
  • Picking data points in the remote interface
  • The remote interface allows to show a single graph filling the full screen
  • Remote interface now communicates through a queue to avoid missed requests by the single-threaded webserver on the phone
  • Introduced a default color palette, which is used for coloring multiple graphs and can be referenced to by using names (red, blue, etc.) instead of RGB-values
  • Experiment configurations can be loaded directly from BLE devices
  • New device info report from menu on main screen
  • Add color to special categories (saved states and simple custom experiments)
  • Allow external experiments to define icon and category colors
  • Allow renaming of saved states
  • Use experiment title as default file name when exporting data, saved states or screenshots
  • Show state title in experiment info
  • Add hint to start button and add logic to hint bubbles, so they only show up until the user has used the specific function a few times
  • Fix: Wrong scaling of data in Doppler experiment due to outlying points
  • Fix: Consider available precision in remote interface to avoid retrieving the same value multiple times
  • Improve magnetic ruler for longer measurements
  • Fix inelastic collision experiment only working after pressing “reset”
  • Disable export and explain it to the user if an experiment configuration does not define an export

Changes on Android

  • Fix calculation of GPS height above geoid (MSL) if non-GPS satellite systems (GLONASs) are used
  • Vertical accuracy in GPS data if supported by some Android 8+ devices
  • Support temperature and humidity sensors
  • Support vendor-specific sensors by guessing their function by name
  • Improved performance by using native code for some operations
  • Improved Fourier transform performance by using the FFTW library
  • Allow screen rotation during measurement (now consistent with iOS)
  • Prevent adding identical experiments multiple times
  • Add notice when no address for the remote access is available
  • GPS now also uses network data by default and offers to force GPS only in the menu
  • Fix: Crash on malformed icon data
  • Fix: Sort categories case-insensitive
  • Fix loading experiments from URLs without query strings
  • Fix: Result response from webserver used broken JSON format.
  • Limit state title length

Changes on iOS

  • Complete rewrite of experiment parser. Much faster and much more stable when loading external experiments with errors.
  • Buffer rewritten. This should fix previous crashes in long-term measurements due to a race condition when accessing the buffers.
  • Respect save area guides to avoid drawing the UI in areas used by system buttons or the notch (iPhone X and similar)
  • Fix: Missing parts of a translation fall back to English defaults
  • Fix: Pick experiment language according to app language and avoid using unreleased languages already present in the experiment definition files
  • Fix: Re-saving states crashes the app
  • Fix: Power function fails for negative exponents

File format (version 1.7)

  • New graph types and multiple graphs
  • New Bluetooth Low Energy definitions
  • New “formula” analysis module
  • New “reduce” analysis module
  • New “map” analysis module
  • New attribute to enable analysis optimization (only re-run modules if their inputs have changed)
  • Label and unit can (and should) be separated for graphs to allow giving the right unit when reading a single data point
  • Colors can be names instead of RGB hex values
  • Value and info elements may now be colored
  • Temperature and humidity sensor types

Version 1.0.16: Japanese translation

Thanks to Wakana Okita and Keisuke Takashima phyphox now speaks Japanese. More information about our voluntary translators can be found on our languages page.

Changelog

Changes on Android and iOS

  • Japanese translation.

Changes on Android

  • Fix: The experiment “light” was not available if the list of preferred languages in Android did not support any language supported by phyphox.

Version 1.0.14: Portuguese translation

While we are still working to finalize version 1.1.0, we just published 1.0.14 with another translation: Portuguese. Check out languages page for more information.

Actually, this update has been released on Android more than a week ago and should just be a quick language update on iOS as well. Unfortunately, Apple has rejected the update as they decided that the experiment "roll" might damage the phone. So we had to remove this experiment and resubmit the app. Therefore, the update got delayed.

Changelog

Changes on Android and iOS

  • Portuguese translation.

Changes on iOS

  • Fix flickering of audio scope.

Update 17.11.2018

There was a little error when compiling the new translations that introduced unfinished translations to the iOS version, which should not yet have been released (Turkish and Chinese to be specific). We have uploaded another version (1.0.15) for iOS, which should fix this as soon as it has passed the Apple review process.

Version 1.0.13: Italian and Greek translation

With version 1.0.13 we have another minor translation update introducing Italian and Greek, created by Giovanni Organtini and Κωστής Χαλκιαδάκης (Costis Chalkiadakis). If you would like to help to translate phyphox into your language as well, check out our languages page for more information.

Actually, this update has been released on Android more than a week ago and should just be a quick language update on iOS as well. Unfortunately, Apple has rejected the update as they decided that the experiment "roll" might damage the phone. So we had to remove this experiment and resubmit the app. Therefore, the update got delayed.

Changelog

Changes on Android and iOS

  • Italian translation.
  • Greek translation.

Changes on iOS

  • Experiment "Roll" deactivated by Apple’s request.

Version 1.0.12: Dutch and Russian translation

Version 1.0.12 again brings new translations, Dutch and Russian, done by Ivo Janssens (with support from Evelien Urkens and Andreas Van den Bergh) and Alexander Nedilko, respectively. If you would like to help to translate phyphox into your language as well, check out our languages page for more information.

Also note, that we will happily share worksheets in any language. Since we can only provide the website in English and German, only those worksheets will be found directly in the experiment data base (like a fantastic new worksheet on pressure by Holger Jessen-Thiesen), but we will share any material in other languages on our languages page (like the first Dutch worksheet by Dirk Janssen). For more material we can also add a dedicated page for a specific language or add a link to an external collection.

Changelog

Changes on Android and iOS

  • Dutch translation.
  • Russian translation.
  • Inelastic collision experiment hides invalid intervals.
  • Translations are now also applied to units.

Changes on Android

  • Fix lines connecting to first point when loading a previously saved state.

Changes on iOS

  • Fix crash when value element has empty map tag.

Version 1.0.11: Czech and Polish translations for phyphox

With version 1.0.11 we introduce the first translations of phyphox, which are Czech and Polish, done by Karel Havlíček and Tomasz Greczyło respectively. If you would like to help to translate phyphox into your language as well, check out our languages page for more information.

Changelog

Changes on Android and iOS

  • Czech translation.
  • Polish translation.
  • Introduced a new “language” entry to the info menu on the main screen.
  • Fix: Flickering in motion stopwatch.

Changes on Android

  • Update to file format 1.6 and support audio sample rate output. (Which has been introduced as a hotfix to iOS previously.)