Convert Figma logo to code with AI

jamisonderek logoflipper-zero-tutorials

See README.md for link to Discord & YouTube. I will use this repository for my Flipper Zero projects & wiki.

1,001
86
1,001
2

Top Related Projects

Flipper Zero Unleashed Firmware

RogueMaster Flipper Zero Firmware

14,541

Playground (and dump) of stuff I make or modify for the Flipper Zero

🐬 A collection of awesome resources for the Flipper Zero device.

Flipper Zero Unleashed Firmware

Quick Overview

The "flipper-zero-tutorials" repository by jamisonderek is a comprehensive collection of tutorials and resources for the Flipper Zero device. It provides step-by-step guides, code examples, and explanations for various features and applications of the Flipper Zero, aimed at both beginners and advanced users.

Pros

  • Extensive coverage of Flipper Zero features and applications
  • Well-organized tutorials with clear explanations and code examples
  • Regular updates and contributions from the community
  • Suitable for users of all skill levels

Cons

  • May require some prior knowledge of programming and hardware concepts
  • Some tutorials might become outdated as the Flipper Zero firmware evolves
  • Limited to Flipper Zero-specific content, not applicable to other devices
  • Might lack advanced topics for highly experienced users

Code Examples

Here are a few code examples from the repository:

  1. Basic GPIO control:
#include <furi.h>
#include <furi_hal.h>

void gpio_example() {
    furi_hal_gpio_init_simple(gpio_ext_pc0, GpioModeOutputPushPull);
    furi_hal_gpio_write(gpio_ext_pc0, true);
    furi_delay_ms(1000);
    furi_hal_gpio_write(gpio_ext_pc0, false);
}

This code initializes a GPIO pin, sets it high for 1 second, then sets it low.

  1. Simple RFID read:
#include <furi.h>
#include <furi_hal_rfid.h>

void rfid_read_example() {
    FuriHalRfidDevData data = {};
    furi_hal_rfid_tim_read(&data);
    if (data.read) {
        // Process RFID data
    }
}

This code attempts to read RFID data using the Flipper Zero's RFID module.

  1. Basic GUI example:
#include <gui/gui.h>
#include <gui/elements.h>

static void draw_callback(Canvas* canvas, void* context) {
    UNUSED(context);
    canvas_clear(canvas);
    canvas_set_font(canvas, FontPrimary);
    canvas_draw_str(canvas, 2, 10, "Hello, Flipper Zero!");
}

void gui_example() {
    Gui* gui = furi_record_open(RECORD_GUI);
    ViewPort* view_port = view_port_alloc();
    view_port_draw_callback_set(view_port, draw_callback, NULL);
    gui_add_view_port(gui, view_port, GuiLayerFullscreen);
}

This code creates a simple GUI that displays "Hello, Flipper Zero!" on the screen.

Getting Started

To get started with the Flipper Zero tutorials:

  1. Clone the repository: git clone https://github.com/jamisonderek/flipper-zero-tutorials.git
  2. Navigate to the desired tutorial folder
  3. Follow the README instructions for each tutorial
  4. Install the Flipper Zero firmware and development environment as per the official documentation
  5. Compile and upload the example code to your Flipper Zero device
  6. Experiment and modify the code to learn and create your own applications

Competitor Comparisons

Flipper Zero Unleashed Firmware

Pros of unleashed-firmware

  • More comprehensive firmware modification with advanced features
  • Active development and frequent updates
  • Larger community and contributor base

Cons of unleashed-firmware

  • Steeper learning curve for beginners
  • Potential stability issues due to frequent changes
  • May void warranty or cause unintended device behavior

Code Comparison

flipper-zero-tutorials:

void example_main(void* p) {
    UNUSED(p);
    FURI_LOG_I(TAG, "Hello, World!");
    furi_delay_ms(1000);
}

unleashed-firmware:

void unleashed_main(void* p) {
    UNUSED(p);
    FURI_LOG_I(TAG, "Unleashed firmware initialized");
    while(true) {
        furi_delay_ms(100);
        // Advanced features and modifications
    }
}

The flipper-zero-tutorials repository focuses on educational content and simple examples, while unleashed-firmware provides a more comprehensive firmware modification with advanced features and continuous execution. The code snippets illustrate the difference in complexity and scope between the two projects.

RogueMaster Flipper Zero Firmware

Pros of flipperzero-firmware-wPlugins

  • Comprehensive firmware with many built-in plugins and features
  • Regular updates and active development
  • Large community support and contributions

Cons of flipperzero-firmware-wPlugins

  • More complex to navigate and understand for beginners
  • Potential stability issues due to frequent updates and modifications
  • May include unofficial or experimental features

Code Comparison

flipper-zero-tutorials:

