Dato che durante l'organizzazione dell'acquisto c'erano alcuni dubbi, mi ripropongo di creare una guida esaustiva per l'utilizzo di questo microcontroller nei nostri cabinati, per fugare qualsiasi problema. Ognuno di voi è invitato a segnalare errori, imprecisioni, omissioni e a contribuire con nuove informazioni!
Ora di cominciare!
Cos'è il Minimus AVR USB?

Il Minimus AVR USB è una Development board basata su chip ATMEL MEGA32u2 (in precedenza anche AT90USB162), programmabile e a basso costo, che permette di fare... qualsiasi cosa! Ecco le caratteristiche:
- 22 linee I/O programmabili e totalmente accessibili
- 16kB di memoria FLASH
- 512B di SRAM
- 512B di EEPROM
- Throughput di 16 MIPS
- USB 2.0 ad alta velocità, connettore maschio, non sono necessari cavi
- circuito con oscillatore al quarzo 16MHz
- Alimentato dalla USB a 5V
- 3 LED (alimentazione e stato)
- Facile da (ri)programmare tramite Atmel FLIP
- Pulsante di reset e HW integrati
- Compatibile con LUFA e LibUSB
- Plug n play
Cos'è KADE?

KADE è il progetto presentato qualche tempo fa su kickstarter, che utilizza il Minimus AVR USB come cuore per creare un encoder da utilizzare nei cabinati e interfacciabile al PC (indipendentemente dal sistema operativo), alla playstation o alla Xbox.
Oltre al minimus AVR il progetto è composto da una breakout board, ossia una scheda con lo zoccolo per collegare il minimus e le morsettiere a vite per collegare i cavi della pulsantiera; ma quello che più interessa è il semplice software di configurazione dei tasti che è stato rilasciato in modo gratuito, e che permette di trasformare qualsiasi minimus AVR USB (come anche altri AVR) in KADE.
Guida rapida alla configurazione
Ok, il Minimus AVR USB è arrivato, ed ora che fare? semplice basta seguire queste istruzioni!
- Scaricate kade loader da qui
- scompattate l'archivio e avviate l'installer, seguendo le informazioni a video. È solo questione di premere "next" per un po' di volte e permettere di installare il driver.
- con l'ultimo passo si avvierà il Kade Loader, altrimenti trovate il collegamento sul desktop. Se si usa windows XP possono esserci dei problemi, leggete più sotto per risolverli.
- Inserire il Minimus in una porta USB del computer e attendete che windows installi i driver per la nuova periferica (Minimus AVR).
- Il Minimus dovrebbe essere già in modalità programmazione: dovrebbe essere presente questo messaggio nella finestra principale, in basso a destra:
- Se il messaggio non viene visualizzato è possibile che sia già stato caricato un firmware in precedenza. In questo caso bisogna provvedere a mettere il Minimus in modalità programmazione manualmente:
- Premere e tenere premuto il tasto RST
- Premere e tenere premuto il stasato HWB
- Rilasciare il tasto RST
- Rilasciare il tasto HWB
- Ok, ora il Minimus è pronto per essere configurato!
Nella lista di sinistra (1) è possibile scegliere quale firmware installare, in base all'utilizzo finale.
Come prima cosa vi consiglio di provare il "LED Blink Test" per assicurarsi che il minimus risponda correttamente. Selezionatelo dalla lista e premete il pulsante "Program KADE with selected firmware" (2).
Dopo qualche istante una finestra dallo sfondo verde vi avviserà che il Minimus è stato programmato, e i led della schedina cominceranno a lampeggiare impazziti... congratulazioni! potete provare a tenere premuto il pulsante HWB per mantenere accesi i led, mentre il pulsante RST li spegnerà.- Ok, delle lucine lampeggianti non ce ne facciamo nulla! ora di rimettere il Minimus in modalità programmazione, come descritto in precedenza.
- Ora è il momento di scegliere il firmware che si vuole utilizzare, per la descrizione si veda più avanti.
- è possibile cambiare le impostazioni dei tasti predefinite, selezionando il firmware che si vuole modificare (per esempio il MAME encoder custom) e premendo il tasto "Customize".
Apparirà una schermata nella quale è possibile assegnare una funzione a (quasi) ogni pin, ed eventualmente una funzione aggiuntiva ("shifted function") utilizzabile quando viene premuto il tasto HWB (sulla schedina oppure tramite un pulsante collegato all'apposito pin). Una volta finita la configurazione, basta cliccare "Save".
NB: non tutti i firmware possono essere personalizzati in questa maniera. ad esempio il "MAME encoder (multi-mode)" può essere modificato solo smanettando con i sorgenti, in seguito (appena ho capito come si fa) cercherò di fare una guida a riguardo. - è utile stampare la configurazione dei tasti per avere un riferimento quando si cablerà la pulsantiera. Con il tasto "Print preview" si aprirà l'anteprima di stampa. Per tradurre la nomenclatura dei pin di KADE a quella del minimus, seguite questo schema:
- Ora è tutto pronto, basta premere su “Program KADE with Selected Firmware” e attendere la schermata verde!
- per controllare che la mappatura sia quella voluta e che il minimus risponda correttamente, è possibile usare l'utility "Keyboard Input Tester", che visualizzerà una tastiera a schermo che evidenzierà i tasti premuti.
se si utilizza windows XP è possibile che al primo avvio di Kade loader venga restituito un errore, e nel log (presente nella cartella del programma) si dice che non è stato possibile collegarsi al database. Questo perché lo sviluppatore ha ignorato le impostazioni internazionali e continua a cercare i dati dell'applicazione in "Application data" anziché in "Dati applicazioni", per l'appunto. Il metodo più rapido per risolvere questo problema è navigare in "C:\Document and settings\AllUsers\" e creare la cartella "Application data", quindi copiare o spostare la cartella "Dati applicazioni\KADE Loader" nella cartella appena creata.
Quest'operazione va fatta anche dopo l'upgrade (almeno per la versione 1.0.9.2)
Per chi ha OS X o linux
se come me non utilizzate windows, il kade loader non è disponibile, ma può essere installato in una virtual machine (nella quale si dovrà ovviamente installare windows). Personalmente uso VirtualBox, e il tutto funziona egregiamente: basta assegnare la periferica alla macchina virtuale, selezionando la voce di menu "Devices->USB Devices->ATMEL ATmega32u2 DFU". Se si vuole che il minimus venga sempre associato alla macchina virtuale, occorre entrare nelle impostazioni della macchina virtuale stessa (menu "machine->settings"), quindi scegliere "Ports" e la tab "USB", poi fare clic sull'icona con la porta e il + a fianco dell'"USB Device Filters" e selezionare nuovamente ATMEL ATmega32u2 DFU.

Una volta programmato il firmware, però, il minimus si trasformerà in un'altra periferica (joystick o tastiera) e molto probabilmente OS X ne prenderà il comando, senza la possibilità di rilasciarla per assegnarla alla macchina virtuale dal menu "devices->usb devices" (la voce sarà disabilitata). Per risolvere, basta aggiungere la periferica nel "USB Device Filters" come fatto in precedenza, staccare e riattaccare il minimus dalla porta usb ed il gioco è fatto! potete ora controllare che tutto funzioni con il Keyboard Input Tester.
Firmware disponibili
Ecco i firmware disponibili al momento nel Kade loader:
- Il Playstation 3 Encoder emula un joystick pronto per essere collegato a... una playstation 3! ci sono tutti i tasti digitali, e la funzione alternativa dei tasti direzionali è il movimento con il joystick analogico di sinistra. Nella configurazione di default manca solo il joystick analogico destro, e purtroppo restano disponibili solo 3 input... nulla vieta di stravolgere la configurazione se doveste avere la necessità di usare lo stick destro!
- Il Playstation 1&2 Encoder serve per le vecchie console della Sony, che non hanno un attacco usb. 5 dei pin del Minimus sono riservati alla trasmissione del segnale, alla quale collegare un connettore per i joystick vecchi (o direttamente i pin della porta sulla playstation...) anche qui si possono configurare i rimanenti pin, se la soluzione standard non soddisfa.
- Xbox Gamepad Encoder emula il controller della Xbox, e nella personalizzazione è possibile attribuire delle combo ai pin che avanzano...
- USB/HID Joystick encoder è già pronto per un joystick con 13 pulsanti (il massimo possibile), e avanzano 3 pin per... invertire l'asse Y? abilitare l'autofire? A voi la scelta!
- Mechanical Rotary Joystick è configurato per chi utilizza questo tipo di controllo nel suo mamecab come player 1. nella documentazione si spiega come collegare i terminali direzionali ai 3 pin del Minimus dedicati al rilevamento della rotazione.
- USB/HID Keyboard Encoder serve per emulare una tastiera normale, ovviamente si è limitati a 20 tasti (40 se si contano le funzioni alternative)
- MAME Encoder (Custom) è probabilmente la configurazione più utile per chi utilizza il Minimus in un cabinato con MAME, si comporta come una tastiera ma la configurazione riporta le funzioni tipiche dell'emulatore. La config standard prevede solo il giocatore 1 con una plancia da 8 bottoni. Si può accedere alle funzioni "shiftate"(che di default non sono impostate) tenendo premuto il tasto collegato al pin HWB assieme al tasto scelto, oppure si può premere 2 volte velocemente HWB per impostare la funzionalità "shiftata" per tutti i tasti, come funziona per il tasto blocco maiuscole della tastiera.
- MAME Encoder (Multi-Mode) è una configurazione speciale che permette di utilizzare il Minimus con 4 differenti profili: Giocatore 1, Giocatore 2, Giocatore1+2 oppure Giocatore3+4. Si può passare da un profilo all'altro premendo il tasto HWB, e l'ultimo profilo utilizzato è memorizzato e riproposto alla successiva accensione. Questo firmware è utilissimo se si pensa di creare dei joystick arcade da collegare al computer, e permettono di impostare al volo quale giocatore lo utilizzerà. Putroppo non è possibile modificare questo profilo se non andando ad agire sui sorgenti del firmware e ricompilandolo (seguirà una guida)
- Pinball Encoder (Custom) è per i patiti dei flipper con il MAME. Non avrei mai pensato che servissero tutti questi tasti!
- Generic Keyboad Encoder è un'altro emulatore di tastiera, non personalizzabile, che come il MAME Encoder multi mode permette di cambiare il profilo dell'intera plancia con una singola pressione di HWB. Le due modalità sono Alfabetica (tasti da A a S) e esadecimale (da 0 a F, sazio, invio, TAB ed ESC). Potrebbe essere utile per scopi che esulano dal MAME...
- LED Blink Test permette di verificare il corretto funzionamento dei LED e pulsanti incorporati nel Minimus. Il LED verde è sempre acceso, mentre i LED blu e rosso si illuminano ad intermittenza. tenendo premuto HWB i due led resteranno accesi, mentre tenendo premuto RESET si spegneranno.
- LED Sequence (Demonstration) utilizza 12 pin del Minimus per illuminare dei LED in sequenza, e 2 bottoni per controllare la velocità dell'animazione. Roba da far venire l'epilessia! Utile per chi vuole aggiungere un po' di coreografia ai suoi bottoni illuminati.
Prima di tutto, ammirate l'ottimo lavoro di un utente del forum BYOAC:
i terminali COM dei pulsanti sono collegati tutti assieme alla massa (GND) del Minimus

quindi ogni terminale NO dei pulsanti è collegato al rispettivo morsetto/pin del Minimus

Sul sito Kade consigliano cavi 20AWG (più o meno equivalenti al nostro 16/0.2) o più spessi, ma mai più piccoli di 20 AWG (7/0,25).
Il nostro principale problema è che non abbiamo la morsettiera! come risolvere?
beh, ci sono diverse soluzioni.
- la prima è saldare i fili direttamente sul minimus ma si rischia di avere un groviglio di cavi e gli spazi sono un po' ristretti.
- La seconda è quella di saldare la morsettiera sul minimus, in modo da poter ricablare più facilmente in caso di problemi:
occhio che le morsettiere devono avere passo 0.1", ossia 2,54mm. non sono facili da trovare o comunque costose, qualcosa si trova su ebay italia oppure da Hong Kong. - Il metodo migliore potrebbe essere imitare il kade saldando dei connettori a pettine sull'AVR e usare una basetta millefori su cu saldare uno zoccolo (connettori a pettine femmina) e le morsettiere (o direttamente i cavi).
- se si ha la possibilità/capacità, si può creare il PCB del KADE partendo dagli schemi presenti sul git del progetto (lo zip contiene gli schemi elettrici e il disegno del PCB in formato compatibile con il software Eagle)