{"action":"opened","issue":{"url":"https://api.github.com/repos/bigdisp/scoreboard-atmega8-i2c/issues/8","repository_url":"https://api.github.com/repos/bigdisp/scoreboard-atmega8-i2c","labels_url":"https://api.github.com/repos/bigdisp/scoreboard-atmega8-i2c/issues/8/labels{/name}","comments_url":"https://api.github.com/repos/bigdisp/scoreboard-atmega8-i2c/issues/8/comments","events_url":"https://api.github.com/repos/bigdisp/scoreboard-atmega8-i2c/issues/8/events","html_url":"https://github.com/bigdisp/scoreboard-atmega8-i2c/issues/8","id":198086835,"number":8,"title":"TWI Bootloader for easy software updates","user":{"login":"gn36","id":607501,"avatar_url":"https://avatars.githubusercontent.com/u/607501?v=3","gravatar_id":"","url":"https://api.github.com/users/gn36","html_url":"https://github.com/gn36","followers_url":"https://api.github.com/users/gn36/followers","following_url":"https://api.github.com/users/gn36/following{/other_user}","gists_url":"https://api.github.com/users/gn36/gists{/gist_id}","starred_url":"https://api.github.com/users/gn36/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gn36/subscriptions","organizations_url":"https://api.github.com/users/gn36/orgs","repos_url":"https://api.github.com/users/gn36/repos","events_url":"https://api.github.com/users/gn36/events{/privacy}","received_events_url":"https://api.github.com/users/gn36/received_events","type":"User","site_admin":false},"labels":[{"id":365212282,"url":"https://api.github.com/repos/bigdisp/scoreboard-atmega8-i2c/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-12-30T00:05:08Z","updated_at":"2016-12-30T00:05:08Z","closed_at":null,"body":"An TWI/i2c Bootloader should be specified and added to allow for easy software updates.\r\n\r\nThe bootloader should:\r\n\r\n- [ ] Use the same TWI address as the application\r\n- [ ] be able to be started from the application\r\n- [ ] Check application|flash page integrity before flashing it\r\n- [ ] Be able to be fed with the same application hex files as direct flashing\r\n- [ ] Process at least the following commands:\r\n    - [ ] Jump to Application\r\n    - [ ] Application Version\r\n    - [ ] Bootloader Version\r\n    - [ ] Write Flash (page, from hex)\r\n    - [ ] Read Flash (page, to hex)\r\n    - [ ] Write EEprom (single byte)\r\n    - [ ] Read EEprom (single byte)\r\n- [ ] Use a common header file with application for shared data\r\n- [ ] Ideally, should not use full 2k which would be allowed by atmega88pa but less than 1k to fit into the next smaller setting\r\n- [ ] Potentially allow reuse of some bootloader code in application (e.g. TWI driver)\r\n\r\nSee for example:\r\n- http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung\r\n- https://forum.arduino.cc/index.php?topic=169988.0\r\n- http://www.atmel.com/images/doc8079.pdf\r\n- https://github.com/orempel/twiboot\r\n- http://jtxp.org/tech/tinysafeboot_en.htm\r\n- http://www.dl5neg.de/bootloader/bootloader.html\r\n- http://www.avrfreaks.net/forum/atmega88pa-bootloader (includes application note references from Atmel)\r\n- http://www.atmel.com/Images/doc8435.pdf\r\n\r\nPotentially, some of the existing code can be modified to work in conjunction with existing application. Application must still work without bootloader, though (should be the case even if jump to bootloader is supported, if the flash is empty in the bootloader section this will simply be equivalent to NOPs and eventually, we should reach 0x0000 again at which point the application essentially is restarted)."}}
{"actor":{"display_login":"gn36"}}