GitHunt
EZ

ezod/aistweet

Bluesky snapshot bot for a Raspberry Pi RTL-SDR AIS ship tracking station.

aistweet, a Bluesky photo bot for Raspberry Pi AIS tracking stations

aistweet tracks ships via AIS and takes their picture with a Raspberry Pi
camera as they pass by.

Written for and powering the Detroit River Boat Tracker. Read about
how it was made!

How To Build It

Things you will need:

Build and install rtl-ais, and configure it to stream UDP data to the host
and port defined by the aistweet command line.

If you want to also upload your AIS data to other services online and have a
locally-hosted interactive map, you can use AIS Dispatcher for Linux.

It is important to set the latitude, longitude, and direction of your camera
accurately in order for the snapshot timing to work. The direction is measured
in degrees clockwise from north of the camera's center axis.

Command Line

usage: aistweet.py [-h] [--host HOST] [--port PORT] [--db DB]
                   [--hashtags HASHTAGS [HASHTAGS ...]] [--tts]
                   latitude longitude

Raspberry Pi AIS tracker/camera Bluesky bot

positional arguments:
  latitude              AIS station latitude
  longitude             AIS station longitude
  direction             bearing of camera (degrees clockwise from north)

optional arguments:
  -h, --help            show this help message and exit
  --host HOST           host for receiving UDP AIS messages
  --port PORT           port for receiving UDP AIS messages
  --db DB               database file for static ship data
  --tts                 announce ship name via text-to-speech
  --light               disable night snapshots via light sensor

required environment variables:
  BLUESKY_USERNAME
  BLUESKY_PASSWORD

Dependencies

Languages

Python100.0%

Contributors

GNU General Public License v3.0
Created January 22, 2021
Updated December 28, 2025
ezod/aistweet | GitHunt