Menù principale
 Notizie
 Grafica
 Forum
 Links
 Retro Trailer
 Recensioni
 Modelli Amiga
 Storia Amiga
 Retro-Gamers
 Lista Utenti
 Contatti
 Policy sito
Ricerca Google

Login

Nick


Password


10 Novembre 2018 Postato da: sampedenawa
HID2AMI - ADATTATORE UNIVERSALE PER MOUSE/JOYSTICK/JOYPAD
Immagine

(logo by Oge)



Per vedere la compatibility list, le istruzioni sull'utilizzo, e molto altro:

https://github.com/EmberHeavyIndustries/HID2AMI



In fondo al post le immagini della scheda completa e qualche filmatino (di pessima qualità) che mostra il funzionamento.

------------------------------


-- Cosa è:

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

A partire dal firmware 1.2.0 HID2AMI permette di collegare ed utilizzare con Amiga (quasi) qualsiasi joypad/gamepad 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.


-- 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.
Nel caso dei gamepad, HID2AMI interroga il dispositivo scoprendone mappatura e caratteristiche; assegna poi i tasti del gamepad ai due tasti joy Amiga e converte gli input direzionali nei corrispondenti input del joy Amiga.

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

La versione 1.1.0 del pcb, sia in versione DeLuxe è "in produzione".


-- 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: 285  Aggiungi - Pagine: 1...-11-12-13-14-15

Indice: forum / Hardware Amiga in generale

Pagine: -1- [2] -3-4-5-6-7-8-9-10-11-12-13-14-15-

Temibile Pirata

Post inviati: 2144

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 21
SukkoPera 14 Novembre 2018    11:23:35
Citazione

Tutto considerato, visto che avanzano millemila pin di IO, potrei eventualmente far leggere al fw al boot lo stato di un particolare pin, che su una scheda collego H e sull'altra collego L, ed invertire o meno le uscite di conseguenza.


Questa è un'ottima idea . Fissane da subito anche più di uno, così si possono avere anche altre schede, eventualmente in futuro.

Per il resto, controlla che i pin di uscita siano tutti 5V-tolerant, e hai una soluzione alternativa!

I miei progetti Retrogaming

Post inviati: 1588

Visulizza profilo Messaggio Personale
87.11.68.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 22
majinga 14 Novembre 2018    12:33:21
Ieri guardavo il datasheet, se non ricordo male non tutti quelli usati al momento sono 5V tolerant.

Dal datasheet pagine da 27 a 31. Quelli 5V tolerant sono quelli con I/O level "FT".

Ad esempio PB5 non lo è.

EDIT:

Non sono ancora convinto di questa cosa del cambio della tipologia da input a output. Ho ancora qualche dubbio che non so se è una cosa che sta solo nella mia testa oppure no. Devo finire di ragionarci sopra.

Commento modificato il 14/11/2018 alle ore 12:35:15

Temibile Pirata

Post inviati: 2144

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 23
SukkoPera 14 Novembre 2018    13:05:45
Citazione

Ieri guardavo il datasheet, se non ricordo male non tutti quelli usati al momento sono 5V tolerant.

Dal datasheet pagine da 27 a 31. Quelli 5V tolerant sono quelli con I/O level "FT".

Ad esempio PB5 non lo è.

EDIT:

Non sono ancora convinto di questa cosa del cambio della tipologia da input a output. Ho ancora qualche dubbio che non so se è una cosa che sta solo nella mia testa oppure no. Devo finire di ragionarci sopra.



Aspetta, forse mi sono spiegato male io: quello che bisogna fare è commutare tra uno stato di alta impedenza (in modo da lasciare che sia il resistore di pull-up a pilotare la linea) e uno a livello LOW (0V).

Ora, sugli AVR su cui programmo di solito (diciamo un Arduino Uno per capirci), lo stato di alta impedenza si ottiene mettendo il pin in INPUT (poi non leggi niente, è solo una sorta di trucchetto), ma può benissimo essere che sugli STM32 esista un "vero" stato HI-Z, mi pare di ricordare di avere visto qualcosa di questo tipo tempo fa. In tal caso, questo è lo stato corretto da usare.

In sostanza, vai ad ottenere una sorta di emulazione di un'uscita open collector. Puoi vedere che lo faccio qua , ad esempio, per comunicare con il pad di un Nintendo 64, che funziona a 3.3V, da un Arduino che funziona a 5V. Normalmente il contrario non si potrebbe fare, ma i pin 5V-tolerant dell'STM32 lo permettono.

