{"id":386735,"date":"2026-04-11T13:19:09","date_gmt":"2026-04-11T13:19:09","guid":{"rendered":"https:\/\/www.newsbeep.com\/il\/386735\/"},"modified":"2026-04-11T13:19:09","modified_gmt":"2026-04-11T13:19:09","slug":"rust-y-firmware-for-waveshare-smartwatch","status":"publish","type":"post","link":"https:\/\/www.newsbeep.com\/il\/386735\/","title":{"rendered":"Rust-y Firmware For Waveshare Smartwatch"},"content":{"rendered":"<p>Waveshare makes a nifty little ESP32-S3 based smartwatch product, but its firmware is apparently not to everyone\u2019s liking. Specifically, it\u2019s not to [infiniton] a.k.a [Bright_Warning_8406]\u2019s liking, as <a href=\"https:\/\/github.com\/infinition\/waveshare-watch-rs\" target=\"_blank\" rel=\"nofollow noopener\">they rewrote the entire code base in Rust<\/a>. No_std Rust, to be specific, but perhaps that doesn\u2019t need to be specified when dealing with ESP32.<\/p>\n<p>On <a href=\"https:\/\/www.reddit.com\/r\/esp32\/comments\/1sh0ur6\/i_ported_esp32s3_smartwatch_firmware_to_100_no\/\" target=\"_blank\" rel=\"nofollow noopener\">the Reddit thread about the project<\/a>, he lists some of the advantages. For one thing, the size of the binary has dropped from 1.2 MB to 579 kB while maintaining the same functionality. More interesting is that he\u2019s been able to eliminate polling entirely: the firmware is purely event-driven. The CPU is not just idle but parked until a timer or GPIO event wakes it up. For this form factor, that\u2019s a big deal \u2014 you can\u2019t fit a very large battery in a watch, after all.<\/p>\n<p>Getting drivers for the AMOLED display, touch sensor, audio, and RTC modules written from scratch is an impressive accomplishment. Apparently the screen driver in particular was \u201ca nightmare\u201d and we believe it. There\u2019s a reason most people go for existing libraries for this stuff. [Bright_Warning] did not post screenshots or video, but claims his version of the watch watch can make HTTP calls to Smart Home, play MP3s, play the old phone games\u2013 Snake, 2048, Tetris, Flappy Bird, Maze\u2013 and even comes with a T9 keyboard for text input.<\/p>\n<p>If you\u2019re looking to get closer to bare metal, and don\u2019t mind it being Rust-y, take a look at the code on GitHub in the first link above. This author isn\u2019t enough of a rustacean to say if the code is as good as it sounds at a glance, but nothing egregious jumps out. The documentation describing exactly what\u2019s going on under the hood isn\u2019t half-bad, either. If you aren\u2019t into Waveshare products, you could easily adapt this code into <a href=\"https:\/\/hackaday.com\/2025\/06\/05\/piko-your-esp32-powered-fitness-buddy\/\" rel=\"nofollow noopener\" target=\"_blank\">a more DIY ESP32 watch<\/a>, too.<\/p>\n<p>If you\u2019re not into Rust, uh\u2026 <a href=\"https:\/\/hackaday.com\/2019\/11\/10\/diy-electrolysis-tank-removing-rust-while-you-sleep\/\" rel=\"nofollow noopener\" target=\"_blank\">washing soda and electric current<\/a> can get it off of steel, and probably microcontrollers too. We can\u2019t say that the chip will work after that, but hey \u2014 no rust.<\/p>\n","protected":false},"excerpt":{"rendered":"Waveshare makes a nifty little ESP32-S3 based smartwatch product, but its firmware is apparently not to everyone\u2019s liking.&hellip;\n","protected":false},"author":2,"featured_media":386736,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[330,85,46,125],"class_list":{"0":"post-386735","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-gadgets","8":"tag-gadgets","9":"tag-il","10":"tag-israel","11":"tag-technology"},"_links":{"self":[{"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/posts\/386735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/comments?post=386735"}],"version-history":[{"count":0,"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/posts\/386735\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/media\/386736"}],"wp:attachment":[{"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/media?parent=386735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/categories?post=386735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newsbeep.com\/il\/wp-json\/wp\/v2\/tags?post=386735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}