DIY - [MMOS + VESC] Création d'un firmware FFB pour VESC

  • Solved for "The selected file name seems to be invalid." message -- rename file to "VESC_default.bin"

    Message modifié 1 fois, dernière modification par Lexins (10 mai 2021 à 11:09).

  • In addition to this, you need to know more about it.In addition to this, you need to know more about it.

    Hello,

    To put it simply, MMOS is a firmware that runs on a STM32Discovery card which takes the effects of the games (by USB / HID) and which converts them into a torque command for a motor driver (PWM + DIR) in my case.

    The VescFFBFirmware (go, I'm naming it) is there to control a brushless motor (or dc but not tested) from the torque command received from MMOS.

    I am currently using a 2.5k encoder on MMOS and the VescFFBFirmware (you need the motor position for both). In September I attack the BIssC, but for the moment, I have not felt the need.

    Hi Carlton,

    Did you get to try something with the BiSS-C encoder?

    I want to buy a Small Mige with BiSS-C but first I need to know if it is possible to use it to run the motor.

    I'm willing to write my own firmware if necessary but I need to know that first.

    Thanks.

  • Hello,

    i start to code an implementation for the mige BISS-C encoder, but it's not "stable".

    I have an issue : even if vesc can used it for the torque control, the FFB board (STM32 MMOS, VNM, etc...) can't used biss-c encoder, so FFB can't benefit of high accuracy...

    It's why i continue to drive with an ABI encoder... I currently works on a digital interface instead of PWM+DIR, but FFB Board have to implement it, i'm discussing with Hoan (VNM) about it ;)

    Best regards.

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

  • Bonsoir Messieurs (dames?),

    Les années passent (vite), mais on retrouve toujours les mêmes acharnés ici: RacingMat, Tortue G, magicfr, ...

    Mais surtout Stef Bord sans qui toute l'aventure RFR Wheel n'aurait probablement pas commencé, car c'est lui qui à l'époque m'avait donnée gracieusement un volant d'arcade Happ qui m'avait permis de développer et tester mon firmware FFB.

    En tout cas, le paysage commercial a pas mal évolué depuis et la concurrence a fait baisser les prix, tant mieux.

    Bref, si je poste ici c'est que je m'intéresse de nouveau au simracing (en fait c'est surtout mon fils, qui a bien grandi depuis les débuts du RFR Wheel en ... 2011) et que je suis toujours aussi radin, d'où mon intérêt pour ton projet Carlton.

    Comme vous le disiez sur ce fil, les drivers brushless low cost ça ne courent pas les rues, que ce soit pour fabriquer un volant FFB ou un vélo électrique, dont les exigences électriques sont du même ordre.

    N'ayant pas de VESC pour tester, je m'interroge quant à sa capacité à faire du contrôle efficace du courant de phase (donc du couple moteur), car dans sa version 4.12 il ne dispose de sense de courant qu'au bas de l'onduleur, et que sur 2 branches (oui, Kirchhoff dit que l'on peut se débrouiller mais la pratique montre que c'est toujours mieux d'en avoir 3), et non pas au niveau des phases du moteur.

    Pour s'en convaincre, il faudrait pouvoir sortir un graphique de suivi de consignes de courant, moteur bloqué si possible. Tu l'as déjà fait Carlton ?

    Si le résultat est concluant, en alternative aux VESC chinois, on trouve chez Texas Instrument une carte de puissance 60V-15A pour 75€ avec en prime trois sense de courant, au lieu de deux.

    Ils ont aussi une carte à 50€ avec sense au niveau des phases, mais limitée à 10A.

    Dans les deux cas ce ne sont que des cartes de puissance, il faut rajouter un carte de contrôle (TI ou custom).

    Après, si quelqu'un veut bien aider au développement d'un driver en s'appuyant sur les cartes de références TI, je suis partant, surtout pour le réutiliser sur un VAE.

    Autant la partie firmware USB FFB je peux m'en occuper, autant la partie électronique de puissance c'est un tout autre métier pour moi.

    Quant à savoir si tout cela peut être open-source. Oui, si on est réellement plusieurs à contribuer.

    Carlton: tu citais OpenFFBBoard, tu l'as testé ? (pas moi)

    Message modifié 2 fois, dernière modification par Mizoo (24 août 2021 à 00:03).

  • Ho! quelle surprise !!

    Bon retour parmi nous Msieu Mizoo !!!

    Pour ceux qui ne connaissent pas c'est en toute modestie grâce à ce monsieur qu'on a commencé l'aventure des DD sur le précédent forum RacingFR, parce qu'il faut bien le rappeler mais les DD DIY à base de Mige, c'est chez nous que ça a débuté (et j'ai toujours le premier Mige 10Nm dans mon cockpit :B !!!).

    Bref, ça fait grand plaisir de te revoir dans le coin ;) !!

  • Mizoo Ca fait tres plaisir de te lire :)

    Fin 2015 j'ai tout vendu mon DIY et demanager a Singapour.
    2018 j'ai repris le simracing, mais ici faire du DIY c'est pas facile, donc je suis passédu coté sombre de la force et j'ai tout acheté ( Simucube 1 chez SimRacing Bay ).

    Sinon j'ai pas lu ce topic, mais il me reste chez mon pere en Ardeche un Mige 20nm 130ST que je peux revendre a TRES bon prix RacingFR. Il doit aussi me rester 1 blueboard , une ST32 et une VSD. Si ca interesse des gens,

    Asus Prime X570-P - AMD 5800X3D - 32GB CAS16 - Gigabyte RTX 4090 Waterforce - Pimax Crystal.

    Simucube1 20Nm Mige - Wave Italy Monza - Bash Pro Actice HShifter - DSD ButonBox - Ascher F28SC & BM16SC - XeroPlay QR - PT Actuator Champion GT

  • Mizoo, très content de te revoir sur le nouveau site. Sans tes compétences, on ne serait pas allé très loin dans le FFB DIY. Bon courage dans ce nouveau projet... ;)

  • Et oui, tout est parti d'ici. Comme dirait l'autre: "En France , on n'a pas de pétrole mais on a des idées".

    Ca mériterait un nouveau topic mais vous pensez qu'il y a encore un intérêt à proposer une carte DIY tout intégrée, étant donné ce qui est dispo dans le commerce à présent ?

    J'entends par là une carte type Simucube (qui ne se fait plus, c'est ça ?), avec contrôleur FFB USB et driver moteur open source.

    Le coût des composants n'est pas excessifs, surtout si on peut se limiter à une mesure de courant "low side" (et quand (?) la pénurie sera passée).

    A vue de nez, je ne vois pas pourquoi on devrait dépasser les 100€ pour mini 10 cartes, PCB + composants + montage chez les chinois type JLCPCB.

    Même si les prix ont baissé pour du 4 couches on doit pouvoir rester en 2 couches.

    Et comme je l'ai dit, un driver de ce type intéressera aussi des gens sur endless-sphere, pour les VAE DIY; un concurrent aux produits de Grin, chers et difficiles à trouver en France.

    Après, que les chinois copient, tant mieux. Dans le domaine du drone FPV, le projet open source Express LRS a donné naissance à une nouvelle gamme de produits chez un fabriquant RC à des prix très abordables.

    Message modifié 3 fois, dernière modification par Mizoo (24 août 2021 à 15:58).

  • Je ne sais pas si tu connais Mizoo

    https://hackaday.io/project/163904-open-ffboard

    Et sinon vu le nombre de volants directs drive tu ne voudrais pas partir plutôt sur un levier de vitesse FFB vu qu' Etienne il a jamais le temps de rien faire ... :B

    Stef Bord
    21 juillet 2021 à 18:21
  • Je ne sais pas si tu connais Mizoo

    https://hackaday.io/project/163904-open-ffboard

    Et sinon vu le nombre de volants directs drive tu ne voudrais pas partir plutôt sur un levier de vitesse FFB vu qu' Etienne il a jamais le temps de rien faire ... :B

    Stef Bord
    21 juillet 2021 à 18:21

    J'en parlais dans mon premier post de Open FFBoard (dernière ligne), jamais testé.

    Levier de vitesse FFB ? Non, pour moi il faut approfondir l'idée du G-Seat. J'avais fait quelques essais avec des moteurs indus au taf pour créer des points de pressions, c'est assez bluffant. Le problème c'est qu'en DIY je ne vois pas encore comment le faire en low cost; de plus il faut que les jeux renvoient les infos nécessaires pour ensuite pouvoir les traiter correctement, ça aussi ce n'est pas donné, Juls de Geko en sait quelque chose.

    Encore une fois, pour moi c'est LE périphérique à avoir en sim-racing, une voiture ça se pilote/ressent avec les fesses, pas dans le volant.

    Les simu dynamiques ont totalement échoués à recréer les sensations de conduite, pour les raisons que l'on avait évoqués à l'époque dans le topic dédiée sur l'ancien forum.

    Message modifié 2 fois, dernière modification par Mizoo (24 août 2021 à 19:23).

  • Mizoo : la génération suivante arrive, très cool !! même si ça ne nous rajeunit pas :voispas:

    Mais ça nous donne le plaisir de te revoir par ici :coucou: et avec des idées :+++:

    >une carte type Simucube (qui ne se fait plus, c'est ça ?)

    si, les cartes simucubes se vendent encore (en version 2). Je suis resté à la 1.

    >Ca mériterait un nouveau topic mais vous pensez qu'il y a encore un intérêt à proposer une carte DIY tout intégrée

    je te propose d'ouvrir un topic pour faire un sondage en même temps

    DIY - Volants

    c'est en bas de page lors de la création du topic : onglets Smileys / Pièves jointes / Paramètres / Sondage

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Mizoo

    pour les simus Gseat, il y a pas mal d'approches low cost mais assez efficace à partir de vérins souples + servos RC.

    Pour une solution plus robuste, il faudrait juste des poches avec de plus gros diamètre de tube (pas facile à trouver ou à faire) et des servomoteurs brushless (facile)

    gSeat pneumatique en circuit fermé par RacingMat &thumbnail=1

    En couplant ça à un tensionneur de harnais, je trouve qu'on est vraiment bien en terme d'immersion. Manque juste le heave si on aime rally...

    DIY - tensionneur de harnais 2 DOF avec PTMover

    ► La liste de mes tutos 

    Gseat à presssion, harnais 2DOF, Simucube 1 mige normal, CSP V3, TH8RS moddé, FaM loadcell, ThroneThumper, triple 24"

    ►Les impacts de la 5G ? doc en français exposition 24H/24 à des niveaux de rayonnement RF (+20 000 satellites braquant leur faisceaux sur la terre + stations relais au sol). Si vous ne voulez pas muter à seule fin d'avoir un frigo connecté, signez la pétition

  • Bonjour à tous,

    alors les choses évoluent un peu, je suis en train de passer du PWM+DIR (analogique) en BUSCAN (numérique).

    Je suis parti du projet OpenFFBoard. OpenFFBoard est un ensemble STM32 + carte de pilotage propriétaire en open source / open hardware : Lien vers le projet

    Yannick a développé un premier driver pour Odrive, mais comme vous le savez, mon truc c'est les vescs... Mes développements seront partagés bien évidement en open source.

    Je viens tout juste de faire tourner un premier moteur de 600w avec un encodeur dessus (AS5048) et comme décodeur FFB OpenFFBoard... les premiers résultats sont surprenants... Comment dire, FFB a 1khz de calcul d'effet, de commande moteur et de mesure de capteur de position ! Et bien sur mon moteur de 5Nm, cela donne ceci :

    Premier%20Test%20Can.PNG?dl=1

    C'est encore très expérimental, voici un aperçu de l'interface :

    Vesc%20Interface.PNG?dl=1

    R%C3%A9glageDAXE.PNG?dl=1

    FFBWheel.PNG?dl=1

    La connectique est simple : Une discovery -> un trancodeur CAN (TJA1050 à 2€) -> vesc (60e) -> AS5048(10e)

    La position est mesurée par le vesc et est envoyée à chaque fois que le moteur de FFB en a besoin, la "précision" est de 0.001% du courant max du moteur (dans mon cas, c'est 18A=5Nm) donc 0.005Nm...

    J'ai hâte de tester sur le mige 15015...

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

    Message modifié 3 fois, dernière modification par Carlton (26 août 2021 à 19:32).

  • Bonsoir Carlton,

    La position est mesurée par le vesc et est envoyé à chaque fois que le moteur de FFB en a besoin, la précision est de 0.001% du courant max du moteur (dans mon cas, c'est 18A=5Nm) donc 0.005Nm...

    Tu voulais dire "résolution" au lieu de "précision", non ? Sinon j'en achète tout de suite un ! :)

    D'ailleurs, tu pourrais faire une capture du courant de phase (en tout cas son image au travers des résistances au bas de l'onduleur) avec une commande de moteur à faible vitesse ?

    Histoire de voir ce que vaut la chaine de mesure de courant sur ce genre de carte low cost. Sur un contrôleur FOC c'est ce qu'il y a de plus délicat à mettre au point.

    Dommage que l'on ne trouve pas de carte low cost basée sur la version 6 de VESC, avec les capteurs au niveau des phases.

    En tout cas je vois que Open FFBoard a tout ce qu'il faut pour démarrer, je vais donc plutôt repartir de celui-ci au lieu de faire évoluer mon firmware, que je devais en plus porter du hardware LPC de l'époque.

    Amusant, je pensais justement rajouter un transceiver CAN sur ma carte cette après-midi, pour communiquer avec le driver.

    Message modifié 5 fois, dernière modification par Mizoo (25 août 2021 à 22:40).

  • @Mizoo

    Je ne suis pas certain de pouvoir répondre à toutes tes questions, mais voici ce que j'ai testé :rame: :

    Sur un Vesc 4.12, en réglant correctement les Kp/Ki du FOC, le contrôle de courant est bon.

    Les shunts qui mesurent à partir du gnds ne sont pas un problème, bien au contraire, tu n'as pas de dérives de signal lié à la phase virtuelle qui "glissent" légèrement, au contraire ca la stabilise.

    J'ai remplacé les shunts de 0.001ohm qui permettent de mesurer un courant de -160 à 160A par des shunts de 0.005ohm ce qui me ramène la plage à -30/30A. Ca ne fait que 60Nm.... Je me suis fait surprendre dans cette config sur F1 2021 dans le raidillon à Spa, impossible de respirer...

    Je ne sens aucun à-coup ou variation de puissance. Par contre je suis passé d'un t300rs avec peu d'expérience dessus à cette config. Etienne a testé sur un mige 10010 et a trouvé du cogging, là ou je n'en ai pas (ressent pas) sur le 15015.

    En PWM+Dir je trouve le résultat bon, mais je voulais réduire la latence d'où mes derniers dev pour passer en CAN.

    Je vais essayer de te faire ces mesures mais là, c'est compliqué j'ai vandaliser ma config pour tester le CAN :)

    J'ai regardé dans le passé les cartes que tu mentionnes, les cartes TI avec un drv3201 sont moins fiables que les vesc 4.12. Les shunts et les ina ne travaillent pas bien, et l'implémentation de TI est vraiment minimal et très bruité dans la réaction du moteur...

    J'ai testé un vesc 6 à trois shunts qui mesurent le courant au milieu... impossible à faire fonctionner, dès que le moteur faisait une rotation de plus d'un pôle, le couple passe à 0... autrement dit, tu tournes de plus de 90° en contrant un effet et tu perds le FFB... Je retesterai avec la derniere version du vesc pour voir ce que ca donne.

    Donc pour moi, la config qui marche pour le moment c'est MMOS ou le FW de Hoan + mon firmware en PWM.

    Ma roadmap :

    • Tests de OpenFFBoard en CAN sur le mige 15015
    • Implémentation de capteur Biss-C dans le vesc (il gere plein d'encodeurs absolus/incrémentaux/sincos) pour utiliser le BISS-C de mige dessus ;)
    • Correction de mon algo d'anticogging : la première version était très très moyenne.

    Volant DIY (OpenFFBoard + BusCAN + VESC + Mige15015 + BissC c.f. forum pour plus d'info), Pédales DIY (LoadCell, capteur à effet hall, impression 3d, sans fil), Roue DIY (16 boutons, 4 encodeurs, sans fil)

    Message modifié 1 fois, dernière modification par Carlton (26 août 2021 à 19:35).