Desarrollo FFB (DIY)

Montajes Personales : Cockpits, Pedales, Botoneras...

Moderador: XRStaff

Avatar de Usuario
Nye
Primera conducción sin ayudas
Primera conducción sin ayudas
Mensajes: 398
Registrado: 16 Dic 2008 01:00
Volante: G25
Ubicación: Sabadell
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por Nye » 23 Jun 2009 16:56

Ese ejemplo ya estuve trasteandolo Jimi.
Bueno... ese concretamente no, sinó su homologo en VB.
Aplicar efectos a un cacharro a traves de directinput es relativamente facil y está documentado. El problema reside en captar las señales de FFB que vienen de los juegos. De donde leñe se sacan????
Avatar de Usuario
jimiTES
Colaborador Rallys
Colaborador Rallys
Donante
Donante
Licencia B
Licencia B
Mensajes: 826
Registrado: 24 Oct 2007 00:00
Volante: G25
Ubicación: Cadiz

Re: Desarrollo FFB (DIY)

Mensaje por jimiTES » 23 Jun 2009 17:06

ok

Si averiguo algo lo colgare, aunque ya sabes que mis conocimientos son limitados.

Para escanear el FFB disponemos de la herramienta YODA de Xsim (en mi opinion el mejor nombre puesto a un programa: ¡Siente la fuerza Luke!)

Tambien viene un ejemplo en VC++
Avatar de Usuario
antoniovodka
Espectador
Espectador
Mensajes: 17
Registrado: 18 Mar 2009 01:00

Re: Desarrollo FFB (DIY)

Mensaje por antoniovodka » 23 Jun 2009 20:08

me fuerte es la mecanica, asi que espero no decir una reverenda estupidez

Nye no se puede programar algo que haga una funcion de "trace" o "log", y asi saber como esta estructurado el FFB, y como se obtienen de los juegos o aplicaciones?

hasta donde se el FFB es algo de directx no?, asi que obteniendo la estructura se podria hacer algo generico, no importando si se usan servos, motor y correa o motor AC como el caso de frex.

son mas preguntas que aportaciones pero espero sirva
Avatar de Usuario
Nye
Primera conducción sin ayudas
Primera conducción sin ayudas
Mensajes: 398
Registrado: 16 Dic 2008 01:00
Volante: G25
Ubicación: Sabadell
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por Nye » 23 Jun 2009 21:26

antoniovodka escribió:me fuerte es la mecanica, asi que espero no decir una reverenda estupidez
jajajaja
Que mas da Antonio, a veces las tremendas estupideces son fuente de inspiración :)

Pero supongo que lo que aportas no es ninguna estupidez, aunque eso irá a parar al driver del dispositivo, y ese será el que mande la señal al volante. Con lo que tendriamos algo pero solo valido para ese volante en concreto.
A ver si me explico: Creo que seria posible estudiar que es lo que recibe el volante. Pero yo intuyo que lo que nos interesa es lo que manda el juego al dispositivo y eso no se si será tan factible. Tambien es muy cierto que al ser un terreno que desconozco puede que el que esté diciendo tremendas estupideces sea yo :oops:

Lo del Yoda habria que estudiarlo. Si tuviera algo de tiempo le pediria a SirNoName algo de información. Con un poco de suerte me daria algo de información en el camino correcto porque me debe alguna del pasado ;).

Tiempo... tiempo... tiempo.

Porque no tendran los dias 300 horas? :cabezazos:
Avatar de Usuario
crobol
Maestro al volante
Maestro al volante
Donante
Donante
Licencia B
Licencia B
Mensajes: 13867
Registrado: 28 Abr 2007 00:00
Volante: DFP
Ubicación: BCN
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por crobol » 02 Jul 2009 21:54

En RSC vuelven a sacar el tema de como se podría hacer un volante con FFB :: http://forum.racesimcentral.com/showthread.php?t=336279

El que podría aclarar cosas es LeoBodnar, pero sobre ese y otros temas no suelta prenda.
ualy

Re: Desarrollo FFB (DIY)

Mensaje por ualy » 03 Jul 2009 16:01

Pues parece que no ha estado parado:
Imagen

Saludos
Avatar de Usuario
crobol
Maestro al volante
Maestro al volante
Donante
Donante
Licencia B
Licencia B
Mensajes: 13867
Registrado: 28 Abr 2007 00:00
Volante: DFP
Ubicación: BCN
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por crobol » 03 Jul 2009 16:09

Madre mia !!! Leo is Back :dribble:
Gracias Ualy.
LeoBodnar escribió:Hi all
I am developing the second version of FFB controller with a more serious integrated powerstage. http://www.leobodnar.com/FFB-Leo-RevA.jpg
It can drive up to 1-2kW AC servo or DC motors.
It works pretty well so far. I am migrating from a smaller microcontroller to a more powerful right DSP now but the device is functional.
Encontrareis mas información en el hilo de RSC que puse un poco mas arriba. Esto promete.

No creo que tenga nada que ver y será solo casualidad, pero le mandé un MP a LBodnar antes de ayer para decirle que nos había dejado en ascuas con su inicio del proyecto FFB desde el año pasado...
Avatar de Usuario
crobol
Maestro al volante
Maestro al volante
Donante
Donante
Licencia B
Licencia B
Mensajes: 13867
Registrado: 28 Abr 2007 00:00
Volante: DFP
Ubicación: BCN
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por crobol » 04 Jul 2009 01:40

No tienen mala pinta las declaraciones de LeoBodnar al respecto de su placa FFB. Parece que está claro que pretende comercializarla como elemento aislado para que cada cual se construya su volante con el motor que le convenga y no tiene intencion de dedicarse a suministrar volantes completos.
LeoBodnar en RSC escribió:So far I am not planning to market a complete system since there is little sense in re-selling motor+PSU that make up most of the system cost. I would like to supply the controller/drive tuned and tested on certain motor models out there.
A ver a que precio decide sacarlo al mercado, de todos modos el tema me hace ilusión y solo espero que sea accesible y razonable.
Avatar de Usuario
crobol
Maestro al volante
Maestro al volante
Donante
Donante
Licencia B
Licencia B
Mensajes: 13867
Registrado: 28 Abr 2007 00:00
Volante: DFP
Ubicación: BCN
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por crobol » 08 Jul 2009 21:22

Parece que estamos de enhorabuena. Otro equipo que tambien andan desarrollando un FFB. En este caso utilizan un motor 3A DC.

El hilo completo en RSC :: http://forum.racesimcentral.com/showthread.php?t=323639

Las imágenes del ultimo prototipo :
[img]http://i329.photobucket.com/albums/l377 ... CF0571.jpg[/img]
Avatar de Usuario
willynovi
Piloto Histórico
Piloto Histórico
Mensajes: 1177
Registrado: 17 Mar 2009 01:00
Volante: 100% DIY, prox. con FFB
Ubicación: Argentina
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por willynovi » 13 Jul 2009 15:26

crobol, como se puede ver que el diseño mecánico es vastante similar al que yo realicé.
Voy a ponerme en contacto con este muchacho a ver si podemos compartir data.
Saludos
Avatar de Usuario
willynovi
Piloto Histórico
Piloto Histórico
Mensajes: 1177
Registrado: 17 Mar 2009 01:00
Volante: 100% DIY, prox. con FFB
Ubicación: Argentina
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por willynovi » 01 Sep 2009 14:06

Nye, especificamente necesito tu ayuda.
Este fin de semana estuve jugando un poco con el InternalsPlugin de rFactor y arme un paquetito de datos para sacar a mi controladora y luego controlar el motor para el FFB del volante.
El problema es que soy medio novato en el tema del C++ y estos son los inconvenientes.

Quiciera que me dieras una mano con el tema de compartir los datos del plugin a una aplicación.
Si puedes explicarme a grandes rasgos como has hecho con el XRDisplay mejor.
Los datos a la controladora los pasas compartiendo memoria a una aplicacion, o los mandas desde el plugin?
Cada cuanto tiempo mandas los datos a la controladora?
Y algunas cositas mas que puedan ayudarme.

