PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Firmware zum Download



lupo
17-10-2009, 20:21
9207

Das ganze Paket kann auch von der WIKI Seite von V-USB
herunter geladen werden!
http://vusb.wikidot.com/project:mamepanel



Atmega8
=======

HID device list:

- 1x Keyboard device (Mame functions control)
- 1x Consumer device (OS volume control)
- 2x Joystick device (Games joystick control)

Control Functions:

X4-2 SHIFTSWITCH Off On
-----------------------------------------------------------
X2-1 JOY1DOWN Joystick 1 Down Keyboard Down Arrow
X2-2 JOY1UP Joystick 1 Up Keyboard Up Arrow
X2-3 JOY1LEFT Joystick 1 Left Keyboard Left Arrow
X2-4 JOY1RIGHT Joystick 1 Right Keyboard Right Arrow
X2-5 JOY1BUTTON1 Joystick 1 Button 1 Keyboard Enter Key
X2-6 JOY1BUTTON2 Joystick 1 Button 2 Keyboard Escape Key
X2-7 JOY1BUTTON3 Joystick 1 Button 3 Keyboard Tab Key
X2-8 JOY1START Keyboard Key 1 Keyboard P Key

X3-1 JOY2DOWN Joystick 2 Down Keyboard Page Down
X3-2 JOY2UP Joystick 2 Up Keyboard Page Up
X3-3 JOY2LEFT Joystick 2 Left Volume Down
X3-4 JOY2RIGHT Joystick 2 Right Volume Up
X3-5 JOY2BUTTON1 Joystick 2 Button 1 Keyboard F7
X3-6 JOY2BUTTON2 Joystick 2 Button 2 Keyboard Shift + F7
X3-7 JOY2BUTTON3 Joystick 2 Button 3 Keyboard Alt + F4
X3-8 JOY2START Keyboard Key 2 Volume Mute

X4-1 COINTRIGGER Keyboard Key 5 Keyboard Key 5


Atmega32
========

HID device list:

- 1x Keyboard device (Mame functions control)
- 1x Consumer device (OS volume control)
- 3x Joystick device (Games joystick control)
- 1x Mouse device (Games paddle control / OS mouse control)

Control Functions:

X9-2 SHIFTSWITCH Off On
-----------------------------------------------------------
X3-1 JOY1DOWN Joystick 1 Down Keyboard Down Arrow
X3-2 JOY1UP Joystick 1 Up Keyboard Up Arrow
X3-3 JOY1LEFT Joystick 1 Left Keyboard Left Arrow
X3-4 JOY1RIGHT Joystick 1 Right Keyboard Right Arrow
X3-5 JOY1BUTTON1 Joystick 1 Button 1 Keyboard Enter Key
X3-6 JOY1BUTTON2 Joystick 1 Button 2 Keyboard Escape Key
X3-7 JOY1BUTTON3 Joystick 1 Button 3 Keyboard Tab Key
X3-8 JOY1START Keyboard Key 1 Keyboard P Key

X4-1 JOY2DOWN Joystick 2 Down Keyboard Page Down
X4-2 JOY2UP Joystick 2 Up Keyboard Page Up
X4-3 JOY2LEFT Joystick 2 Left Volume Down
X4-4 JOY2RIGHT Joystick 2 Right Volume Up
X4-5 JOY2BUTTON1 Joystick 2 Button 1 Keyboard F7
X4-6 JOY2BUTTON2 Joystick 2 Button 2 Keyboard Shift + F7
X4-7 JOY2BUTTON3 Joystick 2 Button 3 Keyboard Alt + F4
X4-8 JOY2START Keyboard Key 2 Volume Mute

X5-1 JOY3DOWN Joystick 2 Down no function
X5-2 JOY3UP Joystick 2 Up no function
X5-3 JOY3LEFT Joystick 2 Left no function
X5-4 JOY3RIGHT Joystick 2 Right no function
X5-5 JOY3BUTTON1 Joystick 2 Button 1 no function
X5-6 JOY3BUTTON2 Joystick 2 Button 2 no function
X5-7 JOY3BUTTON3 Joystick 2 Button 3 no function
X5-8 JOY3START Keyboard Key 2 no function

X6-1 COINTRIGGER Keyboard Key 5 Keyboard Key 5

