Giter VIP home page Giter VIP logo

flipper-zero-tutorials's Introduction

flipper-zero-tutorials

Discord invite: NsjCvqwPAd

YouTube: @MrDerekJamison

I will use this repository for my Flipper Zero projects. The various README.md files should describe how to use the files on your Flipper Zero.

Feel free to reach out to me at Discord with any questions or leave them in the issues section for this project.

Video Game Module

air_labyrinth

game - This is a game where you control a ball through a maze. The game uses the accelerometer in the Video Game Module to control the ball. For best experience, it is recommended to connect the VGM to the HDMI input on a TV. The game is also displayed on the Flipper Zero's screen.

NOTE: This game uses the game engine, so you must recursively clone the flipper-zero-tutorials repository to get the engine submodule, or download the https://github.com/flipperdevices/flipperzero-game-engine into a folder called ./vmg/apps/air_labyrinth/engine.

RFID

spreadsheet - This is a spreadsheet that can be used to convert RFID data from one format to another, and to create new credentials with a shared facility code. It can also be used to create RFID data for the T5577 chip.

YouTube

videos

video index - This is a list of my various YouTube video tutorials.

Electronics

electronics projects

parts list - This is a list of electronics parts that I will be using in my videos or tutorials.

Firmware

firmware-updating

tutorial - The Flipper Zero makes updating the firmware simple and fairly safe. It is easy to build your own firmware as well using the fbt command.

GPIO

wiegand

project - This is a tool for reading and writing Wiegand data. Wiegand is typically used by NFC, RFID and keypads. This tool can be used to read a Wiegand signal, save and display the data on the Flipper Zero's screen. It can also play the signal back.

gpio-pins

tool - This is a set of files you can copy to your Flipper Zero so that you can easily lookup the meaning of a pin.

hc_sr04

project - This is an improvement over the original HC_SR04 library so that you can get mm accuracy in measurements. It displays ultrasonic distance in both inches/cm. The readme explains how the code gets more accurate timings.

gpio-gpio-7segment

project - This application can control a common-anode or common-cathode 7-segment display. When you click the OK button the display shows a random dice roll (1-6); but you can modify code to display any number from 0-9.

gpio-gpio-polling-demo

tutorial - This is a "hello world" demonstration of reading a GPIO pin using polling.

gpio-gpio-interrupt-demo

tutorial - This is a "hello world" demonstration of triggering a callback when a GPIO pin transitions from VCC to GND.

gpio-memsic_2125

tutorial - This is a demostration of using GPIO interrupts to interpret data from the Memsic 2125 (Mx2125) Dual-Axis Accelerometer.

Subghz folder

subghz-plugins-subghz_demo

tutorial - This is a demonstration of sending & receiving radio signals using the subghz_tx_rx worker library.

subghz-plugins-rock_paper_scissors

game - This is a two player game that uses the subghz_tx_rx worker library for communication. Two Flipper Zeros running this game can play Rock, Paper, Scissors against each other!

subghz-protocol-x10-decoder

project - This is a protocol decoder for the Flipper Zero to decode the x10 series of devices when doing a read from the Sub-GHz menu.

subghz-samples-chevy-hhr-2006

data - These Flipper Zero subghz captures are from the remote control for the Chevy HHR 2006 keyfob.

subghz-samples-quantum-fire

data - These Flipper Zero subghz captures are from the remote control for the Quantum Fire (QF-6LR).

subghz-samples-x10

data - These Flipper Zero subghz captures are from the remote control for the X10.

Marauder

tutorial - This is a tutorial on how to use the Marauder tool to attack 2.4GHz devices.

tool - This is a tool that can be used to send a secret message over WiFi. The message is encoded into a SSID, which is then sent out over WiFi. The message can be decoded on a PC.

Support

Buy me a coffee - Thanks for supporting my work.

flipper-zero-tutorials's People

Contributors

brodan avatar djamiso8-ford avatar jamisonderek avatar kitsunehunter avatar lionzxy avatar willy-jl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flipper-zero-tutorials's Issues

GPIO_BLINK: Discrepancy between README pinout and GPIO initialization mode

Hello,

I was running the code i noticed that the LED is initialized in GpioModeOutputOpenDrain mode:

