Rust-Based Smart Fishing Rod
An automated fishing rod system with motion detection and automatic reeling.
Author: Buzbuchi Matheo
GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-MBuzbuchi.git
Description
The main purpose of this project is to implement an automated fishing rod controlled by a microcontroller. To achieve this, the system follows several key steps:
-
Fish presence detection near the bait: An accelerometer sensor is placed inside the bobber, acting like a motion detector or "proximity radar" to sense movement near the hook. When such motion is detected, a red LED on the fishing rod is activated to alert the fisherman that fish are in the critical area and to stay alert.
-
Bite detection and audible alert: This is the most complex part of the automation process, as it typically relies on the skill of the fisherman to detect when a fish has actually taken the bait without snapping the line. From experienced fishermen (30–40 years of practice), I’ve learned that a fish doesn’t always pierce its lip fully when it bites—so an automatic pulling mechanism shouldn’t start immediately. To address this, a force sensor is placed along the fishing line to measure tension changes. When a noticeable tension change is detected (indicating a bite), a buzzer is activated to alert the user.
-
Rod type configuration and auto-reeling: The system includes three buttons, each representing a different type of fishing rod or line configuration. The user selects the current setup, and the parameters (such as pulling force and timing) are adjusted accordingly in the code for accurate reeling. After the fish takes the bait and the fisherman ensures the hook is properly set, a 3-second delay begins. Once that delay passes, the servomotor is triggered and begins the automated reeling process, simulating the action of turning the reel handle.
Motivation
The inspiration for this project came from real-life experiences in my neighborhood, where many of my apartment neighbors are passionate about fishing. One day, I overheard a neighbor’s child complaining about how exhausting and difficult it was to catch fish—mentioning that his arms got tired and it was hard to know exactly when the fish was hooked, especially when dealing with a larger catch.
This sparked the idea of taking on the challenge of automating a process that is inherently physical and skill-based. I wanted to create a system that could assist fishermen especially beginners or children by reducing the physical effort and improving bite detection accuracy.
Additionally, I was inspired by one of Michael Reeves videos that I saw during high school, which made me consider if I was able to reproduce something similar but conducted in a more purpose-driven and cohesive matter.
Architecture
The following diagram shows the logical architecture of the automated fishing rod system. It includes the main components and how they interact with each other through control and feedback loops.
The system is composed of the following architectural blocks:
- Fish detection — Bobber detects motion and triggers a red LED alert.
- Bite detection — Force Sensor (FSR) detects a tension spike and activates the buzzer.
- Rod configuration & reeling — User selects rod type via buttons; a 3-second delay logic then triggers the servo motor.
- Reset — Once the reeling completes, the system resets and awaits new fish motion input.
Below is the architecture diagram:
Log
Week 5 - 11 May
Week 12 - 18 May
Week 19 - 25 May
Hardware
The following hardware components were used to build the automated fishing rod system:
Raspberry Pi Pico WH (RP2350)
— Acts as the main microcontroller, managing inputs and triggering actions.MPU6050 Accelerometer
— Embedded inside the fishing bobber to detect nearby fish motion through water vibrations.Force-Sensitive Resistor (FSR, e.g. FSR402)
— Placed along the fishing line to detect sudden tension spikes indicating a bite.Red LED
— Provides a visual alert when motion is detected near the hook.Buzzer
— Gives an audible signal when a fish bite is detected via the FSR.3 Push Buttons
— Used by the fisherman to select the rod type (for customizing pulling behavior).Servo Motor
— Handles the automatic reeling of the fishing line after bite confirmation and user reaction.
Schematics
Place your KiCAD schematics here. (Work in progress)
Bill of Materials
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico 2WH | The microcontroller | 25 RON |
MPU6050 Accelerometer | Detects water motion in the bobber | 15 RON |
Force-Sensitive Resistor (FSR402) | Detects tension in the fishing line (bite) | 42 USD |
Red LED 5mm | Visual alert when fish are nearby | 40 RON |
Piezo Buzzer Module | Audible alert on fish bite | 1.40 RON |
Push Buttons (12x12mm) | Rod type selection by user | 1 RON |
SG90 Servo Motor | Automatically reels in the fishing line | 39 RON |
Breadboard 830 Tie-Point | Used for prototyping and connecting components without soldering | 35 RON |
Jumper Wire Set (Male-Male) | Connects components on breadboard and to microcontroller | 16 RON |
USB Powerbank 5V | Portable power supply via USB for Raspberry Pi Pico | ~ 70 RON |
Software
Library | Description | Usage |
---|---|---|
embedded-hal | Hardware Abstraction Layer for embedded platforms | Provides common interfaces for GPIO, I2C, SPI etc. |
embassy-rp | HAL implementation for the RP2040 | Controls the Raspberry Pi Pico WH hardware |
embassy-executor | Embedded async executor with interrupt/timer support | Manages async/await logic for embedded applications |
embassy-time | Timing and delay functionality | Used for timers and delays in embedded code |
embassy-net | Async networking stack | Used for Wi-Fi communication (if used) |
embassy-gpio | GPIO control abstraction | Manages input/output pins and device triggers |
embassy-usb | USB device stack | USB communication management |
embassy-pwm | PWM driver support | Controls servos or dimmable LEDs |
embassy-pio | Access to RP2040 PIO block | For advanced I/O operations like serial protocols |
static_cell | Static memory allocation at runtime | Required for async resource management |
mpu6050 | MPU6050 accelerometer driver | Reads accelerometer data from the bobber |
defmt | Logging and debugging tool | Used for serial debug output in embedded Rust |
Links
- DIY Automated Fishing Rod using Arduino and Servo
- High-Sensitivity Wi-Fi Fish Bite Alarm with NodeMCU (Hackster.io)
- Smart Arduino Ice Fishing Rod (GitHub - gumslone)
- Electric Arduino Fishing
- Gas Powered Fishing Pole
- Device attached to the rod used for bite detection
- Arduino Forum for adaptive fishing rod ...