Un fatto decisamente insolito: due Eurofighter su Firenze Sud per circa 10 minuti
martedì 20 aprile 2021
martedì 30 marzo 2021
Lettore file UBX in Python
uno script scritto di fretta per risolvere un problema di debug sulla trasmissione via radio di un file ubx
magari puo' servire a qualcun altro
=================================================
def crc_check(valore):
global ck_a
global ck_b
ck_a = (ck_a+valore) % 256
ck_b = (ck_b+ck_a) % 256
#print "CK_A : " + str(hex(ck_a)) + " CK_B : " + str(hex(ck_b))
#file = open('acm0_remoto.ubx', 'r')
#file = open('usb0.ubx', 'r')
file = open('arcetri_ucenter.ubx', 'r')
#file = open('orto.ubx', 'r')
off=0
fine=0
ck_a = 0
ck_b = 0
good = 0
bad = 0
pacchetto = -1
while 1:
char = file.read(1)
off=off+1
pacchetto = ""
if ord(char) == 181: #B5
pacchetto = pacchetto + char
if (off == (fine+1)):
print "OK"
inizio = off -1
ck_a = 0
ck_b = 0
char = file.read(1)
off=off+1
#pacchetto = pacchetto + char
if ord(char) == 98: #62
#
if (inizio == fine + 1):
print "////////////////////// OK ////////////////"
print "/////////////////// " + hex(lungh) +" ////////////////"
#good = good + 1
else:
print "******************** ERRORE **************"
print "*****************DIFF " + hex(inizio-fine) + "*********"
#somma_diff = somma_diff + (inizio-fine)
#bad = bad+1
print "================================================="
print "======GOOD :" + str(good) + "==========BAD :"+ str(bad) + "==========================="
print "================================================="
pacchetto = pacchetto + char
print "Offset inizio: " + hex(inizio)
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print "Message Class: " + hex(ord(char)),
if (ord(char) == 1):
print " NAV ",
if (ord(char) == 2):
print " RXM ",
if (ord(char) == 4):
print " INF ",
if (ord(char) == 5):
print " ACK ",
if (ord(char) == 6):
print " CFG ",
if (ord(char) == 10):
print " MON ",
if (ord(char) == 11):
print " AID ",
if (ord(char) == 13):
print " TIM ",
classe = ord(char)
crc_check(ord(char))
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print " Message ID: " + hex(ord(char)),
crc_check(ord(char))
if (classe == 2):
if (ord(char)) == 0x10:
print " RAW "
if (ord(char)) == 0x11:
print " SFRB "
if (ord(char)) == 0x12:
print " SFRBX "
if (ord(char)) == 0x13:
print " RAWX "
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print "Payload Length High: " + hex(ord(char))# + " " + str(ord(char))
lungh = ord(char)
crc_check(ord(char))
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print "Payload Length Low: " + hex(ord(char))# + " " + str(ord(char))
lungh = (256*ord(char)) + lungh
print "Lunghezza :" + str(hex(lungh))#+ " " + str(lungh)
crc_check(ord(char))
for t in range(lungh):
char = file.read(1)
print hex(ord(char)),
pacchetto = pacchetto + char
off=off+1
crc_check(ord(char))
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
crc_1 = ord(char)
char = file.read(1)
pacchetto = pacchetto + char
off=off+1
print "CRC 1: " + hex(crc_1) +" CRC 2: " + hex(ord(char))
crc_2 = ord(char)
print "CK_A :" + hex(ck_a) + " CK_B : " + hex(ck_b)
if ((ck_a == crc_1) and (ck_b == crc_2)):
print "CRC OK"
good = good + 1
corretto = open('corretto.ubx', 'a')
corretto.write(pacchetto)
corretto.close()
else:
print "Errore CRC"
bad = bad + 1
fine = off-1
print "Fine :" + hex(fine)
try:
input()
except SyntaxError:
pass
giovedì 18 febbraio 2021
Motorizzare telescopio Auriga Skywatcher
Per motorizzare un asse di una montatura EQ1 di un rifrattore 70/900 della Skywatcher ho provato a comprare su Aliexpress un motore delle Celestron (non ho idea se sia un Celestron originale e non avevo idea se poteva essere montato da una equatoriale Skywatcher)
Per prima cosa si smonta la vite sull'asse della latitudine
martedì 16 febbraio 2021
Populele 2
Ho avuto in prestito un Populele 2, ukulele "smart" della Xiaomi
Non ho mai suonato ukulele e quindi non ho esperienza precedente. Di sicuro e' fatto di plastica e non di carbonio come viene indicato nella pubblicita'. In merito al suono non saprei dire ma sicuramente la tastiera di un ukulele e' microscopica
Per quanto riguarda la parte smart e' stata una mezza delusione. Di fatto l'ukulele ha solo dei led affogati nel manico (72 per essere precisi) che si illuminano per indicare dove mettere le dita collegati ad un ricevitore bluetooth. Tutta la parte di riconoscimento delle note e degli accordi e' tutta demandata alla app che risiede sul telefono (e che ovviamente non si attiva se non trova il pairing in modo da non poter usata con altri ukulele non smart)
a questo link https://github.com/Furikuda/Hackulele c'e' un interessante hack che permette di accendere a piacere i led ed una analisi degli integrati presenti (risultano esserci un microcontrollore Dialog 14580 ed un controllore per la matrice di led
Per finire la cosa curiosa e' che la ditta consiglia, a seguito di numerose critiche, di non scaricare la propria app dal Google Store ma di installare l'apk dal proprio website...comportamento discutibile
giovedì 11 febbraio 2021
Emulatore Android su Apple M1
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...