{"id":28519066,"url":"https://github.com/andypiper/presto-lastfm","last_synced_at":"2026-04-26T20:31:11.902Z","repository":{"id":295675806,"uuid":"990873092","full_name":"andypiper/presto-lastfm","owner":"andypiper","description":"A Last.FM display for the Pimoroni Presto","archived":false,"fork":false,"pushed_at":"2025-05-26T19:42:35.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-14T20:48:20.624Z","etag":null,"topics":["lastfm","micropython","music","nowplaying","nowplaying-screen","pimoroni","presto"],"latest_commit_sha":null,"homepage":"","language":"Python","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/andypiper.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,"zenodo":null}},"created_at":"2025-05-26T19:17:27.000Z","updated_at":"2025-10-04T15:45:07.000Z","dependencies_parsed_at":"2025-05-29T15:02:40.892Z","dependency_job_id":null,"html_url":"https://github.com/andypiper/presto-lastfm","commit_stats":null,"previous_names":["andypiper/presto-lastfm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andypiper/presto-lastfm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andypiper%2Fpresto-lastfm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andypiper%2Fpresto-lastfm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andypiper%2Fpresto-lastfm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andypiper%2Fpresto-lastfm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andypiper","download_url":"https://codeload.github.com/andypiper/presto-lastfm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andypiper%2Fpresto-lastfm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32312161,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T19:15:34.056Z","status":"ssl_error","status_checked_at":"2026-04-26T19:15:15.467Z","response_time":129,"last_error":"SSL_read: 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":["lastfm","micropython","music","nowplaying","nowplaying-screen","pimoroni","presto"],"created_at":"2025-06-09T06:06:09.507Z","updated_at":"2026-04-26T20:31:11.896Z","avatar_url":"https://github.com/andypiper.png","language":"Python","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Last.fm Playing Display for Pimoroni Presto\n\nA MicroPython application that displays your Last.fm \"now playing\" information on a Pimoroni Presto device. \nFeatures album art display, recent tracks list, and a clock with touch navigation between modes.\n\nInspired by the [WiiM Now Playing](https://github.com/retired-guy/WiiM-Presto) app.\n\n## Table of Contents\n\n- [Background](#background)\n- [Install](#install)\n- [Usage](#usage)\n- [Configuration](#configuration)\n- [Features](#features)\n- [API](#api)\n- [Maintainers](#maintainers)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Background\n\nThis project transforms your Pimoroni Presto into a Last.fm display that shows:\n\n- **Album Art Mode**: Full-screen album artwork for currently playing tracks\n- **Recent Tracks Mode**: List of your 4 most recent Last.fm scrobbles\n- **Clock Mode**: Digital clock with date display\n\nThe display automatically updates when you start listening to new music and provides an elegant way to see your music listening activity at a glance.\n\n## Install\n\n### Prerequisites\n\n- [Pimoroni Presto](https://shop.pimoroni.com/products/presto)\n- Pimoroni MicroPython firmware installed\n- WiFi network connection\n- Last.fm account with API access\n\n### Hardware Setup\n\n1. Set up your Pimoroni Presto according to the [official documentation](https://github.com/pimoroni/presto)\n2. Ensure MicroPython is installed and the device is connected to your computer\n\n### Software Installation\n\n1. Clone this repository:\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd lastfm-presto-display\n   ```\n\n2. Copy the required files to your Presto:\n   - `lastfm_playing.py` - Main application\n   - `secrets.py` - Configuration file (see [Configuration](#configuration))\n   - `Roboto-Medium.af` - the [Roboto font in Alright Font format](https://github.com/pimoroni/picovector-fonts/releases/).\n\n3. Ensure your Presto has the required dependencies (these should be included with Pimoroni's MicroPython build):\n   - `picovector`\n   - `presto`\n   - `urequests`\n   - `jpegdec`, `pngdec`\n\n## Configuration\n\n### Last.fm API Setup\n\n1. Visit the [Last.fm API page](https://www.last.fm/api/account/create) to create an API account\n2. Create a new API application to get your API key\n3. Note down your API key and Last.fm username\n\n### WiFi and API Configuration\n\nEdit the `secrets.py` file with your credentials:\n\n```python\nWIFI_SSID = \"your_wifi_network_name\"\nWIFI_PASSWORD = \"your_wifi_password\"\nLASTFM_API_KEY = \"your_lastfm_api_key\"\nLASTFM_USERNAME = \"your_lastfm_username\"\nTIMEZONE_OFFSET = +1  # Adjust for your timezone (+1 for GMT+1, -5 for EST, etc.)\n```\n\n**Important**: Never commit your `secrets.py` file with real credentials to version control.\n\n## Usage\n\n1. Upload both `lastfm_playing.py` and your configured `secrets.py` to your Presto device\n2. Run the application\n   ```python\n   import lastfm_playing\n   ```\n3. The device will connect to WiFi and start displaying your Last.fm data\n4. **Touch the screen** to cycle between display modes:\n   - Album Art → Recent Tracks → Clock → Album Art...\n\n### Display Modes\n\n**Album Art Mode**\n- Shows full-screen album artwork for the currently playing track\n- Displays artist name and track title at the bottom\n- Updates automatically when you start playing new music\n\n**Recent Tracks Mode**\n- Lists your 4 most recent Last.fm scrobbles\n- Shows track numbers, artist names, and song titles\n- Indicates currently playing tracks\n\n**Clock Mode**\n- Large digital time display\n- Shows current date with day of week\n- May be useful as a bedside clock when not actively listening to music?\n\n## Features\n\n- **Automatic Updates**: Polls Last.fm API every ~30 seconds for new tracks\n- **Album Art Display**: High-quality album artwork with rounded corners\n- **Touch Navigation**: Simple tap-to-cycle interface between modes\n- **WiFi Auto-Recovery**: Automatically reconnects if connection is lost\n- **Timezone Support**: Configurable timezone offset for accurate time display\n\n## API\n\nThis application uses the [Last.fm API](https://www.last.fm/api) with the following endpoints:\n\n- `user.getrecenttracks` - Fetches recent listening history\n- Image proxy via [wsrv.nl](https://wsrv.nl) for album art resizing and optimization\n\n### Rate Limiting\n\nThe application makes API calls approximately every 30 seconds to respect Last.fm's rate limits and conserve battery life.\n\n## Resources\n\n- [Pimoroni Presto Product Page](https://shop.pimoroni.com/products/presto)\n- [Pimoroni Presto GitHub Repository](https://github.com/pimoroni/presto)\n- [Last.fm API Documentation](https://www.last.fm/api)\n- [Last.fm API Key Registration](https://www.last.fm/api/account/create)\n\n## Maintainers\n\n[@andypiper](https://github.com/andypiper)\n\n## Contributing\n\nPRs accepted! Feel free to contribute improvements, bug fixes, or new features.\n\n## License\n\n[MIT](LICENSE) © 2025 Andy Piper\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandypiper%2Fpresto-lastfm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandypiper%2Fpresto-lastfm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandypiper%2Fpresto-lastfm/lists"}