Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Aurora Chaser

An Axis camera that knows where to look β€” and when not to bother.

A standalone ACAP for AXIS OS 12 that aims an Axis PTZ camera at the brightest visible aurora. It reads the NOAA SWPC OVATION nowcast every few minutes, works out which part of the sky is actually worth photographing from your camera's position, and turns the lens there β€” then checks the sun, the cloud and the moon, and stands down when the answer is no.

πŸ“„ Full documentation and screenshots β†’

Aurora Chaser map view


What makes it different

It aims. Not an alert β€” a PTZ movement. The app ranks every visible cell of the auroral oval, clusters them into arcs, and drives the camera via presets, CamSwitcher views, or absolute pan/tilt. Tilt is calculated: the apparent elevation of a curtain follows from its distance.

It knows when not to. Four conditions multiply:

activity Γ— darkness Γ— clear sky Γ— moonlight = score

Any one at zero zeroes the result. A 90 % aurora forecast at noon scores exactly nothing, and the app says which factor is stopping it rather than reporting a bare "quiet".

It sees red aurora. Most models track the green curtain at 110 km. Aurora Chaser also evaluates the red 630 nm layer at 230 km, which clears the horizon from 1,687 km rather than 1,175 km. That is the difference between detecting a mid-latitude storm and reporting an empty sky β€” during the May 2024 G5 storm, observers at 50Β°N photographed red aurora whose base sat over the Baltic.


Data sources

All free, all public, no API key required.

Source Provides Cadence
NOAA SWPC OVATION Global 1°×1Β° visible-aurora probability, 65,160 cells ~5 min, ~30 min ahead
Planetary Kp 3-hourly index + 3-day forecast 3 h
Real-time solar wind Bz/Bt, speed, density at L1 (IMAP, ACE backup) 1 min
Open-Meteo Cloud cover along each sightline per scan
AuroraWatch UK Ground magnetometer status (optional) 3 min
Sun & Moon Solar elevation, lunar phase and altitude computed locally

Note. The SWPC viewline product was removed in May 2026 β€” this app uses the OVATION grid directly, which is both still published and more useful.


Build

Docker is the only prerequisite. TypeScript is compiled inside the container.

cd aurora-chaser-acap
sh build.sh arm64      # ARTPEC-8/9  β†’ aarch64
sh build.sh armhf      # ARTPEC-7    β†’ armv7hf
sh build.sh            # both

First run pulls the ~2 GB ACAP Native SDK image; later builds are cached and take under a minute. Use sh build.sh, not ./build.sh β€” the exec bit does not survive on exFAT volumes.

See aurora-chaser-acap/BUILD.md for the full build notes, the preflight checks, and a troubleshooting table.

Install

Camera UI β†’ System β†’ Apps β†’ enable Allow unsigned apps β†’ Add app β†’ upload the .eap matching your chip.

Settings UI: http://<camera>/local/aurora_chaser/

Expected first-start log:

=== Aurora Chaser ACAP v1.1.1 ===
HTTP server listening on 127.0.0.1:<port>
Scan loop started
[DEBUG] OVATION: 65160 cells in 812ms, valid 2026-08-15T23:54:00.000Z
[INFO]  Aurora: green 71% bearing=352.0Β° elev=18.4Β° dist=310km score=0.612 preset=2

…or, in daylight, Darkness gate closed (sun 12.4Β°) β€” which is the app working correctly, not failing.


Repository layout

.
β”œβ”€β”€ aurora-chaser-acap/     the ACAP itself
β”‚   β”œβ”€β”€ Dockerfile          builds the .eap (compiles TS in-container)
β”‚   β”œβ”€β”€ build.sh            docker build + docker cp, both architectures
β”‚   β”œβ”€β”€ BUILD.md            build notes, preflight, troubleshooting
β”‚   └── app/
β”‚       β”œβ”€β”€ manifest.json   ACAP manifest (schema 2.0, AXIS OS 12.10+)
β”‚       β”œβ”€β”€ aurora_chaser   launcher (filename must equal appName)
β”‚       β”œβ”€β”€ preflight.sh    manifest assertions, run during the build
β”‚       β”œβ”€β”€ src/            TypeScript
β”‚       └── html/           settings UI + vendored Leaflet
└── docs/                   GitHub Pages site

Source map

File Role
aurora.ts The four-gate orchestrator
ovation.ts OVATION grid: fetch, cache, band-aware cell resolution
sky.ts Sun/moon, darkness gate, line-of-sight geometry
spaceweather.ts Kp series, solar wind, coupling index
cloud.ts Cloud gate, sampled along each sightline
aurorawatch.ts Lancaster magnetometer status
scanner.ts Scan loop, hysteresis, dwell, camera dispatch
vapix.ts Digest auth (MD5/SHA-256), PTZ, CamSwitcher, CamOverlay
server.ts settings.cgi, status.cgi, ovation.cgi, static assets

Requirements

  • AXIS OS 12.10 – 13
  • ARTPEC-7 (armv7hf) or ARTPEC-8/9 (aarch64)
  • A PTZ camera, or CamSwitcher views, or a fixed camera for overlay-only use
  • Optional: CamOverlay for burned-in status graphics

No runtime dependencies β€” the app is pure Node standard library, with a Node 20 runtime bundled into the package because AXIS OS ships none.


Acknowledgements

Built on the Storm Chaser platform, which supplies the VAPIX, CamSwitcher, CamOverlay and settings-UI layers.

NOAA SWPC data is public domain. Open-Meteo's free tier is non-commercial β€” set an API key for commercial deployments. AuroraWatch UK data Β© Lancaster University.

Licence

MIT β€” see LICENSE.


If this is useful to you: β˜• ko-fi.com/K3K6RR4LY

About

🌌 Your AXIS PTZ camera already sits under the sky every night. ⚑ Aurora Chaser reads the NOAA OVATION nowcast, works out which part of that sky is worth photographing 🎯 and turns the lens there. β˜€οΈ Waits for the sun below βˆ’6Β°, ☁️ checks cloud, πŸŒ• discounts the moon β€” and 🚫 stands down when it shouldn't bother.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages