{"id":25050552,"url":"https://github.com/edubr029/esp32-spotify-player","last_synced_at":"2026-05-09T02:32:42.178Z","repository":{"id":275869477,"uuid":"927345300","full_name":"edubr029/esp32-spotify-player","owner":"edubr029","description":"Spotify Player Display for ESP32 using playerctl and OLED I2C. ","archived":false,"fork":false,"pushed_at":"2025-02-05T01:31:26.000Z","size":9,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-12T00:38:29.036Z","etag":null,"topics":["esp32","i2c","linux","oled","oled-display","oled-display-ssd1306","playerctl","serial-communication"],"latest_commit_sha":null,"homepage":"","language":"C","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/edubr029.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":"2025-02-04T19:59:41.000Z","updated_at":"2025-08-16T15:02:06.000Z","dependencies_parsed_at":"2025-02-05T02:32:31.110Z","dependency_job_id":"a6823725-31e1-440d-9ea3-199d46446ae7","html_url":"https://github.com/edubr029/esp32-spotify-player","commit_stats":null,"previous_names":["edubr029/esp32-spotify-player"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edubr029/esp32-spotify-player","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edubr029%2Fesp32-spotify-player","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edubr029%2Fesp32-spotify-player/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edubr029%2Fesp32-spotify-player/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edubr029%2Fesp32-spotify-player/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edubr029","download_url":"https://codeload.github.com/edubr029/esp32-spotify-player/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edubr029%2Fesp32-spotify-player/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32804943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"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":["esp32","i2c","linux","oled","oled-display","oled-display-ssd1306","playerctl","serial-communication"],"created_at":"2025-02-06T09:16:30.880Z","updated_at":"2026-05-09T02:32:42.149Z","avatar_url":"https://github.com/edubr029.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://git.eduu.xyz/esp32-spotify-player\"\u003e\u003cimg src=\"https://us-mirror.eduu.xyz/images/esp32-spotify-player/player.svg\" width=\"160\" align=\"right\"\u003e\u003c/a\u003e\n\n# ESP32 Spotify Player Display\n\nA Spotify player display implementation using ESP32 and an OLED I2C display.\n\n## Overview\n\nThis project displays Spotify playback information on an OLED screen connected to an ESP32 microcontroller.\n\n### Simulated Prototype\n\nFor desmonstration and testing purposes, a simulated prototype is available at [Wokwi][wokwi] (an online ESP32 simulator).\n\n[![Run on Wokwi](https://us-mirror.eduu.xyz/images/esp32-spotify-player/wokwi.png)](https://wokwi.com/projects/421967464970302465)\n\n\n\n\n## Requirements\n\n\u003e [!NOTE]\n\u003e This project is developed and tested on **Linux-based** systems. Compatibility with other operating systems is not guaranteed.\n\n### Hardware\n- ESP32 (or compatible board)\n- OLED 128x64 Display (SSD1306 or similar)\n- USB cable for programming\n- I2C connection cables\n\n### Software\n- Arduino IDE with ESP32 support\n- [u8g2 library][u8g2] for display control\n- Linux-based system\n- [playerctl][playerctl]\n- Spotify[^1]\n\n[^1]: While Spotify is the default player, others can be used by modifying the `playerctl_to_serial.c` file.\n\n## Installation\n\n1. Install playerctl ([installation guide][playerctl-installation])\n2. Clone this repository\n3. Compile the serial communication program:\n\n```sh\ngcc -o playerctl_to_serial playerctl_to_serial.c -lpthread\n```\n\n## Usage\n\nExecute the compiled binary:\n\n```sh\n./playerctl_to_serial [--port=SERIAL_PORT] [--baud=BAUD_RATE]\n```\n\nDefault values:\n- Port: `/dev/ttyACM0`\n- Baud: `1152000`\n\nExample:\n```sh\n./playerctl_to_serial -p /dev/ttyUSB0 -b 9600\n```\n\n## Configuration\n\n### Display Setup\n\nConfigure your OLED display controller in `esp32-spotify-player.ino`:\n\n```cpp\n// initialization for the 128x64px OLED display\nU8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);\n```\n\nSee [supported controllers][supported-controller] for options.\n\n## Protocol\n\nSerial data format:\n```\nstatus;volume%;title;artist;current_position;time_left;full_time;percentage_position;\n```\n\n#### Example:\n```\n1;69%;Open Hearts;The Weeknd;1:21;-2:33;3:54;34;\n```\n\nDisplay Output:\n\n\u003cimg src=\"https://us-mirror.eduu.xyz/images/esp32-spotify-player/example.svg\" width=\"360\"\u003e\n\n## Troubleshooting\n\n\u003e [!IMPORTANT]\n\u003e - Verify serial port connection\n\u003e - Check playerctl installation\n\u003e - Confirm display I2C connection\n\nError display:\n\n\u003cimg src=\"https://us-mirror.eduu.xyz/images/esp32-spotify-player/error.svg\" width=\"360\"\u003e\n\n## Known Issues\n\n- The serial communication program not stop to comunicate with the port when the ESP32 is disconnected.\n- Songs with too long titles or artists may not fit the display was shown by the example below:\n\n#### Display Overflow:\n\u003cimg src=\"https://us-mirror.eduu.xyz/images/esp32-spotify-player/issue.svg\" width=\"360\"\u003e\n\n\u003cbr\u003e\n\n[u8g2]: https://github.com/olikraus/u8g2\n[playerctl]: https://github.com/altdesktop/playerctl\n[playerctl-installation]: https://github.com/altdesktop/playerctl/blob/master/README.md#installing\n[supported-controller]: https://github.com/olikraus/u8g2/wiki/u8g2setupcpp\n[wokwi]: https://wokwi.com/projects/421967464970302465\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedubr029%2Fesp32-spotify-player","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedubr029%2Fesp32-spotify-player","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedubr029%2Fesp32-spotify-player/lists"}