{"id":20236843,"url":"https://github.com/vedantparanjape/pid-plotter-component","last_synced_at":"2026-05-01T02:34:33.829Z","repository":{"id":106387282,"uuid":"247458527","full_name":"VedantParanjape/pid-plotter-component","owner":"VedantParanjape","description":"ESP-IDF component for pid plotter","archived":false,"fork":false,"pushed_at":"2020-04-13T16:39:40.000Z","size":1294,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-04T16:35:10.509Z","etag":null,"topics":["c","esp-idf-framework","esp32","freertos"],"latest_commit_sha":null,"homepage":"https://vedantparanjape.github.io/pid-plotter-component/","language":"C","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/VedantParanjape.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}},"created_at":"2020-03-15T12:04:58.000Z","updated_at":"2021-09-27T17:02:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"e69002db-da86-486a-b5ff-4a2f81ea3f1c","html_url":"https://github.com/VedantParanjape/pid-plotter-component","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/VedantParanjape/pid-plotter-component","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VedantParanjape%2Fpid-plotter-component","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VedantParanjape%2Fpid-plotter-component/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VedantParanjape%2Fpid-plotter-component/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VedantParanjape%2Fpid-plotter-component/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VedantParanjape","download_url":"https://codeload.github.com/VedantParanjape/pid-plotter-component/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VedantParanjape%2Fpid-plotter-component/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32483406,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":["c","esp-idf-framework","esp32","freertos"],"created_at":"2024-11-14T08:23:33.274Z","updated_at":"2026-05-01T02:34:33.804Z","avatar_url":"https://github.com/VedantParanjape.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PID-Plotter\n\n* ESP-IDF component for [pid-tuning-gui](https://github.com/VedantParanjape/pid-tuning-gui). This transports data, between the plotter and esp device.\n\nExample App: ![https://github.com/VedantParanjape/esp-component-examples/tree/master/pid_plotter_example](https://github.com/VedantParanjape/esp-component-examples/tree/master/pid_plotter_example)\n# Requirements\n\n* [logger](https://github.com/VedantParanjape/logger)  \n\n# Installation\n\n    cd \u003cyour_esp_idf_project\u003e\n    mkdir components\n    cd components\n    cp $IDF_PATH/examples/common_components/protocol_examples_common . -r\n    git clone https://github.com/VedantParanjape/logger   \n    git clone https://github.com/VedantParanjape/pid-plotter-component pid_plotter\n\n*Change CMakeList.txt to add the line given below:*   \n\n    set(EXTRA_COMPONENT_DIRS \u003cpath_to_component_folder\u003e)\n\n# How to use\n\n* Set UDP and TCP server IP address and port in menuconfig, under component config\n* Set wifi ssid and password to use.    \n* include \"pid_plotter.h\"\n\n* `plotter()` must be called in app_main  \n* `send_to_queue(pid_data_struct)` must be used to push pid_data struct to the message queue, by passing such a struct to this function, this data will be sent to client for plotting.  \n* `pid_const_read()` returns the pid_const struct received from user. \n\n# Working\n\n* PID Constants (Kp, Ki, Kd, and setpoint) are received by esp32, by connecting to a tcp server.\n* TCP server should send the values as a json string.\n```\n{\n    \"Kp\" : 1.0,\n    \"Ki\" : 2.0,\n    \"Kd\" : 3.0,\n    \"SetPoint\" : 4.0\n}\n\nPID constants json format\n```\n* Calculated PID values (P, I, D, current, error) are sent by esp32 through udp, sent to a udp server.\n* Values are sent as a json string through UDP.\n```\n{\n    \"P\" : 1.0,\n    \"I\" : 2.0,\n    \"D\" : 3.0,\n    \"current\" : 4.0,\n    \"error\" : 5.0\n}\n\nPID data json format\n```\n# Example Code\n* Detailed Example App: ![https://github.com/VedantParanjape/esp-component-examples/tree/master/pid_plotter_example](https://github.com/VedantParanjape/esp-component-examples/tree/master/pid_plotter_example)\n\n```C\n#include \"pid_plotter.h\"\n\nvoid broad()\n{\n    struct pid_terms dt;\n    dt.current = 1.00;\n    dt.error = 2.00;\n    dt.P = 3.00;\n    dt.I = 4.00;\n    dt.D = 5.00;\n    \n    while(1)\n    {\n        esp_err_t err = send_to_queue(dt);\n        err = send_to_queue(dt);\n        logD(\"main\", \"%f\", pid_const_read().setpoint);\n        vTaskDelay(10);\n    }\n}\n\nvoid app_main(void)\n{\n    xTaskCreate(broad, \"send\", 4096, NULL, 1, NULL);\n    plotter();\n}\n```\n# Detailed documentation\n\n* https://vedantparanjape.github.io/pid-plotter-component/ \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvedantparanjape%2Fpid-plotter-component","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvedantparanjape%2Fpid-plotter-component","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvedantparanjape%2Fpid-plotter-component/lists"}