{"id":1393,"date":"2014-05-26T16:33:38","date_gmt":"2014-05-26T14:33:38","guid":{"rendered":"http:\/\/majek.mamy.to\/?p=1393"},"modified":"2014-05-27T22:54:16","modified_gmt":"2014-05-27T20:54:16","slug":"xeboot","status":"publish","type":"post","link":"https:\/\/majek.sh\/en\/xeboot\/","title":{"rendered":"XEBOOT &#8211; tiny Amega8 xmodem bootloader"},"content":{"rendered":"<p><\/p>\n<h2>Story<\/h2>\n<p>Few years ago I was working on some commercial device based on Atmega8. One of features was to deliver device with some software, but it should&#8217;ve been ready for further firmware updates by customer as well.<\/p>\n<p>Burning some ready-made bootloader with STK or other proprietary protocol was not an option. Customer had only serial port adapter and that&#8217;s all. Operating system also could vary.<\/p>\n<p>There was also another problem &#8211; device was quite simple, most of it&#8217;s power was in software. So, new firmware released to customer shouldn&#8217;t work with 3rd party hardware.<br \/>\nThat way encryption was another &#8216;must be&#8217; option for bootloader.<\/p>\n<p>And last requirement &#8211; size. Program had some quite large tables burned in, so spending 2kB or more on bootloader was a waste of precious flash space.<\/p>\n<p>So, I wrote bootloader myself \ud83d\ude42<\/p>\n<p>Last days I decided to release this code to public as after all these years there is still no small xmodem bootloader available and now I could do it.<\/p>\n<h2>Features<\/h2>\n<ul>\n<li>small size (less than 512B)<\/li>\n<li>supported protocol: xmodem<\/li>\n<li>pure serial operation (no other hardware or wiring than rx\/tx is required)<\/li>\n<li>support some kind of encryption (not strong, but it&#8217;s enough to prevent unexperienced user to just burn it into clone)<\/li>\n<li>it&#8217;s free (GPL v3) \ud83d\ude42<\/li>\n<\/ul>\n<h2>Code<\/h2>\n<p>You can download code from Github: <a href=\"https:\/\/github.com\/majekw\/xeboot\" target=\"_blank\">https:\/\/github.com\/majekw\/xeboot<\/a><br \/>\nTechnical details are also available in README on repository.<\/p>\n<h2>Fork<\/h2>\n<p>Yes, project evolved \ud83d\ude42<br \/>\nIt was forked to support Atmega88\/168\/328. I had to sacrifice encryption to fit it in 0.5KB, so it&#8217;s no longer xEboot.<br \/>\nFork is currently part of my other project <a href=\"https:\/\/majek.sh\/lcd88\" title=\"LCD88: R\/C DIY transmitter\">LCD88 (diy r\/c transmitter)<\/a> and sources are also available on Github repository: <a href=\"https:\/\/github.com\/majekw\/lcd88\" target=\"_blank\">https:\/\/github.com\/majekw\/lcd88<\/a><br \/>\n<\/p>","protected":false},"excerpt":{"rendered":"<p>Story Few years ago I was working on some commercial device based on Atmega8. One of features was to deliver device with some software, but it should&#8217;ve been ready for further firmware updates by customer as well. Burning some ready-made <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/majek.sh\/en\/xeboot\/\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[50],"_links":{"self":[{"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/posts\/1393"}],"collection":[{"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/comments?post=1393"}],"version-history":[{"count":9,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/posts\/1393\/revisions"}],"predecessor-version":[{"id":1402,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/posts\/1393\/revisions\/1402"}],"wp:attachment":[{"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/media?parent=1393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/categories?post=1393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/majek.sh\/en\/wp-json\/wp\/v2\/tags?post=1393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}