X7-1 MOUSEXCLOCK Mouse horizontal Mouse horizontal
X7-2 MOUSEXDIR Mouse horizontal Mouse horizontal

X8-1 MOUSEYCLOCK Mouse vertical Mouse vertical
X8-2 MOUSEYDIR Mouse vertical Mouse vertical

rieker
25-11-2009, 19:53
Der HID-Descriptor sieht mal wirklich heiß aus, sehr cool!
Habts ihr zur Erzeugung ein Tool benutzt?

andi
26-11-2009, 10:32
Der HID-Descriptor sieht mal wirklich heiß aus, sehr cool!
Habts ihr zur Erzeugung ein Tool benutzt?

Letztendlich nicht, ich hab zwar mal das offizielle HID Descriptor Tool von usb.org verwendet, nach dem ich mich zu tode gelickt hatte is es dann solide abgestürzt (vor dem Speichern natürlich), also hab ich einfach von den VUSB Projekten die passenden Descriptoren zusammengesucht und den source code editiert (was sich für einen Programmierer ja eigentlich auch so gehört :-D).

lupo
26-11-2009, 20:36
Anbei das Atmega32 Pinout für diese Firmware Version
9403

lupo
12-09-2010, 13:48
Neue Firmwareversion mit Support für bis zu 8 Buttons pro Joystick.
10764

snoopyk
29-03-2011, 03:19
Neue Firmwareversion mit Support für bis zu 8 Buttons pro Joystick.
10764

Pinout latest version. for 2x 8buttons 2players ???

sorry my english is very bad.
thanks

juergen
29-08-2011, 20:01
Hallo
auf der suche nach ein selbstbau Mame Panel bin ich auf diese seite gestossen. Bevor ich mir das VUsbMamePanel zusammenbaue habe ich eine Frage: in dem Downloadpaket ist kein fertiger USB-Treiber enthalten, wie kann man diesen erstellen oder gibt es eine Download Quelle? :confused:

juergen

lupo
30-08-2011, 08:15
Hallo
auf der suche nach ein selbstbau Mame Panel bin ich auf diese seite gestossen. Bevor ich mir das VUsbMamePanel zusammenbaue habe ich eine Frage: in dem Downloadpaket ist kein fertiger USB-Treiber enthalten, wie kann man diesen erstellen oder gibt es eine Download Quelle? :confused:
juergen

Hallo Juergen,

im Downloadarchiv ist die Firmware für das Buttonpanel als Source-Code und als Binary enthalten. Du benötigst am PC keinen eigenen Treiber da sich das Buttonpanel als Standard HID Device meldet und die Treiber dafür schon im Betriebssystem integriert sind. Konkret meldet sich das Panel mit der Firmware für den Atmega 32 als:
1x HID Keyboard Device
3x HID Joystick Device mit je drei Tasten
1x HID Mouse Device (Spinner/Trackball)
1x HID Consumer Control Device (Lautstärkeregelung)

Wenn du eine andere Konfiguration benötigst, musst du den Sourcecode selbst anpassen. Als Entwicklungsumgebung eignet sich dafür das AVR Studio 4 welches du auf der Homepage von Atmel kostenlos herunterladen kannst.

LG

juergen
30-08-2011, 15:08
Danke für die Antwort
:)

juergen
31-08-2011, 17:39
Hallo Juergen,

im Downloadarchiv ist die Firmware für das Buttonpanel als Source-Code und als Binary enthalten. Du benötigst am PC keinen eigenen Treiber da sich das Buttonpanel als Standard HID Device meldet und die Treiber dafür schon im Betriebssystem integriert sind. Konkret meldet sich das Panel mit der Firmware für den Atmega 32 als:
1x HID Keyboard Device
3x HID Joystick Device mit je drei Tasten
1x HID Mouse Device (Spinner/Trackball)
1x HID Consumer Control Device (Lautstärkeregelung)

Wenn du eine andere Konfiguration benötigst, musst du den Sourcecode selbst anpassen. Als Entwicklungsumgebung eignet sich dafür das AVR Studio 4 welches du auf der Homepage von Atmel kostenlos herunterladen kannst.

LG

Hallo
erkannt wir der V-USB Controller von
Windows 2000 pro
Windows XP pro 32Bit

nicht erkannt von
Windows Vista Ultimate 32Bit
Windows 7 Ultimate 64Bit

