{"id":31101,"date":"2019-10-31T21:39:28","date_gmt":"2019-10-31T18:39:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe\/"},"modified":"2019-10-31T21:39:28","modified_gmt":"2019-10-31T18:39:28","slug":"pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe","title":{"rendered":"Vi skriver OTA-loader til ATmega128RFA1 (i enheden Smart Response XE)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Vi skriver OTA-loader til ATmega128RFA1 (i enheden Smart Response XE)\" src=\"\/wp-content\/uploads\/2019\/04\/c3c47048a601bcd0a79b44535de2f36f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet hele begyndte med, at forfatteren k\u00f8bte en interessant enhed p\u00e5 det sekund\u00e6re marked \u2014 Smart Response XE (<noindex><a rel=\"nofollow\" href=\"http:\/\/downloads.smarttech.com\/media\/sitecore\/en\/support\/product\/smartresponse\/smartresponsexe\/specsheets\/specsresponsexev18mar13.pdf\">kort beskrivelse<\/a><\/noindex>). Den er designet til skoler: hver elev i klassen f\u00e5r tildelt en enhed, der ligner en elektronisk notesbog eller en overs\u00e6tter fra 90'erne, l\u00e6reren stiller et sp\u00f8rgsm\u00e5l, og eleverne indtaster svar p\u00e5 enhedernes tastaturer, som sendes via radiokanal (802.15.4) til en modtager tilsluttet l\u00e6rerens pc.<\/p>\n<p>St\u00f8tten til disse enheder blev stoppet for flere \u00e5r siden, og det, som skolerne k\u00f8bte for 100-200 dollars stykket, dukker nu op p\u00e5 eBay til 10 dollars eller mindre. \"Hardwaren\" er meget velegnet til n\u00f8rdede eksperimenter:<\/p>\n<ul>\n<li>tastatur med 60 taster<\/li>\n<li>sk\u00e6rm med en opl\u00f8sning p\u00e5 384\u00d7136, 2 bit per pixel \u2014 svarende til BK, CGA, men 4 ikke farver, men lysstyrkegraderinger<\/li>\n<li>mikrocontroller ATmega128RFA1 (128 kB flash-hukommelse, 4 kB EEPROM, 16 kB RAM, modtager-transmitter i henhold til standard 802.15.4)<\/li>\n<li>ekstern (i forhold til mikrocontrolleren, ikke hele enheden) flash-hukommelse p\u00e5 1 megabit (128 kilobyte) med SPI-interface<\/li>\n<li>rum til 4 AAA-batterier.<\/li>\n<\/ul>\n<p>\nUd fra navnet p\u00e5 mikrokontrolleren er det klart, at den tilh\u00f8rer AVR-familien, og derfor er det mere end en triviel opgave at g\u00f8re enheden Arduino-kompatibel\u2026<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Fra nyheden p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/hackaday.com\/2018\/07\/22\/classroom-gadget-turned-arduino-compatible\/\">Hackaday<\/a><\/noindex> fandt forfatteren ud af, at det <noindex><a rel=\"nofollow\" href=\"https:\/\/community.arduboy.com\/t\/smart-response-xe-re-purposed-into-arduboy\/6094\/\">allerede var blevet gjort<\/a><\/noindex> (i det samme link forklares, hvad der skal tilsluttes), og man kan nu spille spil til Arduboy:<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"6VqPGFtIT8Q\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/6VqPGFtIT8Q\/hqdefault.jpg\" alt=\"Afspil video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\n Men forfatteren er mere interesseret i muligheden for ikke at spille p\u00e5 enheden, men at unders\u00f8ge:<\/p>\n<ul>\n<li>flash-hukommelse med seri\u00f8s SPI-interface<\/li>\n<li>bootloadere til AVR<\/li>\n<li>standard 802.15.4<\/li>\n<\/ul>\n<p>\nForfatteren begyndte med at skrive <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitbank2\/SmartResponseXE\">biblioteket<\/a><\/noindex> (GPL v3), der g\u00f8r det muligt at initialisere sk\u00e6rmen, vise tekst og rektangler samt f\u00e5 adgang til flash-hukommelsen med SPI-interface. Derefter begyndte han at t\u00e6nke p\u00e5 id\u00e9er til praktisk anvendelse af enheden: en lomme VT-100-kompatibel terminal, multiplayer-spil. Efter at have modificeret tre enheder besluttede han at \"undervise\" dem i at modtage sketches \"over luften\". Det ville ikke kun v\u00e6re interessant, men ogs\u00e5 meget bekvemt: at \u00e5bne enhedens kabinet er sv\u00e6rt hver gang, og under l\u00e5get af batterirummet er der kun huller, der muligg\u00f8r tilslutning af et JTAG-programmer.<\/p>\n<p><img decoding=\"async\" alt=\"Vi skriver OTA-loader til ATmega128RFA1 (i enheden Smart Response XE)\" src=\"\/wp-content\/uploads\/2019\/04\/eb928013737c34e50e6a49e7d41d5bd7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDette er tilstr\u00e6kkeligt til at uploade Arduino-bootloaderen, men ikke skitsen \u2014 den serielle port er ikke tilg\u00e6ngelig, s\u00e5 det er n\u00f8dvendigt at \u00e5bne kabinettet. Desuden er TX0- og RX0-linjerne fra den f\u00f8rste serielle port kombineret med linjerne til matrix-tastaturafformningen, som er dem, hvor funktionstasterne bliver foresp\u00f8rgt p\u00e5 begge sider af sk\u00e6rmen. Men hvad kan man g\u00f8re \u2014 forfatteren har konstrueret dette:<\/p>\n<p><img decoding=\"async\" alt=\"Vi skriver OTA-loader til ATmega128RFA1 (i enheden Smart Response XE)\" src=\"\/wp-content\/uploads\/2019\/04\/8989f4057806b83ff2eb11b6f1ed2d57.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHan har f\u00f8rt JTAG-linjerne ud, s\u00e5 det er ikke l\u00e6ngere n\u00f8dvendigt at \u00e5bne batterirummet. For at man kunne uploade skitser, f\u00f8rte han ogs\u00e5 begge serielle porte ud til denne samme stik, og tilf\u00f8jede en kontakt, fordi enheden p\u00e5 anden m\u00e5de ikke fysisk kan slukkes, n\u00e5r batterierne er installeret.<\/p>\n<p>Det kr\u00e6vede en del tid at arbejde med loddekolben, en hobbykniv og en limpistol. Alt i alt er det betydeligt lettere at uploade skitser \"tr\u00e5dl\u00f8st\", noget skal der hurtigt findes p\u00e5.<\/p>\n<p>Arduino IDE bruger softwaren til at uploade skitser <noindex><a rel=\"nofollow\" href=\"http:\/\/www.ladyada.net\/learn\/avr\/avrdude.html\">cli). Det m\u00e5 \u00e5benbart v\u00e6re et flueben, der viser CLI-applikationer i HaikuDepot-interfacet, men jeg fandt det ikke, eller ogs\u00e5 eksisterer det ikke. (\"Anbefalede\" eller \"Alle pakker\"... \u00f8nsker du det? Nej, jeg vil ikke se \"alle\" pakker, jeg antager, der vises mange biblioteker. Noget som det gode gamle<\/a><\/noindex>. Den interagerer med mikrocontrolleren via protokollen <noindex><a rel=\"nofollow\" href=\"http:\/\/www.tuxgraphics.org\/common\/src2\/article05101\/stk500_spec_AVR068.pdf\">STK500<\/a><\/noindex>, som tillader filoverf\u00f8rsel i begge retninger. Den er d\u00e5rligt kompatibel med kanaler, hvor der kan v\u00e6re variable forsinkelser, forvr\u00e6ngning og datatab. Hvis der er noget, der knirker eller rasler i den serielle kanal, kan man blive sindssyg i jagten p\u00e5 \u00e5rsagen. \u00c9n gang k\u00e6mpede forfatteren i halvdagen, indtil han inds\u00e5, at problemet var et d\u00e5rligt kabel samt en lunefuld interfacekonverter CP2102. Selv en mikrocontroller med en indbygget interfacekonverter, s\u00e5som ATmega32u4, kan nogle gange \"drille\". Enhver Arduino-bruger har bem\u00e6rket, at fejl under upload af skitser ikke er s\u00e5 sj\u00e6ldne. Nogle gange g\u00e5r optagelsen fint, men ved kontroll\u00e6sning opdages der en fejl. Det betyder ikke, at der var en fejl under skrivning \u2014 fejlen var under l\u00e6sningen. Og nu skal man forestille sig, at der under \"tr\u00e5dl\u00f8s\" drift sker det samme, men meget oftere.<\/p>\n<p>Efter at have pr\u00f8vet forskellige metoder til at overvinde dette problem, kom forfatteren op med f\u00f8lgende id\u00e9. Enheden har 128 kilobyte flashhukommelse med SPI-interface \u2014 vi modtager data via ledninger (vi husker, at \u00e9n enhed med stik p\u00e5 siden allerede findes), bruger denne hukommelse som buffer, og sender data via radiokanalen til en anden enhed. S\u00e5dan en hilsen fra Cybiko.<\/p>\n<p>Efter at have skrevet koden til at arbejde med radiokanalen samt skrifttypen, er bootloaderen blevet l\u00e6ngere end 4 kilobyte. Derfor m\u00e5tte v\u00e6rdien af HFUSE \u00e6ndres fra 0xDA til 0xD8. Nu kan bootloaderen v\u00e6re op til 8 kilobyte lang, og startadressen er blevet 0x1E000. Dette er reflekteret i Makefile, men skal ogs\u00e5 tages i betragtning ved upload. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.arduino.cc\/en\/Hacking\/Bootloader?from=Tutorial.Bootloader\">bootloader<\/a><\/noindex> ved hj\u00e6lp af avrdude.<\/p>\n<p>Transceiverversionen af 802.15.4 i ATmega128RFA1 var oprindeligt designet til at arbejde med protokollen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.zigbee.org\/what-is-zigbee\/\">ZigBee<\/a><\/noindex>, som er ret kompleks, s\u00e5 forfatteren besluttede blot at transmittere pakker. Dette er hardwarem\u00e6ssigt implementeret i ATmega128RFA1, s\u00e5 der kr\u00e6ves kun lidt kode. For enkelhedens skyld besluttede forfatteren ogs\u00e5 at bruge en fast kanal, uden mulighed for manuel valg. Standard 802.15.4 underst\u00f8tter 16 kanaler med numre fra 11 til 26. De er ret fyldte, og nogle overlapper ogs\u00e5 WiFi-kanaler (de r\u00f8de angiver ZigBee-kanaler, de bl\u00e5, gr\u00f8nne og gule angiver WiFi).<\/p>\n<p><img decoding=\"async\" alt=\"Vi skriver OTA-loader til ATmega128RFA1 (i enheden Smart Response XE)\" src=\"\/wp-content\/uploads\/2019\/04\/650166fdb8e1d0361d015e4c2e85d7f1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet viste sig, at de kanaler, der er mindst p\u00e5virket af WiFi, er 15 og 26. Den anden valgte forfatteren. Disklimering: overs\u00e6tteren ved ikke, om det er tilladt at forenkle ZigBee p\u00e5 denne m\u00e5de. M\u00e5ske b\u00f8r der programmeres lidt mere for at implementere det fuldt ud?<\/p>\n<p>P\u00e5 den f\u00f8rste enhed skal der implementeres en endelig automat, der transmitterer data via STK500-protokollen. I det fleste tilf\u00e6lde er de sendte og modtagne meddelelser selvforsynende, men nogle er knyttet til tidligere meddelelser, der er sendt over kanalen. Beskrivelsen af dialogen er givet. <noindex><a rel=\"nofollow\" href=\"http:\/\/baldwisdom.com\/bootloading\/\">her<\/a><\/noindex>.<\/p>\n<p>En vigtig del af denne dialog er overf\u00f8rslen af pakker, der er beregnet til at blive skrevet til flash-hukommelsen i destinationsenheden. For simple mikrokontrolere af AVR-familien er siden st\u00f8rrelsen 128 byte, men for ATmega128RFA1 er den 256. Og for den flash-hukommelse, der er tilsluttet via SPI-protokollen, er den ogs\u00e5 den samme. Programmet i den f\u00f8rste enhed overf\u00f8rer ikke sketchen direkte til den anden, men skriver den i denne hukommelse. N\u00e5r Arduino IDE kontrollerer korrektheden af skrivningen, sendes det, der er skrevet, tilbage. Nu skal de modtagne data overf\u00f8res via radiokanalen til den anden enhed. Her sker skiftet fra modtagelse til overf\u00f8rsel og tilbage ganske ofte. STK500-protokollen er ligeglad med ventetider, men t\u00e5ler ikke datatab (m\u00e6rkeligt, da det ovenfor er n\u00e6vnt, at forsinkelser i dataoverf\u00f8rslen ogs\u00e5 har betydning). Og tab under tr\u00e5dl\u00f8s overf\u00f8rsel er uundg\u00e5elige. I ATmega128RFA1 er der implementeret hardwareimplementering af gentagne anmodninger ved tvivl om korrektheden af overf\u00f8rslen, men forfatteren har besluttet at implementere det samme programm\u00e6ssigt selv. Han udviklede en protokol, hvor der passerer langt flere data i den ene retning end i den anden.<\/p>\n<p>Den er ikke perfekt, men alt fungerer. Den 256-byte side deles op i fire segmenter, hvoraf hver overf\u00f8res via radiokanalen som en pakke. En pakke kan indeholde op til 125 byte data plus \u00e9n byte - l\u00e6ngde og to - CRC. S\u00e5 fragmenter p\u00e5 64 byte sammen med sidens og segmenternes numre (fra 0 til 3) placeres der. I modtagerenheden er der en variabel, der g\u00f8r det muligt at holde styr p\u00e5, hvor mange segmenter der er modtaget, og n\u00e5r alle fire ankommer, sends der en bekr\u00e6ftelse tilbage til den senderende enhed, at hele siden er modtaget. Ingen bekr\u00e6ftelse (CRC matcher ikke) - vi sender hele siden igen. Hastigheden er endda h\u00f8jere end ved overf\u00f8rsel via kabel. Se:<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"d-ObUCnRmQU\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/d-ObUCnRmQU\/hqdefault.jpg\" alt=\"Afspil video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\nMen generelt b\u00f8r der overvejes en bekvem m\u00e5de at tilslutte en kabel til enhederne for at uploade sketcher via det. For eksempel placere en s\u00e5dan interface-konverter som CP2102 indeni, som p\u00e5 billedet, og vedh\u00e6fte den til printpladen, s\u00e5 den kan modst\u00e5 belastningen ved tilslutning og fra disse Micro USB-kabler.<\/p>\n<p><img decoding=\"async\" alt=\"Vi skriver OTA-loader til ATmega128RFA1 (i enheden Smart Response XE)\" src=\"\/wp-content\/uploads\/2019\/04\/e03563fcd985467abb236475cbbf9e3f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDer er ogs\u00e5 en 3,3-volts stabilisator (og hvordan man anvender den i en enhed med 6-volts str\u00f8mforsyning \u2014 medmindre der findes en tilsvarende stabilisator, kan der tilf\u00f8jes to dioder for automatisk at v\u00e6lge, hvilken af dem enheden vil bruge som str\u00f8mforsyning). Alle tre lysdioder skal fjernes fra interface-kortet, ellers vil de belaste batterierne under drift fra dem, og de vil ogs\u00e5 forstyrre tastaturafh\u00f8ringen og arbejdet med flashhukommelsen via SPI-interface.<\/p>\n<p>At jagte m\u00e5let viste sig at v\u00e6re mere interessant end at n\u00e5 det (og lad os undlade den vittighed om bussen). Forfatteren l\u00e6rte meget om bootloaders til AVR, flashhukommelse med SPI-interface, STK500-protokollen og standarden 802.15.4.<\/p>\n<p>Al den \u00f8vrige kode ud over det ovenfor beskrevne bibliotek \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bitbank2\/SMART_bootloader\">her<\/a><\/noindex>, og den er ogs\u00e5 under GPL v3. Forfatterens Twitter \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/fast_code_r_us\">her<\/a><\/noindex>.<br \/>\n<br \/>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/447026\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0441 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u043c \u0440\u044b\u043d\u043a\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 Smart Response XE (\u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435). \u041f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u043e\u043d\u043e \u0434\u043b\u044f \u0448\u043a\u043e\u043b: \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0435\u043d\u0438\u043a \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e \u0434\u0435\u0432\u0430\u0439\u0441\u0443, \u043f\u043e\u0445\u043e\u0436\u0435\u043c\u0443 \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u043d\u0443\u044e \u043a\u043d\u0438\u0436\u043a\u0443 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a \u0434\u0435\u0432\u044f\u043d\u043e\u0441\u0442\u044b\u0445, \u0443\u0447\u0438\u0442\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0438 \u0443\u0447\u0435\u043d\u0438\u043a\u0438 \u043d\u0430\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0430 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043e\u0442\u0432\u0435\u0442\u044b, \u043f\u043e\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u0435 \u043f\u043e \u0440\u0430\u0434\u0438\u043e\u043a\u0430\u043d\u0430\u043b\u0443 (802.15.4) \u0432 \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0439 \u043a \u0443\u0447\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u041f\u041a. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23069,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0438\u0448\u0435\u043c OTA-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0434\u043b\u044f ATmega128RFA1 (\u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Smart Response XE) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:39:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vi udvikler en OTA-bootloader til ATmega128RFA1 (som en del af enheden Smart Response XE) | ProHoster","description":"Det hele begyndte.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0438\u0448\u0435\u043c OTA-\u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0434\u043b\u044f ATmega128RFA1 (\u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Smart Response XE) | ProHoster","og:description":"\u0412\u0441\u0451 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c.","og:url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/pishem-ota-zagruzchik-dlya-atmega128rfa1-v-sostave-ustrojstva-smart-response-xe","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:39:28+00:00","article:modified_time":"2019-10-31T18:39:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31101","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 04:31:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:22:35","updated":"2026-01-21 04:31:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/31101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=31101"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/31101\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/23069"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=31101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=31101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=31101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}