ISS Notifier Using ATTiny

My sister loves astronauts and the International Space State, so, with Christmas coming up, I knew I had found my gift to her when I saw Nathan Bergey’s ISS Notify.

The idea is simple: light up a lamp when the Space Station is overhead. Nathan’s implementation uses an Arduino-compatible Teensy 2.0 to light the LEDs and to communicate to a host computer, where a python program parses data about the ISS orbit and returns a simple “yes” or “no” to the microcontroller.

My goal is to create a self-contained device which won’t require a host computer. That means parsing all data on the microcontroller.

Hardware selection

  • The lamp will be a plexiglass edge-lit display
  • The microcontroller will be an ATTiny 84. My reason for selecting the ATTiny is to gain experience with AVR microcontrollers outside of the Arduino world, and because I have already played with PICs (in my EE200 class) and ARMs (with the Cypress PSoC4).
  • For communication, an ethernet SPI module (based on the ENC28J60 chip)

Software design

  • The uC will communicate over SPI to the ethernet module (requirement: SPI library)
  • JSON will be used for web queries and replies (requirement: JSON parsing library)

On power up:

  • First, an ip to geolocation service will be queried to find current LAT/LONG
  • Then, this LAT/LONG and UTC time will be used to find the current time

Periodically:

  • The ISS Pass Times API from Open-Notify (another one of Nathan Bergey’s projects) will be queried to find the next pass time
  • The current UTC time will be queried again, the time zone offset will be subtracted, and the result will be compared with the next pass time.
  • Rinse and repeat