My New Obsession: Building a Night Sky Pi
Alright, I’m officially kicking off my Night Sky Pi project today! I’ve started this thing like three times now, but always got distracted or overcomplicated it. This time I’m determined to actually finish the darn thing, which is why I’m starting in January - plenty of time to get it done before the good stargazing weather returns. If you want to follow along with the code, I’ll be posting everything on GitHub.
The Hardware Constraints
I’m deliberately keeping this project somewhat affordable (by astrophotography standards, anyway). The brain of the operation will be a Raspberry Pi Zero 2 W, which I chose because it’s only about £15 and you can actually find them in stock these days, unlike some of the other Pi models.
For the camera, I’m sticking with the Raspberry HQ Camera. It’s not the most amazing camera out there, but it’s reasonably priced and widely available, which fits the whole “accessible” vibe I’m going for.
Look, I know this hardware isn’t going to rival fancy DSLR setups with tracking mounts that cost thousands. The Pi Zero is pretty underpowered, and the camera has its limitations. This means I need to be realistic about what the system can do - there won’t be any onboard image stacking or heavy processing, as that would absolutely choke the poor little Pi. Instead, I’m designing this to be a dedicated image capture device that bundles everything up for processing on a beefier computer later.
The Basic Design
I’ve tried to keep the system flow pretty straightforward - I don’t want to overcomplicate things and never finish (again). Here’s how I’m envisioning it working:
The whole thing will run as a Python service that starts automatically on boot. When it fires up, it’ll do a quick sanity check (camera working? storage available? location set correctly?), then load all its settings.
Based on the current time and location, it’ll figure out if it’s dark enough to take pictures. For version 1.0, I’m keeping it simple - just sunset to sunrise. Later versions might get fancier with customizable schedules.
If it’s photo time, the camera wakes up and starts capturing images. After each shot, it’ll quickly analyze how things look and tweak the exposure settings if needed for the next one. This loop continues until the sun starts coming up.
Once we hit daytime, the system switches to packaging mode, where it bundles up all the night’s captures with their metadata into a nice tidy package. Then it either saves them locally or ships them off somewhere else (probably via FTP or S3 in the first version).
I’m also thinking about adding a power-saving mode where it’ll go into a deep sleep during the day to conserve energy. This would be super useful if I decide to run this thing on solar/battery power later on.
Next Steps
First thing on my list is getting the GitHub repo properly set up with a decent README. For the actual coding, I’m going to start by building out the main program loop and the basic structure of each module. I’d rather get the overall flow working first with placeholder functions before diving into the nitty-gritty details of each component.
If you’re interested in following along or maybe even building your own, everything will be on GitHub. I’ll try to post updates as I make progress!