Skip to main content
Version: ACS CC

Rust-Based Smart Fishing Rod

An automated fishing rod system with motion detection and automatic reeling.

info

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:

  1. 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.

  2. 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.

  3. 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:

  1. Fish detection — Bobber detects motion and triggers a red LED alert.
  2. Bite detection — Force Sensor (FSR) detects a tension spike and activates the buzzer.
  3. Rod configuration & reeling — User selects rod type via buttons; a 3-second delay logic then triggers the servo motor.
  4. Reset — Once the reeling completes, the system resets and awaits new fish motion input.

Below is the architecture diagram:

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

DeviceUsagePrice
Raspberry Pi Pico 2WHThe microcontroller25 RON
MPU6050 AccelerometerDetects water motion in the bobber15 RON
Force-Sensitive Resistor (FSR402)Detects tension in the fishing line (bite)42 USD
Red LED 5mmVisual alert when fish are nearby40 RON
Piezo Buzzer ModuleAudible alert on fish bite1.40 RON
Push Buttons (12x12mm)Rod type selection by user1 RON
SG90 Servo MotorAutomatically reels in the fishing line39 RON
Breadboard 830 Tie-PointUsed for prototyping and connecting components without soldering35 RON
Jumper Wire Set (Male-Male)Connects components on breadboard and to microcontroller16 RON
USB Powerbank 5VPortable power supply via USB for Raspberry Pi Pico~ 70 RON

Software

LibraryDescriptionUsage
embedded-halHardware Abstraction Layer for embedded platformsProvides common interfaces for GPIO, I2C, SPI etc.
embassy-rpHAL implementation for the RP2040Controls the Raspberry Pi Pico WH hardware
embassy-executorEmbedded async executor with interrupt/timer supportManages async/await logic for embedded applications
embassy-timeTiming and delay functionalityUsed for timers and delays in embedded code
embassy-netAsync networking stackUsed for Wi-Fi communication (if used)
embassy-gpioGPIO control abstractionManages input/output pins and device triggers
embassy-usbUSB device stackUSB communication management
embassy-pwmPWM driver supportControls servos or dimmable LEDs
embassy-pioAccess to RP2040 PIO blockFor advanced I/O operations like serial protocols
static_cellStatic memory allocation at runtimeRequired for async resource management
mpu6050MPU6050 accelerometer driverReads accelerometer data from the bobber
defmtLogging and debugging toolUsed for serial debug output in embedded Rust
  1. DIY Automated Fishing Rod using Arduino and Servo
  2. High-Sensitivity Wi-Fi Fish Bite Alarm with NodeMCU (Hackster.io)
  3. Smart Arduino Ice Fishing Rod (GitHub - gumslone)
  4. Electric Arduino Fishing
  5. Gas Powered Fishing Pole
  6. Device attached to the rod used for bite detection
  7. Arduino Forum for adaptive fishing rod ...