{"id":50276933,"url":"https://github.com/dunknowcoding/esp32_bno055_pyteapotplus","last_synced_at":"2026-05-27T21:02:57.845Z","repository":{"id":330651575,"uuid":"1123328806","full_name":"dunknowcoding/ESP32_BNO055_PyTeapotPlus","owner":"dunknowcoding","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-27T05:36:43.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-28T15:41:00.360Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dunknowcoding.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-26T16:38:00.000Z","updated_at":"2025-12-27T05:36:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dunknowcoding/ESP32_BNO055_PyTeapotPlus","commit_stats":null,"previous_names":["dunknowcoding/esp32_bno055_pyteapotplus"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/dunknowcoding/ESP32_BNO055_PyTeapotPlus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunknowcoding%2FESP32_BNO055_PyTeapotPlus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunknowcoding%2FESP32_BNO055_PyTeapotPlus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunknowcoding%2FESP32_BNO055_PyTeapotPlus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunknowcoding%2FESP32_BNO055_PyTeapotPlus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dunknowcoding","download_url":"https://codeload.github.com/dunknowcoding/ESP32_BNO055_PyTeapotPlus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunknowcoding%2FESP32_BNO055_PyTeapotPlus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33583399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"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":[],"created_at":"2026-05-27T21:02:56.983Z","updated_at":"2026-05-27T21:02:57.836Z","avatar_url":"https://github.com/dunknowcoding.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# PyTeapotPlus for BNO055 + ESP32 C3 Supermini\n\n---\nThe complete open-source code for testing BNO055 9-Axis absolute orientation IMU Sensor. This Arduino demo is specially made for YouTube channel **牛志伟机器人实验室** @[NiusRobotLab](https://www.youtube.com/@NiusRobotLab)\n\n## In this Repo\n\n- :white_check_mark: **PyTeapotPlus** - Improved pythonic visualization and data receiver for IMU sensors based on [PyTeapot](https://github.com/thecountoftuscany/PyTeapot-Quaternion-Euler-cube-rotation)\n- :white_check_mark: **BNO055 support** - Arduino coding for BNO055 calibration and Wireless/Serial communication with PyTeapotPlus\n\n- :white_check_mark: **EEPROM support** - Calibration data saved to AT24C256, other AT24CXX chips can be easily implemented\n\n- :white_check_mark: **ESP32 MCU support** - Generic ESP32, ESP32-S3, ESP32-C3/C6 etc. with WiFi support\n\n## Dependences\n\n- OS\n  -  Windows 10\n  -  Anaconda\n\u003cbr/\u003e\n\n- Arduino Libraries\n  -  Adafruit BNO055 [[Github](https://github.com/adafruit/Adafruit_BNO055)]\n  -  AT24C [[Github](https://github.com/stefangs/arduino-library-at24cxxx)]\n\u003cbr/\u003e\n\n- Python Libraries\n  - pygame\n  - pyopengl\n  - pyopengl-accelerate\n  - PyWavefront\n  - pyglet\n\n\n## Usage\n\n1. Install Python dependencies in Anaconda environment\n\n```\n\u003e cd PyTeapotPlus\n\u003e pip install -r requirements.txt\n```\n\n2. Modify **`config.h`** according to your needs.\n\u003cbr/\u003e\n\n3. Download **`bno055_udp_miniC3`** to MCU.\n\u003cbr/\u003e\n\n4. Modify **`pyteapotplus.py`** settings to match the configurations in **`config.h`**.\n\n \u0026emsp;\u0026emsp;Or\n\n\u0026emsp;\u0026emsp;Modify **`pyteapot_3dm.py`** settings to match the configurations in **`config.h`**.\n\n5. Ensure the MCU and the sensor working properly, then execute the python scripts, reset MCU. You should see the printing of readings and relevant information from a serial monitor. Calibrate the sensor until the readings are stable without errors.\n\n## Questions\n\n\u003e What does 'PyTeapotPlus/3DViewer.py' made for?\n\nYou can view 3D models, zoom in/out, rotate using mouse by setting correct directory to your model.\n\u003cbr/\u003e\n\n\u003e I cannot see anything using '3DViewer.py' or 'pyteapot_3dm.py'.\n\nYes, that happens frequently due to various numerical ranges of 3D models. If you would like to change the parameters of OpenGL, such as the viewpoint, scales and depth, please try out.\n\u003cbr/\u003e\n\n\u003e How can I modify the code to implement other AT24CXX chips\n\nIn **`tools.h`**, substitute `#include \u003cat24c256.h\u003e` by `#include \u003cat24cxx.h\u003e`, `xx` is the chip you want to use.\n\u003cbr/\u003e\n\n\u003e Have you tested the source code before pushing it here?\n\nI only tested some of the settings, cannot guarantee 'bugs-free' though. If you find any issues, feel free to let me know.\n\n\u003e Can my Arduino/STM32/Raspberry Pi boards run this demo? \n\nThis demo is designed for ESP32 boards. UDP mode will not work for dev boards without WiFi features. As some Arduino boards have onboard EEPROM (e.g., Arduino UNO R3/R4 WiFi), simply replace the 'AT24C' lib by built-in 'EEPROM.h', then modify several lines of EEPROM codes should work. The code may work with some STM32 boards. The code is not compatible with Raspberry Pi.\n\n## (Optional) Test a Non-Adafruit/Sparkfun BNO055 Module  \n\n:point_down: Please refer to the video @NiusRobotLab\n\n[![BNO055 Test](https://img.youtube.com/vi/xjYgq-Zbp5E/0.jpg)](https://www.youtube.com/watch?v=xjYgq-Zbp5E)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunknowcoding%2Fesp32_bno055_pyteapotplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdunknowcoding%2Fesp32_bno055_pyteapotplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunknowcoding%2Fesp32_bno055_pyteapotplus/lists"}