Bez popisu

MX f5b4f83164 upd scope před 1 rokem
docs f5b4f83164 upd scope před 1 rokem
icons 57c69dadc7 update apps před 2 roky
photos f5b4f83164 upd scope před 1 rokem
scenes f5b4f83164 upd scope před 1 rokem
screenshots f5b4f83164 upd scope před 1 rokem
README.md f5b4f83164 upd scope před 1 rokem
application.fam f5b4f83164 upd scope před 1 rokem
scope.c f5b4f83164 upd scope před 1 rokem
scope_10px.png fa001c773c move apps před 2 roky
scope_app_i.h f5b4f83164 upd scope před 1 rokem

README.md

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 showing three different waveform types from a signal generator.

Also see Derek Jamison's demonstration 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

Signal Generator

Flipper Zero running flipperscope

Rigol

Flipper Zero running flipperscope - showing voltage measurements

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.

Flipper Zero running flipperscope - showing spectrum analyser

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("<H", data)]
x = np.arange(len(y))

ax.plot(x, y, label='Voltage')
ax.set_xlabel('Sample')
ax.set_ylabel('Voltage / V')
ax.set_title('ADC Voltage')
ax.set_ylim([0, 2.5])
ax.legend()
plt.show()

Captured waveform

To Do

  • Customisable input pin
  • Trigger type mode

Inspiration