Commento modificato il 14/11/2018 alle ore 13:08:29


I miei progetti Retrogaming

Post inviati: 771

Visulizza profilo Messaggio Personale
5.171.57.*** Mozilla/5.0 (Windows NT 6.1; WOW64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 24
sampedenawa 14 Novembre 2018    15:57:12

Personalmente tenderei (anche se verificherò la possibilità di farlo, il trucchetto, comunque) a lavorare "pulito", per cui penso che farò la versione "pin diretti" che lavora a 3.3 per la quasi totalità dell'utenza, e quella coi mosfet (senza inverter) per i puristi dei 5V e per chi ha eventualmente schede Amiga "difficilli".

Firmware unificato ovviamente.

PS: Sukkopera: se guardi lo schematico, già in questo ci sono 3 soldering jumper che avevo messo per configurare la scheda al boot. Aggiungerò il quarto

Post inviati: 1588

Visulizza profilo Messaggio Personale
87.11.68.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 25
majinga 14 Novembre 2018    21:57:20
Citazione

Aspetta, forse mi sono spiegato male io: quello che bisogna fare è commutare tra uno stato di alta impedenza (in modo da lasciare che sia il resistore di pull-up a pilotare la linea) e uno a livello LOW (0V).

Ora, sugli AVR su cui programmo di solito (diciamo un Arduino Uno per capirci), lo stato di alta impedenza si ottiene mettendo il pin in INPUT (poi non leggi niente, è solo una sorta di trucchetto), ma può benissimo essere che sugli STM32 esista un "vero" stato HI-Z, mi pare di ricordare di avere visto qualcosa di questo tipo tempo fa. In tal caso, questo è lo stato corretto da usare.

In sostanza, vai ad ottenere una sorta di emulazione di un'uscita open collector. Puoi vedere che lo faccio qua , ad esempio, per comunicare con il pad di un Nintendo 64, che funziona a 3.3V, da un Arduino che funziona a 5V. Normalmente il contrario non si potrebbe fare, ma i pin 5V-tolerant dell'STM32 lo permettono.


OK, lasciamo stare i miei dubbi. In effetti erano legati ad altre cose, pensavo che si trattasse di utilizzare le proprietà delle due impostazioni, usando i pin di I/O in una sorta di modalità non prevista.

Comunque pare che con l'STM32 questa cosa si possa fare senza problemi.
Stavo dando un occhiata al reference manual pagina 163, output configuration i pin possono essere configurati in open drain, quindi esattamente quello che dici tu, la resistenza di pull-up tiene su a 5V finché il pin del'STM32 non manda a ground.

Nella modalità 5V tolerant, i diodi di protezione sono connessi alla DD_FT che è proprio per i 5V, quindi il problema che dicevo io non sussiste.

Il reference manual è generico per tutta la famiglia STM32F10X, non ho controllato se questa cosa è valida specificatamente per l'STM32F105, ma penso di si.

Gagliardo sto STM32

Commento modificato il 14/11/2018 alle ore 21:59:44

Post inviati: 771

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 26
sampedenawa 15 Novembre 2018    13:21:29
Nuovo layout di prova, versione "DeLuxe" con i mosfet (ma senza inverter).

Le dimensioni sono 30x60 mm, meno di così la vedo dura (sicuramente in larghezza, visto l'ingombro del db9)

Che ve ne pare ?

PS: qualcuno sa perchè il silk della parte inferiore ha i testi rovesciati ?
Non capisco il motivo: il contorno dei componenti è nella posizione corretta, quindi il layer è reso correttamente nel gerber, ma i testi sono rovesciati ......

Immagine
Immagine


PS: Majinga: hai impressioni d'uso dal tuo protitpo ? Com'è il "feel" col puntatore ? A me sembra un ottimo compromesso fra campionamento delle posizioni (ogni 100 ms) e modifica dinamica della frequenza delle forme d'ionda di quadratura, per rendere la giusta proporzionalità fra distanza e velocità del movimento, ma si sa che "ogni scarrafone ....."


E questa è la versione "Lite", senza i mosfet.
Ho inserito un soldering jumper SJ4, così che si possano collegare i pullup sul db a piacere fra 5V ovver 3.3V.
In questo modo (supportati dal firmware) si può utilizzare anche la modalità suggerita da Sukkopera !

Immagine
Immagine

Commento modificato il 15/11/2018 alle ore 14:36:29

Post inviati: 1588

Visulizza profilo Messaggio Personale
87.11.68.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 27
majinga 15 Novembre 2018    13:40:57
Su Amiga non ho ancora avuto modo di provare.

I primi test li avevo fatti al volo con oscilloscopio e alimentatore da banco. Avevo tutto a portata di mano, ed era più semplice e veloce che mettere su il setup per Amiga.

Cerco di fare qualche test il prima possibile.

Post inviati: 771

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 28
sampedenawa 16 Novembre 2018    13:59:19
Lanciati in produzione i pcb, di entrambe le versioni .... se ne riparla fra una ventina di giorni

Nel frattempo ieri sono arrivati i pcb dello YAKS2 .. mai un attimo di quiete accidenti !

Temibile Pirata

Post inviati: 2144

Visulizza profilo Messaggio Personale
91.252.248.*** Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1
Commento 29
SukkoPera 16 Novembre 2018    14:09:54
Beato te, io aspetto l'ultimo ordine di PCB da 2 mesi interi!

Grande comunque!

I miei progetti Retrogaming

ilBarbax

Post inviati: 233

Visulizza profilo Messaggio Personale
195.33.118.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36
Commento 30
ilBarbax 16 Novembre 2018    18:44:02
Io debbo giusto comprare un adattatore o mouse nuovo per il mio 1200 che sto rimettendo in vita, per cui un oggetto del genere cadrebbe proprio a proposito. Come posso candidarmi per acquirente/tester?

PS ma sampedenawa sei genovese?

Post inviati: 1588

Visulizza profilo Messaggio Personale
87.11.68.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 31
majinga 16 Novembre 2018    20:13:10
Ok, oggi mi sono costretto a fare un test.
Immagine

Partiamo dalle buone notizie:
Immagine
Sulla A600 un connettore DB9 con annesso PCB ci sta giusto giusto. Tutto dipende dal tipo di connettore DB9, ma direi che almeno per la sua funzione mouse, questo adattatore sarà A600 friendly.

Ora veniamo alle cattive, non funziona
Probabilmente sto facendo qualche cavolata, il pinout che ho seguito è questo:
Immagine

Tanto che c'ero ho fatto qualche misurazione sui pin del connettore Amiga.
Questo è quello che ho ottenuto:
1: 5V
2: 5V
3: 5V
4: 5V
5: 3.8V
6: 5V
7: 5V
8: GND
9: 3.8V

Ho fatto le misurazioni su A500, 600 e 1200. I valori sono più o meno gli stessi, su A500 sul pin 1 ho 3.3V per il resto quasi uguale.
In effetti guardando gli schemi ci sono già delle resistenze di pull-up sugli ingressi.
A questo punto non so se è il caso di tenere la versione a 3.3V liscia.

Post inviati: 771

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 32
sampedenawa 16 Novembre 2018    23:08:13
Citazione

Io debbo giusto comprare un adattatore o mouse nuovo per il mio 1200 che sto rimettendo in vita, per cui un oggetto del genere cadrebbe proprio a proposito. Come posso candidarmi per acquirente/tester?


Appena arrivano i pcb ne monto qualcuno, e se tuttp funziona come deve, iniziamo a distribuirli a chi interessano qui nel forum (poi vedremo ....)
Segui questo thread e appena ci sono nuove, fatti vivo !

Citazione

PS ma sampedenawa sei genovese?


No, ma bazzico

Post inviati: 771

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 33
sampedenawa 16 Novembre 2018    23:15:51
Citazione

Ora veniamo alle cattive, non funziona
Probabilmente sto facendo qualche cavolata, il pinout che ho seguito è questo:
Immagine


Mah, il pinout è corretto (visto lato Amiga, per intenderci)

Ma lo hai provato solo sul 600 ?
Non hai nessun ritorno nè di movimento nè di pressione pulsanti ?
Domani ho tempo e lo provo sul mio, di 600.


Dicevi sopra che le forme d'onda con l'oscilloscopio le hai viste, quindi se un problema c'è è solo di livelli, direi.

Fai comunque una prova basica: i pulsanti.
Se nessun pulsante è premuto le uscite LB, RB e MB (lato convertitore) devono stare a 3.3; premendo il pulsante ciascuna va a zero.

Se il problema è il livello del +3.3 che è insufficiente ad essere interpretato dal 600 come "H", allora dovresti vedere l'AMiga che vede sempre e comunque i pulsanti premuti .... qualcosa non mi torna.


Post inviati: 1588

Visulizza profilo Messaggio Personale
151.57.121.*** Mozilla/5.0 (Linux; Android 8.0.0; TA-1032) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36
Commento 34
majinga 16 Novembre 2018    23:29:13
Ho provato su 600 e 1200, niente su entrambe.
I pulsanti non funzionano. All'accensione l'amiga va sul boot menù, come se i due pulsanti del mouse fossero premuti, ma poi non posso fare niente.

Con lo stesso setup avevo provato anche con l'oscilloscopio e sembra tutto ok. Non ho verificato i livelli, avevo tutte e 4 le tracce attive in roll mode, non stavo a guardare i voltaggi.

Ho fatto una prova scollegando i pulsanti ma niente, anche collegando dopo l'avvio non cambia niente.

Devo fare qualche altro test.

Post inviati: 771

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 35
sampedenawa 16 Novembre 2018    23:34:38
.

Commento modificato il 16/11/2018 alle ore 23:35:04

Post inviati: 771

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 36
sampedenawa 16 Novembre 2018    23:37:28
Citazione


come se i due pulsanti del mouse fossero premuti,




Esatto ... è un problema di livelli.

Secondo me sei incocciato in una devboard con un stm (o il convertitore 5v-3.3) un pò "weak" (oppure è quello della mia che è "strong").

Alla fine mettere i mosfet è stata una buona idea mi sa




Citazione

Ho provato su 600 e 1200, niente su entrambe.
I pulsanti non funzionano. All'accensione l'amiga va sul boot menù, come se i due pulsanti del mouse fossero premuti, ma poi non posso fare niente.

Con lo stesso setup avevo provato anche con l'oscilloscopio e sembra tutto ok. Non ho verificato i livelli, avevo tutte e 4 le tracce attive in roll mode, non stavo a guardare i voltaggi.

Ho fatto una prova scollegando i pulsanti ma niente, anche collegando dopo l'avvio non cambia niente.

Devo fare qualche altro test.




Commento modificato il 16/11/2018 alle ore 23:38:14

Post inviati: 4139

Visulizza profilo Messaggio Personale
79.10.159.*** Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Commento 37
Mck 17 Novembre 2018    09:44:14
Stano sotto 1v siamo a è livello 0
sopra 2v siamo a livello 1

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: 2744

Visulizza profilo Messaggio Personale
95.238.75.*** Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Commento 38
Oge 17 Novembre 2018    15:57:20
E' stato provato con un diodo BAT?

Post inviati: 1588

Visulizza profilo Messaggio Personale
79.22.228.*** Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 39
majinga 17 Novembre 2018    21:06:19
Citazione

Stano sotto 1v siamo a è livello 0
sopra 2v siamo a livello 1


Appena posso faccio un test monitorando mentre è connesso su amiga, e vedo come si comporta.

Post inviati: 771

Visulizza profilo Messaggio Personale
212.124.165.*** Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Commento 40
sampedenawa 17 Novembre 2018    22:03:12
Citazione

Citazione

Stano sotto 1v siamo a è livello 0
sopra 2v siamo a livello 1


Appena posso faccio un test monitorando mentre è connesso su amiga, e vedo come si comporta.



Sull'unica scheda delle mie dove il prototipo non funzionava, il problema era la resistenza da 4.7 Ohm in serie all'alimentazione +5v sul db9 di Amiga.
Era evidentemente a fine vita, il valore di resistenza era molto più alto del nominale, ed evidentemente la maggiore caduta di tensione non permetteva di alimentare correttamente il prototipo.
Sotituita quella, anche sulla scheda in questione il prototipo funziona....

(E comunque ricordiamoci sempre che il prototipo è un "proof of concept", perchè è basato su una devboard minimale con le uscite a 3.3 !)

Pagine: -1- [2] -3-4-5-6-7-8-9-10-11-12-13-14-15-

Utenti Online
Utenti registrati: 1206 dal 1 Gennaio 2006
di cui online: 1 registrati - amiwell79 -
78 non registrati

Benvenuto all'ultimo utente registrato: zulu

Buon Compleanno a mastergoblin - pirata75 - Skorpjone - 

© 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.11895608901978 secondi