{"id":20398891,"url":"https://github.com/n1kdo/rotator-controller-controller","last_synced_at":"2026-05-31T22:31:38.101Z","repository":{"id":187557417,"uuid":"537824418","full_name":"n1kdo/rotator-controller-controller","owner":"n1kdo","description":"N1KDO Pico-W Rotator Controller Controller","archived":false,"fork":false,"pushed_at":"2026-03-15T15:42:14.000Z","size":1984,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-03-16T04:35:32.611Z","etag":null,"topics":["amateur-radio","amateur-radio-remote-control","hamradio","micropython","micropython-rpi-pico","pico-w","rotator","rotator-controller"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/n1kdo.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-17T13:56:34.000Z","updated_at":"2026-03-15T15:42:17.000Z","dependencies_parsed_at":"2025-08-16T21:18:59.349Z","dependency_job_id":null,"html_url":"https://github.com/n1kdo/rotator-controller-controller","commit_stats":null,"previous_names":["n1kdo/rotator-controller-controller"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/n1kdo/rotator-controller-controller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n1kdo%2Frotator-controller-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n1kdo%2Frotator-controller-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n1kdo%2Frotator-controller-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n1kdo%2Frotator-controller-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n1kdo","download_url":"https://codeload.github.com/n1kdo/rotator-controller-controller/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n1kdo%2Frotator-controller-controller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33752286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["amateur-radio","amateur-radio-remote-control","hamradio","micropython","micropython-rpi-pico","pico-w","rotator","rotator-controller"],"created_at":"2024-11-15T04:24:54.057Z","updated_at":"2026-05-31T22:31:38.095Z","avatar_url":"https://github.com/n1kdo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raspberry Pi Pico W IOT Antenna Rotator Controller Controller\n\nThis project uses a Raspberry Pi Pico W to internet-enable an antenna \nrotator controller that has an RS-232 interface.  The software presents a web interface \nto the rotator, and also allows direct network control by N1MM+ and other software.\n\n![](rotator_controller_controller.png)\n\nI used it for my Hy-Gain Ham IV rotator.  My Hy-Gain rotator control box has been modified to allow computer\ncontrol with the addition of a Ham Supply/Idiom Press *Rotor-EZ* module.  I further modified the rotator\ncontrol box to provide +5 Volts on Pin 1 (carrier detect) of the DE-9S RS-232 interface.  This allows the \nRaspberry Pi Pico W to rob power from the rotator control box.\n\nSee the [Documentation](documentation.md) for details.\n\nThere is very little external hardware required.  The most important other piece is a MAX3232 3.3 volt \nRS-232 level converter.  The MAX3232 is used to interface the 3.3 volt logic of the Raspberry Pi Pico W to\nthe RS-232 levels required by the antenna rotator control box.\n\n## Installing MicroPython on your Pico-W\n\n1. Download the latest stable build of [Pico W MicroPython](https://micropython.org/download/RPI_PICO_W/). \n   [This is the direct link](https://micropython.org/resources/firmware/RPI_PICO_W-20230426-v1.20.0.uf2).\n2. Connect a micro-USB cable to your PC.  Hold down the white \"BOOTSEL\" button on the Pico-W, and insert the\n   micro-USB cable into your Pico-W.\n3. The Pico-W should appear as a USB storage device on your computer.  On mine, it shows up as \"RPI-RP2 (F:)\".\n4. Copy/Paste the MicroPython .uf2 file to this drive.\n5. Disconnect the Pico-W and prepare for the next step.\n\n## Installing this software onto the Pico-W\n\nThe easiest way to get this software installed onto your Pico-W is to use the `loader.py` tool, also\nprovided in this repository.\n\n1. Download Python 3 from https://www.python.org/downloads/ and install it.  Make sure to select \"Add \n   Python 3 to Path.\"\n2. Download the contents of this GitHub repository as a zip.  Use this URL: \n   `https://github.com/n1kdo/rotator-controller-controller/archive/refs/heads/master.zip`\n3. Unpack that zip file somewhere. \n4. Open a command prompt.  (your choice.  Could be PowerShell, could be good ole CMD.)\n5. From the command line, execute the following command: `pip install pyserial` -- this will install the Python \n   serial port support/\n6. Change directory to where you unpacked the GitHub zip file, and then\n   change directory to the `src/loader` directory.\n7. From the command line, execute the following command: `python loader.py` -- this will install all the rotator\n   controller-controller software onto the Pico-W.\n\nIf you want to experiment, you can use the open-source \"Thonny\" IDE to load the python source code and HTML files\nonto the Pico W.  Unfortunately, Thonny cannot load the binary file `compass-background.png` image file into the\nproper location, but this can be worked around by using the \"upload\" feature in the controller-controller software.\n\n## What is all this stuff?\n\nImportant files:\n\n* src/rotator/main.py -- the main Python application\n* src/rotator/dcu1_rotator.py -- a Python module that queries and commands the rotator controller\n* src/rotator/http_server.py -- a Python module that implements the web server\n* src/rotator/morse_code.py -- a Python module that implements the morse code sender\n* src/rotator/n1mm_udp.py -- a Python module that implements UDP send/receive to/from N1MM+\n* src/rotator/content/rotator.html -- the rotator control web page\n* src/rotator/content/setup.html -- the setup web page\n* src/rotator/content/files.html -- the file upload/download web page\n* src/rotator/data/config.json -- the configuration file.  automatically generated on first use if not present.\n\nOther Stuff:\n\n* src/loader/loader.py -- small Python application installs the six files above onto the Pico-W\n* src/loader/pyboard.py -- patched pyboard library from Micropython. Patched to work on Pico-W.\n\nElectronic Design Files:\n\n* kicad/* -- Kicad 6 design files for schematic and PCB.\n\n## Other projects using this technology\n\nI used this same electronic design, and a lot of the same source code to make\nthe [KPA-500 IOT Thing](https://github.com/n1kdo/KPA500-remote), a web interface and \nKPA500-remote *host* for the Elecraft KPA-500 amplifier.\n\n## Yes it works with N1MM+\n\nSee [Using the Rotator Controller-Controller with N1MM+](N1MM.md)\n\nn1kdo 2025-06-25","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn1kdo%2Frotator-controller-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn1kdo%2Frotator-controller-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn1kdo%2Frotator-controller-controller/lists"}