Mený principale
 Notizie
 Grafica
 Forum
 Links
 Retro Trailer
 Recensioni
 Modelli Amiga
 Storia Amiga
 Lista Utenti
 Policy sito
Ricerca Google

Login

Nick


Password


10 Novembre 2018 Postato da: sampedenawa
HID2AMI - Adattatore USB->Amiga per mouse, gamepad (e altro...)
Con il test positivo del prototipo funzionante, apro qui un nuovo topic per il convertitore che ho sviluppato.

-- Cosa è:

HID2AMI è un adattatore che permette di utilizzare [u] qualsiasi [/u] mouse usb sui nostri Amiga (supporta sia i mouse PS2 che i mouse HID).

Il convertitore nasce dal concetto base dello "Smallymouse", reingegnerizzando il progetto per utilizzare componenti del costo di quasi dieci volte inferiore ed aggiornati alle tecnologie più recenti.

Un piacevole effetto collaterale nell'utilizzare la piattaforma hardware selezionata è che le funzionalità del firmware consentono la gestione di tutti i dispositivi HID standard, per cui l'adattatore è già oggi in grado di rilevare e gestire non solo mouse, ma anche tastiere, joypad, ecc.

-- Come funziona (in breve):

HID2AMI riconosce, inizializza e gestisce qualsiasi dispositio HID collegato alla sua porta USB; nel caso del mouse inizia poi ad acquisire le informazioni di movimento e pressione dei pulsanti, convertendole nelle 4 forme d'onda in quadratura che simulano le uscite digitali degli originali mouse Amiga.

-- A che punto è lo sviluppo dell'adattatore ?

Il primo prototipo, basato su di una minimale scheda di sviluppo STM32F105 è completo e perfettamente funzionante, tanto che può essere utilizzato tranquillamente con qualsiasi Amiga.
Parte a questo punto il disegno del progetto definitivo e del corrispondente PCB, così da avere un prodotto il più compatto ed ergonomico possibile

-- Chi ha sviluppato HID2AMI ?

HID2AMI è un progetto di Sampedenawa, nato da una serie di discussioni, preziosi suggerimenti ed incoraggiamenti degli utenti di questo forum, in particolare Sukkopera e Majinga

->Continua<-

Commenti: 97  Aggiungi - Pagine: 1-2-3-4-5


Pagine: -1-2-3-4- [5] -

Post inviati: 163

Visulizza profilo Messaggio Personale
151.16.13.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 81 in risposta al 80 di majinga
sampedenawa 6 Dicembre 2018    17:28:58
Citazione
Majinga wrote:
La gestione degli analogici mi intriga. Per cosa li vuoi usare?



In un futuro molto remoto, si potrebbe sperimentare di usarli per emulare i POT analogici (ammesso che esista qualche software che li abbia mai supportati per qualcosa).

PS: lo sai, vero, che come possessore dell'unico altro prototipo dell' HID2AMI esistente al mondo, sarai arruolato nel weekend per fare il betatest del nuovo firmware ?

Commento modificato il 06/12/2018 alle ore 17:33:26

Post inviati: 163

Visulizza profilo Messaggio Personale
151.16.13.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 82 in risposta al 79 di cpiace64
sampedenawa 6 Dicembre 2018    17:30:49
Citazione

guardate gli schemi del pad del cd32 come gestisce i vari tasti



Giusto !
Ma perchè le sai sempre tutte ?

Post inviati: 489

Visulizza profilo Messaggio Personale
79.44.13.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 83 in risposta al 81 di sampedenawa
majinga 6 Dicembre 2018    17:36:54
Citazione


In un futuro molto remoto, si potrebbe sperimentare di usarli per emulare i POT analogici (ammesso che esista qualche software che li abbia mai supportati per qualcosa).

PS: lo sai, vero, che come possessore dell'unico altro prototipo dell' HID2AMI esistente al mondo, sarai arruolato nel weekend per fare il betatest del nuovo firmware ?



in realtà ci speravo. Ho dei pad wireless, a coppia, nel senso che un adattatore ne gestisce due, che dici, la cosa può causare problemi?

Post inviati: 163

Visulizza profilo Messaggio Personale
151.16.13.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 84 in risposta al 83 di majinga
sampedenawa 6 Dicembre 2018    20:10:27
Citazione

Citazione


In un futuro molto remoto, si potrebbe sperimentare di usarli per emulare i POT analogici (ammesso che esista qualche software che li abbia mai supportati per qualcosa).

PS: lo sai, vero, che come possessore dell'unico altro prototipo dell' HID2AMI esistente al mondo, sarai arruolato nel weekend per fare il betatest del nuovo firmware ?



