{"id":25436624,"url":"https://github.com/jjbel/pi-pico-telemetry","last_synced_at":"2026-05-18T06:35:08.436Z","repository":{"id":277594175,"uuid":"932881636","full_name":"jjbel/pi-pico-telemetry","owner":"jjbel","description":"Raspberry Pico receiver, Pi telemetry webserver","archived":false,"fork":false,"pushed_at":"2025-02-14T19:17:46.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T20:23:49.952Z","etag":null,"topics":["raspberry-pi","raspberry-pi-pico","telemetry","webserver"],"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/jjbel.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":"2025-02-14T17:36:17.000Z","updated_at":"2025-02-14T19:17:51.000Z","dependencies_parsed_at":"2025-02-14T20:24:09.890Z","dependency_job_id":"71ae3af5-77ad-400e-97d6-8716faf55893","html_url":"https://github.com/jjbel/pi-pico-telemetry","commit_stats":null,"previous_names":["jjbel/pi-pico-telemetry"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjbel%2Fpi-pico-telemetry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjbel%2Fpi-pico-telemetry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjbel%2Fpi-pico-telemetry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jjbel%2Fpi-pico-telemetry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jjbel","download_url":"https://codeload.github.com/jjbel/pi-pico-telemetry/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239255536,"owners_count":19608298,"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":["raspberry-pi","raspberry-pi-pico","telemetry","webserver"],"created_at":"2025-02-17T08:21:10.135Z","updated_at":"2026-05-18T06:35:03.409Z","avatar_url":"https://github.com/jjbel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pi-Pico Telemetry\n\nA telemetry server using\n\n1. a Raspberry Pi Pico to receive data wirelessly from the rocket and\n2. a regular Raspberry Pi to host the telemetry webpage, easily accessible from a phone\n\n[Websockets](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) are used send data from the Pi to the client browser.\n\nMade for the IIT-B Rocket Team's Ground Station.\n\n\u003e Why not use the pico only? the limited RAM and micropython restriction\n\u003e\n\u003e Why not use the pi only? the libraries for wireless communication are only on the Pico\n\u003e\n\u003e We might switch to use one board exclusively in the future\n\n## Install\n\n1. Activate `venv`\n\nA Python [venv](https://docs.python.org/3/library/venv.html) is used for handling dependency versions easily.\n\nOn the Raspberry Pi:\n\n```\npython -m venv venv\n./venv/bin/activate\n```\n\nOn Windows (when testing the frontend):\n\n```\npython -m venv venv\n.\\venv\\Scripts\\activate.bat\n```\n\n2. Install Python dependencies\n\n```\npip install -r requirements.txt\n```\n\n## Run\n\n1. Run the webserver:\n\n```sh\npython webserver.py\n```\n\n2. Run the data sender from serial to socket:\n\n```sh\npython serial_to_socket.py\n```\n\nWhen testing on a laptop, instead of `serial_to_socket.py`, run `test_socket.py` which sends sample data in the local file `test_data.csv`\n\n```sh\npython test_socket.py\n```\n\n3. Open the app at \u003chttp://localhost:5000/\u003e\n\n## Frontend\n\nThe website is a plain `index.html` file.\n\nThe class `State` in `state.js` manages the entire app state. `index.js` opens the socket and updates `State`\n\n## Pi-Pico UART communication\n\n[Using: Medium - Tim Hanewich](https://timhanewich.medium.com/using-uart-between-a-raspberry-pi-pico-and-raspberry-pi-3b-raspbian-71095d1b259f)\n\n### Wiring\n\nPhysical numbering vs GPIO numbering:\nhttps://pinout.xyz/\n\nGP UART pins:\n\n- Pico\n  - UART0: 0/1, 12/13, 16/17\n  - UART1: 4/5, 8/9\n- Pi: UART: 8/10\n\nConnections:\n\n1. Pi8(GP15) \u003e Pico7(GP5)\n1. Pico6(GP4) \u003e Pi10(16)\n1. Pi6(GND) \u003e Pico3(GND)\n\nUART shows up as file:\n`/dev/ttyAMA0` [(from forum)](https://forums.raspberrypi.com/viewtopic.php?t=31141)\n\n## Other Useful Links\n\n[Geekculture Medium](https://medium.com/geekculture/serial-connection-between-raspberry-pi-and-raspberry-pico-d6c0ba97c7dc)\n\n[How to enable Tx Rx pins on Pi](https://spellfoundry.com/2016/05/29/configuring-gpio-serial-port-raspbian-jessie-including-pi-3-4/)\n\n### Getting started with the Raspberry Pi\n\n[Run in Headless mode](https://web.archive.org/web/https://www.tomshardware.com/reviews/raspberry-pi-headless-setup-how-to,6028.html) (Tom's Hardware)\n\n### Getting started with the Raspberry Pi Pico\n\n[Getting Started](https://projects.raspberrypi.org/en/projects/getting-started-with-the-pico) (includes webserver and GPIO tutorials)\n\n### Websockets\n\n[MDN Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API)\n\n[MDN writing client apps](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications)\n\nPython [websockets docs](https://websockets.readthedocs.io/en/stable/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjbel%2Fpi-pico-telemetry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjbel%2Fpi-pico-telemetry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjbel%2Fpi-pico-telemetry/lists"}