Open-source project
fossasia/pslab-app avatar
fossasia/pslab-app

PSLab App: driving a pocket oscilloscope from a phone

PSLab App for Android, iOS, desktop and web https://play.google.com/store/apps/details?id=io.pslab

2,131 stars853 forksDartApache-2.0

At a glance

What is it?
A Flutter application that turns the PSLab open-hardware board into a multimeter, oscilloscope, logic analyzer and waveform generator over Bluetooth, published for six platforms by a FOSSASIA team, and midway through a rewrite whose release notes say very little.
Who is it for?
PSLab App is worth a look if you teach electronics and want a lab on a phone, or if you already own the board and want the Android or web build rather than a firmware project. It is not a general instrumentation app, since every instrument screen assumes the PSLab hardware is connected.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 9 days ago.
What is it written in?
Mainly Dart, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 28, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the PSLab board is, and why the app exists at all

The device comes first. PSLab is an open-hardware platform that combines several laboratory instruments into one portable board, and the README names them: an oscilloscope, a waveform generator, a frequency counter, programmable voltage and current sources, a logic analyzer and a data logger. That is the pitch of the hardware, and this repository is only the front end for it.

That distinction matters when you evaluate the software. Nothing here works as a standalone measurement tool. There is no simulated PSLab and no offline mode described in the README. Every instrument screen in the feature table depends on the board being connected, which is why the project ships for six platforms but assumes one peripheral.

The hardware is sold through the FOSSASIA Shop with more resellers listed on the PSLab website, so buying the device is a normal part of adopting the app. The app itself is free and the licence is Apache-2.0, which is a generous choice for a project that FOSSASIA also uses to teach students.

Six platforms from one Flutter codebase, with a Rust core in the middle

The download section lists Android, iOS, Windows, macOS, Linux and web. The repository layout explains how one codebase reaches six targets: there is a directory per platform, `android/`, `ios/`, `linux/`, `macos/`, `windows/` and `web/`, all sitting beside a shared `lib/`.

The primary language is Dart, but two entries in the tree are worth a second look. There is a `rust/` directory and a `flutter_rust_bridge.yaml` configuration file, which means parts of this application call into Rust rather than pure Dart. For a signal-processing and instrument-control app that is a sensible split: the numeric work benefits from Rust, while the interface stays in Flutter's widget tree.

The supporting directories show how seriously the testing is taken. `integration_test/`, `test_driver/`, `test_integration/` and `test/` are separate top-level directories rather than one nested structure, `l10n.yaml` covers localisation, `analysis_options.yaml` configures Dart's static analysis, and `devtools_options.yaml` sets up the DevTools extension. There is also a `.codacy.yaml`, which points at an automated code review service in the pipeline.

Reading the instrument table to find out what is finished

The features section is a table where every row is marked complete, and that is both the most useful and the least trustworthy part of the README. The instrument list covers the Oscilloscope for analog signals, the Multimeter for voltage, current, resistance and capacitance, the Logical Analyzer for capturing digital signals, the Wave Generator for arbitrary analog and digital output, and a programmable Power Source.

Then it goes further than the summary paragraph suggests. There is a Luxmeter for ambient light, a Barometer, an Accelerometer, a Gyrometer, a Compass, a Thermometer, and a Gas Sensor that detects NH3, NOx, alcohol, benzene, smoke and CO2. A Robotic Arm Controller drives four servo motors independently. An OLED Display screen pushes graphics, animations, GIFs and retro games to an external I²C display, and a Sound Meter uses the device microphone for ambient levels.

Two things are missing from all of that. The Home Screen shows device status and version, which is small but tells you the connection state is surfaced. And the roadmap at the top has one unchecked box: add wireless connectivity, currently under development. Every other item, device communication and core instruments, is checked. So the honest reading is that USB or wired Bluetooth works and wireless does not yet.

Release history says a Flutter rewrite is underway and the notes stay silent

This is the part worth slowing down on. The tagged releases are v4.0.1 from 2025-09-05, v3.2.17 and v3.2.16 both from 2025-04-11. The two 3.2.x notes say only bug fixes and improvements, which is as informative as it sounds.

The v4.0.1 note says more by saying less: Initial development release for flutter app. That single line tells you the 4.x line is the Flutter port, and that it was tagged as a development release rather than a replacement for the 3.x line. Anyone reading only the release list could easily conclude the current app is v4, and for a classroom deployment that conclusion would be premature.

The last push to the repository was on 2026-09-28, more than a year after the v4.0.1 tag, on a repository that is not archived. Work is clearly still landing. What is missing is release notes that describe it. The gap between the most recent tag and the most recent commit is where the interesting development lives, and the GitHub releases feed does not tell you what it is.

