{"id":9739,"date":"2023-10-08T12:52:23","date_gmt":"2023-10-08T12:52:23","guid":{"rendered":"https:\/\/www.fambach.net\/?p=9739"},"modified":"2026-10-03T19:34:06","modified_gmt":"2026-10-03T19:34:06","slug":"customkeyboard","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/customkeyboard\/","title":{"rendered":"CustomKeyboard Library"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Contents\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Zweck\" >Purpose<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Arduino_Bibliothekar\" >Arduino Library<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Git_Download\" >Download Git<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Probleme\" >Problems<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Fazit\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Andere_Bibliotheken\" >Andere Bibliotheken<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/#Weitere_Quellen\" >Further sources<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">Eine Bibliothek f\u00fcr eine eigene Tastatur mit unterschiedlichen Kn\u00f6pfen, Potis und mal schauen, was sonst noch folgt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"zweck\"><span class=\"ez-toc-section\" id=\"Zweck\"><\/span>Purpose<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Inputverarbeitung am Arduino und anderen Microcontrollern<\/li>\n\n\n\n<li>Nicht blockierende und entprellte Taster<\/li>\n\n\n\n<li>Lang\/Kurz Tastendruck<\/li>\n\n\n\n<li>Modusauswahl<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"arduino-bibliothekar\"><span class=\"ez-toc-section\" id=\"Arduino_Bibliothekar\"><\/span>Arduino Library<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ist meine eigene Lib und leider nicht im Bibliothekar verf\u00fcgbar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"git-download\"><span class=\"ez-toc-section\" id=\"Git_Download\"><\/span>Download Git<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/sfambach\/CustomKeyboard\/tree\/main\" class=\"ub-content-link__anchor\">https:\/\/github.com\/sfambach\/CustomKeyboard\/tree\/main<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"probleme\"><span class=\"ez-toc-section\" id=\"Probleme\"><\/span>Problems<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Currently none.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fazit\"><span class=\"ez-toc-section\" id=\"Fazit\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ich habe die Bibliothek angelegt, um ohne viel Aufwand Buttons und andere Elemente in meine Projekte zu integrieren. Da die Verarbeitung nicht blockiert und die Taster entprellt sind, sollte sie auch einfach f\u00fcr andere nutzbar sein. Ob sie das ist, m\u00fcssen die Benutzer entscheiden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"andere-bibliotheken\"><span class=\"ez-toc-section\" id=\"Andere_Bibliotheken\"><\/span>Andere Bibliotheken<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<ul class=\"display-posts-listing\"><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/esp-web-serial-bibliothek\/\">ESP WEB Serial Library<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/esp01-relay-platinen-2\/\">ESP01 \u2013 DHT11 Temperatur und Feuchte Sensor Platinen<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/customkeyboard\/\">CustomKeyboard Library<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/esp8266-32-wifi-manager\/\">ESP8266\/32 WiFi Manager.<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/preview-esp01-relais-modul\/\">ESP01 \u2013 Relais Platine<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/neo-6m-gps-logger-shield-v1-0\/\">NEO-6M GPS Logger Shield V1.0<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/zumo-v1-2-2\/\">Zumo V1.2<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/esp8266-rtos-sdk\/\">ESP8266 RTOS SDK<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks-2\/\">Espressif IDF \u2013 GPIOs<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><li class=\"listing-item\"><span class=\"ub-content-link ub-content-link--unknown ub-content-link--status-after\"><a class=\"title ub-content-link__anchor\" href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/\">Espressif IDF \u2013 Tasks<\/a><span class=\"ub-status ub-status--unknown\" title=\"Link status: Unknown\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: Unknown<\/span><\/span><\/span><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"weitere-quellen\"><span class=\"ez-toc-section\" id=\"Weitere_Quellen\"><\/span>Further sources<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"ub-content-link ub-content-link--ok ub-content-link--status-after\"><a href=\"https:\/\/github.com\/sfambach\/CustomKeyboard\/tree\/main\" class=\"ub-content-link__anchor\">https:\/\/github.com\/sfambach\/CustomKeyboard\/tree\/main<\/a><span class=\"ub-status ub-status--ok\" title=\"Link status: OK\"><span class=\"ub-status__icon\" aria-hidden=\"true\">\u25cf<\/span><span class=\"screen-reader-text\">Link status: OK<\/span><\/span><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"<p>I have created the library to integrate buttons and other elements into my projects with little effort. As the processing is non-blocking and the buttons are debounced, it should also be easy to use. Whether it is, the user must decide.<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/espressif-idf-tasks\/\" class=\"read-more-link\">Carry on reading <span class=\"screen-reader-text\">\"Espressif IDF &#8211; Tasks\"<\/span> <span class=\"meta-nav\">\u2192<\/span><\/a>","protected":false},"author":1,"featured_media":9743,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[183,304],"tags":[71,734,619,729,309,733],"class_list":["post-9739","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bibliotheken","category-eigenentwicklungen","tag-bibliotheken","tag-input","tag-io","tag-keyboard","tag-lib","tag-poti","penguin-post","penguin-post-not-sticky"],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/9739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/comments?post=9739"}],"version-history":[{"count":7,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/9739\/revisions"}],"predecessor-version":[{"id":17155,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/9739\/revisions\/17155"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media\/9743"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=9739"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=9739"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=9739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}