se que por ahi en otro foro has explicado un poco estos temas, pero no se cual, puedes pasarme el link.
Gracias por tu ayuda.
Avatar de Usuario
willynovi
Piloto Histórico
Piloto Histórico
Mensajes: 1177
Registrado: 17 Mar 2009 01:00
Volante: 100% DIY, prox. con FFB
Ubicación: Argentina
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por willynovi » 03 Sep 2009 13:23

el tema del mapeo de la memoria ya lo tengo funcionando segui los pasos de Nye que habias publicado en otro foro MUCHAS GRACIAS, al menos paso un valor, pero cuando la estructura la armo con mas valores, por algun motivo no me lee los restantes, luego veo que es lo que le pasa, yo creo puede ser un tema de alineacion de bytes o algo asi.
Cuando tenga novedades aviso.

Por otro lado, si alguien ha visto un poco lo del DirectX, avisar como podemos sacar esos datos y si nos servirian para independisarse del juego en particular.
Intense

Re: Desarrollo FFB (DIY)

Mensaje por Intense » 19 Sep 2009 10:29

Muy buenas. Soy ingenerio de hardware y siempre me ha llamado la atención lo de construir un volante con FFB, aunque no he pasado de modificar un gamepad analogico...
Opino que si este tio ya tiene una placa montada, lo mejor es intentar comprarsela, el problema está en probar lo que ha construido antes de comprarlo y si no es excesivamente caro, ya que si va a ser peor que un volante barato, se termina antes comprando el volante y modificando las partes que se quiera.

Saludos.
jay
Primeras curvas
Primeras curvas
Donante
Donante
Mensajes: 102
Registrado: 14 Sep 2009 11:54

Re: Desarrollo FFB (DIY)

Mensaje por jay » 20 Sep 2009 23:50

Buenas, precisamente he estado mirando el tema y lo abandoné por no ser capaz, pero he llegado a una serie de conclusiones respecto a los datos.

El directinput creo que exporta los datos de igual manera desde el Dx8, la explicación? sencillamente porque todo volante con FFB exige Dx8+, tal vez esto no es un dato cierto, pero creo que si.

Hacer un buen FFB no es solo pillar un motor que te pueda partir los brazos y ponerlo a moverse según las indicaciones de forma sigilosa, el tema es más complejo. En los volantes de "baja" gama (vamos, las gamas más bajas no tienen FFB, pero se entiende) cuando sueltas el volante se vuelve loco y va a un lado y a otro en cualquier simulador (menos iRacing que pude probar una vez que lo hace algo difrente), en algunos videos que se ven de fanatec, frex y compañía eso NO pasa, el motivo? el FFB no va a lo loco.

Sobre programación de DirectX, yo tengo 17 años y lógicamente no se mucho...

Sobre como saca los datos he pensado en que si no hay Dx en linux y linux es compatible con algunos volantes FFB incluido, tiene que ser posible sacar FFB de la misma manera en linux. La forma? http://sourceforge.net/apps/mediawiki/l ... tedDevices LibFF permite hacelo y es compatible con bastantes volantes, tendré que mirar un poco el código y espero ser capaz de sacar algo, pero como dije antes tengo 17 años y por lo tanto es obvio que no se mucho del tema.

El output parece que se hace por HID, creo que es un protocolo USB pero para variar, no se mucho del tema.

PD: Voy a construirme un display XR :D

------

Creo que sería interesante analizar lo que hace la librería de linux.

evtest.c: Parece analizar inputs, no lo he mirado a fondo pero diría que solo teclas

inputattach.c: Parece que lee inputs de ejes.

jstest: acabo de darme cuenta que al principio pone que hace cada archivo T_T, este comprueba todo, tendríamos que ver que funciones hacen el output y donde están dichas funciones.
Última edición por jay el 21 Sep 2009 00:03, editado 1 vez en total.
Avatar de Usuario
willynovi
Piloto Histórico
Piloto Histórico
Mensajes: 1177
Registrado: 17 Mar 2009 01:00
Volante: 100% DIY, prox. con FFB
Ubicación: Argentina
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por willynovi » 21 Sep 2009 14:13

