Go to file
2026-05-29 09:30:44 +02:00
camera_example cleanup and fixes 2026-05-21 15:23:13 +02:00
chip_test_example updated readme and deploy script 2026-05-29 09:30:44 +02:00
math_example readmes and gps changes 2026-05-21 14:11:06 +02:00
shader_example cleanup and fixes 2026-05-21 15:23:13 +02:00
test sloppified ai example but working, yaaaaaay, :,) 2026-05-28 10:42:05 +02:00
flake.nix fix and update package 2026-05-20 10:50:47 +02:00
main.cpp ai shizo babble 2026-05-19 13:32:24 +02:00
README.md updated readme and deploy script 2026-05-29 09:30:44 +02:00

SkyLok

Pi Zero W 2 captures frames, runs a motion shader, sends diffs over LoRa.

  • camera_example/ — libcamera + libjpeg-turbo, streams MJPEG over TCP. Works.
  • shader_example/ — offscreen GL motion diff between two frames. Works on desktop.
  • math_example/ — pixel → 3D vertex projection (depth map to OBJ mesh).
  • chip_test_example/ — LR1121 LoRa + ICM-20948 IMU + u-blox GPS drivers/tests.
  • main.cpp — prototype that wires camera + shader + TCP together.

Goal

Automatic, real-time detection of fast high-flying objects (planes, drones) using multiple Pi cameras and a GLES motion shader. Objects moving in straight lines or smooth curves are kept; everything else is filtered out.

Each node scans the sky, detects motion, extracts a vertex line from the diff frame, timestamps it via GPS, and transmits the minimal payload over LoRa. The central device is also a Pi camera node running the same base pipeline, with additional functionality for receiving LoRa packets from other nodes, fusing sightlines, and saving combined results locally.

Status

The examples are all individually working. Final integration (camera → shader → math → LoRa) is the next step.

Build main.cpp

g++ main.cpp -o main \
  $(pkg-config --cflags --libs libcamera libevent) \
  -levent -levent_pthreads -lpthread \
  -lturbojpeg -lglfw -lGLEW -lGL -lEGL -lGLESv2

References