HASduck is a modern take on Radiodirection finding (RDF) where the hunt is for an interactive intelligent device rather than a simple beacon. We call these devices 'Ducks.' With a RPi Zero W and attached RF Module. you can use the HASduck framework to build and program your own Ducks. Adding sensors you can have your Duck react to the environment and adjust the signal and/or message being beaconed out.
The quickest way to get started with HASduck is to
- Buy the hardware
- Install Raspberry Pi OS Lite on a microSD card using Raspberry Pi Imager
- Log in as Pi
- Clone the repo
- cd into the repo directory and run ./HASduck_install_fresh.sh
- Read the fine manual
- From the OLED select DUCKHUNT then RUN DUCK
Simple beacons used in radio direction finding transmit a simple message at intervals until they are turned off or a time-out has been reached. The premise here is the person with the beacon wants to be found. Suppose they don't?
The core of the Duck framework is defining a worklfow using five simple commands in order;
-
message is the text you want to send
-
interval is how many seconds between retransmission of message
-
trigger is an event you are waiting for before taking an action. Trigger has two arguements that include type and value. Types envisioned include gps, bluetooth, wifi, and custom. Values can be named signal detection, etc
-
action is taken when trigger has been set. Action has one argument that can be next, reset, or quit. Next continues to the next workflow, reset is repeat the workflow, or quit altogether.
-
duration is time-out in seconds for the curren workflow.
The framework remains a work in progress.
- Duck app
- Config Duck and save to hasDUCK.json
- Script to stop/start/install/remove Duck service
- Script for fresh install of HASduck
- Service file for systemd for Duck app run on start
- Font file for OLED display
- RFM95 Module used by HASvioletRF.py
- Configure your station. Updates HASviolet.json
- HID library for OLED and buttons
- RF library
- Duck config file
- RF config file
- OLED graphic