Intense, el tema de comprar algo hecho y que funcione es como que te perdiste buena parte de los sufrimientos y rompederos de cabeza para llegar a que ande algo que tu has construido, jeje

Yo me he largado con este proyecto porque tengo algunos materiales sin usar y quisiera emplearlos en algo, como un motor con una reducción 40:1 de una fotocopiadora, unos puentes H que hice para un robot sumo y algunos otros componentes, ademas de la parte física, el volante bastante cojonudo, con rodamientos que se puede bancar buenos colpes.

El tema del direct input, pues para volantes comerciales, es algo que ya funciona y aseguraria que trabajan con PID y no HID. El PID (Phisical Interface Device) es un protocolo de USB para manejar dispositivos fisicos, es decir, que generen justamente el FFB a partir de efectos desde cualquier soft corriendo en la PC.

El tema del driver para manejar un volante DIY no lo veo complicado, la parte de la electronica es la que lleva mas sintonisacion y en eso es donde hay que meterle mas horas.

Jay, todos los aportes son muy bienvenidos, si puedes meterte en algo de como sacar los efectos desde DirectX, pues dale para edelante. Te conviene visitar el foro de X-Sim donde tratan estos temas. Aunque creo no trabajan con DirectX si el juego/simulador que usas tiene un plugin para extraer datos, ya que es mucho mas sencillo, ademas de tener los efectos fisicos puros desde la memoria.

Saludos,
jay
Primeras curvas
Primeras curvas
Donante
Donante
Mensajes: 102
Registrado: 14 Sep 2009 11:54

Re: Desarrollo FFB (DIY)

Mensaje por jay » 21 Sep 2009 15:18

Willynovi, si yo supiera como se hace lo que dices (sacar los datos del Dx), podrías apostar tus dos manos a que lo haría, desgraciadamente no tengo la menor idea, así que veo mejor mirar las conclusiones a las que llegaron otros antes. Creo que es por hid debido a lo que pone en la web

Sacar los datos de cualquier sitio que no sea directx para mi es una victoria a medias, no tiene mucho sentido, como haremos cuando salga rfactor2 o el simulador de turno que salga de aquí a 3 años? reprogramando el pic? usando software que pase los datos del sim. al volante?y si yo me quiero hacer mañana un yoke para el FSX? No creo que sea el método, lo que hay que hacer en mi opinión es ver que señal manda el ordenador a través de directx y que alguien programe un microcontrolador para que mueva el volante según los datos que salgan.

Respecto a si usa PID o HID, yo en la web de libFF veo que tienen dos, los que usana el driver hid y los que usan el driver I-fore, tal vez HID no sea el protocolo y no tenga nada que ver, pero yo diría que sí..

Esto tiene varios problemas,entre otros que el dispositivo usb tiene que ser reconocido como un volante con FFB...

Edit:

Me gustaría mandarle el siguiente mensaje a uno de los creadores del proyecto, obviamente yo no puedo meter el nombre de extreme racers en un mensaje sin consentimiento de un administrador del sitio, en cuanto tenga permiso lo mando.

Hi,