static bool subghz_scene_receiver_info_on_event(void* context, SceneManagerEvent event) {
    SubGhz* subghz = context;
    bool consumed = false;

    if(event.type == SceneManagerEventTypeCustom) {
        if(event.event == SubGhzCustomEventSceneReceiverInfoTxStart) {
            // Handle TX start event

flipperzero-firmware-wPlugins:

static bool subghz_scene_receiver_info_on_event(void* context, SceneManagerEvent event) {
    SubGhz* subghz = context;
    bool consumed = false;

    if(event.type == SceneManagerEventTypeCustom) {
        switch(event.event) {
            case SubGhzCustomEventSceneReceiverInfoTxStart:
                // Handle TX start event

The code comparison shows similar structure but slightly different event handling approaches. flipperzero-firmware-wPlugins uses a switch statement for multiple custom events, potentially offering more flexibility for additional event types.

14,541

Playground (and dump) of stuff I make or modify for the Flipper Zero

Pros of Flipper

  • More comprehensive collection of resources and tools
  • Regularly updated with new content and community contributions
  • Includes a wider range of applications and firmware modifications

Cons of Flipper

  • Less structured learning approach for beginners
  • May be overwhelming due to the sheer volume of content
  • Some resources may require more advanced knowledge to utilize effectively

Code Comparison

flipper-zero-tutorials:

#include <furi.h>
#include <gui/gui.h>
#include <input/input.h>
#include <stdlib.h>

static void app_draw_callback(Canvas* canvas, void* ctx) {
    // Simple drawing code
}

Flipper:

#include <furi.h>
#include <gui/gui.h>
#include <input/input.h>
#include <notification/notification_messages.h>

static void app_draw_callback(Canvas* canvas, void* ctx) {
    // More complex drawing code with additional features
}

The Flipper repository tends to have more advanced and feature-rich code examples, while flipper-zero-tutorials focuses on simpler, educational examples for beginners. Flipper offers a vast collection of resources but may be less beginner-friendly, whereas flipper-zero-tutorials provides a more structured learning path for those new to Flipper Zero development.

🐬 A collection of awesome resources for the Flipper Zero device.

Pros of awesome-flipperzero

  • Comprehensive collection of resources, including apps, firmware, documentation, and community links
  • Regularly updated with new content and contributions from the community
  • Well-organized structure with clear categories for easy navigation

Cons of awesome-flipperzero

  • Lacks in-depth tutorials or step-by-step guides for beginners
  • May be overwhelming for newcomers due to the sheer amount of information

Code comparison

While both repositories primarily focus on curating resources rather than providing extensive code examples, awesome-flipperzero does include some code snippets for specific applications. Here's a brief comparison:

awesome-flipperzero:

# Example of a simple Flipper Zero app
App(
    appid="hello_world",
    name="Hello World",
    apptype=FlipperAppType.EXTERNAL,
    entry_point="hello_world_app",
    cdefines=["APP_HELLO_WORLD"],
    requires=["gui"],
    stack_size=1 * 1024,
    order=20,
)

flipper-zero-tutorials:

No specific code examples provided in the main repository.

The flipper-zero-tutorials repository focuses more on providing written tutorials and explanations rather than code snippets, while awesome-flipperzero includes some code examples for specific applications and plugins.

Flipper Zero Unleashed Firmware

Pros of unleashed-firmware

  • More comprehensive firmware modification with advanced features
  • Active development and frequent updates
  • Larger community and contributor base

Cons of unleashed-firmware

  • Steeper learning curve for beginners
  • Potential stability issues due to frequent changes
  • May void warranty or cause unintended device behavior

Code Comparison

flipper-zero-tutorials:

void example_main(void* p) {
    UNUSED(p);
    FURI_LOG_I(TAG, "Hello, World!");
    furi_delay_ms(1000);
}

unleashed-firmware:

void unleashed_main(void* p) {
    UNUSED(p);
    FURI_LOG_I(TAG, "Unleashed firmware initialized");
    while(true) {
        furi_delay_ms(100);
        // Advanced features and modifications
    }
}

The flipper-zero-tutorials repository focuses on educational content and simple examples, while unleashed-firmware provides a more comprehensive firmware modification with advanced features and continuous execution. The code snippets illustrate the difference in complexity and scope between the two projects.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

flipper-zero-tutorials

YouTube: @MrDerekJamison

https://github.com/jamisonderek/flipper-zero-sao is the repo for using the Flipper Zero to control SAO, effectively acting like a badge.

https://github.com/jamisonderek/flipboard is the repo for using the FlipBoard accessory for the Flipper Zero. FlipBoard was created by MakeItHackin with software tutorials written by me (CodeAlNight).

Discord invite: NsjCvqwPAd - Currently, I've stopped using my own Discord server and would prefer you either send me a direct message on Discord, or tag @CodeAllNight in any of the Flipper Zero firmware Discord servers.

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.