{"id":1212,"date":"2023-11-20T00:54:29","date_gmt":"2023-11-20T04:54:29","guid":{"rendered":"https:\/\/claymccauley.info\/?p=1212"},"modified":"2023-11-20T01:15:56","modified_gmt":"2023-11-20T05:15:56","slug":"chamberlain-smart-garage-control-teardown","status":"publish","type":"post","link":"https:\/\/claymccauley.info\/index.php\/2023\/11\/20\/chamberlain-smart-garage-control-teardown\/","title":{"rendered":"Chamberlain Smart Garage Control teardown"},"content":{"rendered":"\n<p>With the recent Chamberlain API lockdown, I thought it might be interesting to tear down one of their controllers to see what makes it tick.  Thankfully I happen to have a spare unit sitting new in the box.  Why do I have a spare unit you might ask?  The standard package comes with what Chamberlain calls a WiFi hub and a single door sensor.  I have 2 garage doors, each with openers.  At the time a spare door sensor was most of the cost of the whole package, so I just bought the whole thing again.<\/p>\n\n\n\n<p>The WiFi hub is incredibly simple to disassemble.  There are just 2 screws that hold the faceplate to the frame.  Once you remove the faceplate, a single snap lever retains the main PCB.  Once I had the main PCB separated from the frame, it was easy to pick out the core components.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_041649459-1024x771.jpg\" alt=\"\" class=\"wp-image-1215\" srcset=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_041649459-1024x771.jpg 1024w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_041649459-300x226.jpg 300w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_041649459-768x578.jpg 768w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_041649459-1536x1157.jpg 1536w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_041649459-2048x1542.jpg 2048w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_041649459-398x300.jpg 398w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"771\" src=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_035615731-1024x771.jpg\" alt=\"\" class=\"wp-image-1216\" srcset=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_035615731-1024x771.jpg 1024w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_035615731-300x226.jpg 300w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_035615731-768x578.jpg 768w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_035615731-1536x1157.jpg 1536w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_035615731-2048x1542.jpg 2048w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_035615731-398x300.jpg 398w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>The system is based on a PIC18 microcontroller.  In this case the Microchip PIC 18F67J11-1\/PT.  The PIC18 is a 16-bit RISC CPU compatible with the earlier PIC16.  It has 128KB flash onboard and 4KB of RAM.  While it&#8217;s no powerhouse, the CPU does offer 4 interrupt lines, 5 PWM, Parallel and Serial ports with SPI and i2C support.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"926\" src=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022631427-1024x926.jpg\" alt=\"\" class=\"wp-image-1217\" srcset=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022631427-1024x926.jpg 1024w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022631427-300x271.jpg 300w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022631427-768x695.jpg 768w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022631427-1536x1390.jpg 1536w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022631427-2048x1853.jpg 2048w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022631427-332x300.jpg 332w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"708\" src=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022711264-1024x708.jpg\" alt=\"\" class=\"wp-image-1218\" srcset=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022711264-1024x708.jpg 1024w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022711264-300x207.jpg 300w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022711264-768x531.jpg 768w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022711264-1536x1062.jpg 1536w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022711264-2048x1416.jpg 2048w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022711264-434x300.jpg 434w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Linked to the PIC18&#8217;s i2C bus is a 24C16K SPI Flash ROM.  I had a compatible harness for this and dumped the contents which were mostly empty.  I&#8217;m assuming this rom is used for configuration data, possibly to store the opener codes programmed in during initial setup.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:25%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"833\" height=\"1024\" src=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022834574-1-833x1024.jpg\" alt=\"\" class=\"wp-image-1219\" srcset=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022834574-1-833x1024.jpg 833w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022834574-1-244x300.jpg 244w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022834574-1-768x944.jpg 768w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022834574-1-1250x1536.jpg 1250w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022834574-1-1666x2048.jpg 1666w\" sizes=\"auto, (max-width: 833px) 100vw, 833px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<p>The remaining modules of interest were an Si4432 433mhz transceiver chip (left) and an Fn-Link 6220N-IS 2.4Ghz WiFi 5 module. (right) These enable comms with your network and most garage door openers.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:25%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"771\" height=\"1024\" src=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022701282-771x1024.jpg\" alt=\"\" class=\"wp-image-1220\" srcset=\"https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022701282-771x1024.jpg 771w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022701282-226x300.jpg 226w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022701282-768x1020.jpg 768w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022701282-1157x1536.jpg 1157w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022701282-1542x2048.jpg 1542w, https:\/\/claymccauley.info\/wp-content\/uploads\/2023\/11\/PXL_20231120_022701282-scaled.jpg 1928w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>So, what can we do with this knowledge?  Well, given the CPU has a built-in flash, we could attempt to dump the contents of that storage and see if there&#8217;s anything useful we can decipher from it.  There are test points on the board that appear to be connected directly to the CPU for programming.  I&#8217;m going to attempt to verify this against the datasheet for the PIC18 and see if that&#8217;s the case.  To be continued&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the recent Chamberlain API lockdown, I thought it might be interesting to tear down one of their controllers to see what makes it tick. Thankfully I happen to have a spare unit sitting new in the box. Why do &hellip; <a href=\"https:\/\/claymccauley.info\/index.php\/2023\/11\/20\/chamberlain-smart-garage-control-teardown\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[195,202,200,201],"class_list":["post-1212","post","type-post","status-publish","format-standard","hentry","category-tech","tag-chamberlain","tag-electronics","tag-myq","tag-teardown"],"_links":{"self":[{"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/posts\/1212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/comments?post=1212"}],"version-history":[{"count":4,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/posts\/1212\/revisions"}],"predecessor-version":[{"id":1225,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/posts\/1212\/revisions\/1225"}],"wp:attachment":[{"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/media?parent=1212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/categories?post=1212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/tags?post=1212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}