Problema "etico" su USB

Ho un piccolo problema

ma che riguarda anche una questione etica,

mi scuserete se per adesso rimango nel vago con i dettagli, poi capirete.........

problema:

ho un dispositivo USB che attaccato ad un PC windows fa una certa cosa...

per vari motivi mi sarebbe comodo rendere il tutto trasportabile, molto piccolo

inoltre io non uso windows, ho provato con XP in macchina virtuale e va alla grande, ma mi scoccia dover dislocare un portatile solo per fare forse una sola operazione ogni tanto

sapendo che:

  1. lato USB avviene solo una comunicazione seriale, con chip FTDI (tra l'altro originale)
  2. lato dispositivo avviene solo una comunicazione (anche qui, seriale, con qualche cosa fuori standard, che non vorrei indagare
  3. sono un privato che fa un'azione su un dispositivo di sua proprietà, non altero e non tocco impianti, veicoli, velivoli, sistemi d'arma o altro di simile (i sistemi d'arma in particolare, quello lo faccio per lavoro, col cavolo che mi metto a giocare anche a casa), ah e nemmeno voglio vedere sky, mi basta xhamster :slight_smile:

vorrei chiedere se vi risulta che sia possibile tagliare il cavo USB e intercettarne le comunicazioni (tipicamente con un arduino), che poi a clonare l'unica azione del dispositivo ci penso io, dopo aver capito come funziona

il vero problema non è il dispositivo, che è mio, e nemmeno l'apparecchio che voglio comandare
che è parimenti di mia proprietà

il vero problema è che chi vende il dispositvo lo fa per lavoro,
e io NON voglio fargli concorrenza, infatti il dispositivo lo ho comperato

temo che parlandone qui si "alteri" il mercato, e non sarebbe giusto...

quindi, l'unica domanda etica che posso fare è:

con le sole informazioni che ho dato, qualcuno sa dirmi se sia possibile far si che arduino intercetti le cmunicazioni USB e mi permetta di capire il protocollo?

pensavo magari a una versione con due USB....

e fare un ponte tra le due....
idee?

  1. per uso Tuo non vedo problemi legali o morali se fa reverse ingeniering per capire come pilotare un dispositivo non tramite USB e Convertitore USB seriale ma attraverso seriale da un altro dispositivo (per esempio Arduino)
  2. Perché vuoi ascoltare l' USB; la seriale dopo il FTDI é mooolto piú semplice.
  3. che io sappi non ci sono Arduini che fungono sia da USB HOST e USB SLAVE, che possono essere messi in mezzo tra 2 dispositivi USB da ascoltare il passaggio dati.
  4. perché non vedi che integrati ci sono sul dispositivo USB e cerci i relativi datasheet?
  5. non so se un dispositivo puó essere pilotato da un microcontroller. Certi dispositivi funzionano solo col driver lato PC che fa un sacco di cose.
  6. non dico che é facile.
    Ciao Uwe

grazie,

non mi aspettavo fosse facile

credo, credo solo, che il flusso dati sia semplice

ma non so come intercettarlo, lato USB mi sembrava piu' semplice che lato uscita seriale, che è proprietaria

dividiamp il problema in due

è possibile che un arduino faccia USB host?
credo di si, anche se non lo ho mai fatto

mi basterebbe questo, per cominciare

Forse dei un attimo studiarti USB. USB negozia si la velocitá che le classi di apparecchi (USB - Wikipedia) Percui é piú semplice prendere i Dati al lato Seriale TTL dopo il FTDI.
Li Ti bastano 2 seriali che colleghi ciascuna RX al RX che TX del FTDI.
Ciao Uwe

Grazie, ci guardo

docsavage:
Grazie, ci guardo

1. Registrati (gratuitamente) su QUESTO sito (... senza registrazione non puoi scaricare i documenti)

2. scarica QUESTO documento e studiatelo

... scoprirai che la USB NON è esattamente banale ! :roll_eyes:

Non per nulla, un analizzatore di protocollo USB (... degno di tale nome) costa da un minimo di 2000€ a oltre i 20000€ :money_mouth_face:

Come ti ha suggerito Uwe ... meglio che lavori sulla seriale :wink:

Guglielmo

Dato che stai usando un device che funziona tramite un protocollo seriale, mi pare di capire che lato PC hai una com virtuale, basta che sniffi la Vcom sul pc per acquisire i comandi inviati al device per fare le operazioni che ti servono, esistono appositi software per farlo, uno che gira bene su Xp è portmon.
Una volta che hai i comandi non devi fare altro che memorizzarli su un device, che può essere un Arduino, e inviarli al device tramite seriale se hai la possibilità di intercettare l'out del ftdi, se non è possibile ti serve un Arduino dotato di porta USB Host, o otg, in grado di gestire un ftdi, in pratica quasi tutti i modelli superiori di Arduino a 32 bit, oppure puoi usare la Yun shield dove fai tutto da Linux, meglio ancora una Raspberry o altro sistema Linux embedded low cost.

gpb01:
... scoprirai che la USB NON è esattamente banale ! :roll_eyes:

Confermo, io ci ho messo oltre sei mesi per studiarmi il protocollo USB e imparare a scrivere il codice necessario per implementarla su un micro dotato del relativo hardware.

Grazie, di cuore

Sapevo che usb non è banale...

Non conoscevo portmon

Ho lasciato windows anni fa...

Stasera ci guardo dentro....

astrobeed:
Confermo, io ci ho messo oltre sei mesi per studiarmi il protocollo USB e imparare a scrivere il codice necessario per implementarla su un micro dotato del relativo hardware.

... e ce ne voglio quasi altrettanti per capire come diavolo funziona la libreria, già pronta, di Microchip per PIC con USB integrata :smiley: :smiley: :smiley:

Guglielmo

Link diretto a portmon, dato che permette di leggere una seriale, ma anche una parallela, mentre è in uso sfrutta delle api windows a livello kernel normalmente interdette, infatti da Windows non è possibile aprire da due programmi diversi la stessa seriale, pertanto funziona solo con XP, è scritto specificatamente per questo S.O.

gpb01:
... e ce ne voglio quasi altrettanti per capire come diavolo funziona la libreria, già pronta, di Microchip per PIC con USB integrata :smiley: :smiley: :smiley:

Quella l'ho buttata via subito. :slight_smile:
Alla fine mi sono scritto il mio codice personale, con meno di 1000 righe C posso gestire qualunque device USB, inclusi i "micidiali" combo, p.e. una Vcom più un canale dati HID sulla stessa porta. :slight_smile: