Kopterit.net
Tekniikka => Radio-ohjaimet, servot, gyrot ja lisävarusteet => Aiheen aloitti: semetaire - 12 Toukokuu, 2015, 00:26:59
-
Elikkästä joo,
kävi silleen että päivitin firmwarea, ja se meni jotenki mönkään, ja nyt virrat kytkettäessä vilkuttaa vaan vihreetä ja punasta kokoajan.
Uudelleen sen pystyisi ohjelmoida, jos keksisi versionumeron jonka päivitysohjelma hyväksyisi. Tällä hetkellä suorittaa vertailun ja kitisee sitten väärästä versiosta.
tähän (https://www.dropbox.com/s/l1gdpu04dk6xsm6/firmware%20update.jpg) malliin. Liitteenä vielä sama kuva, jos dropbox linkit hirvittävät.
Selvittelin aikani ja salakuuntelin mitä sarjaportissa kulkee, Product coden pystyn spooffaamaan tuoksi 16452:ksi, mutta sopivat "App Version" ja "Boot Version" ovat hakusassa.
Ohjelmointi protokolla:
aluksi vastari kertoo olevansa kuulolla lähettämällä
<-
0x5 jonka jälkeen upgradestudio kysyy vastarilta:
->0x9 johon vastari vastaa Device infoilla
->0x10 on Productcode ja versio kysely
<-
0x30
0xF4 --Product Code: 0x44 näin olisi oikea product code
0x00 0x40
0x00 0x00
0x00 kuvassa näkyvä luku 0x00
0x01 -- 16777460
<-
0x88--136 App Version:
0x00
0x88--136
0x13--20
0x00
0x00
->0x10 kysely suoritetaan toiseen kertaan vielä
ja lopuksi on vielä
->0x11 kysely kahteen kertaan
<-
0xF0 --3 312 En tiedä mitä nämä luvut merkitsevät.
0X0C
0x00
0x00
0x08 -- 3 080
0x0C
0x00
0x00
0xF0 -- 3 056
0x0B
Vinkkejä, ideoita?
-
Mnäpä katson löytyykö vanhempaa firmistä koneelta huomenna. Miksi muuten päivitit? Toimivaa ei kannata ikinä päivittää.
-
Tyhmänä, pakko kikkailla, ku ei oo parempaakaan tekemistä :/
Kiitos kovasti. Ongelman ydin taitaa olla siinä miten saa versiomerkinnän näyttämään desimaalia.
-
Tää ei nyt siun ongelmaa ratkaise mutta tuli itekki päiviteltyä vähä aikaa sit MZ-18. Päivitys meni plörinäks ja mankka meni iha pimeeks.. Onneks Ranelta vanhempi firmware ja hätäpalautuksella sisään. Ja taas mennään. ;D
-
Nonii,
sainpahan toimimaan.
oikeat setit:
*product code
16003200, 0xF43080
*appversion
3780, 0x0EC4
*bootversion
2500, 0x1388 -tosin itellä meni läpi vaikka olikin 0x1988 eli 6536
Proseduuri:
Kikkailin arduinoon softan joka kuuntelee ohjelmoijan viestejä, toimien välikätenä vastarin ja ohjelmoijan välillä.
kun ohjelmoijalta tulee viesti että se haluaisi targetversion infoja, niin sille syötetään lähettimen antamien tietojen sijaan keksityt tiedot. Ja koska saatuja tietoja verrataan firmware binäärin tietoihin, kun keksityt arvot mätsäävät, arduino siirtyy vaan välittäjäksi, ja päivitys softa tekee vastarille mitä haluaa.
Liitteenä arduino kikkare, mikäli jotakuta kiinnostaa, ja screenshotti onnistuneesta hakkeroinnista.