gibt es für Windows 7 Treiber?

juergen

lupo
31-08-2011, 17:48
Hallo
erkannt wir der V-USB Controller von
Windows 2000 pro
Windows XP pro 32Bit

nicht erkannt von
Windows Vista Ultimate 32Bit
Windows 7 Ultimate 64Bit

gibt es für Windows 7 Treiber?

juergen

Hallo Juergen,
was genau meinst du mit nicht erkannt? Wird das ganze Device nicht erkannt oder funktioniert nur eine bestimmte Funktion nicht?
Ich habe erst kürzlich das Buttonpanel auf Windows 7 Home Premium 64 Bit getestet und da funktioniert es einwandfrei - ohne zusätzliche Treiber.

juergen
31-08-2011, 18:12
Hallo Juergen,
was genau meinst du mit nicht erkannt? Wird das ganze Device nicht erkannt oder funktioniert nur eine bestimmte Funktion nicht?
Ich habe erst kürzlich das Buttonpanel auf Windows 7 Home Premium 64 Bit getestet und da funktioniert es einwandfrei - ohne zusätzliche Treiber.

die Meldung lautet "USB-Gerät wurde nicht erkannt", also das Device.
die Meldung kommt bei Vista 32 u. Win7 64

lupo
01-09-2011, 20:47
die Meldung lautet "USB-Gerät wurde nicht erkannt", also das Device.
die Meldung kommt bei Vista 32 u. Win7 64

Hallo Jürgen,
ich würde nochmal die Schaltung und die gesetzten Fusebits kontrollieren. Ich habe meinen Aufbau wie schon gesagt sowohl mit Win7 64 Home Premium als auch mit Win XP und Mac getestet und da läuft alles einwandfrei. Fehlende Host Treiber sind also sicher nicht das Problem.

Hast du die Schaltung oder die Firmware modifiziert oder hast du alles 1:1 übernommen?

juergen
02-09-2011, 14:44
Hallo Jürgen,
ich würde nochmal die Schaltung und die gesetzten Fusebits kontrollieren. Ich habe meinen Aufbau wie schon gesagt sowohl mit Win7 64 Home Premium als auch mit Win XP und Mac getestet und da läuft alles einwandfrei. Fehlende Host Treiber sind also sicher nicht das Problem.

Hast du die Schaltung oder die Firmware modifiziert oder hast du alles 1:1 übernommen?

Firmware übernommen, Spannungsregler(Drahtbrücke eingelötet) wegelassen und ein 5V ATMEGA32 eingesetzt. Beim auslesen des ATMEGA's sieht man das die Fusebits richtig gesetzt sind. Es ist aber weiter nicht so Tragisch da ich für den MAME Rechner sowieso XP einsetzen werde.
Danke für die Mühe.

lupo
02-09-2011, 15:30
Firmware übernommen, Spannungsregler(Drahtbrücke eingelötet) wegelassen und ein 5V ATMEGA32 eingesetzt. Beim auslesen des ATMEGA's sieht man das die Fusebits richtig gesetzt sind. Es ist aber weiter nicht so Tragisch da ich für den MAME Rechner sowieso XP einsetzen werde.
Danke für die Mühe.

Hallo Jürgen,

das weglassen des Spannungsregler war keine gute Idee! Der Spannungspegel der USB Datenleitungen darf laut Spezifikation nur 3.3V betragen. Mir ist bewusst, dass der Atmega32 auch mit 5V betrieben werden kann, aber die USB Spec. verlangt eben 3.3V auf den Datenleitungen. Unbedingt den Spannungsregler nachbestücken bevor dir das USB Port oder der ganze Rechner abraucht.

LG

juergen
03-09-2011, 15:00
Danke für die Info
ich bin davon ausgegangen das die 5V nur für den Controller sind und
der Datenbus eine Strombegrenzung mit den 68Ohm wiederstände hat.
Ich muss mir mal die USB Spezifikation besorgen.

Auf jeden Fall werde ich den Spannungsregler nachrüsten.

juergen

mrdo!
03-09-2011, 17:29
Man kann auch die Datenleitungen mit einerZdiode auf 3V runterziehen und den Controller selbst mit 5v laufen lassen. Das klappt hier gut.