furi_hal_gpio_init_simple(pin_led, GpioModeOutputOpenDrain);

However, the README suggests connecting the LED between the GPIO pin and GND. This setup would work if the GPIO pin was initialized in GpioModeOutputPushPull mode instead of GpioModeOutputOpenDrain.

Am I wrong?

I suggest changing the GPIO initialization mode to GpioModeOutputPushPull if the intention is to connect the LED between the GPIO pin and GND.

Thank you for your attention to this matter.

Wrong pins for I2C

The project readme docs here say SCL goes to Flipper pin 15 SDA to pin 16. Looking at the flipper docs that it reversed.
I tried a BLE280 sensor and found SCL ->16, SDA -> 15 works.

Wrong spot

I am using a iPhone se 3th gen, and it clicks somewhere below and to the left of the cookie.

PowerShell function for converting Flipper SubGhz RAW Files

I watched your video about the CSV conversion and that inspired me to write a small PowerShell function to do that.
(Tried to comment on the video but it got deleted because of the link, I guess)

https://gist.github.com/r15ch13/0f82e368003a1e0150f97dc585fa2527

# Converts Flipper SubGhz RAW Files to PSCustomObject[]
function ConvertFrom-SubGhzRAW {
    param(
        [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
        [String] $Path
    )

    process {
        $data = Get-Content $Path
        if(!$data.Contains("Filetype: Flipper SubGhz RAW File")) {
            throw "$Path is not a Flipper SubGhz RAW File"
        }
        $data | Select-Object -Skip 5
        | ForEach-Object { $_.Replace("RAW_Data: ", "") }
        | Join-String -Separator " "
        | Select-String -Pattern '(\d+)\s(-\d+)' -AllMatches
        | ForEach-Object { $_.Matches }
        | ForEach-Object { [PSCustomObject]@{ Tone = $_.Groups[1]; Silence = $_.Groups[2] } }
    }
}

Copy and paste to console hit <Enter>, then run:

# convert one file
ConvertFrom-SubGhzRAW mysubfile.sub | ConvertTo-Csv | Out-File mycsvfile.csv
# convert every *.sub file in a directory
Get-ChildItem *.sub | ForEach-Object { ConvertFrom-Sub -Path $_ | ConvertTo-Csv | Out-File "$($_.BaseName).csv" }

Review the code that does "view_dispatcher_free" to make sure we do "view_dispatcher_remove_view" first.

Some firmwares (not sure which one) will assert if view_dispatcher_free is called without doing view_dispatcher_remove_view first.

Need to review the following files, to ensure the bug does not exist...

findstr /snip view_dispatcher_free *.c

gpio\wiegand\wiegand.c:94: view_dispatcher_free(app->view_dispatcher);
hid\hid_app\final_files\hid.c:232: view_dispatcher_free(app->view_dispatcher);
hid\hid_cookie\hid.c:160: view_dispatcher_free(app->view_dispatcher);
plugins\basic_scenes\basic_scenes.c:247: view_dispatcher_free(app->view_dispatcher);
plugins\knob_component\knob_demo_app.c:376: view_dispatcher_free(app->view_dispatcher);
plugins\scenes\scenes_demo_app.c:440: view_dispatcher_free(app->view_dispatcher);

Subject: Issue with Compiling Cookie Clicker and Skeleton App for the New Flipper Zero Firmware

Subject: Issue with Compiling Cookie Clicker and Skeleton App for the New Flipper Zero Firmware
I wanted to report an issue that the Cookie Clicker and Skeleton app cannot be compiled for the new Flipper Zero firmware. Although the skeleton app manages to compile, on the Flipper it shows an API mismatch when the 'continue' button is pressed, and the app works. However, the BT Cookie Clicker doesn't work and cannot proceed through ./fbt fap_dist. Will there be newer versions available? Thank you in advance.

subghz error - unused parameter

Hi, I am trying to compile the subghz demo myself as part of a custom fw but I am getting an error due to unused parameter.
is there anyway I can add a compilation flag to just treat it as warning instead of an error ? (I know it is slightly offtopic to the actual subghz and has more to do with flipper app compilation).
Thanks.

    CC      applications/plugins/subghz_demo/subghz_demo_app.c

applications/plugins/subghz_demo/subghz_demo_app.c: In function 'subghz_demo_play_tone':
applications/plugins/subghz_demo/subghz_demo_app.c:282:48: error: unused parameter 'demo_context' [-Werror=unused-parameter]
282 | static void subghz_demo_play_tone(DemoContext* demo_context, DemoEvent* event) {
| ~~~~~~~~~~~~~^~~~~~~~~~~~
cc1: all warnings being treated as errors
scons: *** [build/f7-firmware-C/.extapps/Subghz_Demo/subghz_demo_app.o] Error 1
SDKCHK firmware/targets/f7/api_symbols.csv
API version 14.0 is up to date

Unable to compile rolling codes app

When I try to follow methods 3 and 4 mentioned in this [document](flipper-zero-tutorials I receive the following error:

flipper-zero-tutorials\subghz\apps\rolling-flaws\rolling_flaws_subghz_receive.h:7:10: fatal error: lib/subghz/protocols/protocol_items.h: No such file or directory
    7 | #include <lib/subghz/protocols/protocol_items.h>

I'm unclear on what I'm missing

Rolling Flaws app crash

hexan — Yesterday at 2:08 AM
@codeallnight I don't know if you're already aware of this: flipper 1 with the Flaws app running, Flipper 2 sends a Nice FloR-S signal, Flipper 1 reboots with message "MPU fault, possibly stack overflow".

New Serial Api

The Flipper Zero serial API has been updated in the latest release, and it doesn't seem to be backwards compatible with the old API. FuriHalUartID and UartIrqEvent no longer exist.

Latest toolset gives build errors for lib\subghz\protocols\x10.c

    CC      lib\subghz\environment.c

lib\subghz\protocols\x10.c:76:18: error: initialization of 'SubGhzProtocolStatus (*)(void *, FlipperFormat *, SubGhzRadioPreset )' from incompatible pointer type '_Bool ()(void *, FlipperFormat *, SubGhzRadioPreset )' [-Werror=incompatible-pointer-types]
76 | .serialize = subghz_protocol_decoder_x10_serialize,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib\subghz\protocols\x10.c:76:18: note: (near initialization for 'subghz_protocol_x10_decoder.serialize')
lib\subghz\protocols\x10.c:77:20: error: initialization of 'SubGhzProtocolStatus (
)(void *, FlipperFormat )' from incompatible pointer type '_Bool ()(void *, FlipperFormat *)' [-Werror=incompatible-pointer-types]
77 | .deserialize = subghz_protocol_decoder_x10_deserialize,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib\subghz\protocols\x10.c:77:20: CC lib\subghz\receiver.c
note: (near initialization for 'subghz_protocol_x10_decoder.deserialize')

wiegand app cannot compile

Hi @jamisonderek

No matter what I do, I cannot get the wiegand app to compile.
I was getting a number of errors relating to furi declerations, and after potentially solving those I am now getting errors regarding members and years, months, etc.

I am well out of my depth here and would really appreciate some assistance in getting this working!

I want to test some wiegand readers with my flipper, and have plans to design a wiegand interface PCB for them if i can get your app working.

app crash during step 25 of basic scenes tutorial

When following along with the Basic Scenes tutorial, if you copy/paste properly and reach step 25, running the app is successful.

however, pressing the back button to close the app cause a crash:
Screenshot 2023-04-18 at 12 42 46 PM

I have not yet tested to see if this issue is resolved with some of the code later on in the post, but I feel that the app should be able to launch and close properly at this point in the tutorial before moving on

Installation Issue

Hii,
I'm getting this issue while installation. Can you please assist.

(fbt) C:\repos\flipperzero-firmware>fbt FORCE=1 flash_usb_full
        CC      lib\subghz\protocols\keeloq.c
        VERSION build\f7-firmware-D\toolbox\version.inc.h
        APIPREP build\f7-firmware-D\sdk_origin.i
        APIPP   build\f7-firmware-D\sdk_origin.i
Version information updated
        SDKCHK  targets\f7\api_symbols.csv
        INSTALL build\f7-firmware-D\firmware.json
        CC      lib\toolbox\version.c
        AR      build\f7-firmware-D\subghz\libsubghz.a
        AR      build\f7-firmware-D\toolbox\libtoolbox.a
        INSTALL build\f7-firmware-D\lib\libtoolbox.a
        INSTALL build\f7-firmware-D\lib\libsubghz.a
API version 66.2 is up to date
        SDKTREE build\f7-firmware-D\sdk_headers\sdk.opts
        APITBL  build\f7-firmware-D\assets\compiled\firmware_api_table.h
        LINK    build\f7-firmware-D\firmware.elf
        INFO
Loaded 152 app definitions.
Firmware modules configuration:
Service:
         bt, cli, dialogs, dolphin, desktop, gui, input, loader, notification, power, storage
System:
         js_app, updater_app, storage_move_to_sd
Archive:
         archive
Settings:
         bt_settings, notification_settings, storage_settings, power_settings, desktop_settings, passport, system_settings, expansion_settings, about
StartupHook:
         rpc_start, crypto_start, infrared_start, nfc_start, subghz_start, lfrfid_start, ibutton_start, onewire_start, bt_start, power_start, storage_start, loader_start, locale, updater_start, storage_move_to_sd_start, expansion_start, js_app_start
MenuExternal:
         subghz, lfrfid, nfc, infrared, gpio, ibutton, bad_usb, u2f
Package:
         system_apps, main_apps_on_start, main_apps, settings_apps, basic_services
Firmware size
.text         608788 (594.52 K)
.rodata       163100 (159.28 K)
.data           1764 (  1.72 K)
.bss            5204 (  5.08 K)
.free_flash   274584 (268.15 K)
        BIN     build\f7-firmware-D\firmware.bin
        HEX     build\f7-firmware-D\firmware.hex
firmware.bin:  189 flash pages (last page 96.29% full)
        DFU     build\f7-firmware-D\firmware.dfu
Linking build\f7-firmware-D as latest built dir (./build/latest/)
        CC      lib\subghz\protocols\keeloq.c
        VERSION build\f7-updater-D\toolbox\version.inc.h
        CDB     build\f7-firmware-D\compile_commands.json
Version information updated
        APPMETA build\f7-firmware-D\.extapps\hid_usb.fap
        APPMETA build\f7-firmware-D\.extapps\hid_ble.fap
        APPMETA build\f7-firmware-D\.extapps\snake_game.fap
        CC      applications_user\rolling-flaws\rolling_flaws.c
        CC      lib\toolbox\version.c
        INSTALL build\f7-updater-D\updater.json
        AR      build\f7-updater-D\subghz\libsubghz.a
        LINK    build\f7-firmware-D\.extapps\all_in_one_parser_d.elf
        FAP     build\f7-firmware-D\.extapps\snake_game.fap
        FAP     build\f7-firmware-D\.extapps\hid_usb.fap
        FAP     build\f7-firmware-D\.extapps\hid_ble.fap
        INSTALL build\f7-updater-D\lib\libsubghz.a
        FASTFAP build\f7-firmware-D\.extapps\snake_game.fap
        FASTFAP build\f7-firmware-D\.extapps\hid_usb.fap
        LINK    build\f7-firmware-D\.extapps\microel_parser_d.elf
        FASTFAP build\f7-firmware-D\.extapps\hid_ble.fap
        LINK    build\f7-firmware-D\.extapps\mizip_parser_d.elf
        AR      build\f7-updater-D\toolbox\libtoolbox.a
applications_user\rolling-flaws\rolling_flaws.c: In function 'rolling_flaws_receive_signal_draw_callback':
applications_user\rolling-flaws\rolling_flaws.c:240:23: error: too many arguments to function 'furi_string_alloc'
  240 |     FuriString* str = furi_string_alloc(32);
      |                       ^~~~~~~~~~~~~~~~~
In file included from furi/furi.h:21,
                 from applications_user\rolling-flaws\rolling_flaws.c:11:
furi/core/string.h:35:13: note: declared here
   35 | FuriString* furi_string_alloc(void);
      |             ^~~~~~~~~~~~~~~~~
scons: *** [build\f7-firmware-D\.extapps\rolling_flaws\rolling_flaws.o] Error 1

********** FBT ERRORS **********
build\f7-firmware-D\.extapps\rolling_flaws\rolling_flaws.o: Error 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.