{"id":15011902,"url":"https://github.com/jojos1220/turningturntable","last_synced_at":"2026-02-11T17:32:40.275Z","repository":{"id":247371266,"uuid":"825642923","full_name":"JoJos1220/TurningTurnTable","owner":"JoJos1220","description":"ESP32 based Autonomus Turntable for 360° Photorotation on enabled BLE Smartphone Connection.","archived":false,"fork":false,"pushed_at":"2025-02-06T21:49:05.000Z","size":5214,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T04:12:05.847Z","etag":null,"topics":["accelstepper-libraries","arduino-framework","autonomous-turntable","ble","drehteller","esp32","fotography","github-actions","platformio","stepper-motor","stepper-motor-driver","turntable"],"latest_commit_sha":null,"homepage":"https://www.instructables.com/360-Smartphone-Photography-With-BLE-ESP32-Controll/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JoJos1220.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"ko_fi":"jojo1220","custom":"https://paypal.me/jojos1220"}},"created_at":"2024-07-08T08:22:57.000Z","updated_at":"2025-02-06T21:42:46.000Z","dependencies_parsed_at":"2024-07-08T11:48:16.050Z","dependency_job_id":"901c9716-81ec-4a9e-944d-dc270891168f","html_url":"https://github.com/JoJos1220/TurningTurnTable","commit_stats":null,"previous_names":["jojos1220/turningturntable"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoJos1220%2FTurningTurnTable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoJos1220%2FTurningTurnTable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoJos1220%2FTurningTurnTable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoJos1220%2FTurningTurnTable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JoJos1220","download_url":"https://codeload.github.com/JoJos1220/TurningTurnTable/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248514205,"owners_count":21116903,"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":["accelstepper-libraries","arduino-framework","autonomous-turntable","ble","drehteller","esp32","fotography","github-actions","platformio","stepper-motor","stepper-motor-driver","turntable"],"created_at":"2024-09-24T19:41:52.367Z","updated_at":"2026-02-11T17:32:40.200Z","avatar_url":"https://github.com/JoJos1220.png","language":"C++","funding_links":["https://ko-fi.com/jojo1220","https://paypal.me/jojos1220","https://www.paypal.com/donate/?hosted_button_id=8CTAKMUENCF46","https://ko-fi.com/G2G3OAILE"],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n# TurningTurnTable\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"https://github.com/JoJos1220/TurningTurnTable_private/assets/97045955/add5842e-8f65-4d4a-adc6-8ad197f864d0\" alt=\"20240608_230146\"\u003e\n\t\u003cbr\u003e\n\t\u003cb\u003eFigure 1: Overview of the functional turning assembly with happy jellyfish\u003c/b\u003e\n\u003c/div\u003e\n\n[![Codacy Badge][codacy-shield]][codacy-url]\n[![PlatformIO CI][build-shield]][build-url]\n![License][license-url]\n[![Release Version][realease-shield]][release-url]\n[![Release Date][releasedate-shield]][releasedate-url]\n[![Last commit][lastcommit-shield]][lastcommit-url]\n[![Contributors][contributors-shield]][contributors-url]\n[![vscode.dev preview][vscode-dev-shield]][vscode-dev-url]\n[![Dependabot][depandbot-shield]][depandbot-url]\n[![GitHub Actions][githubactions-shield]][githubactions-url]\n[![PayPal][Paypal-shield]][paypal-url]\n[![Ko-Fi][Ko-Fi-shield]][Ko-Fi-url]\n\n## About this Project and Repository\nWelcome to the source code repository for the TurningTurnTable project, built on ESP32 for the dynamic control of the autonomous Turntable.\n\nFor a comprehensive assembly guide and additional project details, please refer to the \u003ca href=\"#contact\"\u003eContact\u003c/a\u003e section, where you'll find project links leading to detailed instructions on Instructables.\n\n### Features\n\n**Autonomous Mode:** The standout feature is the autonomous mode, which rotates the turntable at a specified angle and triggers the connected device via BLE to take a picture. Depending on the setup, up to 64 pictures of the object can be captured.\n\n**Hand Mode:** Is the automatic mode not suitable for your needs? You can manually control the turntable through the menu, adjusting it to a specific angle or rotating it infinitely in any direction.\n\n**Control by OLED-Display and Encoder:** The turntable is fully controlled through an integrated OLED display and encoder. In addition to switching between Auto and Manual modes, you can set parameters such as stepper acceleration/speed and the stepper angle between pictures. You can also check the BLE connection to your device and take a test screenshot.\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#about-this-project-and-repository\"\u003eAbout this Project/Repository\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#support\"\u003eSupport\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\nHappy tinkering and making picutes! 🚀🛠️💡\n\n## Getting Started\n\nBefore you begin, ensure you have the following components (or their equivalents) available.\n\nThe base component is an ESP32 board with a prototyping shield, similar to an Arduino. You can also use a NodeMCU-specific board, which functions similarly but has different pin definitions. A stepper motor driver and stepper motor are connected to this board for motion control. An OLED display and encoder are installed for operating the assembly. The project uses the internal Arduino power supply and an external 12V power adapter to operate the stepper motor driver. To complete the setup, you will need some M3/M4 screws, nuts, washers, heat inserts, bearings, and cables. For wiring, refer to the pins.h file, which describes the pins used for the specific board and interface.\n\nFor detailed assembly instructions, refer to the Instructable guide and the CULTS3D homepage in the \u003ca href=\"#contact\"\u003eContact\u003c/a\u003e section.\n\n![20240707_104415](https://github.com/JoJos1220/TurningTurnTable_private/assets/97045955/09ae8746-ba03-49b8-b9f8-012695f01e56)\n\n**Figure 2: Hardware Setup -\u003e ESP32 \"Arduino\", NEMA 17 Pancake Stepper, Stepper-Motor Driver Board and some connector cables**\n_____________________________________________________________________________________________________________\n### Preparing 3D-printed parts\n\nThe STL files and a detailed 3D printing overview of the project are available for download on Cults3D:\n\nLink to Cults3D: [![Cults3D][cults3d-shield]][cults3d-url]\n\nFeel free to explore my other projects as well 🚀.\n\n_____________________________________________________________________________________________________________\n\nAfter preparing the parts, start by assembling the base plate. Insert the heat inserts into their designated spots and then place the bearings into the gaps on the base plate. Next, attach the front plate mount. For the front plate, install the OLED display and the encoder, securing them with screws and heat inserts. Once the hardware assembly is complete, move on to the electronics, starting with the Arduino-like ESP32 board and the prototyping shield. Then, install the stepper motor and the stepper motor driver. Depending on the stepper motor used, either print the alternative stepper motor adapter plate for the NEMA 17 Pancake Stepper or mount the 28BYJ-48 directly in place. Finally, complete the assembly by adding heat inserts to the top part and screwing the gear into place.\n\n![20240610_195708](https://github.com/JoJos1220/TurningTurnTable_private/assets/97045955/6a7f185e-af64-4c54-9e0e-f220f1c365e0)\n\n**Figure 3a: Hardware Schematics**\n\n![Electrical_Wiring_Schematic](https://github.com/JoJos1220/TurningTurnTable_private/assets/97045955/f1f520b2-62a7-44f9-9073-60708838191a)\n\n**Figure 3b: Electrical Wiring Schematics**\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n_____________________________________________________________________________________________________________\n\n# Comissioning\nBefore flashing the software onto the ESP32, pre-define your specific hardware setup in the \"platformio.ini\" file and set the project-specific parameters in the \"TurningTurnTablePARAMETERS.h\" file.\n\nThe most critical sections in the \"platformio.ini\" file:\n\n```\n[platformio]\ndefault_envs = esp32ARDUINO ; Selecting your specific Default Environment for Software Build\n\n[env:esp32xxxxxxxxxxxx]\nbuild_flags = \n\t-D ESP32dev_ARDUINO\t\t\t\t; Defining Electronic Board\n\t-D _17HS08\t\t\t\t\t; Defining Used Stepper Type in FULLStep Mode(_17HS08 or _28BYJ48)\n\t\t\t\t\t\t\t; Stepper Operation Mode is Setup in TurningTurnTablePARAMETERS.h\n\n```\n\nMost specific sections in the TurningTurnTablePARAMETERS.h file:\n\n```\n// Defining Stepper Operation Mode on your specific connection/operation Purpose\n#define StepperOperation 2                              // 0 == FULL4WIRE; 1 == HALF4WIRE; 2 == DRIVER Stage with 16 MicroSteps\n\n```\n\n\nWhen you power on the turntable, it should start up, displaying the boot screen on the OLED display. The turntable is now ready for operation, and you can control it using the encoder and your smartphone.\n\n![000_RestartScreen](https://github.com/JoJos1220/TurningTurnTable_private/assets/97045955/bbe95326-75c8-4588-8123-16dcb9207b01)\n\n**Figure 4: OLED-Boot Screen**\n\n## Roadmap\n\nThe initial release of this project introduces a fully functional prototype to the open-source community.\n\nFuture updates will incorporate additional features based on community feedback, and the roadmap will be continuously updated.\n\n- Enhancing support for various displays\n\n- Remote control functionality for turntable operation\n\n- Integration of internal power source capabilities\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Contributing\n\nEverybody is welcome to contribute the project - regardless of the experience level!\n\n1) fork the repository\n2) clone your fork on your PC\n3) create a branch for your changes\n4) add you changes\n5) commit and push\n6) create a pull request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## License\n\nCreative Commons Attribution Share Alike 4.0\n\n[![License: CC BY-NC-ND 4.0](https://img.shields.io/badge/License-CC_BY--NC--ND_4.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-nd/4.0/)\n\nSee also [LICENSE](LICENSE.md) for more information about license rights and limitations.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Contact\n\nProject Link [![Github][github-shield]][github-url]\n\nProject Link [![Instructables][instructables-shield]][instructables-url]\n\nProjekt Link [![Cults3D][cults3d-shield]][cults3d-url]\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Acknowledgments\nFor more detailed information about the Project, please check the Instructables Link given within the Contact section.\n\n## Support\n\nYou Like the Project and want to Support me and my work?\n\nWell, I like coffee ;) Maybe we got a deal?\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)][Ko-Fi-url]\n\n[![Donate with PayPal](https://raw.githubusercontent.com/stefan-niedermann/paypal-donate-button/master/paypal-donate-button.png)][paypal-url]\n\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"https://github.com/JoJos1220/TurningTurnTable_private/assets/97045955/400a323a-97e6-44a3-b350-c1d8766c46f5\" alt=\"20240608_230343\"\u003e\n\t\u003cbr\u003e\n\t\u003cb\u003eFigure 5: Happy-Turning-Puppy :)\u003c/b\u003e\n\u003c/div\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n[instructables-shield]: https://img.shields.io/badge/Instructables-jojo__1220-blue?logo=instructables\n[instructables-url]: https://www.instructables.com/360-Smartphone-Photography-With-BLE-ESP32-Controll/\n[github-shield]: https://img.shields.io/badge/GitHub-Jojos1220-black?logo=github\n[github-url]: https://github.com/JoJos1220/TurningTurnTable\n[cults3d-shield]: https://img.shields.io/badge/cults3D-JOJO__1220-pink.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH6AcIBTkVJMVsCgAAAkxJREFUOI2llD9oU1EUxr97X9KkIY0+bU1an2QwVLCQdKhU8E9FBefgYKFUHBzSwUmqoxBwEaFDh2QpdBAcpFksSlsEU8Q6RMQ/TUtIwJS2aVPS1sYkTV/ePQ7PJn1JFcRvu/ee+7vnfPfcy4iI8J8y/W2xXCDks4TyT8DhZGg5wf4NEg2rmA2pcLgY7K0MPzIEWWG4+cQCh6sORofo4wuVQv4SfXtdMcx/iqgU9BYom9QM8w2Q+akKhfylhsB9fXim0si1omGd15exMFNBt98EczNDcbvR894BE9q7OFLvxZ89Wf4sEJ/WMPNUHzvPcNx4YIa7R6rGyCcZVr5o1e2GTCaGy5BPMdwZt+L+22YEIlZYWw43fjUuEA2rxkwmhsvYSBECEWs10CYz9I9akIkLA2BrhXD1XhMiD8s1yG6ekIhquPvcino12Vi1lHRMQ+47YSMp0HlFwuUhM7IJoUPSMYGjHRxtp40+7+4Q1hMC7h6p2jcA0D9qgdkKeC5I+DpZ0SFbywSL3ZhBNKRiNqzi9pgFANAXMOPcLRO2VwkdXfphssKQz5JurOLj2FwyXqfi4/Bckgy3YpNZFQAA8WkNssJ/Q7wcSjfHq8d7NYiXY2eNsPhGa/BpX3PjKjwXpVrb57OCgt4CzU/VWj0RrdDI9SKl5oztn0sLmgyWaWygRERE7OBXsJ4QePloD4UcQfFx2FsZku80bC4ROvskHHMzZOIC6ZjA+UETegfNcDgZDJCDsLVFAaHpZR1x6ZszCwLH3RztZznsbbWX/Au343MY0yo+PwAAAABJRU5ErkJggg==\n[cults3d-url]: https://cults3d.com/de/modell-3d/gadget/360-autonomus-bluetooth-controlled-turningturntable\n\n[vscode-dev-shield]: https://img.shields.io/badge/preview%20in-vscode.dev-blue\n[vscode-dev-url]: https://vscode.dev/github/JoJos1220/TurningTurnTable\n\n[license-url]:https://img.shields.io/github/license/JoJos1220/TurningTurnTable?style=flat-square\n[codacy-shield]: https://app.codacy.com/project/badge/Grade/6d7d1f912c0549589f19d4fdf015cab0\n[codacy-url]:https://app.codacy.com/gh/JoJos1220/TurningTurnTable/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade\n[build-shield]: https://github.com/JoJos1220/TurningTurnTable/actions/workflows/workflow.yml/badge.svg\n[build-url]: https://github.com/JoJos1220/TurningTurnTable/actions/workflows/workflow.yml\n[contributors-shield]: https://img.shields.io/github/contributors/JoJos1220/TurningTurnTable\n[contributors-url]: https://github.com/JoJos1220/TurningTurnTable/graphs/contributors\n[realease-shield]: https://img.shields.io/github/release/JoJos1220/TurningTurnTable.svg?style=plastic\n[release-url]: https://github.com/JoJos1220/TurningTurnTable/releases/latest\n[releasedate-shield]: https://img.shields.io/github/release-date/JoJos1220/TurningTurnTable.svg?style=plastic\n[releasedate-url]: https://github.com/JoJos1220/TurningTurnTable/releases/latest/\n[lastcommit-shield]: https://img.shields.io/github/last-commit/JoJos1220/TurningTurnTable?style=plastic\n[lastcommit-url]: https://github.com/JoJos1220/TurningTurnTable/tree\n[depandbot-shield]: https://img.shields.io/badge/dependabot-025E8C?style=for-the-badge\u0026logo=dependabot\u0026logoColor=white\n[depandbot-url]:https://github.com/JoJos1220/TurningTurnTable/actions/workflows/dependabot.yml\n[githubactions-shield]: https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge\u0026logo=githubactions\u0026logoColor=white\n[githubactions-url]:https://github.com/JoJos1220/TurningTurnTable/actions\n[paypal-shield]: https://img.shields.io/badge/PayPal-00457C?style=for-the-badge\u0026logo=paypal\u0026logoColor=white\n[paypal-url]: https://www.paypal.com/donate/?hosted_button_id=8CTAKMUENCF46\n[Ko-Fi-shield]: https://img.shields.io/badge/Ko--fi-F16061?style=for-the-badge\u0026logo=ko-fi\u0026logoColor=white\n[Ko-Fi-url]: https://ko-fi.com/G2G3OAILE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjojos1220%2Fturningturntable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjojos1220%2Fturningturntable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjojos1220%2Fturningturntable/lists"}