{"id":18049440,"url":"https://github.com/jupfu/beck-view-projector","last_synced_at":"2026-04-30T01:31:38.897Z","repository":{"id":260106934,"uuid":"866689240","full_name":"JuPfu/beck-view-projector","owner":"JuPfu","description":"This project simulates the functionality of a vintage Super 8 projector using a Raspberry Pi Zero (RP2), leveraging MicroPython. The beck-view-projector project is part of the beck-view-digitize project, which focuses on digitizing Super 8 films.","archived":false,"fork":false,"pushed_at":"2024-10-29T12:53:34.000Z","size":4391,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T06:14:41.689Z","etag":null,"topics":["micropython","raspberry-pi-pico","ssd1306"],"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/JuPfu.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":"2024-10-02T17:45:21.000Z","updated_at":"2024-10-29T12:53:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"b594b515-517e-40fd-b6b3-87dcaf302b3d","html_url":"https://github.com/JuPfu/beck-view-projector","commit_stats":null,"previous_names":["jupfu/beck-view-projector"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuPfu%2Fbeck-view-projector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuPfu%2Fbeck-view-projector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuPfu%2Fbeck-view-projector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuPfu%2Fbeck-view-projector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuPfu","download_url":"https://codeload.github.com/JuPfu/beck-view-projector/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294569,"owners_count":20915341,"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":["micropython","raspberry-pi-pico","ssd1306"],"created_at":"2024-10-30T21:07:28.666Z","updated_at":"2026-04-30T01:31:38.788Z","avatar_url":"https://github.com/JuPfu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Beck View Projector\n\n## Overview\n\nBeck View Projector is a MicroPython project designed to simulate a Super 8 projector using a Raspberry Pi Pico. The system features real-time frame count and frames-per-second (FPS) display on an SPI OLED display, which provides clear visual feedback while the projector is running. The user can start and stop the projector using buttons wired to specific GPIO pins, simulating the operation of a real projector with LED indicators and on-screen feedback.\n\n## Hardware Requirements\n\n- **Raspberry Pi Pico**\n- **SSD1306 OLED Display** (SPI version)\n- **Two buttons** (for start and stop functionality)\n- **LED indicator** (for operation status)\n- **Wiring setup**:\n    - OLED Display SPI Pins:\n        - `MOSI`: GPIO 7\n        - `SCK`: GPIO 6\n        - `DC`: GPIO 8\n        - `RES`: GPIO 9\n        - `CS`: GPIO 5\n    - Start button: GPIO 14\n    - Stop button: GPIO 15\n    - OK1 output: GPIO 12\n    - EOF output: GPIO 13\n    - LED indicator: GPIO 25\n\n## Software Requirements\n\n- **MicroPython**: Installed on the Raspberry Pi Pico\n- **SSD1306 Driver**: Make sure to upload the `ssd1306.py` driver to the Pico before running the main code.\n\n## Installation\n\n1. **Clone the repository**:\n\n   ```bash\n   git clone https://github.com/your-username/beck-view-projector.git\n   ```\n\n2. **Upload the files to Raspberry Pi Pico** using tools like [Thonny](https://thonny.org/) or `ampy`.\n\n   ```bash\n   ampy --port /dev/ttyUSB0 put main.py\n   ```\n\n3. **Make sure the `ssd1306.py` driver is also uploaded** for handling the OLED display.\n\n## Usage\n\nOnce the hardware is set up and code is uploaded:\n\n1. **Power on your Raspberry Pi Pico**.\n2. The OLED display will show the initial welcome message:\n\n    ```\n    beck-view\n    projector\n    Press button\n    to start\n    projector\n    ```\n\n3. **Press the start button** (connected to GPIO 14). This will start the simulated projector. The frame count and FPS will be displayed on the OLED screen:\n\n    ```\n    Frame \u003ccurrent_frame\u003e\n    FPS \u003ccalculated_fps\u003e\n    ```\n\n4. **Press the stop button** (connected to GPIO 15) to stop the projector. The display will show the end-of-film (EOF) message:\n\n    ```\n    EOF reached\n    Total frames \u003ctotal_frames\u003e\n    ```\n\n## Code Explanation\n\n### `SPI_Display` Class\n\n- Handles the OLED SPI display (SSD1306).\n- Initializes the display and provides a method to show welcome messages and update the screen with frame information.\n- Uses `display_welcome_message()` to present the initial startup screen.\n\n### `Projector` Class\n\n- Controls the projector simulation.\n- Manages frame count, FPS calculations, and signal handling.\n- Uses hardware interrupts on GPIO pins to start and stop the projector based on button presses.\n\n### Main Loop\n\n- Sets up hardware interrupts on GPIO pins for start and stop buttons.\n- Runs a simple loop that blinks the LED while waiting for user input.\n\n## Pin Assignments\n\n| Component    | GPIO Pin |\n|--------------|----------|\n| Start Button | 14       |\n| Stop Button  | 15       |\n| OK1 Signal   | 12       |\n| EOF Signal   | 13       |\n| LED          | 25       |\n| MOSI         | 7        |\n| SCK          | 6        |\n| DC           | 8        |\n| RES          | 9        |\n| CS           | 5        |\n\n## Contributing\n\nFeel free to submit issues or contribute by opening pull requests. We welcome any suggestions to improve the code or add new features.\n\n## License\n\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjupfu%2Fbeck-view-projector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjupfu%2Fbeck-view-projector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjupfu%2Fbeck-view-projector/lists"}