{"id":20935780,"url":"https://github.com/anfractuosity/flipperscope","last_synced_at":"2025-04-05T15:05:53.030Z","repository":{"id":65396080,"uuid":"589266062","full_name":"anfractuosity/flipperscope","owner":"anfractuosity","description":"Attempt at an oscilloscope application for the flipper zero. Measures voltage and frequency.","archived":false,"fork":false,"pushed_at":"2025-01-03T15:38:13.000Z","size":1915,"stargazers_count":149,"open_issues_count":2,"forks_count":3,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-29T14:07:02.749Z","etag":null,"topics":["adc","dma","flipper-zero","flipperscope","flipperzero","oscilloscope","scope"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anfractuosity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":"https://www.buymeacoffee.com/anfractuosity"}},"created_at":"2023-01-15T16:14:42.000Z","updated_at":"2025-03-24T16:28:31.000Z","dependencies_parsed_at":"2024-12-29T19:27:08.735Z","dependency_job_id":"01dca9e2-1d23-4dc4-a292-4470192f9515","html_url":"https://github.com/anfractuosity/flipperscope","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anfractuosity%2Fflipperscope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anfractuosity%2Fflipperscope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anfractuosity%2Fflipperscope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anfractuosity%2Fflipperscope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anfractuosity","download_url":"https://codeload.github.com/anfractuosity/flipperscope/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353731,"owners_count":20925329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adc","dma","flipper-zero","flipperscope","flipperzero","oscilloscope","scope"],"created_at":"2024-11-18T22:16:21.562Z","updated_at":"2025-04-05T15:05:52.991Z","avatar_url":"https://github.com/anfractuosity.png","language":"C","readme":"# flipperscope\n\nTo compile and install\n\n```\ncd flipperzero-firmware/applications_user\ngit clone https://github.com/anfractuosity/flipperscope.git\ncd ..\n./fbt DEBUG=1 VERBOSE=1 fap_scope\n./fbt launch_app APPSRC=applications_user/flipperscope\n```\n\nAlternatively the binary can now be installed from https://lab.flipper.net/apps/flipperscope or the Flipper Mobile App.\n\nProvide signal to **pin 16/PC0**, with a voltage ranging from 0V to 2.5V and ground to **pin 18/GND**.\n\nPress the 'ok' button (button in the centre of joypad) to pause/unpause the waveform display.\n\n[Demo](https://www.youtube.com/watch?v=tu2X1WwADF4) showing three different waveform types from a signal generator.\n\nAlso see [Derek Jamison's demonstration](https://www.youtube.com/watch?v=iC5fBGwCPHw\u0026t=374s) of this app as well as other interesting projects.\n\n## Measurements\n\n* Measures frequency of waveform in hertz\n* Measures voltage: min, max, Vpp\n* FFT option provides simple spectrum analyser\n\n![Signal Generator](photos/sig.jpg)\n\n![Flipper Zero running flipperscope](photos/freq.jpg)\n\n![Rigol](photos/rigol.jpg)\n\n![Flipper Zero running flipperscope - showing voltage measurements](photos/volt.jpg)\n\nIn the following photo attached a MAX9814 electret microphone module to the flipper zero and used the spectrum\nanalyser functionality, with an FFT window size of 1024 and played a 3kHz sine wave tone from a computer.\n\n![Flipper Zero running flipperscope - showing spectrum analyser](photos/fft.jpg)\n\n## Processing captures\n\nYou can use the following simple Python script, for processing the captured waveforms, from flipperscope.\n\n```\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport struct\n\nfig, ax = plt.subplots()\ndata = open(\"Sine.dat\", \"rb\").read()\ny = [(float(x[0]) / 2500) * 2.5 for x in struct.iter_unpack(\"\u003cH\", data)]\nx = np.arange(len(y))\n\nax.plot(x, y, label='Voltage')\nax.set_xlabel('Sample')\nax.set_ylabel('Voltage / V')\nax.set_title('ADC Voltage')\nax.set_ylim([0, 2.5])\nax.legend()\nplt.show()\n```\n\n![Captured waveform](photos/sine.png)\n\n## To Do\n\n* Customisable input pin\n* Trigger type mode\n\n## Inspiration\n\n* For GUI menu system, used code principles from weather station and signal generator apps\n* STM32 DMA example\n* VREFBUF information - https://community.st.com/s/question/0D53W00001awIlMSAU/enable-and-use-vrefbuf-for-adc-measures\n* Relocating vector table - https://community.nxp.com/t5/i-MX-Processors/Relocate-vector-table-to-ITCM/m-p/1302304\n* Uses FFT algorithm from - https://www.algorithm-archive.org/contents/cooley_tukey/cooley_tukey.html\n","funding_links":["https://www.buymeacoffee.com/anfractuosity"],"categories":["GPIO"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanfractuosity%2Fflipperscope","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanfractuosity%2Fflipperscope","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanfractuosity%2Fflipperscope/lists"}