Complete reference for using the pocs command line tool.
If you're new to POCS, start with these essential commands:
# 1. First-time setup (interactive wizard)
pocs config setup
# 2. Test your mount
pocs mount setup
pocs mount search-home
pocs mount park
pocs mount slew-home
pocs mount slew-to-target --target M42 # Pick a target that's up
pocs mount park
# 3. Test your camera
pocs camera setup
pocs camera take-pics
# 4. Run automated observing
pocs run autoFor detailed workflows, see Common Workflows below.
Interactive configuration wizard - The first command you should run after installation.
pocs config setupThis will ask a series of questions to set up your observatory configuration, including (pre-filled defaults in parentheses, press Enter):
Setting up configuration for your PANOPTES unit.
This will overwrite any existing configuration. Proceed? [y/n] (n): y
Enter the base directory for POCS (/home/panoptes/POCS):
Enter the user-friendly name for this unit (Generic PANOPTES Unit): SuperUnit
Enter the PANOPTES ID for this unit. If you do not have one yet just use the default: (PAN000):
Enter the latitude for this unit, e.g. "19.5 deg": (19.54 deg):
Enter the longitude for this unit, e.g. "-154.12 deg": (-155.58 deg):
Enter the elevation for this unit. Use " ft" or " m" for units, e.g. "3400 m" or "12000 ft": (3400.0 m):
Enter the timezone for this unit (UTC): HST
Enter the GMT offset for this unit in minutes, e.g. 60 for 1 hour ahead, -120 for 2 hours behind: (-600): For beginners: This is the easiest way to get started!
View configuration settings.
# View all settings
pocs config get
# View specific setting
pocs config get location.latitude
pocs config get nameModify configuration settings.
pocs config set name "My Observatory"
pocs config set location.latitude 19.54Check if the configuration server is running.
pocs config statusMain command for automated observing - Runs the full observation sequence.
# Run with real hardware
pocs run auto
# Run in simulator mode (for testing without hardware)
pocs run auto --simulator allWhat it does:
- Initializes observatory
- Checks safety conditions
- Schedules targets
- Slews to targets
- Takes observations
- Repeats until sunrise or stopped
For beginners: Start with simulator mode to learn how POCS works!
Run polar alignment sequence.
pocs run alignmentHelps align your mount to the celestial pole for better tracking.
Take flat field calibration images.
# Take evening flats (default)
pocs run take-flats
# Take morning flats
pocs run take-flats --which morning
# Custom altitude/azimuth coordinates
pocs run take-flats --alt 45.0 --az 270.0
# Adjust exposure settings
pocs run take-flats --initial-exptime 5.0 --max-exposures 15Options:
--which, -w: Either 'evening' or 'morning' (default: evening)--alt, -a: Altitude for flats in degrees (default: 70 if not specified)--az, -z: Azimuth for flats in degrees (default: 180° opposite the sun position if not specified)--min-counts: Minimum ADU count (default: 1000)--max-counts: Maximum ADU count (default: 12000)--target-adu: Target ADU as percentage of (min + max) (default: 0.5)--initial-exptime, -e: Initial exposure time in seconds (default: 3.0)--min-exptime: Minimum exposure time in seconds (default: 0.0)--max-exptime: Maximum exposure time in seconds (default: 60.0)--max-exposures, -n: Maximum number of flats to take (default: 10)--no-tracking/--tracking: Control tracking during flats. Use--no-tracking(default) to stop tracking for drift flats, or--trackingto keep tracking enabled
What it does:
- Slews mount to specified altitude/azimuth, or defaults (70° altitude, 180° opposite sun azimuth)
- Stops tracking by default (for drift flats), unless
--trackingis used - Takes series of flat field images
- Automatically adjusts exposure time to achieve target ADU counts
For Beginners: Flat fields are important calibration images taken of a uniformly illuminated surface (like the twilight sky) to correct for dust, vignetting, and variations in pixel sensitivity.
Control your telescope mount directly.
Point the mount at a specific target.
# By common name
pocs mount slew-to-target --target M42
pocs mount slew-to-target --target "Orion Nebula"
pocs mount slew-to-target --target Polaris
# By coordinates (RA/Dec in degrees)
pocs mount slew-to-target --ra 83.82 --dec -5.39Search for the home position using the mount's homing sensors.
pocs mount search-homePark the mount in its safe position.
pocs mount parkAlways park your mount when finished observing or before shutting down!
Move mount to home position.
pocs mount slew-homeThe home position is typically the starting point for calibration and alignment.
Set the current position as the park position.
pocs mount set-parkUse this to define where the mount should go when parked.
Control your cameras directly.
Take test images.
# Take one image with default settings
pocs camera take-pics
# Take multiple images with custom exposure time
pocs camera take-pics --num-images 5 --exptime 10.0
# Specify which camera (if you have multiple)
pocs camera take-pics --camera Cam00For beginners: Great for testing your camera setup!
Take bias calibration frames (zero exposure time).
# Take 10 bias frames (default)
pocs camera take-bias
# Take more bias frames for better statistics
pocs camera take-bias --num-images 20
# Specify output directory
pocs camera take-bias --output-dir /path/to/bias/framesOptions:
--num-images/-n: Number of bias frames to capture (default: 10)--output-dir: Output directory for bias frames (default:/home/panoptes/images/bias)--convert: Convert to FITS if needed (default: True)--verbose: Print detailed processing output (default: False)
What it does:
- Takes bias frames with zero exposure time
- Stacks them into a master bias frame
- Reports statistics (sigma-clipped mean, median, std, min, max)
For beginners: Bias frames are calibration images taken with zero exposure time to measure the baseline signal from your camera's electronics. They're essential for image processing and noise reduction.
Initialize and configure cameras.
pocs camera setupCheck weather conditions:
pocs weather statusCheck environmental sensors:
pocs sensor status# 1. Run interactive setup
pocs config setup
# 2. Verify configuration
pocs config get
# 3. Find mount home position
pocs mount search-home
# 4. Test camera (in simulator mode)
pocs camera take-pics --num-images 1
# 5. Park mount
pocs mount parkBefore your first real observation:
# 1. Start with mount parked
pocs mount park
# 2. Test slewing to a bright star
pocs mount slew-to-target --target Polaris
# 3. Take a test image
pocs camera take-pics --num-images 3 --exptime 2.0
# 4. Park mount when done
pocs mount park# 1. Run automated observing
pocs run autoError: "Cannot connect to config server"
Solution:
# Start the config server
pocs config status
# If not running, restart it
pocs config setupProblem: Mount commands don't work
Solutions:
- Check mount is powered on and connected
- Verify configuration:
pocs config get mount - Try simulator mode first:
pocs run auto --simulator all - Check USB/serial connections
Problem: Camera commands fail
Solutions:
- Check camera is powered and connected
- Verify configuration:
pocs config get cameras - Try simulator mode: use
--simulator cameraflag - Check USB connections and drivers
Problem: "Permission denied" errors
Solutions:
- Make sure you're in the correct user groups (dialout, plugdev)
- Check file permissions in POCS directories
- May need to run
pocs config setupagain
Test POCS without physical hardware:
# Simulate all components
pocs run auto --simulator all
# Simulate specific components
pocs run auto --simulator mount
pocs run auto --simulator camera
pocs run auto --simulator weatherGet help for any command:
pocs --help
pocs config --help
pocs mount --help
pocs camera --help
pocs run alignment --help- New to POCS? Read Conceptual Overview
- Want to understand the architecture? See Architecture for Beginners
- Ready for Python API? Check examples/README.md
- Need term definitions? Browse the Glossary
Questions? Check the main README or visit the PANOPTES forum.