I'm writting you from xtremeracers.info forum, I'm not an administrator but an user, and we are trying to develop an opensource force feedback wheel controller (in this forum has been developed previously display XR, it's also opensource hardware and not at sale, the only way to get it is building it yourself) we do this for fun, not for money and we want to know if it to work with popular games.

As we want it to work with popular games, we need to read the data output from Directx, as we don't see any way to get that info we would like to use part of the code wich you have developed to see what does DirectX output, but we don't know if your data output is the same than Directx. Can you tell me if it's the same protocol?

Regards,
Jay.
Avatar de Usuario
crobol
Maestro al volante
Maestro al volante
Donante
Donante
Licencia B
Licencia B
Mensajes: 13867
Registrado: 28 Abr 2007 00:00
Volante: DFP
Ubicación: BCN
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por crobol » 21 Sep 2009 17:25

En ese mensaje pones muy claro que eres un miembro de la comunidad XR, no un admin, y que estas interesado en desarrollar un sistema de FFB con vocación DIY y OpenSource.

Mas correcto y respetuoso no puede ser tu texto, con lo que no necesitas ningún permiso de un admin, de todos modos gracias por solicitarlo. Pero si te quedas mas tranquilo :

- Hijo, yo te bendigo. Marcha hacia las cruzadas a defender el cristianismo. :lengua:

Imagen
jay
Primeras curvas
Primeras curvas
Donante
Donante
Mensajes: 102
Registrado: 14 Sep 2009 11:54

Re: Desarrollo FFB (DIY)

Mensaje por jay » 21 Sep 2009 17:39

Enviado :mrgreen:
Tampoco es plan ponerme a usar el nombre de xtreme racers así como así, además prefiero pedir permiso antes que no tener que arrepentirme después, a ver que me responde el tío... si el data output (por llamarlo de alguna forma) es el mismo que el del directx algo me dice que esto se va a acabar muy pronto...
jay
Primeras curvas
Primeras curvas
Donante
Donante
Mensajes: 102
Registrado: 14 Sep 2009 11:54

Re: Desarrollo FFB (DIY)

Mensaje por jay » 23 Sep 2009 16:35

Buenas,

Primero quiero pedir perdon por el doble post, pero no creo que tenga sentido editar y "dejarlo en el olvido"

Uno de los creadores me ha escrito esto:
Hi.

First let me say that libff has been largely abandoned,
mostly because support was dropped from the linux kernel, so
if you want to get it you'll need to take the older PID
driver and bring it up to date with the newest kernels, make
it work again, submit it back as a patch, etc.

That said, most of this code was developed by reverse
engineering the output sent to USB from DirectInput
on
Windows (as well as reading the PID HID spec when that made
any sense), so the output should be very similar, yes.

I'd love to hear more details about your hardware.

Btw, please reply to my e-mail censurado@censurado.censurado directly,
I tried replying to your SF user by e-mail and that gave me
an error.

Rodrigo
Creo que podríamos sacar mucho, mucho :D

-----

Creo que he encontrado por donde empezar a buscar... genera un efecto de ffb que varía según en que zona de la ventana se haga click. archivo ffmvforce.c línea 68

Código: Seleccionar todo

static void generate_force(int x, int y)
{
	static int first = 1;
	double nx, ny;
	double angle;

	nx = 2*(x-WIN_W/2.0)/WIN_W;
	ny = 2*(y-WIN_H/2.0)/WIN_H;
	angle = atan2(nx, -ny);
printf("mouse: %d %d n: %4.2f %4.2f angle: %4.2fn", x, y, nx, ny, angle);
	effect.type = FF_CONSTANT;
        effect.u.constant.level = 0x7fff * max(fabs(nx), fabs(ny));
        effect.direction = 0x8000 * (angle + M_PI)/M_PI;
printf("level: %04x direction: %04xn", (unsigned int)effect.u.constant.level, (unsigned int)effect.direction);
        effect.u.constant.envelope.attack_length = 0;
        effect.u.constant.envelope.attack_level = 0;
        effect.u.constant.envelope.fade_length = 0;
        effect.u.constant.envelope.fade_level = 0;
        effect.trigger.button = 0;
        effect.trigger.interval = 0;
        effect.replay.length = 0xffff;
        effect.replay.delay = 0;

	if (first) {
		effect.id = -1;
	}

        if (ioctl(ff_fd, EVIOCSFF, &effect) < 0) {
/* If updates are sent to frequently, they can be refused */
        }

	/* If first time, start to play the effect */
	if (first) {
		struct input_event play;
		play.type = EV_FF;
		play.code = effect.id;
		play.value = 1;

		if (write(ff_fd, (const void*) &play, sizeof(play)) == -1) {
			perror("Play effect");
			exit(1);
		}
	}

	first = 0;
}
EDIT: Definitivamente no me entero de un carajo... no se que coño es el output, por ah´ise hace pero ni zorra de como...
Avatar de Usuario
willynovi
Piloto Histórico
Piloto Histórico
Mensajes: 1177
Registrado: 17 Mar 2009 01:00
Volante: 100% DIY, prox. con FFB
Ubicación: Argentina
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por willynovi » 30 Sep 2009 14:29

jay, pues ese codigo que copiaste, creo es para poder hacer funcionar un volante comercial.

Yo terminé, por ahora, mi pedalera, me falta armar una matriz de botones para el volante que quede 100% funcional y listo, me pongo con los "tapones de punta" a este proyecto.

Empezaré armando una placa, un puente H para manejar el motor, una placa para hacer el control muy básico del volante con realimentación de posición, velocidad y torque.

Mi idea principal es poder mandarle efectos al motor, esta es la lista que pensé:
1- POSICIÓN / FUERZA VARIABLE (en teoria la dirección del vehiculo tiende a centrarse en una recta y en las curvas aplicaria una fuerza que se opone segun el deslizamiento del neumatico)
2- VIBRACION (como para simular los diferentes terrenos por los que se transita, asfalto, pianos, cesped, tierra)

Estos conceptos los estoy pensando a medida que escribo, tengo que sentarme a ver como los modelo matematicamente.

En principio trabajaré con el plugin de rfactor y luego podemos ver de hacer algo con el DirectX.
De todas formas se puede ir trabajando en algo.

Saludos
jay
Primeras curvas
Primeras curvas
Donante
Donante
Mensajes: 102
Registrado: 14 Sep 2009 11:54

Re: Desarrollo FFB (DIY)

Mensaje por jay » 30 Sep 2009 19:41

willynovi escribió:jay, pues ese codigo que copiaste, creo es para poder hacer funcionar un volante comercial.
Si, en realidad es lo que se usaba en linux para manejar el FFB hasta que pasó a formar parte del kernel, el output es ingeniería inversa de Dx.
Avatar de Usuario
crobol
Maestro al volante
Maestro al volante
Donante
Donante
Licencia B
Licencia B
Mensajes: 13867
Registrado: 28 Abr 2007 00:00
Volante: DFP
Ubicación: BCN
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por crobol » 13 Oct 2009 22:50

Sin animo de desactivar esta iniciativa DIY solo comentar que LeoBodnar tras volver a dar señales de vida y haberle preguntado por su proyecto de FFB, su respuesta ha sido...
LeoBodnar escribió:Crobol, it should be ready by the year end
Avatar de Usuario
noalone
Piloto de Pruebas
Piloto de Pruebas
Mensajes: 548
Registrado: 01 Feb 2009 01:00

Re: Desarrollo FFB (DIY)

Mensaje por noalone » 13 Oct 2009 23:05

yeah!!
Avatar de Usuario
willynovi
Piloto Histórico
Piloto Histórico
Mensajes: 1177
Registrado: 17 Mar 2009 01:00
Volante: 100% DIY, prox. con FFB
Ubicación: Argentina
Contactar:

Re: Desarrollo FFB (DIY)

Mensaje por willynovi » 14 Oct 2009 18:00

Crobol, para nada quitas el animo con tu comentario. Yo sigo en marcha con este proyecto.
Siempre esta la opcion de elejir algo ya hecho que satosfaga al cliente.
Pero creo que estas soluciones de Leo ya escapan al término DIY :D

Saludos
Avatar de Usuario
estanislaolopez
Piloto Privado
Piloto Privado
Mensajes: 479
Registrado: 10 Oct 2009 05:14
Volante: DIY 100%, controladora WN
Ubicación: Argentina

Re: Desarrollo FFB (DIY)

Mensaje por estanislaolopez » 11 Dic 2009 18:06

Hola Willy, usmeando por ahi encontre esto http://www.x-simulator.de/forum/diy-sim ... 84-10.html ...
Despues veo que habias posteado en ese mismo foro ... En una de esas Jakob pone algun tutorial ... :disimulo:
Como vas con lo de tu proyecto FFB ???

Saludos !!!!
Responder