A Stroll Through the Black
It's been about two years since I started astrophotography, and it has been a lot of fun. Around October of 2025, I began assembling a rig to send to Starfront Remote Observatory, and it has been running since December. Behold!
For those who don't know: Starfront is a remote observatory under superbly dark skies in Texas. They have 20 buildings with roll-off roofs, and people like me pay a monthly fee to host our telescopes there.
As it goes with me, this has turned into a programming side project, as well. My entire nightly imaging flow is automated: roof safety, day/night cycle tracking, scheduling, acquisition, and calibration frames all happen without input from me.
I'll jump into technical details later, but here's a quick outline of how I monitor my imaging sessions:

While I can check on the rig via my browser at any point, I normally don't. Instead, I watch the automated timelapse the next morning. Here's a typical night:
Automation, dark skies, and clear weather have conspired to absolutely inundate me with data. Of the nearly 1TB of images I've taken in my 10 months at SFRO, I've only processed and uploaded about a third of my images. I upload most completed images to AstroBin, but some of the higher-resolution work needs a proper viewer to do it justice. For those, I created space.nickcano.com, which hosts the space photos that you'll be drooling over as you read this post.
Dark Skies
Words cannot express the magnificence of dark skies plus long integration times. On the left is an 80-minute stack from San Diego Astronomy Association's dark site, which is Bortle 3. On the right is a 39-hour stack from SFRO, which is Bortle 1. Not a fair comparison, but a good demonstration nonetheless.
Beyond a point, though, integration time has diminishing returns. Instead of repeating images of the same thing, time can be multiplexed across a large region of space. The images can then be stitched together into a large mosaic; what results is a magnificent image with stunning resolution. Here is a North America Nebula mosaic with 4 panels arranged 2-by-2:
The abundant time and data also leave room to learn new techniques. First, let's take a look at my filter wheel so we understand what types of data I can actually capture:

Now, here is an image of the Rosette Nebula processed with a technique called Continuum Subtraction:
In my other images, there is typically a mix of RGB broadband color as well as narrowband hydrogen (HΞ±), sulfur (SII), and oxygen (OIII) emissions. In the Triangulum image, hydrogen signal is used to make the reds pop while oxygen adds body to the galaxy. The North America Nebula image used L-Pro broadband data run through narrowband normalization for an SHO-style palette. I then tweaked the hues and curves to arrive at the final image.
Continuum subtraction instead uses the RGB data to estimate the broadband light continuum and subtracts it from the narrowband data, isolating the emission-line detail that would otherwise be muddied by that extra light. That's why the detail in the Rosette image stands out so much.
Post-Processing
Dark skies eliminate a lot of the pain involved in getting good data, but they aren't required. One thing that is required, though, is the skill to actually extract and represent the data collected by a telescope. Here's an example: The Heart Nebula. On the left is 8 hours of exposure, on the right is 23 hours. Both from similar SoCal skies, even sharing a dataset. Other than the exposure time, there are two key differences:
- 6 extra months of practice in processing data
- the image was screened onto metal and gifted to my wife before our son was born, so I was trying really hard
There are a lot of things about that image that I can do better now, only a little over a year later, but I'm still very happy with it. Of course, my background in computer vision and imaging pipelines has accelerated my learning and has helped me create a lot of custom tooling quickly.
The initial 7 hours of that image were captured in the famously dark skies of Borrego Springs, where I spent a few nights near the end of 2024.

Most of the data I got there went unused simply because I wasn't able to adequately process the relatively short integrations. I took half a dozen hours of exposure of Bode's Galaxy and Cigar Galaxy, but could never get a satisfying brightness level on the galaxies without over-cooking the void around them.
I'm happy to say, with my SFRO rig and improved processing skills, I now have an image of Bodes and Cigar that is one of my absolute favorites. The interstellar dust that previously created horrible chromatic pepper is now a main character, suspending these beacons in the black of space.
It floors me every single time. Two galaxies, each as rich as our own, like eyes in the darkness looking back at us. The dust surrounding them is part of our Milky Way's galactic cirrus. That makes three galaxies dominating the frame, saying nothing of the little ones hanging out all around the background. Space is fucking insane.
Observatory Design
Before my rig was even delivered to SFRO, I had settled on Tailscale as the backbone of remote communications with my existing Synology NAS as the owner of the actual data. Those core decisions made everything else pretty easy, since they solve private networking and bulk content storage for every other use case.

Drawing from my game hacking background, I was pretty quickly able to reverse engineers ASIAIR's control protocol and wire that into a set of automations. I combined it with some common modular architecture and automation patterns that I prefer, and formed them into AI incantations in order to summon my Observatory Remote Bot, Orb.
As it stands today, Orb has spent much more time driving imaging than I have, and that's because I am progressively covering more and more of the repeat work so I can focus on pixels. I set a shooting schedule every few weeks and the rest is history. Discord messages inform me of important happenings, logs get aggregated where my agents can query them, and everything tends to run pretty smoothly.

Until Next Light
I often struggle to post the things I want to, because every time I have the motivation I feel as if there is more data and better images just around the corner. Rather than hold up another post, though, I'll end it here with a rough list of data in the queue:
| Target | Filters | Shooting | Stacked | Processed | Total Exposure |
|---|---|---|---|---|---|
| Soul Nebula | SHOcs | β | β | β | 40+ hours |
| Leo Triplet | HaRGB | β | β | β | 20+ hours |
| Sunflower Galaxy | HaRGB | β | β | β | 20+ hours |
| Monkey Head Nebula | SHO | β | β | β | 30+ hours |
| Pillars of Creation | SHOcs | β | β | β | 30+ hours |
| Pillars of Creation | RGB | β | β | β | 30+ hours |
| Lagoon Nebula | SHO | β | β | β | 30+ hours |
| Lagoon Nebula | LPro | β | β | β | 30+ hours |
| Wizard Nebula | SHOcs | β | β | β | 50+ hours |
| Elephant's Trunk | SHO | β | β | β | 40+ hours |
| Veil Nebula Mosaic 3Γ3 | LPro | β | β | β | 50+ hours |
| Orion Mosaic 8Γ4 | LPro | β | β | β | 35+ hours |
| Andromeda Galaxy | LPro | β | β | β | 100+ hours |