lupo
04-09-2011, 09:52
Man kann auch die Datenleitungen mit einerZdiode auf 3V runterziehen und den Controller selbst mit 5v laufen lassen. Das klappt hier gut.

Die Variante mit den Zenerdioden haben wir testhalber auch probiert. Hat zwar prinzipiell funktioniert, aber der USB Datenlogger war mit der Signalintegrität nicht ganz einverstanden und spuckte nur mehr Fehlermeldungen aus. Mit dem Spannungsregler gab es bei den Tests keine Probleme. Daher lautet meine Empfehlung klar 3.3V Spannungsregler!

LG

Philthy
26-10-2011, 09:53
Hallo,

bevor ich die Bauteile bestelle wollte ich noch klären, wofür der 3,3V Spannungsregler benötigt wird. Der Atmega wird doch fast ausschließlich in der Vcc=4,5-5,5V Variante angeboten. Es gibt auch eine Variante für 3,3V, diese scheint mir aber wesentlich schwerer zu finden zu sein und 5V vom USB Port sind ja bereits vorhanden.

Grüße
Phil

Philthy
26-10-2011, 10:05
Hallo,

bevor ich die Bauteile bestelle wollte ich noch klären, wofür der 3,3V Spannungsregler benötigt wird. Der Atmega wird doch fast ausschließlich in der Vcc=4,5-5,5V Variante angeboten. Es gibt auch eine Variante für 3,3V, diese scheint mir aber wesentlich schwerer zu finden zu sein und 5V vom USB Port sind ja bereits vorhanden.

Grüße
Phil


Ok, der Singalpegel der USB Datenleitung beträgt maximal 3,6V. Dann benötige ich also die 3,3V Variante des ATMega, oder?

Phil

lupo
26-10-2011, 10:43
Ok, der Singalpegel der USB Datenleitung beträgt maximal 3,6V. Dann benötige ich also die 3,3V Variante des ATMega, oder?
Phil

Hallo Phil,

der Signalpegel der USB Datenleitungen ist 3.3V und du benötigst daher den Spannungsregler.

Es gibt IMHO keine eigene 3,3V Variante - die Operating Voltage des Atmega32A beträgt 2.7V - 5.5V.

Die ältere Version (Atmega32) gab es in zwei Varianten - einmal mit 2.7V - 5.5V (Max 8MHz) und einmal
mit 4.5V-5.5V (Max 16MHz). Bei normaler Umgebungstemperatur werden aber alle drei Varianten mit 3.3V
und 12MHz problemos funktionieren. Kritischer wird es wenn die Umgebungstemperatur in Richtung -40°C oder +85°C geht.

LG

plutoonline
15-05-2012, 08:28
@lupo

Neue Firmwareversion mit Support für bis zu 8 Buttons pro Joystick.
10764

Was muss ich am Sourcecode ändern um für Joy1 und Joy2 6 Buttons zu aktivieren.
Ich Vermute das ich die "hid_input_mapping.c" anpassen muss. Aber wie?

Danke schon mal...

Achso ich habe die Atmega32 Version.

lupo
16-05-2012, 09:51
@lupo


Was muss ich am Sourcecode ändern um für Joy1 und Joy2 6 Buttons zu aktivieren.
Ich Vermute das ich die "hid_input_mapping.c" anpassen muss. Aber wie?

Danke schon mal...

Achso ich habe die Atmega32 Version.

Hallo plutoonline!

Folgende Änderungen sind notwendig (ohne es jetzt ausprobiert zu haben):
Download Firmware Version 1.1
In der Datei avr.h von 3 Joysticks auf 2 Joysticks umstellen:


#elif defined __AVR_ATmega32__

# define NR_OF_JOYSTICKS 3
# define USE_MOUSE_DEVICE 1

ändern auf


#elif defined __AVR_ATmega32__

# define NR_OF_JOYSTICKS 2
# define USE_MOUSE_DEVICE 1

Jetzt gibt es anstatt 3 Joysticks nur mehr 2 Joysticks und die Pins vom Joystick 3 sind frei für die zusätzlichen Buttons.
In der Datei hid_input_mapping.h wird die Pinzuordnung festgelegt:


