BU0836 x Mjoy

Forum dedicado a Joysticks, HOTAS, Track-Ir, Freetrack, contrôles e cockpit's tipo "faça você mesmo", etc.
Post Reply
21_Sokol1
Veterano
Veterano
Posts: 15493
Joined: 01 Aug 2003 21:00
Location: Uberaba-MG

BU0836 x Mjoy

Post by 21_Sokol1 »

Pessoal,

Estou com um problema relacionado a estes dois controladores.

Preciso usar os dois no mesmo micro. Ok, é só plugar...

Mas preciso que o BU0836 seja o controlador ID0 (para o IL-2) e o Mjoy o ID1.

Acontece que por concepção, o Mjoy foi feito para ser um joystick, então ele tem um ID baixo, para aparecer antes de outro joystick plugado no micro.

E o BU0836 foi feito para ser um ad-on, então ele tem um ID alto.
Exemplificando esta pironga:

Se voce tem um CH PRO Pedal, e compra um Saitek X-52, o pedal assume o ID0, entao voce não consegue ajustar as curvas de sensibilidade do X-52 no setup do IL-2, pois lá aparece só o CH PRO Pedal (Voce pode fazer este ajuste fora do jogo, com o IL2JoyControl).
Mesmo um controlador USB generico, reconhecido como USB JOYSTICK aparece antes do BU0836A Interface - note que a ordem alfabetica dos nomes não influencia.

Image Image

Por experiência com o Mjoy16 sei que posso mudar o Vendor ID no firmware de forma que ele passa a ser reconhecido depois do USB Joystick. Para o Mjoy16 existe instruções de como e onde mudar este Vendor ID.

Mas não existe para o Mjoy - e o BU0836 tem o codigo bloqueado.

Eu tenho o códido fonte .asm do Mjoy, então bastaria alterar este codigo do Vendor ID e gerar um novo .HEX (o firmware) usando o AVR Studio 4.

A questão é que não sei uma vírgula de programação. :-P
Fico na base da tentativa e erro...

Sobre o ID do Mjoy e do BU0836 tenho estas informações:
==============================================
Mjoy

.equ USBversion =0x0100 ;for what version USB is that (1.00)
.equ VendorUSBID =0x0777 ;vendor identifier (Atmel=0x03EB)
.equ DeviceUSBID =0x0001 ;product identifier (USB Joystick)

===============================================

Name: BU0836 Interface
Product ID: 0x05b5
Vendor ID: 0x16c0
Então, tenho que mudar o ".equ VendorUSBID =0x0777 ;vendor identifier (Atmel=0x03EB)" do Mjoy para que fique maior do que o "0x16c0" do BU0836.

Só que para mim estes códigos (em hexadecimal) e hieroglifos são a mesma coisa... :lol:

Alguem tem uma ideia do que usar que seja maior do que 0x16c0?

Já pedi ajuda a russos e argentinos, mas por hora Neres de Pitibiriba.

Sokol1
Last edited by 21_Sokol1 on 08 Nov 2009 01:04, edited 1 time in total.
21_Sokol1
Veterano
Veterano
Posts: 15493
Joined: 01 Aug 2003 21:00
Location: Uberaba-MG

Post by 21_Sokol1 »

Bom, o cara da russia respondeu, mas deve ter escrito em hieroglifos antes de traduzir para ingles:
Possible. But because of simple and dumb checksum in every line of HEX, you need to

recalculate them after patching.

This is a proggie that replaces the checksums, source included (I wrote it a year ago to

hack demo version of HeadJoy).
So, you find text 7707 in hex file, and replace it with your Vendor ID, lower byte first (need Vendor ID 1234 -> write 3412). Then recalculate checksums with HexFix.
:-?

Mas descobri que o DXdiag identifica o Vendor ID dos dispositivos do micro. E confimei que o BU0836 é mesmo;

Product ID: 0x05b5
Vendor ID: 0x16c0

O que trocando em miudos (decimal) é:

Device Vendor ID 5824
Device Product ID 1461

Então preciso que meu Mjoy - que atualmente tem um VendorID de 777 mude para 5825. :D

Bem, devido ao tal do "lower bit" :? (ordem inversa?) vou colocar 0x5858. :-P

Agora resta saber como compilar um .HEX a partir de um .ASM...

Sokol1
User avatar
44_Santo
Veterano
Veterano
Posts: 4167
Joined: 07 Feb 2009 21:00
Location: São José dos Campos

Post by 44_Santo »

