Commit Graph

10 Commits

Author SHA1 Message Date
Francesco Zanin
aaa10b20cf Merge: integra LICENSE e initial commit del remote Gitea
Storie indipendenti: il remote era stato creato con LICENSE + README
auto-generati. Tengo la LICENSE del remote e il README del progetto.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:45:55 +02:00
Francesco Zanin
984ea67e47 gitignore: ignora .claude e config editor/log
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:43:18 +02:00
Francesco Zanin
89d087a68a MAVLINK: inverti pitch e roll, corrente x10 per mwp
- ATTITUDE: nego pitch e roll (mwp mostrava l'assetto al contrario su
  entrambi gli assi con telemetria reale). Yaw invariato.
- SYS_STATUS/BATTERY_STATUS: corrente ora A*1000 invece di cA (A*100).
  Workaround del bug mwp (mostra current_battery /10): cosi' 1.2A -> 1.2A
  in mwp. Non spec-compliant di proposito; overflow int16 oltre ~32A.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:43:18 +02:00
e8b35d9733 Initial commit 2026-06-24 18:36:43 +02:00
Francesco Zanin
db6d5aca63 Doc: README allineati (no MSP/BOOT, modo MAVLINK, my_config gitignored)
README top + 02_telemetry_bridge: cambio modo via comando seriale (non BOOT),
4o modo = MAVLINK (non piu' MSP), nota su terseCRSF/mavlink vendorizzate e su
my_config.h in .gitignore (+ my_config.h.example da copiare).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 16:55:41 +02:00
Francesco Zanin
5d6f646a5e Pulizia: rimosso codice morto RC/SBUS/PWM e uplink ESP-NOW inutilizzato
terseCRSF vendorizzata: rimosse initialise/sbus_initialise/readCrsfFrame/
decodeRC/printPWM/prepSBUS/bytesToPWM/pwmToBytes/sendSBUS e i membri/buffer
SBUS-PWM (sb_bytes, pwm_val, crsf_port, sbus_port, RC_BUILD/SBUS machinery).
Usiamo solo decodeTelemetry: mantenuti i decoder + helper (bytes2*, wrap360,
crc8_dvb_s2[_sbuf_accum] usata dalla patch CRC, printByte/printBytes). ~283
righe in meno, nessun riferimento pendente (verificato con grep su 01/02/03).

EspNowCrsf: rimosso sendRaw() e il peer broadcast in begin() (uplink
sperimentale morto, il backpack e' downlink-only). Ora RX-only pulito.

main.cpp: commento "MAVLink v1" -> "v2" (la lib emette v2).

DA VERIFICARE A BANCO con un build (qui non compilabile).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 16:55:41 +02:00
Francesco Zanin
f8bd99b89d MAVLINK: timeout staleness (no aereo congelato)
Se non arrivano frame validi da >2s, l'HEARTBEAT passa a MAV_STATE_CRITICAL e
GPS_RAW_INT a NO_FIX, invece di continuare a emettere gli ultimi valori in
cache come "vivi" (MAV_STATE_ACTIVE). L'HEARTBEAT continua (il link verso il
GCS resta), cosi' il GCS segnala "telemetria persa" anziche' un aereo fermo.

Flight mode->custom_mode NON implementato di proposito: mwp decodifica
custom_mode con mav2inav()/xmav2inav() in formato INAV-specifico e dipendente
dalla versione FC (fc_vers>=hasPOI) -> troppo fragile per il valore offerto.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:48:12 +02:00
Francesco Zanin
bb378f16d0 terseCRSF: valida lunghezza + CRC8 in decodeTelemetry; suite di test riallineata
- decodeTelemetry() ora scarta frame incompleti o con CRC8 errata (prima non
  validava nulla: frame corti/corrotti da ESP-NOW venivano decodificati
  leggendo oltre il frame -> telemetria spazzatura, e OOB read su FLIGHT_MODE).
- test_decode.cpp: vettori ricostruiti come frame reali con CRC valida
  (calcolata offline), battery ri-quadrato a lth=10, assert bat_fuel_drawn
  corretto a 350 (era 89678, pre-patch uint24), test "non valida CRC" invertito
  in "rigetta CRC errata", aggiunto test su frame troncato.
- Emulatore (03) e backpack reale usano lo stesso framing/CRC -> passano.

DA RI-ESEGUIRE A BANCO: 'pio test -e esp32dev_test' e test RF reale. Se la
telemetria reale sparisce, il backpack potrebbe non rilasciare una CRC valida
nel frame ESP-NOW -> in tal caso ripiegare su validazione solo-lunghezza.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:39:02 +02:00
Francesco Zanin
67933bcfc1 Fix RSSI bloccato al 39% nel modo MAVLINK
RADIO_STATUS.rssi/remrssi vanno su scala 0..254 (i GCS riscalano a %:
mwp fa raw*1023/255). Si mandava link_quality grezzo 0..100, quindi con
LQ=100 mwp mostrava 100/2.55 = 39% fisso. Riscalato a 0..254 (come gia'
fa il modo LTM). Root cause confermata dal sorgente mwp (mwp-mavlink_msg.vala).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:35:00 +02:00
Francesco Zanin
e22a47fce1 Snapshot iniziale: bridge telemetria CRSF->LTM/MAVLink (ESP-NOW)
Stato di partenza prima dei fix. Il repo git era inizializzato a meta'
(config.lock + objects/ mancante, zero commit): riparato.
my_config.h (UID reale, tutti e 3 i sottoprogetti) escluso via .gitignore;
aggiunto my_config.h.example. .pio/ escluso.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:32:11 +02:00