Giter Club home page Giter Club logo

astro-timer's Introduction

astro-timer

hardware and firmware for an ATMEGAx8-powered astrophotography timer

astro-timer

astro-timer in a 3D-printed enclosure


This device controls a camera (in bulb mode) for a sequence of light frames for astrophotography. The camera is connected to the 2.5mm jack. The exposure length, exposure count, time between exposures, and optionally mirror lockup time can be set. Additionally, screen brightness can be adjusted, and preferences can be saved in NVRAM.

Controls (from left to right):

  • Set button
  • Select button
  • Fancy control knob

Usage:

  • Press the Select button to cycle between parameters (exposure length, time between exposures, exposure count, and the options submenu). Alternatively, you can hold Select and rotate the knob to move through this menu in either direction.
  • The options submenu includes mirror lockup time, half-press setting (never, first shot in a series, every shot), brightness, encoder knob direction, and battery voltage).
  • Rotate the fancy control knob to adjust the currently visible parameter. If this parameter is exposure length or time between exposures, it will be adjusted in discrete stops.
  • It is possible to set the minutes and seconds to arbitrary values via the Set button. Press Set and the minutes value will flash. Turn the knob to set it to any value, then press Set again. The process will repeat for the seconds value.
  • Press the control knob in to start an exposure sequence, or enter/exit the options submenu.
  • You can adjust display brightness at any time by holding Set and turning the knob.
  • Press Set while looking at "Opts" to save current settings to non-volatile memory, where they will persist after changing batteries, etc.
  • While the exposure sequence is running,
    • Turn the control knob adjust the display brightness.
    • Press Select to toggle between displaying remaning time vs remaining exposure count.
    • Push the control knob to stop the exposure sequence.
  • Set the exposure count to 0 to take an unbounded number of shots. The counter will show the number of exposures complete, rather than the number remaining (i.e., counting up, not down).
  • Push and hold the control knob to turn the device off. (Press any button to turn it back on later.) The device will power itself down after 20 minutes of inactivity.

Parts:

  • Atmel ATmega328P microcontroller (the program fits in ATmega88 or larger).
  • 4-digit 7-segment LED display, common anode. The original PCB uses COM-09483 from SparkFun, model YSD-439AR6B-35. Other compatible devices include Lite-ON LTC-4627, Para Light A-394, Vishay TDCR1050M).
  • Suitable resistors to drive the LEDs (I use 470 ohms)
  • 3V power supply (e.g. 2x AAA batteries)
  • Two momentary-contact switches (Set and Select keys)
  • One rotary encoder (for adjusting parameter values up and down) with switch (Start key)
  • Two NPN transistors (interface to camera) and base resistors (22K)
  • One 32.768kHz watch crystal, 6pf load capacitance
  • And some sort of jack compatible with your camera's remote shutter release port

The wiring is as follows (see KiCad schematic in hardware/)

  • PORTB0..3 (output) = Digit anode drivers
  • PORTB4 (output) = colon / apostrophe anodes
  • PORTB5 (output) = Transistor to camera (full press; tip in Canon connector)
  • PORTB6..7 = 32.768kHz watch crystal
  • PORTC0 (input) = Rotary encoder CLK
  • PORTC1 (input) = Rotary encoder DT
  • PORTC2 (input) = Start key (on rotary encoder)
  • PORTC3 (input) = Select key
  • PORTC4 (input) = Set key
  • PORTC5 (output) = Transistor to camera (optional, half press; ring in Canon connector)
  • PORTD0..7 (output) = Segment cathodes (PD7 = A, PD6 = B, ... PD0 = DP)

Compile with AVRGCC.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.