in realtà ci speravo. Ho dei pad wireless, a coppia, nel senso che un adattatore ne gestisce due, che dici, la cosa può causare problemi?




Non credo ... ma siamo nello sperimentale !
Intanto mi interessa capire se tutti i pad HID si presentano con gli stessi config descriptor e interface descriptor, oppure se bisognerà implementare qualche discovery più sofisticato.
Il protocollo USB non è proprio quello che si dice un esempio di chiarezza e semplicità...

Quindi se me lo provi con i tuoi pad e funziona ... siamo un passo avanti !
Vedo se riesco nel weekend ad assemblare un firmware decoroso anche dal punto di vista dell'architettura interna, faccio un pò di test e ti mando il pacchetto.

Post inviati: 163

Visulizza profilo Messaggio Personale
212.124.163.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 85
sampedenawa 8 Dicembre 2018    18:43:19
Test del sabato: ho provato un Logitech Wingman rumble e.... mappa gli assi ed i pulsanti in maniera differente dal Trustmaster ...

Ok.. ho studiato un pò e ho capito che devo imlpementare una decodifica del cosiddetto "report descriptor", che ogni device USB invia all'host secondo un certo protocollo, per dichiarare le sue "capabilities".

Il problema è che quello dei mouse è molto facile ed uguale per tutti i mouse .. quello dei gamepad è decisamente più complesso (es. quello del Thrustmaster sono 108 bytes ..).

Insomma, niente di concettualemente complicato, ma ci vorrà un pò di tempo (ma almeno a questo punto avremo la possibilità di connettere QUALSIASI gamepad ed il convertitore si autoconfigurerà sulle caratteristiche della periferica).

.... partiti dal nulla, stiamo creando un oggetto monstre .....

Commento modificato il 10/12/2018 alle ore 12:42:00

Post inviati: 163

Visulizza profilo Messaggio Personale
151.16.2.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 86
sampedenawa 10 Dicembre 2018    15:21:14
Progess report: decodificato il primo HID Report Descriptor (quello del trustmater).
Per i feticisti, è fatto così:

0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x05, // Usage (Game Pad)
0xA1, 0x01, // Collection (Application)
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x01, // Usage (Pointer)
0xA1, 0x00, // Collection (Physical)
0x05, 0x09, // Usage Page (Button)
0x19, 0x01, // Usage Minimum (0x01)
0x29, 0x0C, // Usage Maximum (0x0C)
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x75, 0x01, // Report Size (1)
0x95, 0x0C, // Report Count (12)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x75, 0x08, // Report Size (8)
0x95, 0x01, // Report Count (1)
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x39, // Usage (Hat switch)
0x25, 0x07, // Logical Maximum (7)
0x35, 0x00, // Physical Minimum (0)
0x46, 0x0E, 0x01, // Physical Maximum (270)
0x66, 0x40, 0x00, // Unit (Length: Degrees)
0x75, 0x04, // Report Size (4)
0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State)
0x09, 0x30, // Usage (X)
0x09, 0x31, // Usage (Y)
0x15, 0x80, // Logical Minimum (-128)
0x25, 0x7F, // Logical Maximum (127)
0x46, 0xFF, 0x00, // Physical Maximum (255)
0x66, 0x00, 0x00, // Unit (None)
0x75, 0x08, // Report Size (8)
0x95, 0x02, // Report Count (2)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x35, // Usage (Rz)
0x95, 0x01, // Report Count (1)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0x36, // Usage (Slider)
0x16, 0x00, 0x00, // Logical Minimum (0)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
0x09, 0xBB, // Usage (0xBB)
0x15, 0x35, // Logical Minimum (53)
0x00, // Unknown (bTag: 0x00, bType: 0x00)
0x00, // Unknown (bTag: 0x00, bType: 0x00)
0x26, 0xFF, 0x00, // Logical Maximum (255)
0x35, 0x00, // Physical Minimum (0)
0x46, 0xFF, 0x00, // Physical Maximum (255)
0x75, 0x08, // Report Size (8)
0x95, 0x04, // Report Count (4)
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)

// 108 bytes


Azzz....

Temibile Pirata

Post inviati: 800

Visulizza profilo Messaggio Personale
151.91.34.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 87
SukkoPera 10 Dicembre 2018    15:25:52
Sì, avevo visto una roba del genere nella libreria Joystick di Arduino Leonardo.

Se non ricordo male, ci sono 2 forme del report: una più semplice ma limitata, e una più complessa ma più flessibile. Forse però mi confondo con qualcos'altro!

A500 Rev.3 1 MB, A500 1 MB, A500 Rev.6 1 MB Chip + 1.5 MB Slow, A500+ 2 MB Chip (riparato!), A600 2 MB Chip + A6095 + SD 4 GB, A600, A1200 + ACA1221EC... VIC20 e svariati C16 e C64

