Table of Contents

Pi Cameras

There are several Raspberry Pi cameras scattered through the North Texas area on various repeater sites. These cameras are quite simple; they consist of a Raspberry Pi, a Pi Camera, and a POE “uninjector”.

The Pi cameras are configured to run a shell script as a systemd service. This shell script will take a picture every 10 seconds using raspistill, and then sort it into three directories: hourly, daily, and weekly. Filenames are assigned img_%s.jpg where %s is the UNIX epoch time. All pictures are stored in the hourly directory. If (%s % 60 == 0), once a minute, then the picture is copied to the daily directory. If (%s % 300 == 0), once every 5 minutes, then the picture is copied to the weekly directory.

Once a minute a picture is uploaded to the DCARA VPS. Once an hour, a cron job will rsync all photos from the hourly directory to a server on Guinn Hall (the “Fog Server”), which will then compile the pictures into a timelapse and upload them to the VPS. Every morning a similar process is repeated for the daily timelapses, and every Sunday it is repeated for the weekly timelapses.

Pi Cameras

Hardware

The hardware consists of a Pi, Pi Camera, SD card (Samsung preferred for reliability reasons), PoE “uninjector”, outdoor box, and weatherproof lens.

The Pi is powered via ethernet. On some designs a simple device is used to pull the power pairs from the Ubiquiti PoE standard and feed those to a 5v switching DC buck. In other designs a 48v PoE to 5v adapter is used. By regulating in the camera box, line loss over a long CAT5 run can be compensated for.

The camera is mounted on standoffs inside the box. A hole is drilled to allow the camera to see out of the box, and is covered by a UV filter. The filter is sealed with RTV. See Rosston for a picture of the box.

Potential Issues

The primary issue that will cripple a Pi camera is a MIPI bus error between the Pi and the camera. This can be identified by a hung raspistill process and a picture filename ending in .jpg~. The issue can be solved by deleting the file ending in .jpg~, and rebooting the Raspberry Pi.