// Atmega32 Shift switch off
PROGMEM const unsigned char NormalMapping[NUMBER_OF_INPUTS] =
{ // Pin Atmega Board Function
KEY_5, // 40 PA0 X6-1 COINTRIGGER
KEY_2, // 39 PA1 X4-8 JOY2START
J2_Button3, // 38 PA2 X4-7 JOY2BUTTON3
J2_Button2, // 37 PA3 X4-6 JOY2BUTTON2
J2_Button1, // 36 PA4 X4-5 JOY2BUTTON1
J2_Right, // 35 PA5 X4-4 JOY2RIGHT
J2_Left, // 34 PA6 X4-3 JOY2LEFT
J2_Up, // 33 PA7 X4-2 JOY2UP
0, // 1 PB0 X9-2 SHIFTSWITCH
0, // 2 PB1 X7-1 MOUSEXCLOCK1
0, // 3 PB2 X7-2 MOUSEXCLOCK2
0, // 4 PB3 X8-1 MOUSEYCLOCK1
0, // 5 PB4 X8-2 MOUSEYCLOCK2
J3_Down, // 6 PB5 X5-1 JOY3DOWN
J3_Up, // 7 PB6 X5-2 JOY3UP
J3_Left, // 8 PB7 X5-3 JOY3LEFT
J1_Up, // 22 PC0 X3-2 JOY1UP
J1_Left, // 23 PC1 X3-3 JOY1LEFT
J1_Right, // 24 PC2 X3-4 JOY1RIGHT
J1_Button1, // 25 PC3 X3-5 JOY1BUTTON1
J1_Button2, // 26 PC4 X3-6 JOY1BUTTON2
J1_Button3, // 27 PC5 X3-7 JOY1BUTTON3
KEY_1, // 28 PC6 X3-8 JOY1START
J2_Down, // 29 PC7 X4-1 JOY2DOWN
J3_Right, // 15 PD1 X5-4 JOY3RIGHT
J3_Button1, // 17 PD3 X5-5 JOY3BUTTON1
J3_Button2, // 18 PD4 X5-6 JOY3BUTTON2
J3_Button3, // 19 PD5 X5-7 JOY3BUTTON3
KEY_3, // 20 PD6 X5-8 JOY3START
J1_Down // 21 PD7 X3-1 JOY1DOWN
};

ändern auf z.B.


// Atmega32 Shift switch off
PROGMEM const unsigned char NormalMapping[NUMBER_OF_INPUTS] =
{ // Pin Atmega Board Function
KEY_5, // 40 PA0 X6-1 COINTRIGGER
KEY_2, // 39 PA1 X4-8 JOY2START
J2_Button3, // 38 PA2 X4-7 JOY2BUTTON3
J2_Button2, // 37 PA3 X4-6 JOY2BUTTON2
J2_Button1, // 36 PA4 X4-5 JOY2BUTTON1
J2_Right, // 35 PA5 X4-4 JOY2RIGHT
J2_Left, // 34 PA6 X4-3 JOY2LEFT
J2_Up, // 33 PA7 X4-2 JOY2UP
0, // 1 PB0 X9-2 SHIFTSWITCH
0, // 2 PB1 X7-1 MOUSEXCLOCK1
0, // 3 PB2 X7-2 MOUSEXCLOCK2
0, // 4 PB3 X8-1 MOUSEYCLOCK1
0, // 5 PB4 X8-2 MOUSEYCLOCK2
J1_Button4, // 6 PB5 X5-1
J1_Button5, // 7 PB6 X5-2
J1_Button6, // 8 PB7 X5-3
J1_Up, // 22 PC0 X3-2 JOY1UP
J1_Left, // 23 PC1 X3-3 JOY1LEFT
J1_Right, // 24 PC2 X3-4 JOY1RIGHT
J1_Button1, // 25 PC3 X3-5 JOY1BUTTON1
J1_Button2, // 26 PC4 X3-6 JOY1BUTTON2
J1_Button3, // 27 PC5 X3-7 JOY1BUTTON3
KEY_1, // 28 PC6 X3-8 JOY1START
J2_Down, // 29 PC7 X4-1 JOY2DOWN
J2_Button4, // 15 PD1 X5-4 JOY3RIGHT
J2_Button5, // 17 PD3 X5-5 JOY3BUTTON1
J2_Button6, // 18 PD4 X5-6 JOY3BUTTON2
0, // 19 PD5 X5-7
KEY_3, // 20 PD6 X5-8 JOY3START
J1_Down // 21 PD7 X3-1 JOY1DOWN
};