Bom, acho que cheguei meio tarde porque minha coluna travou e fui parar no hospital, :-( mas...
Sempre que preciso transformar números para outras bases, uso a calculadora do Window$.
Você ativa o modo de científica no XP ou programador no 7 e escolhe a base e digita o número, depois só mudar a base e o número já aparece transformado.
Ela tem binário, octal, decimal e hexadecimal.
Ex:
5825=16C1
5858=16E2

Também sei transformar na mão mas é perda de tempo. ;)

santo.
Senta a Pua!

Porque há um só Deus, e um só Mediador entre Deus e os homens, Jesus Cristo homem. 1 Timóteo 2:5
acme313

Post by acme313 »

Bom, acho que cheguei meio tarde porque minha coluna travou e fui parar no hospital, mas...
Como assim? :blog:
User avatar
DocFlyer
Posts: 387
Joined: 30 Oct 2006 21:00
Location: São Paulo e Santa Catarina

Post by DocFlyer »

Sokol

Veja http://www.avr-asm-download.de/beginner_pt.pdf

Caso não consiga como o Santo mostrou, não seria melhor (menos tempo e incomodação), alterar a identificação do IL-2 por programas externos.
cuidado com os que lhe prometem liberdades, pois estes são escravos da corrupção...Pedro 2-2:19
21_Sokol1
Veterano
Veterano
Posts: 15493
Joined: 01 Aug 2003 21:00
Location: Uberaba-MG

Post by 21_Sokol1 »

A questão do Vendor ID já resolvi - no arquivo .ASM em coloco em decimal, se fosse no .HEX teria que colocar em hexadecimal - eu abro o .HEX com o PonyProgram, mas como as observações no códido do Mjoy foram feitas em russo, fica tudo ????, ai não sei qual linha mecher...

Mas o que esta pegando é:

Tenho que transformar o .ASM modificado em .HEX.

Porem (sempre tem outro porem), só acho para download o AVR STUDIO 3.56 ou 4.10.

Como o Mjoy foi criado no inicio do século, estes programas retornam erro ao "assemblar", não localizam um m8def.inc...

No Forum do Clubedohrdware um sujeito teve o mesmo problema, disse que resolveu com o AVR Studio 3.50, mas não acho este bendito...

Pedi ao russo que gerasse o .HEX a partir do .ASM modificado, mas acho que ele se fez de rogado...

Sokol1
21_Sokol1
Veterano
Veterano
Posts: 15493
Joined: 01 Aug 2003 21:00
Location: Uberaba-MG

Post by 21_Sokol1 »

Só para constar:
alterar a identificação do IL-2 por programas externos.
O IL-2 não aceita, como por exemplo o JoyIDs.

Sokol1
User avatar
DocFlyer
Posts: 387
Joined: 30 Oct 2006 21:00
Location: São Paulo e Santa Catarina

Post by DocFlyer »

Tenta este site Sokol

http://www.mikrocontroller.net/topic/18248

Realmente gostaria de poder ajuda-lo, mas não encontrei o AVR 3.50, apenas do 3.56 em diante.

Boa Sorte
cuidado com os que lhe prometem liberdades, pois estes são escravos da corrupção...Pedro 2-2:19
21_Sokol1
Veterano
Veterano
Posts: 15493
Joined: 01 Aug 2003 21:00
Location: Uberaba-MG

Post by 21_Sokol1 »

YES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Consegui. Só não perguntem como fazer, pois foi tudo "trial and error".

Editei o VendorID no .ASM, achei na Net o arquivo que o AVR Studio 3.56 pedia, recompilei o HEX e gravei num Mjoy.

Agora é reconhecido pelo rWindows após o BU0836, assim no Controls do IL2 o BU0836 assume o ID0 e o ZRUD (o pedal de leme) assume o ID1.

Image

:D

Sokol1
User avatar
22_Ponte
Engrenado
Engrenado
Posts: 2847
Joined: 06 Apr 2004 21:00
Location: New Zealand
Contact:

Post by 22_Ponte »

S!
21_Sokol1 wrote: Editei o VendorID no .ASM, achei na Net o arquivo que o AVR Studio 3.56 pedia, recompilei o HEX e gravei num Mjoy.
Hein! Nun tô intendenu o que ele falô! :lol: :lol:

Vix Sokol. Treco mais complicado tchê.

SP!
Jambock__22 - Ponte
A próxima frase é verdadeira. A frase anterior é falsa.
21_Sokol1
Veterano
Veterano
Posts: 15493
Joined: 01 Aug 2003 21:00
Location: Uberaba-MG

Post by 21_Sokol1 »

Pois é, meio complicado de entender - mas não foi de fazer.

Esta experiência me deixou uma certeza: quem sabe deste negocio de programação é igual a turma do LINUX, não da dicas de jeito nenhum - no máximo "meias" dicas.
Parecem que ficam com medo de "entregar o ouro aos bandidos"... :-P

SOkol1
Post Reply