{"id":14,"date":"2024-12-05T15:28:45","date_gmt":"2024-12-05T18:28:45","guid":{"rendered":"https:\/\/blog.feche.ar\/?p=14"},"modified":"2024-12-13T11:16:35","modified_gmt":"2024-12-13T14:16:35","slug":"needle-led-sweep-for-cluster-vmmj08mh-9-00","status":"publish","type":"post","link":"https:\/\/blog.feche.ar\/?p=14","title":{"rendered":"Needle\/Led sweep &amp; DSG needles for cluster VMMJ08MH 9.00"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Introduction.<\/h2>\n\n\n\n<p>First post! first of all &#8211; welcome to my personal blog!<\/p>\n\n\n\n<p>The following code that I am sharing is to enable needle and led sweep for cluster <strong>VMMJ08MH<\/strong> running software version <strong>9.00<\/strong>, this cluster comes with no factory software patches, so revision is <strong><em>FF FF<\/em><\/strong>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote has-background is-layout-flow wp-block-quote-is-layout-flow\" style=\"background-color:#e5ffe5\">\n<p class=\"has-regular-font-size\">This patch also reduces the factory smoothing applied to the needle, so they move faster &#8211; kinda like <em>DSG clusters<\/em>.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-regular-font-size\">Patch data resides in EEPROM memory, starts at address <strong>0x4F6 <\/strong>&#8211; the first 6 bytes are the patch header, and the rest (up to <strong>0x7DF<\/strong>) contains a mix of code block (<em>this is where our patch is<\/em>) and data block.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1019\" height=\"187\" src=\"https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-1.png\" alt=\"\" class=\"wp-image-37\" style=\"width:714px;height:auto\" srcset=\"https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-1.png 1019w, https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-1-300x55.png 300w, https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-1-768x141.png 768w\" sizes=\"auto, (max-width: 1019px) 100vw, 1019px\" \/><figcaption class=\"wp-element-caption\">Patch header structure<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">The patch.<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote has-background is-layout-flow wp-block-quote-is-layout-flow\" style=\"background-color:#ffffe5;font-size:14px\">\n<p class=\"has-background\" style=\"background-color:#ffffe5;font-size:18px\"><strong>DISCLAIMER<\/strong>: this code is licensed under the GNU LGPL v3.0 or later, see the <strong><em>LICENSE <\/em><\/strong>tab for more details.<\/p>\n<\/blockquote>\n\n\n\n<pre class=\"wp-block-preformatted\">; Needle and led sweep for cluster VMMJ08MH 9.00<br>; Made by Feche<br>; https:\/\/feche.ar\/<br><br>E8 1A CA 02 00 C0 20 27 60 90 15 20 40 0F B0 10 20 BB 0E B0 06 20 DE 0E 20 11 0F A5 81 4C 8A 55 9C 6A 0F 9C 6B 0F 9C 6C 0F 90 F0 A9 15 8D 6A 0F 80 E9 AD 6A 0F C9 15 F0 0B 38 EE 6A 0F 20 06 0F 20 3A 0F 60 38 AD 6B 0F C9 55 F0 08 18 EE 6B 0F 20 3A 0F 60 60 AD 6B 0F C9 2A B0 21 A9 05 8D 6D 02 8D 73 02 A9 80 8D 72 02 8D 6C 02 A9 0F 8D 6F 02 8D 71 02 A9 B0 8D 70 02 8D 6E 02 60 A2 00 9E 6C 02 E8 E0 08 D0 F8 60 A4 EE B9 4F 0F AC 6B 0F C0 2A B0 05 0C 6C 0F 80 03 1C 6C 0F AD 6C 0F 8D CE 0A 9C CD 0A A9 CD 85 00 A9 0A 85 01 20 D9 65 60 A9 01 0C 56 0A 60 AD 41 0B C9 1E F0 06 C9 10 F0 02 38 60 18 60 00 80 00 01 00 40 00 04 00 02 00 00 20 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 87 4C 00 55 88 16 00 55 89 0A 00 5A 38 80 00 5A 63 04 00 5D CC 80 00 7F<\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><a href=\"https:\/\/blog.feche.ar\/?p=61\">Source code<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Installation.<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote has-background is-layout-flow wp-block-quote-is-layout-flow\" style=\"background-color:#ffffe5\">\n<p class=\"has-regular-font-size\"><strong>ATTENTION<\/strong>: always make a backup prior to modification!<\/p>\n<\/blockquote>\n\n\n\n<p>You will need your cluster EEPROM dump, you can use <strong>kw1281test<\/strong> in order to do so &#8211; once you have your dump, open it in any hex editor and go to address <strong>0x4F6, <\/strong>it should look like this:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"1024\" src=\"https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-2-765x1024.png\" alt=\"\" class=\"wp-image-40\" srcset=\"https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-2-765x1024.png 765w, https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-2-224x300.png 224w, https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-2-768x1028.png 768w, https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-2.png 792w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><figcaption class=\"wp-element-caption\">HxD Hex editor.<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Once you have copied the patch data, paste it at address <strong>0x4F6<\/strong>, save the file and you are ready to upload!<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"747\" height=\"1024\" src=\"https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-3-747x1024.png\" alt=\"\" class=\"wp-image-41\" srcset=\"https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-3-747x1024.png 747w, https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-3-219x300.png 219w, https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-3-768x1053.png 768w, https:\/\/blog.feche.ar\/wp-content\/uploads\/2024\/12\/image-3.png 797w\" sizes=\"auto, (max-width: 747px) 100vw, 747px\" \/><figcaption class=\"wp-element-caption\">EEPROM with patch data.<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Upload.<\/h2>\n\n\n\n<p>In order to upload the patch code, I highly recommend using <strong>kw1281test<\/strong>, patch can be uploaded over the K-Line using a OBDII &#8216;dumb&#8217; KKL interface using this software &#8211; it will not be covered in this blog post, that is for another time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Disclaimer.<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default has-background is-layout-flow wp-block-quote-is-layout-flow\" style=\"background-color:#ffe2e2;font-size:14px\">\n<p><strong>ATTENTION<\/strong>: the code is &#8216;<em>as-is<\/em>&#8216;, <em>it has been heavily tested<\/em> but <strong>use it at your own risk<\/strong>, I am not responsible for any damage and\/or malfunction to the cluster.<\/p>\n<\/blockquote>\n\n\n\n<p>If you enjoy the mod, please consider donating since this is very time consuming, reverse-engenieering the code is something hard to do.<\/p>\n\n\n\n<p>I also want to thank <a href=\"https:\/\/github.com\/gmenounos\/kw1281test\/\">gmenounos<\/a> for the software <strong>kw1281test<\/strong>, without it this patch would have been very hard or near impossible to make.<\/p>\n\n\n\n<p>Happy modding \ud83d\ude42<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>UPDATES<\/strong>: <\/p>\n\n\n\n<p><em>09\/12\/24<\/em><br>&#8211; Fixed an issue with the temperature needle not being zeroed correctly.<br>&#8211; Reduced initial sweep delay.<\/p>\n\n\n\n<p><em><em>11\/12\/24<\/em><\/em><br>&#8211; Led sweep enabled again, somehow I disabled it on last update.<\/p>\n\n\n\n<p><em><em>13\/12\/24<\/em><\/em><br>&#8211; Fixed an issue preventing doors from locking when using the key FOB.<\/p>\n<\/blockquote>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Introduction. First post! first of all &#8211; welcome to my personal blog! The following code [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"[]"},"categories":[3],"tags":[],"class_list":["post-14","post","type-post","status-publish","format-standard","hentry","category-vag"],"_links":{"self":[{"href":"https:\/\/blog.feche.ar\/index.php?rest_route=\/wp\/v2\/posts\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.feche.ar\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.feche.ar\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.feche.ar\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.feche.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14"}],"version-history":[{"count":33,"href":"https:\/\/blog.feche.ar\/index.php?rest_route=\/wp\/v2\/posts\/14\/revisions"}],"predecessor-version":[{"id":175,"href":"https:\/\/blog.feche.ar\/index.php?rest_route=\/wp\/v2\/posts\/14\/revisions\/175"}],"wp:attachment":[{"href":"https:\/\/blog.feche.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.feche.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.feche.ar\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}