Post inviati: 52

Visulizza profilo Messaggio Personale
151.95.136.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 88
RoC 10 Dicembre 2018    18:42:22
Bel progetto e mi prenoto sin da ora per prenderne una.

Sto cercando un adattatore per usare joystick e joypad USB sui miei amiga. Ho preso sia il Rys che Tom2, ma entrambi sono compatibili solo con pochi (e purtroppo i più scarsi) joypad e joystick.

Per capirsi, li ho provati su Sega Virtual Stick high grade, UltimArc, Dual Shock II, SNES con adattatore USB ed infine il solito scrauso SNES-compatibile.

Purtroppo entrambi sono compatibili con il NES-compatibile. Solo il Tom2 funziona anche con il SNES con adattatore..

Non menziono il migliore di tutti, XBox Elite, perchè da quel che capisco funziona solo su macchine windows, oltre ovviamente alla Xbox.

Post inviati: 163

Visulizza profilo Messaggio Personale
151.16.2.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 89 in risposta al 88 di RoC
sampedenawa 10 Dicembre 2018    20:53:21
Citazione

Bel progetto e mi prenoto sin da ora per prenderne una.

Sto cercando un adattatore per usare joystick e joypad USB sui miei amiga. Ho preso sia il Rys che Tom2, ma entrambi sono compatibili solo con pochi (e purtroppo i più scarsi) joypad e joystick.

Per capirsi, li ho provati su Sega Virtual Stick high grade, UltimArc, Dual Shock II, SNES con adattatore USB ed infine il solito scrauso SNES-compatibile.

Purtroppo entrambi sono compatibili con il NES-compatibile. Solo il Tom2 funziona anche con il SNES con adattatore..

Non menziono il migliore di tutti, XBox Elite, perchè da quel che capisco funziona solo su macchine windows, oltre ovviamente alla Xbox.





Immagino che sia perchè gli sviluppatori non si sono sbattuti a decodificare gli HID Report come sto facendo io, ma piuttosto hanno scelto la via più comoda di mappare qualche joy/pad sniffando il protocollo (cosa che ho fatto anche io per iniziare a capirci qualcosa).
Ma qui siamo dei puristi ..

Post inviati: 163

Visulizza profilo Messaggio Personale
151.16.2.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 90
sampedenawa 11 Dicembre 2018    17:30:20
Signori ... diario di sviluppo della giornata: mappatura dinamica dei pulsanti di QUALSIASI gamepad implementata e funzionanteeeeeeeeeeeeeeeeeee !!!!

Sono già pronte anche le strutture per mappare gli assi .. oramai è solo questione di poche altre sessioni di programmazioneeeeee!

(malcelato entusiamo autoreferente)

Commento modificato il 11/12/2018 alle ore 23:31:59

Temibile Pirata

Post inviati: 800

Visulizza profilo Messaggio Personale
151.91.34.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 91
SukkoPera 11 Dicembre 2018    17:36:56


Io nel frattempo mi sto "divertendo" con il Verilog...

Commento modificato il 11/12/2018 alle ore 17:37:37


A500 Rev.3 1 MB, A500 1 MB, A500 Rev.6 1 MB Chip + 1.5 MB Slow, A500+ 2 MB Chip (riparato!), A600 2 MB Chip + A6095 + SD 4 GB, A600, A1200 + ACA1221EC... VIC20 e svariati C16 e C64

Post inviati: 2122

Visulizza profilo Messaggio Personale
79.10.159.*** Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Commento 92
Mck 11 Dicembre 2018    17:45:59
Complimenti sampedenawa.

I MIEI AMIGA

4000T OS 3.9 PPC/68060 + CyberVisio 64/3D + HD 20g + DVD - 4000D in Tower OS 3.9 PPC/68060 Ram 128M + ram scheda 2+16M + zip 100M + Ide HD 40G + usb Deneb + V-Lab + Toccata + Mediator con: Woodoo 3 + Scheda rete + Impact Vision 24 - 4000D OS 3.9 68060 ram 32m + ram scheda 2+16M + HD 20g + zip 100 ide + DVD + V-lab + Seriale veloce + Scheda video EGS- 3000T OS 3.9 PPC/68060 128M + HD scsi 10G + Usb Deneb + CD sCSI + mediator con: scheda rete + controllo SCSI Adaptec + scheda audio + Voodoo 5 - 3000 OS 3.1 68040 + emulatore pc 286 - 2000 processore 68030 + genlock + espansione ram + emulatore pc 8080 - 1200 Tower OS 3.9 PPC/68060 + HD 20G + Mediator con: scheda rete - 1200 OS 3.1 68060 + HD 20G + Scheda rete pcmcia - 1000 espansione Ram 4M - 600 con espansione ram + HD5G - 500 Plus con espansione ram - 500 con espansione ram - CDTV - CD32

