Canon EOS M100 - SteveJustin1963/Telescope-Tec1 GitHub Wiki
Astrophotography with Canon EOS M100 & Linux (Lubuntu) β Full CLI Guide
Goal: Shoot 2 hours of 30-second exposures β calibrate + stack in Siril using .CR2 files
1. Overview: What You Need
| Item | Purpose |
|---|---|
| Canon EOS M100 | DSLR camera (RAW .CR2 files) |
| Micro-USB cable | Connect to Linux (USB tethering) |
| UHS-I U3 SD card (16β32 GB) | Fast write speed (no delays) |
| Laptop (Lubuntu/Ubuntu) | CLI control + Siril stacking |
| Optional: DR-E12 dummy battery + power bank | 2+ hour shoots |
2. File Formats & Siril
FITS vs CR2
.fits= Astronomy standard (NASA, Hubble).CR2= Canon RAW (your M100 files)- Siril opens
.CR2directly β no conversion needed
Never convert
.CR2β.fitsunless using other tools.
3. Folder Structure
/home/sj/astro/session_20251113_1528/
βββ lights/ β Your sky photos (.CR2)
βββ darks/ β Sensor noise (lens cap on)
βββ flats/ β Vignetting fix (white surface)
βββ bias/ β Read noise (fastest shutter)
βββ processed/ β Siril output
4. CALIBRATION FRAMES GUIDE β Why & How
| Frame | Purpose | How to Shoot | Quantity | Time |
|---|---|---|---|---|
| Darks | Remove hot pixels & thermal noise | Lens cap on, same ISO, shutter, temp as lights | 10β20 | 10 Γ 30s = 5 min |
| Flats | Fix vignetting & dust | White T-shirt over lens, AV mode, same ISO, focus | 10β20 | 10 Γ 1/100s = 1 sec |
| Bias | Remove camera read noise | Fastest shutter (1/4000), lens cap on, same ISO | 20β50 | 20 Γ 1/4000s = 5 sec |
Only lights contribute to the image. Calibration removes defects.
Step-by-Step: Shoot Calibration Frames
1. Darks (After Lights β Same Temp!)
- Finish lights (2 hours)
- Leave camera in same spot (same temp)
- Put lens cap on
- In camera: Manual β ISO 1600 β 30 sec β Drive: Single
- Take 10β20 shots
- Copy to darks/ folder
2. Flats (Same Session, Same Focus)
- Keep lens on, same focus
- Point at even white surface (T-shirt, sky at dusk, white wall)
- Mode: AV (Aperture Priority) β f/5.6 β ISO 1600
- Camera auto-selects shutter (1/100β1/500)
- Take 10β20 shots (slight movement OK)
- Copy to flats/ folder
3. Bias (Any Time)
- Lens cap on
- Manual β ISO 1600 β 1/4000 sec
- Take 20β50 shots
- Copy to bias/ folder
Copy to Folders (CLI)
After plugging camera
cp /media/sj/CANON/DCIM/100CANON/IMG_*.CR2 /home/sj/astro/session_20251113_1528/lights/
cp /media/sj/CANON/DCIM/100CANON/DARK_*.CR2 /home/sj/astro/session_20251113_1528/darks/
cp /media/sj/CANON/DCIM/100CANON/FLAT_*.CR2 /home/sj/astro/session_20251113_1528/flats/
cp /media/sj/CANON/DCIM/100CANON/BIAS_*.CR2 /home/sj/astro/session_20251113_1528/bias/
5. USB Tethering with gphoto2 (Recommended)
Install
sudo apt install -y gphoto2
Test Detection
gphoto2 --auto-detect
# β Canon EOS M100 (normal mode) usb:001,002
2-Hour Shoot Script (240 Γ 30s)
cat > ~/m100_usb_2hr.sh << 'EOF'
#!/bin/bash
set -e
LIGHTS_DIR="/home/sj/astro/session_20251113_1528/lights"
mkdir -p "$LIGHTS_DIR"
echo "Plug in M100 via USB. Set to Bulb, ISO 1600, f/2.8+"
echo "Starting 240 Γ 30s exposures..."
for i in {1..240}; do
echo "Shot $i/240 at $(date +%H:%M:%S)..."
gphoto2 --capture-image-interval=31 --capture-image
sleep 1
if ls /tmp/capture_*.CR2 >/dev/null 2>&1; then
mv /tmp/capture_*.CR2 "$LIGHTS_DIR/IMG_$(printf "%04d" $i).CR2"
echo "Saved: IMG_$(printf "%04d" $i).CR2"
fi
done
echo "SHOOT COMPLETE! 240 images in $LIGHTS_DIR"
EOF
chmod +x ~/m100_usb_2hr.sh
Run
~/m100_usb_2hr.sh
6. FULL CALIBRATION + STACK in Siril (CLI)
cd /home/sj/astro/session_20251113_1528
cat > m100_orion.siril << 'EOF'
# Load light frames
load lights/*.CR2
# FULL CALIBRATION (uncomment when ready)
preprocess -dark=darks/*.CR2 -flat=flats/*.CR2 -bias=bias/*.CR2 -cfa
# Register (align stars)
register
# Stack (average)
stack avg
# Save final image
save orion_m100_calibrated
quit
EOF
Run stacking with calibration
siril-cli -s m100_orion.siril 2>/dev/null
View Result
siril orion_m100_calibrated.fits
# Press Ctrl+A β Auto Stretch
7. SD Card & Write Speed
| Shoot | Size |
|---|---|
| 240 Γ 30s | ~6 GB |
| Recommended: SanDisk Extreme 32GB UHS-I U3 | No delays |
Write time: ~0.7s per 25MB β no gap between 30s shots
8. Power for 2+ Hours
- Stock battery: ~1 hour with WiFi/USB
- Solution:
- DR-E12 dummy battery + USB 5Vβ8V step-up cable + 10,000 mAh power bank
9. WiFi Alternative (Not Recommended)
- qDslrDashboard AppImage links broken (404)
- gPhoto2 over USB is faster, more reliable
- Avoid WiFi: slow, drains battery, drops connection
10. Test with Sample FITS (Already Downloaded)
cd /home/sj/astro/session_20251113_1528
cat > test_stack.siril << 'EOF'
load lights/*.fits
register
stack avg
save hubble_test_stack
quit
EOF
siril-cli -s test_stack.siril 2>/dev/null
siril hubble_test_stack.fits
11. Troubleshooting
| Issue | Fix |
|---|---|
nmcli: command not found |
sudo apt install network-manager |
gphoto2: no camera |
Replug USB, try gphoto2 --reset |
Broken pipe in Siril |
Harmless β ignore or add 2>/dev/null |
404 on qDslrDashboard |
Use USB gPhoto2 instead |
12. Final Commands Summary
1. Test camera
gphoto2 --auto-detect
2. Start 2-hour shoot
~/m100_usb_2hr.sh
3. Stack with calibration
siril-cli -s m100_orion.siril 2>/dev/null
4. View
siril orion_m100_calibrated.fits
You're now a CLI astrophotographer with full calibration.
Next: Add add shutdown or email alert β just ask!
13. Deep Sky Object Targets β Best for M100 + 30s Exposures
| Target | Name | Best Season | Difficulty | Notes |
|---|---|---|---|---|
| M42 | Orion Nebula | Winter | Easy | Bright, large, perfect for beginners |
| M45 | Pleiades | Winter | Easy | Star cluster, wide field |
| M31 | Andromeda Galaxy | Autumn | Easy | Huge, visible to naked eye |
| M81/M82 | Bodeβs + Cigar | Spring | Medium | Galaxy pair, need dark sky |
| M51 | Whirlpool Galaxy | Spring | Medium | Spiral arms with 2+ hours |
| M57 | Ring Nebula | Summer | Medium | Small, needs accurate framing |
| M27 | Dumbbell Nebula | Summer | Easy | Bright planetary nebula |
| M13 | Hercules Cluster | Summer | Medium | Globular cluster, tight stars |
| M8/M20 | Lagoon + Trifid | Summer | Easy | Colorful nebulae, wide field |
| NGC 7000 | North America Nebula | Summer | Medium | Large, needs HΞ± filter later |
Recommended First Targets (30s Γ 240)
| Target | ISO | Aperture | Total Time | Result |
|---|---|---|---|---|
| M42 | 1600 | f/2.8 | 2 hours | Bright core + faint wings |
| M31 | 800β1600 | f/4 | 2 hours | Core + dust lanes |
| M45 | 800 | f/3.5 | 1.5 hours | Blue reflection + stars |
Tip: Use Stellarium (
sudo apt install stellarium) to find & center targets.
Framing Guide (M100 + Kit Lens 15β45mm)
| Target | Focal Length | Field of View |
|---|---|---|
| M42 | 15mm | 10Β° Γ 7Β° (fits whole nebula) |
| M31 | 24mm | 6Β° Γ 4Β° (core + halo) |
| M51 | 45mm | 3Β° Γ 2Β° (tight, but detailed) |
Use live view + 10x zoom to center.
Start with M42 β itβs forgiving and stunning in 2 hours.
13. Deep Sky Object Targets β Best for M100 + 30s Exposures
| Target | Name | Best Season | Difficulty | Notes |
|---|---|---|---|---|
| M42 | Orion Nebula | Winter | Easy | Bright, large, perfect for beginners |
| M45 | Pleiades | Winter | Easy | Star cluster, wide field |
| M31 | Andromeda Galaxy | Autumn | Easy | Huge, visible to naked eye |
| M81/M82 | Bodeβs + Cigar | Spring | Medium | Galaxy pair, need dark sky |
| M51 | Whirlpool Galaxy | Spring | Medium | Spiral arms with 2+ hours |
| M57 | Ring Nebula | Summer | Medium | Small, needs accurate framing |
| M27 | Dumbbell Nebula | Summer | Easy | Bright planetary nebula |
| M13 | Hercules Cluster | Summer | Medium | Globular cluster, tight stars |
| M8/M20 | Lagoon + Trifid | Summer | Easy | Colorful nebulae, wide field |
| NGC 7000 | North America Nebula | Summer | Medium | Large, needs HΞ± filter later |
Recommended First Targets (30s Γ 240)
| Target | ISO | Aperture | Total Time | Result |
|---|---|---|---|---|
| M42 | 1600 | f/2.8 | 2 hours | Bright core + faint wings |
| M31 | 800β1600 | f/4 | 2 hours | Core + dust lanes |
| M45 | 800 | f/3.5 | 1.5 hours | Blue reflection + stars |
Tip: Use Stellarium (
sudo apt install stellarium) to find & center targets.
Framing Guide (M100 + Kit Lens 15β45mm)
| Target | Focal Length | Field of View |
|---|---|---|
| M42 | 15mm | 10Β° Γ 7Β° (fits whole nebula) |
| M31 | 24mm | 6Β° Γ 4Β° (core + halo) |
| M51 | 45mm | 3Β° Γ 2Β° (tight, but detailed) |
Use live view + 10x zoom to center.
Start with M42 β itβs forgiving and stunning in 2 hours.
14. M42 (Orion Nebula) β Full Add-On Guide
Why M42?
- Brightest nebula in sky β visible even in light pollution
- Huge β fits perfectly in M100βs wide field
- Forgiving β shows detail in just 1β2 hours
Camera Settings (M100)
| Setting | Value |
|---|---|
| Mode | Manual (M) |
| Shutter | Bulb (30 sec) |
| ISO | 1600 |
| Aperture | f/2.8 or widest |
| White Balance | Daylight (5500K) |
| Drive | Remote (USB or app) |
| Image Format | RAW (.CR2) |
| Lens | 15β45mm @ 15mm |
Step-by-Step Shoot Plan
- Find Orionβs Belt β Look down β M42 is the "sword"
- Use Stellarium: Search "M42" β Center β Match view
- Frame: Trapezium stars in center, nebula filling frame
- Focus: Live View 10x β Bright star β Manual focus
- Run script:
~/m100_usb_2hr.sh - After: Shoot calibration frames (darks/flats/bias)
Expected Result (2 Hours)
| Stack | What Youβll See |
|---|---|
| No calibration | Bright core, some glow |
| With calibration | Pink/purple wings, dark dust lanes, Trapezium stars sharp |
Siril Script for M42 (Calibrated)
cat > ~/m42_orion.siril << 'EOF'
load lights/*.CR2
preprocess -dark=darks/*.CR2 -flat=flats/*.CR2 -bias=bias/*.CR2 -cfa
register
stack avg
save m42_calibrated
quit
EOF
siril-cli -s ~/m42_orion.siril 2>/dev/null
siril m42_calibrated.fits
Pro Tips for M42
- Light pollution? Still works β core punches through
- Moon out? Avoid full moon
- Add later: HΞ± clip filter = deeper red
M42 = Your first βwowβ image. Shoot it tonight.