{"id":21714825,"url":"https://github.com/redraw/satellite-passes-esp8266","last_synced_at":"2026-05-06T10:37:48.309Z","repository":{"id":85516522,"uuid":"262651916","full_name":"redraw/satellite-passes-esp8266","owner":"redraw","description":"blink your LED when a satellite is passing by 🔮","archived":false,"fork":false,"pushed_at":"2020-06-17T03:31:05.000Z","size":589,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-21T04:51:31.803Z","etag":null,"topics":["esp8266","micropython","space"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redraw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-09T20:19:34.000Z","updated_at":"2025-01-21T15:29:06.000Z","dependencies_parsed_at":"2023-03-13T05:50:02.500Z","dependency_job_id":null,"html_url":"https://github.com/redraw/satellite-passes-esp8266","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/redraw/satellite-passes-esp8266","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redraw%2Fsatellite-passes-esp8266","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redraw%2Fsatellite-passes-esp8266/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redraw%2Fsatellite-passes-esp8266/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redraw%2Fsatellite-passes-esp8266/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redraw","download_url":"https://codeload.github.com/redraw/satellite-passes-esp8266/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redraw%2Fsatellite-passes-esp8266/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32689450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp8266","micropython","space"],"created_at":"2024-11-26T00:39:00.998Z","updated_at":"2026-05-06T10:37:48.282Z","avatar_url":"https://github.com/redraw.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![demo](assets/demo.gif)\n\nBlink your LED when a satellite is passing by!\n\nThis is a small side-project I had for a long time ago but this time I wanted to port it on a Wemos D1 mini. A board that comes with the ESP8266, a microchip that provides a WiFi interface.\n\n## Installation\n\n#### Flash MicroPython into your ESP8266 board\n[Download](https://micropython.org/download/esp8266/) and flash MicroPython following the instructions from the [official website](http://docs.micropython.org/en/latest/esp8266/tutorial/intro.html#intro).\n\nAfter choosing a firmware, these are roughly the steps for any recent Debian distro,\n```bash\n$ wget https://micropython.org/resources/firmware/esp8266-20191220-v1.12.bin\n$ pip install esptool\n# Connect the board on a USB port\n$ esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20191220-v1.12.bin\n```\n\n#### Check that it's working\nOnce firmware is flashed, you can enter the Python REPL by serial USB connection. You can just use GNU `screen` setting the baudrate at 115200, but I'd recommend to install [mpfshell](https://github.com/wendlers/mpfshell) so that we can upload and manage the files later.\n\n```bash\n$ mpfshell ttyUSB0\nConnected to esp8266\n\n** Micropython File Shell v0.9.1, sw@kaltpost.de ** \n-- Running on Python 3.7 using PySerial 3.4 --\n\nmpfs [/]\u003e repl\n```\n\nWrite `repl`, hit Enter and you're inside Python REPL! You can exit with `Ctrl+]`\n\nInside `mpfshell` you can write `help` to list all commands.\n\n#### Wire RST pin\nThis is a requirement to wake up the ESP8266 from deep sleep. The reason is, after fetching the next pass, the code instructs the board to deep sleep until the next pass to save battery. \n\nWhen the chip triggers the RTC alarm to wake up, it sends a voltage on pin `D0`, so in order reset the board, we need to wire `D0` pin to `RST` pin like this,\n\n![Deepsleep Reset Wiring](assets/rst-wire.png)\n\n#### Connect a LED\nConnect a LED to `D2` (GPIO 4) and ground. You can choose another pin and update `config.py` later.\n\n## Run\nClone the repo, copy or rename `config.py.example` to `config.py` and set your own variables.\n\n- `NORAD_ID` is the unique number to identify any satellite, for example the International Space Station is `25544`. Set the one you want to track.\n- `LAT` / `LON` coordinates.\n- `ONLY_VISIBLE` is based on API response's `visible` field, which tells if the pass would be probably visible to naked eye according to certain conditions. You can check the API [source code](https://github.com/redraw/satellite-passes-api), or read more [here](https://www.heavens-above.com/faq.aspx). If `True` the LED will turn on only if the pass is visible.\n- `WIFI_SSID` / `WIFI_PASS` , your WiFi credentials.\n\n### Upload the code\nEnter `mpfshell` so that we can upload the files,\n\n```bash\nmpfs [/]\u003e mput .*\\.py\n```\n\nNow, just reset the board and that's it (hopefully!).\n\n## Known Issues with RTC\nRTC clock in ESP8266 is said to not be very accurate. That's why in `boot.py` it syncs with an NTP server using `ntptime` at every reset, but I can't be sure if deep sleeping for long hours would drastically drift clock time.\n\n*Update:* As far as I've tested, it resets at 71 minutes (milliseconds that fit in `uint32_t`). So, added a limit to wake up the board every 60 minutes, at most.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredraw%2Fsatellite-passes-esp8266","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredraw%2Fsatellite-passes-esp8266","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredraw%2Fsatellite-passes-esp8266/lists"}