https://github.com/anfractuosity/flipperscope
Attempt at an oscilloscope application for the flipper zero. Measures voltage and frequency.
https://github.com/anfractuosity/flipperscope
adc dma flipper-zero flipperscope flipperzero oscilloscope scope
Last synced: 10 months ago
JSON representation
Attempt at an oscilloscope application for the flipper zero. Measures voltage and frequency.
- Host: GitHub
- URL: https://github.com/anfractuosity/flipperscope
- Owner: anfractuosity
- Created: 2023-01-15T16:14:42.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-03T15:38:13.000Z (about 1 year ago)
- Last Synced: 2025-03-29T14:07:02.749Z (11 months ago)
- Topics: adc, dma, flipper-zero, flipperscope, flipperzero, oscilloscope, scope
- Language: C
- Homepage:
- Size: 1.83 MB
- Stars: 149
- Watchers: 8
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# flipperscope
To compile and install
```
cd flipperzero-firmware/applications_user
git clone https://github.com/anfractuosity/flipperscope.git
cd ..
./fbt DEBUG=1 VERBOSE=1 fap_scope
./fbt launch_app APPSRC=applications_user/flipperscope
```
Alternatively the binary can now be installed from https://lab.flipper.net/apps/flipperscope or the Flipper Mobile App.
Provide signal to **pin 16/PC0**, with a voltage ranging from 0V to 2.5V and ground to **pin 18/GND**.
Press the 'ok' button (button in the centre of joypad) to pause/unpause the waveform display.
[Demo](https://www.youtube.com/watch?v=tu2X1WwADF4) showing three different waveform types from a signal generator.
Also see [Derek Jamison's demonstration](https://www.youtube.com/watch?v=iC5fBGwCPHw&t=374s) of this app as well as other interesting projects.
## Measurements
* Measures frequency of waveform in hertz
* Measures voltage: min, max, Vpp
* FFT option provides simple spectrum analyser




In the following photo attached a MAX9814 electret microphone module to the flipper zero and used the spectrum
analyser functionality, with an FFT window size of 1024 and played a 3kHz sine wave tone from a computer.

## Processing captures
You can use the following simple Python script, for processing the captured waveforms, from flipperscope.
```
import matplotlib.pyplot as plt
import numpy as np
import struct
fig, ax = plt.subplots()
data = open("Sine.dat", "rb").read()
y = [(float(x[0]) / 2500) * 2.5 for x in struct.iter_unpack("