Kompilieren, Programmieren, Fertig!
Die Buttons müssen natürlich entsprechend der neuen Pinzuordnung verdrahtet werden.

LG

plutoonline
16-05-2012, 10:15
@lupo
Vielen Dank für die schnelle Antwort.

Wenn ich die Maus nicht verwenden will, kann ich dann die Anschlüsse X7-1,X7-2,X8-1 und X8-2 auch als Buttons definieren?

Und muss ich dann in der avr.h

# define USE_MOUSE_DEVICE 0

eintragen?

lupo
16-05-2012, 10:45
@lupo
Vielen Dank für die schnelle Antwort.

Wenn ich die Maus nicht verwenden will, kann ich dann die Anschlüsse X7-1,X7-2,X8-1 und X8-2 auch als Buttons definieren?

Und muss ich dann in der avr.h

# define USE_MOUSE_DEVICE 0

eintragen?

Ja genau...

lupo
16-05-2012, 11:19
Neue Firmwareversion:
* Vorkonfiguriert für
- 2 Joysticks 8 Button
- 3 Joysticks 3 Button und Maus
* Updated to vusb-20100715

Download unter: http://vusb.wikidot.com/project:mamepanel
(Ich kann die neue Firmware aufgrund der Größenbeschränkung im Forum leider nicht direkt hochladen)

Maniac
12-09-2012, 17:59
Ich bin derzeit dabei mir ein Virtual Pinball Cab zu bauen. Dafür bin ich auf der Suche nach einem Controller für die einzelnen Buttons sowie einem Nudge/Tilt-Sensor.

Als Nudge/Tilt-Sensor möchte ich ein Modul einsetzen das Beschleunigungen misst und diese analog ausgibt.

Daher meine Frage, ist es möglich die Firmware so zu verändern das die X und Y Achsen analog angesteuert werden können? Ich kann C und C++ programmieren, hatte bis jetzt allerdings noch nicht viel Kontakt mit Atmels.
An welchen Stellen in er Firmware müsste ich hier ansetzen?

lupo
13-09-2012, 12:02
Hallo Maniac!


Ich bin derzeit dabei mir ein Virtual Pinball Cab zu bauen. Dafür bin ich auf der Suche nach einem Controller für die einzelnen Buttons sowie einem Nudge/Tilt-Sensor.

Als Nudge/Tilt-Sensor möchte ich ein Modul einsetzen das Beschleunigungen misst und diese analog ausgibt.

Daher meine Frage, ist es möglich die Firmware so zu verändern das die X und Y Achsen analog angesteuert werden können? Ich kann C und C++ programmieren, hatte bis jetzt allerdings noch nicht viel Kontakt mit Atmels.
An welchen Stellen in er Firmware müsste ich hier ansetzen?

Es ist sicherlich möglich, benötigt aber einiges an Zeit und Geduld.

Du kannst den ADC des Atmels verwenden um die analogen Werte zu digitaliseren.
Beim ATMega32 können alle Pins von Port A also Pin 33 bis Pin 40 auch als ADC Input Pins betrieben werden.

Im Moment sind für die Achsen nur zwei Bit und ein Wertebereich von 0-2 reserviert: 0 Links, 1 Mitte, 2 Rechts
Um die digitalisierten Werte als X und Y Achse per USB übermitteln zu können, musst du den USB Deskriptor ändern.
Du musst zumindest die Reportsize für die Achsen von 2 Bit auf z.B. 8 Bit erhöhen und die Werte für das logische Minimum/Maximum
entsprechend anpassen. In der Funktion ReportJoystick muss dann das Datenpaket entsprechend dem Reportdescriptor richtig zusammengebaut
werden.

Alles in allem sicher kein leichter Umbau aber machbar.

Viel Erfolg damit und lG,
Lupo

Rodent
27-11-2012, 20:27
Hallo Lupo,

kurze Frage zu folgenden Abweichungen:

1) in der 8pin version ist ein 5k6Ohm Res definiert, in der 32pin version ein 4k7Ohm.
Kann ich in beiden Schaltungen vice-versa gehen?

2) in der 8pin version ist kein 100nf Cap zwischen GND und AREF definiert, in der 32pin version aber schon.
Ist das so richtig?

Danke und lg
Alex

