{"id":3953,"date":"2024-09-30T09:05:16","date_gmt":"2024-09-30T14:05:16","guid":{"rendered":"https:\/\/lab.rapternet.us\/?p=3953"},"modified":"2024-09-21T22:33:19","modified_gmt":"2024-09-22T03:33:19","slug":"cramming-smarts-into-a-bluetooth-speaker","status":"publish","type":"post","link":"https:\/\/lab.rapternet.us\/?p=3953","title":{"rendered":"Cramming Smarts into a Bluetooth Speaker"},"content":{"rendered":"\n<p>I&#8217;ve had a Bluetooth speaker in my drawer for a few years that is problematic. It doesn&#8217;t charge, or turn on consistently, and has other issues as well. Now that I have the ESP audio kit though, I have a need for a good speaker to plug into it. This speaker needing a new control board is just the right candidate for the procedure.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>The entire process should be pretty simple. I need to disassemble the Bluetooth speaker, remove everything but the speaker itself, and wire a plug in so that it can connect to the ESP. Finally I need to design and print a case to hold it all together.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hardware<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.amazon.com\/dp\/B0B5XKG5NK?psc=1&amp;ref=ppx_yo2ov_dt_b_product_details\">ESP32-A1S Audio Kit<\/a><\/li>\n\n\n\n<li>Dead Bluetooth speaker<\/li>\n\n\n\n<li>M2 H4 heat set inserts, 4 (case half assembly)<\/li>\n\n\n\n<li>M2 H2 or H4 heat set inserts, 4 (circuit board)<\/li>\n\n\n\n<li>M2 H4 heat set inserts, 4 (attaching the Bluetooth speaker to the case)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"771\" height=\"1024\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_172150648856014469019085552-771x1024.jpg\" alt=\"\" class=\"wp-image-3949\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_172150648856014469019085552-771x1024.jpg 771w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_172150648856014469019085552-226x300.jpg 226w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_172150648856014469019085552-768x1020.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_172150648856014469019085552-1157x1536.jpg 1157w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_172150648856014469019085552.jpg 1506w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">The MongoDB Problematic Bluetooth Speaker<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Disassembling the Speaker<\/h2>\n\n\n\n<p>Since there were no visible screw holes, I started by pulling off the feet on the back since that&#8217;s a common spot to hide screws. None were behind the feet, so I went on to prying around the edges with a straight slot screwdriver. I found the speaker grille was not screwed into place and with a little effort could be removed exposing 4 screws.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2326168065746853755894494806-1024x771.jpg\" alt=\"\" class=\"wp-image-3950\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2326168065746853755894494806-1024x771.jpg 1024w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2326168065746853755894494806-300x226.jpg 300w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2326168065746853755894494806-768x578.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2326168065746853755894494806-1536x1157.jpg 1536w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2326168065746853755894494806.jpg 2000w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">Grille Removed Showing Screws<\/figcaption><\/figure>\n\n\n\n<p>I removed all 4 screws including those holding on the wood grain control pad on. Once that was removed, it exposed 2 more screws.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2327289515280594049164970631-1024x771.jpg\" alt=\"\" class=\"wp-image-3951\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2327289515280594049164970631-1024x771.jpg 1024w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2327289515280594049164970631-300x226.jpg 300w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2327289515280594049164970631-768x578.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2327289515280594049164970631-1536x1157.jpg 1536w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2327289515280594049164970631.jpg 2000w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">More Screws Underneath the Control Panel<\/figcaption><\/figure>\n\n\n\n<p>Once all the visible screws were removed, I prayed a bit between the case halves to pop them apart and get to the meat of the internals.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2329284859099461803775268818-1024x771.jpg\" alt=\"\" class=\"wp-image-3948\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2329284859099461803775268818-1024x771.jpg 1024w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2329284859099461803775268818-300x226.jpg 300w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2329284859099461803775268818-768x578.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2329284859099461803775268818-1536x1157.jpg 1536w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2329284859099461803775268818.jpg 2000w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">Cracked Open<\/figcaption><\/figure>\n\n\n\n<p>I unplugged the speaker, and pulled the main board out of the speaker, keeping the speaker itself and the board holding the button. I may try to integrate the button and it&#8217;s LED into my squeezelite board later on, but for now we&#8217;re just focused on the front of the speaker.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2346091421212362251199010650-1024x771.jpg\" alt=\"\" class=\"wp-image-3952\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2346091421212362251199010650-1024x771.jpg 1024w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2346091421212362251199010650-300x226.jpg 300w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2346091421212362251199010650-768x578.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2346091421212362251199010650-1536x1157.jpg 1536w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2346091421212362251199010650.jpg 2000w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">Controls Removed<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Brain Surgery<\/h2>\n\n\n\n<p>I soldered on a different connector to the speaker so I could plug it into the ESP32 A1S directly and tried out playing some music on it. It worked well and sounded better than the little test speakers I used previously on the ESP.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"771\" height=\"1024\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2356265035902683901475442465-771x1024.jpg\" alt=\"\" class=\"wp-image-3972\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2356265035902683901475442465-771x1024.jpg 771w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2356265035902683901475442465-226x300.jpg 226w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2356265035902683901475442465-768x1020.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2356265035902683901475442465-1157x1536.jpg 1157w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240812_2356265035902683901475442465.jpg 1506w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">Trying it out<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Design &amp; Reassembly<\/h2>\n\n\n\n<p>Next up is going to be designing a new case so I can mount the new control board to the Bluetooth speaker front, giving a bit of a cohesive unit (for those who consider Frankenstein&#8217;s monster cohesive). I used a general ESP Audio Kit case design as my basis and created a custom lid for it to hold my Bluetooth speaker in place. The lid has heat set inserts to hold the speaker to it, and a large hole for wiring to pass through.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240825_1643151854326393874759611756-1024x771.jpg\" alt=\"\" class=\"wp-image-4087\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240825_1643151854326393874759611756-1024x771.jpg 1024w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240825_1643151854326393874759611756-300x226.jpg 300w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240825_1643151854326393874759611756-768x578.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240825_1643151854326393874759611756-1536x1157.jpg 1536w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/08\/pxl_20240825_1643151854326393874759611756.jpg 2000w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">Test fitting in the first prototype<\/figcaption><\/figure>\n\n\n\n<p>I did make an oops on my first design. I decided to use M3 heat set inserts to hold the speaker in place, but m3 screws didn&#8217;t fit through the speaker screw holes. Always make sure to check the screws fit before choosing the size of your heat set inserts.<\/p>\n\n\n\n<p>With the new lid created, I started assembly. I screwed the Bluetooth speaker to the lid, and the ESP to the base of the case, plugged in the speaker and screwed the two cases halves together.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" data-id=\"4138\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828404751097696983796326040-1024x771.jpg\" alt=\"\" class=\"wp-image-4138\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828404751097696983796326040-1024x771.jpg 1024w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828404751097696983796326040-300x226.jpg 300w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828404751097696983796326040-768x578.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828404751097696983796326040-1536x1157.jpg 1536w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828404751097696983796326040.jpg 2000w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1506\" data-id=\"4137\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1914419175956278931307405788.jpg\" alt=\"\" class=\"wp-image-4137\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1914419175956278931307405788.jpg 2000w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1914419175956278931307405788-300x226.jpg 300w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1914419175956278931307405788-1024x771.jpg 1024w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1914419175956278931307405788-768x578.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1914419175956278931307405788-1536x1157.jpg 1536w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n<\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828348735871850552253245510-1024x771.jpg\" alt=\"\" class=\"wp-image-4139\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828348735871850552253245510-1024x771.jpg 1024w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828348735871850552253245510-300x226.jpg 300w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828348735871850552253245510-768x578.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828348735871850552253245510-1536x1157.jpg 1536w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_1828348735871850552253245510.jpg 2000w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">Assembled Top and Bottom Halves<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_2046231643768926901875727891-1024x771.jpg\" alt=\"\" class=\"wp-image-4144\" srcset=\"https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_2046231643768926901875727891-1024x771.jpg 1024w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_2046231643768926901875727891-300x226.jpg 300w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_2046231643768926901875727891-768x578.jpg 768w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_2046231643768926901875727891-1536x1157.jpg 1536w, https:\/\/lab.rapternet.us\/wp-content\/uploads\/2024\/09\/pxl_20240902_2046231643768926901875727891.jpg 2000w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption class=\"wp-element-caption\">Fully Assembled<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>The unit turned out well and sounds much better than the other speakers I had used on the ESP. This is also a great way to extend the life of all least some of the Bluetooth speaker parts without just throwing it out and replacing it (especially if you play with ESPs). The <a href=\"https:\/\/www.printables.com\/model\/998833-esp32-a1s-mongodb-bluetooth-speaker\">model is available on printables <\/a>here.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve had a Bluetooth speaker in my drawer for a few years that is problematic. It doesn&#8217;t charge, or turn on consistently, and has other issues as well. Now that I have the ESP audio kit though, I have a need for a good speaker to plug into it. This speaker needing a new control &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/lab.rapternet.us\/?p=3953\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Cramming Smarts into a Bluetooth Speaker&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":4144,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[105,49,106],"class_list":["post-3953","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-making","tag-audio","tag-smart-home","tag-squeezelite"],"_links":{"self":[{"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=\/wp\/v2\/posts\/3953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3953"}],"version-history":[{"count":19,"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=\/wp\/v2\/posts\/3953\/revisions"}],"predecessor-version":[{"id":4217,"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=\/wp\/v2\/posts\/3953\/revisions\/4217"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=\/wp\/v2\/media\/4144"}],"wp:attachment":[{"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3953"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3953"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lab.rapternet.us\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}