If you need to know what changed, the practical routes are the Weblate translation status badge, which shows what strings are actively changing, and the mailing list and Gitter channel the README points to.

The README hands installation and hardware to docs.pslab.io

There is no build-from-source walkthrough in this repository. The download section links to the PSLab Application documentation at docs.pslab.io for store listings and install guides, and separately to a development builds page for direct downloads, which is a hosted preview of a file hosted on a raw GitHub URL.

That split is reasonable, and it is also the practical limit of what the repository tells you. It does not document how to point a Flutter toolchain at the project, what the Rust core builds into, or how to flash firmware onto the board. If you want to run the app from source you are already past what the README covers and into the application documentation and the wider PSLab project.

The one development-oriented file in the tree that suggests how the build is wired is `flutter_rust_bridge.yaml`, alongside `rust_builder/` and a `scripts/` directory. Those names imply a code generation step between the Rust core and the Dart side, which is the usual shape for a bridge of that kind.

The community links are real and specific: a Gitter chat channel, a Google Group mailing list, and a FOSSASIA-branded badge set at the top of the README including one for the translation status. An open-hardware project that keeps a translation workflow running is a decent sign about how the team works.

Where this sits against a general-purpose oscilloscope app

The comparison people usually make is with a phone or tablet oscilloscope app that drives a cheap USB or Bluetooth scope dongle. Those apps tend to bundle their own protocol for a specific piece of hardware and support one or two of them, sometimes badly. PSLab App inverts that: it supports one board extremely thoroughly, with instruments you would not find in a generic dongle app at all.

The gas sensor, the robotic arm controller and the I²C OLED display are the clearest examples. None of those are features of the connection protocol, they are features of this particular board, and they are the reason someone would choose this app rather than a generic one. The cost is lock-in: nothing here helps you with a Siglent oscilloscope.

The second comparison is with the firmware side of the PSLab project itself. If you have the board and want to script measurements from Python or control it headlessly, an app with a nice interface is the wrong tool. The app is for a person holding a phone next to a circuit, which is a narrower and more honest brief than the screenshot count suggests.

The third is simply the cost of the hardware. A board from the FOSSASIA shop plus an app that assumes the board exists is a bigger commitment than a subscription to a generic measurement app, and for a school or lab that already owns PSLab boards the calculation is different.

Editorial conclusion

PSLab App is worth a look if you teach electronics and want a lab on a phone, or if you already own the board and want the Android or web build rather than a firmware project. It is not a general instrumentation app, since every instrument screen assumes the PSLab hardware is connected. The repository is not archived and the last push was on 2026-09-28, but the newest tagged release is v4.0.1 from 2025-09-05, described only as an initial development release for the Flutter app, so the stable line for classroom use is still the 3.2.x series. Start from the PSLab Application documentation linked in the README, then decide between a store build and the development download page based on whether you need the new instruments.

Frequently asked questions

What can the PSLab App measure?

The instrument list covers an oscilloscope, a multimeter for voltage, current, resistance and capacitance, a logic analyzer, a wave generator and a programmable power source. It also includes a luxmeter, barometer, accelerometer, gyrometer, compass, thermometer, a gas sensor detecting NH3, NOx, alcohol, benzene, smoke and CO2, a sound meter, a four-servo robotic arm controller and an external I²C OLED display.

Which platforms does PSLab App run on?

Android, iOS, Windows, macOS, Linux and web, all from one Flutter codebase. The repository has a directory for each target alongside the shared `lib/` directory, and store listings plus install guides are on the PSLab Application documentation at docs.pslab.io.

Can PSLab App connect wirelessly?

Not yet. The README roadmap has one unchecked item, add wireless connectivity, marked as currently under development, while device communication and the core instruments are both checked off. Every instrument screen assumes the board is connected by a wired link.

What is the difference between PSLab App version 3 and version 4?

Version 4.0.1, tagged on 2025-09-05, is described in its release note as the initial development release for the Flutter app. The 3.2.x line from April 2025 is the previous one, and its notes say only bug fixes and improvements, so the repository does not present v4 as a drop-in replacement.

What licence is the PSLab App released under?

Apache-2.0, stated in the repository metadata with a `LICENSE` file in the tree. That is a permissive licence with an explicit patent grant and a requirement to keep notices intact, which suits a project that schools and universities are expected to redistribute and modify.

Official sources

  1. fossasia/pslab-app on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/fossasia-pslab-app.svg)](https://hysenlabs.com/projects/fossasia-pslab-app)