Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
renovate[bot] committed Jul 15, 2024
1 parent 91b485d commit 13c8ae8
Show file tree
Hide file tree
Showing 49 changed files with 50 additions and 50 deletions.
2 changes: 1 addition & 1 deletion renovate/tailwindcss-3.x/categories/index.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions renovate/tailwindcss-3.x/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion renovate/tailwindcss-3.x/posts/hacking-roombas/index.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!doctype html><html lang=en-us><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><title>Hacking Roombas | AOE OpenSource</title>
<meta name=description content="Make Roombas move around and see things | We present our AOE open source projects"><meta name=keywords content="aoe,aoe wiesbaden,aoe it,open source,digital projects,Roomba,Tasmota,ESP32,OpenCV,ArUco"><meta name=robots content="index, follow"><link rel=canonical href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/posts/hacking-roombas/><link rel=apple-touch-icon sizes=180x180 href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/images/apple-touch-icon.8c60b602525ce5dfbb8e829a047f0a8170707f7253dcf358922e6738c15847c1.png><link rel=icon type=image/png sizes=32x32 href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/images/favicon-32x32.d141108f34b924f777a847a9a34ffc75fdd1b153249de705eed4d61cd1084e34.png><link rel=icon type=image/png sizes=16x16 href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/images/favicon-16x16.4b437bbabb4a6de6070b0dead9ad87cebd5719dc782739808897c2440b1ea5b3.png><link rel=preload href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/brands.min.min.ff427499cf03b219c0264a0108d196336628bc856273bd4c79d338adeffde06c.css as=style onload='this.onload=null,this.rel="stylesheet"'><noscript><link href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/brands.min.min.ff427499cf03b219c0264a0108d196336628bc856273bd4c79d338adeffde06c.css rel=stylesheet as=style></noscript><link rel=preload href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/roboto-fonts.min.3eee503acbe2b79931c006fbe01addd4407e15676be55769dfb5d4274d6d7a3e.css as=style onload='this.onload=null,this.rel="stylesheet"'><noscript><link href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/roboto-fonts.min.3eee503acbe2b79931c006fbe01addd4407e15676be55769dfb5d4274d6d7a3e.css rel=stylesheet as=style></noscript><link rel=stylesheet href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/main.min.01fcae66ba2826749826d1d19899141bbe6378a098db583479ffca8f4b70bcc4.css></head><body class="text-aoe-gray-dark bg-white text-lg"><div class="shadow-header inset-x-0 h-24"><div class="container mx-auto py-8 px-1 sm:px-8"><a href=/><img src=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/images/aoe_blue.c3066d1f92ce78fa934f55765595eaa3e69ca702ddd087471b9a096e444eecd7.svg class="h-12 float-left pr-4" width=136 height=48 alt=AOE><div class=text-3xl>❤️ Open Source</div></a></div></div><div class=min-h-screen><div class=bg-gradient-gray-light><div class="container text-center"><h2>Hacking Roombas</h2><div class="meta font-medium text-aoe-gray-medium">2022-05-30, by</div><div class="meta font-bold aoe-gray-dark">Fabrizio Branca</div></div></div><div class=bg-gradient-gray-light><div class=container><div class="mx-auto prose lg:prose-xl md:prose-lg text-aoe-gray-dark text-lg"><p>When <a href=https://twitter.com/fbrnc/status/806231216861147137>I opened the box</a> of my Roomba back in 2016 there was a sticker saying:</p><blockquote><p>This robot contains an electronic and software interface that allows you to control or modify, and remotely monitor its sensors. For software programmers interested in giving your iRobot new functionality we encourage you to do so.</p></blockquote><p><a href=https://twitter.com/fbrnc/status/889569236401741824>A little later I first started playing</a> with microcontrollers sending infrared commands to the IR sensor in order to start cleaning via my home network (or specifically by pressing one of the Amazon Dash buttons that came out at that time).</p><p>While newer generations of the Roomba product line already come with wifi and cameras I always wanted to be able to add that myself.</p><p>Although it may sound a little over-engineered here&rsquo;s my current project:</p><p>Under the top cover of the Roomba there&rsquo;s a serial interface connector hidden. Using a <a href=https://www.irobot.lv/uploaded_files/File/iRobot_Roomba_500_Open_Interface_Spec.pdf>documented serial interface</a> you can easily send either higher-level commands like start cleaning, stopping, and seeking the dock, or low-level commands like reading individual sensor values, controlling the motors or even playing notes on the internal speaker.</p><h2 id=esp32-firmware>ESP32 Firmware</h2><p>Using an <a href=https://www.espressif.com/en/products/socs/esp32>ESP32 microcontroller</a> I was able to &ldquo;bridge&rdquo; the serial interface to <a href=https://mqtt.org/>MQTT</a> and an HTTP api. Instead of implementing everything from scratch I used the <a href=https://tasmota.github.io/docs/>Tasmota firmware</a>. Tasmota is a great open-source firmware for ESP8266 and ESP32 microcontrollers that helped me doing getting started without any custom code on the microcontroller.</p><h2 id=hardware>Hardware</h2><p>I used an ESP32-cam board (later more on the &ldquo;cam&rdquo; part). This board is cheaply available. Make sure you also get the dev-board since the ESP32-cam board itself doesn&rsquo;t come with a USB connector and you&rsquo;d end up fiddling around with additional components. The ESP32 runs on 3.3V (and most boards have a built-in voltage regulator for 5V, which is the USB voltage). But the Roomba connector only includes an unregulated output that can range from 15 to 17V. So we need to drop that voltage safely. While some people suggest using a cheap USB car carger this didn&rsquo;t work for me so I ordered some MP1584EN buck converters.
<meta name=description content="Make Roombas move around and see things | We present our AOE open source projects"><meta name=keywords content="aoe,aoe wiesbaden,aoe it,open source,digital projects,Roomba,Tasmota,ESP32,OpenCV,ArUco"><meta name=robots content="index, follow"><link rel=canonical href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/posts/hacking-roombas/><link rel=apple-touch-icon sizes=180x180 href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/images/apple-touch-icon.8c60b602525ce5dfbb8e829a047f0a8170707f7253dcf358922e6738c15847c1.png><link rel=icon type=image/png sizes=32x32 href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/images/favicon-32x32.d141108f34b924f777a847a9a34ffc75fdd1b153249de705eed4d61cd1084e34.png><link rel=icon type=image/png sizes=16x16 href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/images/favicon-16x16.4b437bbabb4a6de6070b0dead9ad87cebd5719dc782739808897c2440b1ea5b3.png><link rel=preload href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/brands.min.min.ff427499cf03b219c0264a0108d196336628bc856273bd4c79d338adeffde06c.css as=style onload='this.onload=null,this.rel="stylesheet"'><noscript><link href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/brands.min.min.ff427499cf03b219c0264a0108d196336628bc856273bd4c79d338adeffde06c.css rel=stylesheet as=style></noscript><link rel=preload href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/roboto-fonts.min.3eee503acbe2b79931c006fbe01addd4407e15676be55769dfb5d4274d6d7a3e.css as=style onload='this.onload=null,this.rel="stylesheet"'><noscript><link href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/roboto-fonts.min.3eee503acbe2b79931c006fbe01addd4407e15676be55769dfb5d4274d6d7a3e.css rel=stylesheet as=style></noscript><link rel=stylesheet href=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/css/main.min.2ccaf394ec3d45a3d0d6ba4032e18e60122e37e6977a4133a6650ab51cac3c2a.css></head><body class="text-aoe-gray-dark bg-white text-lg"><div class="shadow-header inset-x-0 h-24"><div class="container mx-auto py-8 px-1 sm:px-8"><a href=/><img src=https://opensource.aoe.com/_preview-opensource/renovate/tailwindcss-3.x/dist/images/aoe_blue.c3066d1f92ce78fa934f55765595eaa3e69ca702ddd087471b9a096e444eecd7.svg class="h-12 float-left pr-4" width=136 height=48 alt=AOE><div class=text-3xl>❤️ Open Source</div></a></div></div><div class=min-h-screen><div class=bg-gradient-gray-light><div class="container text-center"><h2>Hacking Roombas</h2><div class="meta font-medium text-aoe-gray-medium">2022-05-30, by</div><div class="meta font-bold aoe-gray-dark">Fabrizio Branca</div></div></div><div class=bg-gradient-gray-light><div class=container><div class="mx-auto prose lg:prose-xl md:prose-lg text-aoe-gray-dark text-lg"><p>When <a href=https://twitter.com/fbrnc/status/806231216861147137>I opened the box</a> of my Roomba back in 2016 there was a sticker saying:</p><blockquote><p>This robot contains an electronic and software interface that allows you to control or modify, and remotely monitor its sensors. For software programmers interested in giving your iRobot new functionality we encourage you to do so.</p></blockquote><p><a href=https://twitter.com/fbrnc/status/889569236401741824>A little later I first started playing</a> with microcontrollers sending infrared commands to the IR sensor in order to start cleaning via my home network (or specifically by pressing one of the Amazon Dash buttons that came out at that time).</p><p>While newer generations of the Roomba product line already come with wifi and cameras I always wanted to be able to add that myself.</p><p>Although it may sound a little over-engineered here&rsquo;s my current project:</p><p>Under the top cover of the Roomba there&rsquo;s a serial interface connector hidden. Using a <a href=https://www.irobot.lv/uploaded_files/File/iRobot_Roomba_500_Open_Interface_Spec.pdf>documented serial interface</a> you can easily send either higher-level commands like start cleaning, stopping, and seeking the dock, or low-level commands like reading individual sensor values, controlling the motors or even playing notes on the internal speaker.</p><h2 id=esp32-firmware>ESP32 Firmware</h2><p>Using an <a href=https://www.espressif.com/en/products/socs/esp32>ESP32 microcontroller</a> I was able to &ldquo;bridge&rdquo; the serial interface to <a href=https://mqtt.org/>MQTT</a> and an HTTP api. Instead of implementing everything from scratch I used the <a href=https://tasmota.github.io/docs/>Tasmota firmware</a>. Tasmota is a great open-source firmware for ESP8266 and ESP32 microcontrollers that helped me doing getting started without any custom code on the microcontroller.</p><h2 id=hardware>Hardware</h2><p>I used an ESP32-cam board (later more on the &ldquo;cam&rdquo; part). This board is cheaply available. Make sure you also get the dev-board since the ESP32-cam board itself doesn&rsquo;t come with a USB connector and you&rsquo;d end up fiddling around with additional components. The ESP32 runs on 3.3V (and most boards have a built-in voltage regulator for 5V, which is the USB voltage). But the Roomba connector only includes an unregulated output that can range from 15 to 17V. So we need to drop that voltage safely. While some people suggest using a cheap USB car carger this didn&rsquo;t work for me so I ordered some MP1584EN buck converters.
Roomba&rsquo;s RX pin works fine the the ESP32 3.3V output, but the data returned from Roomba&rsquo;s TX been needed an extra PNP transistor (I used an 2N3906) so that the signal was readable reliably.
Since I also wanted to capture a video feed I replaced the OV2640 cam with a different fisheye lens with a longer cable. This is what my prototype board looks like:</p><p><picture><source srcset=/_preview-opensource/renovate/tailwindcss-3.x/posts/hacking-roombas/images/proto_top_hu29e6109d9f08f9758011ee57c75d3f0e_166454_730x0_resize_q75_h2_box.webp><img src=/_preview-opensource/renovate/tailwindcss-3.x/posts/hacking-roombas/images/proto_top_hu29e6109d9f08f9758011ee57c75d3f0e_166454_730x0_resize_q90_box.jpg alt="Prototype board (top view)">
</picture><picture><source srcset=/_preview-opensource/renovate/tailwindcss-3.x/posts/hacking-roombas/images/proto_bottom_hub3971683b4790db086d6aa5a8c862538_159102_730x0_resize_q75_h2_box.webp><img src=/_preview-opensource/renovate/tailwindcss-3.x/posts/hacking-roombas/images/proto_bottom_hub3971683b4790db086d6aa5a8c862538_159102_730x0_resize_q90_box.jpg alt="Prototype board (bottom view)">
Expand Down
Loading

0 comments on commit 13c8ae8

Please sign in to comment.