CLONI AMIGA

Sam440ep-Flex OS 4.1 - EFIKA MorphOS 2.6

Post inviati: 489

Visulizza profilo Messaggio Personale
79.41.38.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 93
majinga 11 Dicembre 2018    21:16:24
Complimenti veramente, ci stai mettendo davvero tanto impegno in questo progetto.

Post inviati: 1533

Visulizza profilo Messaggio Personale
95.250.200.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
Commento 94
Kyle 11 Dicembre 2018    23:13:17
Bravo!

Post inviati: 163

Visulizza profilo Messaggio Personale
151.16.28.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 95
sampedenawa 11 Dicembre 2018    23:29:18
Grassie, grassie.. vedo che il progetto interessa, e questo sprona a migliorarlo di continuo.
Salvo sorprese, conto entro il weekend di avere un firmware con la gestione completa dei gamepad.
Se poi arrivassero anche i pcb (ci siamo quasi) e funzionassero pure ...... ci si diverte per Natale !


Già che ci siamo, datemi un parere: al momento faccio mappare al firmware i pulsanti che trova sul gamepad alternativamente su "pulsante1" e "pulsante2" di Amiga (per intenderci .. se il pad ha 6 pulsanti, mappo 1-3-5 su Amiga1 e 2-4-6 su Amiga2.
Questo perchè a priori non posso sapere nè quanti pulsanti ogni diverso pad avrà, nè come saranno disposti fisicamente .. per cui mappandoli "un pò di qui ed un pò di là" ognuno dovrebbe trovare la disposizione delle dita di suo gusto.

Qualcuna ha qualche idea migliore ? Siamo in tempo !

Commento modificato il 11/12/2018 alle ore 23:50:07

Temibile Pirata

Post inviati: 800

Visulizza profilo Messaggio Personale
62.11.180.*** Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36
Commento 96
SukkoPera 12 Dicembre 2018    00:00:10
Sarebbe bella una funzione di apprendimento:
- accendi l'aggeggio tenendo premuto un pulsante
- lampeggia un led per farti capire che è entrato in questa modalità
- premi i pulsanti nell'ordine che preferisci
- ad ogni pressione c'è un lampeggio più rapido per segnalare che si passa al prossimo pulsante
- alla fine il tutto viene salvato e non più richiesto finché non si riavvia con un pulsante

Inoltre si entra in tale modalità alla prima accensione e, alle successive, se non si preme un tasto entro 10 secondi si va in modalità normale senza salvare.

Commento modificato il 12/12/2018 alle ore 00:00:35


A500 Rev.3 1 MB, A500 1 MB, A500 Rev.6 1 MB Chip + 1.5 MB Slow, A500+ 2 MB Chip (riparato!), A600 2 MB Chip + A6095 + SD 4 GB, A600, A1200 + ACA1221EC... VIC20 e svariati C16 e C64

Post inviati: 52

Visulizza profilo Messaggio Personale
151.95.143.*** Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
Commento 97 in risposta al 89 di sampedenawa
RoC 12 Dicembre 2018    18:13:28
Citazione


Immagino che sia perchè gli sviluppatori non si sono sbattuti a decodificare gli HID Report come sto facendo io, ma piuttosto hanno scelto la via più comoda di mappare qualche joy/pad sniffando il protocollo (cosa che ho fatto anche io per iniziare a capirci qualcosa).
Ma qui siamo dei puristi ..




Che dire, mitico!

Hai centrato il problema. Tante potenzialità, ma poi non funziona nulla che valga la pena.

Il tuo progetto promette quello che veramente serve.

Pagine: -1-2-3-4- [5] -

Utenti Online
Utenti registrati: 902 dal 1 Gennaio 2006
di cui online: 7 registrati - DavPPC - liviux76 - DrProcton - Kyle - majinga - majinga - majinga -
9 non registrati

Benvenuto all'ultimo utente registrato: Zilog

Buon Compleanno a Megabit - Metalciaf - ilbiboit - 

© Amigapage 1998 - 2007 - Sito italiano dedicato alla piattaforma Amiga ed evoluzioni varie.
Struttura del sito interamente ideata e realizzata da Marco Lovera e Alessandra Lovera - Tutto il materiale inserito all'interno del sito Ť dei rispettivi autori/creatori.
E' assolutamente vietata la riproduzione o la manipolazione di tutti i contenuti o parte di essi senza l'esplicito consenso degli amministratori e degli autori/creatori.

Eseguito in 0.049466848373413 secondi