lupo
29-11-2012, 14:23
Hallo Alex,



1) in der 8pin version ist ein 5k6Ohm Res definiert, in der 32pin version ein 4k7Ohm.
Kann ich in beiden Schaltungen vice-versa gehen?


Ob 4k7 oder 5k6 spielt in diesem Fall keine Rolle. Du kannst in beiden Schaltungen wahlweise 4k7 oder 5k6 nehmen.



2) in der 8pin version ist kein 100nf Cap zwischen GND und AREF definiert, in der 32pin version aber schon.
Ist das so richtig?


Der 100nF Kondensator dient als Pufferkondensator für die interne Referenzspannung des A/D Wandlers. Die Firmware für den Mame Arcade Panel Controller verwendet den A/D Wandler nicht. Daher wird eigentlich auch der 100nF Kondensator an AREF nicht benötigt und du kannst diesen einfach weglassen. Ich habe den Kondensator in der 32pin Version nur deshalb bestückt, damit das Board auch zweckendfremded für andere Spielereien (mit anderer Firmware) verwendet werden kann. Du kannst in beiden Schaltungen wahlweise einen 100nF Kondensator zwischen AREF und Masse schalten oder diesen auch weglassen.

LG,
Lupo

Rodent
30-11-2012, 10:21
herzlichen dank - flexibel ist immer gut,
oder wie man bei uns hier sagt: "Hilfts nicht, so schadets nicht" - passt hier dann auch.

Danke, kann ich nun am Wochenende umsetzen.

Danke auch für die o.a. Erläuterungen zum Umschreiben der Inputs.

LG
Alex

Rodent
03-12-2012, 18:38
hi,

wenn ich hid_keycodes.h richtig interpretiere, sind ja pro joystick# nur 8 buttons definierbar.

angenommen ich will mit einem ATMEGA32 ein 1P-Device realiaieren, mit Joystick (4 I/O) und die restlichen 28 I/O sollen Buttons sein.

Kein Shiftswitch, etc - erweitere ich dazu nur die hid_keycodes.h, oder zieht sich das über weitere bereiche?

zweite Frage:
Wenn ich einen zweiten Shiftswitch will, ist das sehr aufwändig zu implementieren?

Danke!
lg
Alex

lupo
05-12-2012, 20:13
wenn ich hid_keycodes.h richtig interpretiere, sind ja pro joystick# nur 8 buttons definierbar.

angenommen ich will mit einem ATMEGA32 ein 1P-Device realiaieren, mit Joystick (4 I/O) und die restlichen 28 I/O sollen Buttons sein.

Kein Shiftswitch, etc - erweitere ich dazu nur die hid_keycodes.h, oder zieht sich das über weitere bereiche?

zweite Frage:
Wenn ich einen zweiten Shiftswitch will, ist das sehr aufwändig zu implementieren?


Hallo Alex,

dafür musst du einige Änderungen vornehmen:
In hid_keycodes.h werden ja nur die Enums definiert - die musst du auf 1 Joystick mit 28 Buttons definieren
In main.c musst du einen neuen USB Descriptor definieren - derzeit sind nur 8 bit für max. 8 Buttons definiert.
In hid_input_mapping.c musst du eine neue Zuordnung zwischen Pins und Funktion definieren.
In hid_input.c musst du den Joystickreport und die Abfragen ändern.

Zweiter Shiftswitch ist nicht sehr aufwendig, aber du solltest dir zuerst den Code genau anschauen.

Für beide Fragen gilt:
Wenn du dir die Codeteile im Rootverzeichnis durchliest und auch genau verstehst was wie gemacht wird, sollten die Änderungen möglich sein - andernfalls lass es lieber bleiben.

Liebe Grüße und viel Glück,
Lupo

Rodent
06-12-2012, 07:32
vielen dank für die hilfe, ich meine das ist nicht soo komplex.

einen ps3 homebutton möchte ich noch dranbauen, dann wird das teil ein klein wenig universeller :D

Wird wohl was für den Weihnachtsurlaub.

Danke und lg
Alex

lupo
06-12-2012, 09:35
vielen dank für die hilfe, ich meine das ist nicht soo komplex.

einen ps3 homebutton möchte ich noch dranbauen, dann wird das teil ein klein wenig universeller :D

Wird wohl was für den Weihnachtsurlaub.

