Over the last few months there has been work behind the scenes on SmartPhysicsLab, an online portal to support physics practicals and a community working to innovate in that space. Inspired by Pietro Cicuta and Giovanni Organtini, Frédéric Bouquet, Danny Caballero, Martín Monteiro, Michael Schatz, and the phyphox team joined the editorial board.

The platform wants to encourage a spirit of hands-on experimentation, ideally with affordable approaches. Some of the experiences might be appropriate even in the current context of social distancing and home teaching, despite the project pursues a broader, long-term vision. The remit of the initiative, for now, extends from the final years of high school to the first few years of a science, engineering or physics focused degree.

Anyone is welcome to explore the public website,, and follow the twitter feed  @smartphysicslab. As an instructor, you are encouraged to sign up to the community by filling out the “Get Involved” form there. The materials already on the site are intended as examples, to stimulate the community to share practical experiments that they have found successful.

The initiative is not currently funded, and is being run on a voluntary basis. You are free to use, modify, translate in other languages and redistribute the material under the Creative Commons Attribution 4.0 International License (CC BY 4.0). We’d like over time to support multiple languages, and if you are willing to translate existing material that is very welcome.

Arduino Library

📢 Welcome “phyphox BLE”, a library for easily setting up Arduino or ESP32 experiments in phyphox. Check it out:

Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

Version 1.1.6: White Noise and Dual Tone Generator

Version 1.1.6 is rolling out with a white noise and dual tone generator plus many cute little improvements.


Changes on Android and iOS

  • Audio spectrum now allows generating white noise.
  • Tone generator supports dual tone generation.
  • When leaving an experiment that ran for more than 10 seconds, phyphox shows a confirmation dialog.
  • Improved stability of start detection on sonar (especially for iOS).
  • New “config” endpoint in the REST API (remote access) to allow reading buffer, input and export configuration.
  • Background slightly darker (the increasing number of apps with dark-mode make our old colors look “washed out”).
  • Improved units for slopes (i.e. m/s²/s becomes m/s³ and m/s² / rad/s² becomes m).
  • Fix: Quotation marks in value element mapping break remote access.

Changes on Android

  • Direct config transmission via Bluetooth now also accepts plain xml.
  • Set manifest attribute to allow unencrypted http.
  • Fix broken screenshot for interactive/fullscreen graphs.
  • Fix crash if time output of location input is not used.
  • Fix crash for graph axes with precision 0 or 1 on Samsung S6 due to Java bug
  • Allow using vendor-specific pressure sensor if detected by name.
  • Prevent infinite loop in periodicity analysis module.
  • Fix: Graph forgets zoom state after screen off / app switch / scroll to far tab.
  • Fix: Cannot subscribe to characteristic on Chrome OS.
  • Fix: Edit field does not respond to update from other user inputs.
  • Make static buffers properly unwritable to prevent unexpected behavior by writing from modules with mixed outputs and to allow initializing them from external sources like Bluetooth.
  • Fix crash if finished network request is reported to not visible button.
  • Fix crash if models use 2D sensor data.

Changes on iOS

  • Prevent duplicate additions to the experiment collection
  • Share queue among data input of sensors, BLE, GPS and the analysis process to avoid receiving input data during the execution of an analysis seqeuence.
  • Major changes in analysis cycle logic to be closer to Android version: Analysis is run periodically regardless of sensor input, there is a run before start, “onUserInput” is used as documented, input clear is done before writing the output.
  • Fix: Access error when opening configuration from “files” app.
  • Fix: No output on abs channel for 1D sensors.
  • Fix: Scrollable tab bar on iOS13.
  • Fix: Crash if audio permission is denied.
  • Disable refresh rate limit for value view elements for more fluent feedback.

File format update to version 1.10

  • Audio output now supports parametric tone and white noise generation.
  • New analysis modules: interpolate, loess and sort.
  • New functions in formula node: min, max and heaviside.
  • New attributes to preset timed run parameters.
  • New attribute “cycles” for every analysis module, which determines in which runs the module is used.
  • New attribute to send blocks of network connection service “http/post” to switch between JSON arrays and JSON numbers.
  • New response conversion function “none” for network connections, which is now the default.
  • New graph attribute unitYperX to explicitly set a unit for the slope (i.e. y/x).
  • Optimization attribute removed. (This was added very little advantage but a lot of confusion.)
  • Transfer of experiment configurations now supports requesting the transfer from a second characteristic (especially useful if you are using an Arduino library that does not support reacting to subscriptions).