{"id":23359823,"url":"https://github.com/firehed/esp8266-optoma-projector","last_synced_at":"2025-04-10T10:32:05.329Z","repository":{"id":138434955,"uuid":"116332353","full_name":"Firehed/ESP8266-Optoma-Projector","owner":"Firehed","description":null,"archived":false,"fork":false,"pushed_at":"2018-01-06T07:05:05.000Z","size":10,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T09:21:10.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Arduino","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Firehed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-01-05T02:43:21.000Z","updated_at":"2023-02-19T09:32:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"37b55080-7ede-4fe1-b8c8-e58823bdee45","html_url":"https://github.com/Firehed/ESP8266-Optoma-Projector","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Firehed%2FESP8266-Optoma-Projector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Firehed%2FESP8266-Optoma-Projector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Firehed%2FESP8266-Optoma-Projector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Firehed%2FESP8266-Optoma-Projector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Firehed","download_url":"https://codeload.github.com/Firehed/ESP8266-Optoma-Projector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248199136,"owners_count":21063641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-12-21T11:12:04.575Z","updated_at":"2025-04-10T10:32:05.321Z","avatar_url":"https://github.com/Firehed.png","language":"Arduino","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP8266-Optoma-Projector\nControl an Optoma projector over wifi with an ESP8266\n\n## Goals\n\nExpose basic RS-232 control commands for the projector over HTTP.\n\n## Configuration\n\n* Copy `wifi.example.h` to `wifi.h`\n* Fill in the values to connect to your wifi network\n\n## Usage\n\n### `GET /`\n\nParameters: none\n\nResponse: `text/plain`\n\nExample:\n\n`curl optoma-projector.local`\n\n```\nOKa\n```\n\nEmits the raw output from the \"power state\" command\n\nPer the manual:\n```\na: power state\n  0 = off\n  1 = on\n```\n### `POST /power`\n\nParameters:\n\n* `state`: string \"on\" or \"off\"\n\nResponse: `text/plain`\n\nExample:\n\n`curl -d state=on optoma-projector.local`\n\n```\nP\n```\n\nEmits the raw output from the power on/off command.\n`P` is \"pass\" and `F` is \"fail\".\n\n## Wiring\n\nThis was built and tested using an ESP-12e dev board and a [MAX3232 UART-to-RS232 adapter](https://www.amazon.com/gp/product/B00OPU2QJ4).\nThis adapter (or an equivalent) is NOT OPTIONAL, much to my dismay.\nConnect as follows:\n\n| Adapter | ESP8266 |\n|---------|---------|\n| GND     | G       |\n| OUT     | RX      |\n| IN      | TX      |\n| VCC     | 3v      |\n\nNote that OUT refers to the arrow pointing *away* from the chip, and IN refers to the arrow pointing *towards* it.\nThe four bottom-most pins on the right side (top view) on the dev board should be the ones you want.\n\n## Notes\nIn the Arduino IDE, I have selected a NodeMCU ESP-12e board, 115200 baud connection.\nIt would always error out during uploading unless the wiring was disconnected.\nNo idea if that's normal or something specific to serial output, but disconnecting the wires fixed it.\nPressing the flash button before/during programming was not necessary with the wiring disconnected, and only worked about 2% of the time with it connected.\nFollow [this guide](https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-arduino-ide) to set up Arduino IDE to speak to the ESP8266 boards (but select NodeMCU instead of the Adafruit board).\n\n\nUpon setup, it will attempt to broadcast itself at `optoma-projector.local`.\nDepending on your network and DNS configuration, this may not resolve.\nTo find the device's IP, the easiest approach is to probably just check your router's DHCP leases.\nIt should print to the serial console as well, but that will be inaccessible when connected to the switch (so make note of it when programming via the Arduino IDE).\n\nThere is a lot of room for improvement, which is welcome.\n\nThere is ABSOLUTELY NO SECURITY here - this is a plaintext HTTP server with no authentication.\nAs such, it is very strongly advised that you do not expose it beyond your local network.\nTypically this is automatic in a home network with most routers, but it is worth confirming (especially if your network supports IPv6).\n\n## License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirehed%2Fesp8266-optoma-projector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffirehed%2Fesp8266-optoma-projector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirehed%2Fesp8266-optoma-projector/lists"}