Danke und lg
Alex

Na dann viel Glück und lass uns wissen obs was geworden ist.

Rodent
16-10-2013, 19:11
na ich bin so frei... ich habs nicht geschafft, dafür reichen meine kenntnisse dann nicht aus, milde gesagt :)

ich löse meinen use case in dem fall so, dass ich das meiste über keyboard-input löse.
via shift switch definiere ich dann 1 joystick + 8 buttons auf P1, und weitere 8 buttons auf P3; für den case dass ein emu dann doch nicht mit keyboardinput oder vjoy zurechtkommt... ist aber eher theoretisch denke ich...

"schöner" wäre dann aber doch eine völlig freie belegung, ich selbst kanns aber nicht lösen...

vielen dank für die hilfe bis jetzt, wenn mein projekt "für mich" dann funktioniert, geb ich auch mal eine dokumentation bzw. fotostory der gesamtlösung frei :)

lg
Alex

Rodent
31-10-2013, 23:26
hi,

ich hab nun ein problem:

einige tastatur-keys werden immer zusammen ausgelöst.

soll heissen:
pin 37 an GND schreibt "ga", und pin 36 an GND schreibt auch "ga".
selbes mit pin 34/35 - schreiben beide "qs"

viel spannender:
je 26/27/28 an GND schreibt "kkk"

die pins sind nicht kurzgeschlossen.

ich hab aber statt dem 1M Ohm Res einen 56k Ohm Res gegen GND auf USB_P, einfach weil ich keinen 1M da hab ~
kanns das dann auch sein?

mapping:

// Atmega32 Shift switch off
PROGMEM const unsigned char NormalMapping[NUMBER_OF_INPUTS] =
{ // Pin Atmega Board Function
KEY_R, // 40 PA0 X6-1 COINTRIGGER
KEY_F, // 39 PA1 X4-8 JOY2START
KEY_D, // 38 PA2 X4-7 JOY2BUTTON3
KEY_G, // 37 PA3 X4-6 JOY2BUTTON2
KEY_A, // 36 PA4 X4-5 JOY2BUTTON1
KEY_S, // 35 PA5 X4-4 JOY2RIGHT
KEY_Q, // 34 PA6 X4-3 JOY2LEFT
KEY_W, // 33 PA7 X4-2 JOY2UP
0, // 1 PB0 X9-2 SHIFTSWITCH
0, // 2 PB1 X7-1 MOUSEXCLOCK1
0, // 3 PB2 X7-2 MOUSEXCLOCK2
0, // 4 PB3 X8-1 MOUSEYCLOCK1
0, // 5 PB4 X8-2 MOUSEYCLOCK2
0, // 6 PB5 X5-1 JOY3DOWN
0, // 7 PB6 X5-2 JOY3UP
0, // 8 PB7 X5-3 JOY3LEFT
MB_Middle, // 22 PC0 X3-2 JOY1UP
MB_Left, // 23 PC1 X3-3 JOY1LEFT
KEY_6, // 24 PC2 X3-4 JOY1RIGHT
KEY_1, // 25 PC3 X3-5 JOY1BUTTON1
KEY_L, // 26 PC4 X3-6 JOY1BUTTON2
KEY_J, // 27 PC5 X3-7 JOY1BUTTON3
KEY_K, // 28 PC6 X3-8 JOY1START
KEY_I, // 29 PC7 X4-1 JOY2DOWN
0, // 15 PD1 X5-4 JOY3RIGHT
0, // 17 PD3 X5-5 JOY3BUTTON1
0, // 18 PD4 X5-6 JOY3BUTTON2
0, // 19 PD5 X5-7 JOY3BUTTON3
0, // 20 PD6 X5-8 JOY3START
MB_Right // 21 PD7 X3-1 JOY1DOWN
};

was da los? :)
kann das was damit zu tun haben, dass ich manche "unbenutzte" i/o des atmega32 auf "0" belegt habe? darf das sein?

lg Alex

EDIT:
ich flashe nun mal eine Deiner original-firmwares die du auslieferst, mal sehen obs was mit meine compile-chain zu tun hat (winavr; aktuellste version)...
edit2:
deine ausgelieferte FW macht mir dieselben symptome... ich schliesse ein software-problem daher mal aus... kacke, kann ich nun nochmal HW-aufbau debuggen :D