DIY RC – USB Adapter für VRC Pro

Kürzlich bin ich im Internetz über billige kleine Atmega32u4 USB Knuffel gestolpert.
Dachte mir die wirken gut um USB Adapter zu basteln, also hab ich gleich mal welche bestellt.
Als erstes habe ich mir einen Adapter vorgenommen um gängige 2-Kanal Fernsteuerungen aus dem Modellbaubereich als USB Joystick für Spiele zu nutzen.
Das ist vor allem interessant für VRC Pro, einer RC Rennsimulation für PC.

Die Platine findet man unter Arduino SS Micro und ansonsten brauchts nur 2 Servokabel.
Plus und Minus des Empfängers kommen natürlich and 5V und GND des SS Micro und für die Signalleitungen habe ich die danebenliegenden Kontakte D3 und D2 genommen die mit PD0 und PD1 des Atmega verbunden sind.

Für das Häufchen Software habe ich Arduino und die ArduinoJoystickLibrary genommen.
Der SS Micro ist kompatibel mit dem Arduino Micro und kommt mit vorinstalliertem Bootloader.
Um die vorhandenen RX und TX Leds in meinem Programm nutzen zu können, musste ich die USBCore.cpp von Arduino bearbeiten. Diese liegt im Download natürlich bei, ist aber optional.
Die Datei sollte sich in Arduino/hardware/arduino/avr/cores/arduino befinden.
Die Änderungen lassen sich deaktivieren indem man #define NOLEDS auskommentiert.
Wenn man die Datei nicht ersetzt signalisieren die LEDs nicht korrekt ob beide Kanäle des Empfängers angeschlossen sind. Ist also eigentlich ziemlich unwichtig.

Nach dem Aufspielen der Software wird das ganze nun als USB-Gamecontroller erkannt.
Nun muss der Joystick nurnoch kalibriert werden und sollte dann seinen Dienst vollrichten.

Das ganze sieht nun nicht besonders elegant aus oder so.
Ist mit unter 5€ aber sehr viel günstiger als fertige Lösungen.
Vielleicht kann ja jemand etwas damit anfangen. Die Software findet ihr hier:
Download Old Version


Update

Aufgrund mehrerer Nachfragen gibt es hier eine neue Version mit Unterstützung für bis zu 4 Kanälen. Es beinhaltet auch ein Bild, welches die Verbindung veranschaulichen sollte.

Due to some questions, here is a new version with support for up to 4 channels. It also includes a picture to explain the wiring.

Download New Version

Comments (20)

  1. 02:24, 18. April 2018Ricardo  / Antworten

    Hi , is it possible make ir work with 3ch.?
    Retarda from Portugal
    Ricardo

    • 12:34, 14. August 2018Hummtaro  / Antworten

      Hey! Sure!
      It would be easy to add two more channels by using pins D0 and D1, wich are connected to PD2 (INT2) and PD3 (INT3). :)

      Greetings

  2. 12:43, 24. Oktober 2018Ricardo  / Antworten

    hello it is me ricardo again.
    so i bought the pro mini board with 32u4,and then i connect the pins 8, 9, 10 to the pwm signal from the receiver ,str, thr, aux.
    i flash your code to the board, and the windows see it as a controler Sparkfan pro micro.
    but when i move the steering or thr. on the radio nothing happens on the control setings.
    can you guide me thro your code to change the input pins?

    regards
    Ricardo

    • 17:55, 13. März 2019Hummtaro  / Antworten

      A bit late but i updated the main post! :)

  3. 20:50, 19. November 2018Griff  / Antworten

    Hi, This looks very good and promising. Please would you post an update. I’m not very good at understanding flashing code and things like that, but I’m able to do soldering, etc. Please could you write a little more, with a few more pictures to help me. I need to make one work with VRC PRO and my Flysky FS GT3C radio. many thanks

  4. 14:04, 22. November 2018griff  / Antworten

    any update on this ? does it work ??

  5. 14:06, 22. November 2018griff  / Antworten

    Ricardo, Did you find the answer to your problem ? Did you get it working ??

  6. 12:23, 3. März 2019Rodrigo  / Antworten

    Hi,

    Great job!
    I have ordered one board to use for VRC.
    Do you mind sharing the connection scematic to se servo leads?

    Thanks!

    • 17:55, 13. März 2019Hummtaro  / Antworten

      A bit late but i updated the main post! :)

  7. 18:57, 6. April 2019Ricardo  / Antworten

    @griff
    Hello, yes it work, in my board that is a Pro micro (https://farm8.staticflickr.com/7538/27704970094_a922871f10_b.jpg)
    and my pins PD0, Int0 is pin 3,
    PD1, int1 is pin 2

    Hummtaro, when i add a wire to PD2, int2, what i need to code on arduino to recognize the new input?

  8. 19:00, 6. April 2019Ricardo  / Antworten

    I just saw the update now, i will test-it and give a word.!

    you are awesome !!!

  9. 21:14, 6. April 2019Ricardo  / Antworten

    it gave me joystic error :s

  10. 21:16, 6. April 2019Ricardo  / Antworten

    hello this line
    #include are in red color whit this message

    exit status 1
    Joystick.h: No such file or directory

  11. 22:56, 6. April 2019Ricardo  / Antworten

    i really don’t understand, my arduino works just fine with you amaizing code, for flash the new code, i instal again arduino ide, add my board to board list and flash a setup and loop with nothing to clear the memory, after the simple flash, my windows doesn’t recognise the board…. what i’ve done? :(

  12. 22:12, 7. April 2019Ricardo  / Antworten

    Good news!!!!! soo at first for mistake i delete the bootloader of my board.
    -After fix it, i installed IDE 1.8.9, and add the sparkfun board to library.
    -Add a joystic library and your RCusb4, select my board and upload the code.
    -Now with my Spektrum DX3S fanaly i can drive and push the RS bottun to restart the car!

    My board is a pro micro ATMega32u4.

    • 19:29, 18. April 2019Hummtaro  / Antworten

      Glad to hear finally everything went fine!
      I wish you much fun with your new adaptor! :)

  13. 22:42, 10. Juli 2019Rodrigo  / Antworten

    Hi,

    I am not able to verify/compile.
    My computer detects the board as an arduino leonardo, but when i try to verify i get the following error:
    Arduino: 1.8.8 (Windows 10), Board: „Arduino Leonardo“

    In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\ArduinoJoystickLibrary-master\Joystick\src\Joystick.cpp:21:0:

    C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\ArduinoJoystickLibrary-master\Joystick\src\Joystick.h:24:35: fatal error: DynamicHID/DynamicHID.h: No such file or directory

    compilation terminated.

    exit status 1
    Error compiling for board Arduino Leonardo.

    This report would have more information with
    „Show verbose output during compilation“
    option enabled in File -> Preferences.

    I have the COM3 port selected and it is correct with the board.

    Can anyone help me with a step-by-step?

    • 04:49, 17. Juli 2019Hummtaro  / Antworten

      This looks like you have installed the Joystick library to the wrong location.

      First remove your wrongly installed joystick library..
      Then extract the downloaded Joystick library to one of those locations:
      %userprofile%\Documents\Arduino\libraries\
      C:\Program Files (x86)\Arduino\libraries\

      The folder named „Joystick“ should be directly in there.
      NOT inside a „ArduinoJoystickLibrary-master“ subfolder.

      Then you have to open my source code, select your Arduino Leonardo as board and press Upload..

      Good luck! :)

  14. 22:57, 10. Juli 2019Rodrigo  / Antworten

    @Ricardo
    Hi Ricardo,

    Can you please explain me how can i program my board?
    What steps have you done to make it work?

    Kind regards,
    Rodrigo Catarino

  15. 21:13, 14. August 2019Ricardo  / Antworten

    @Rodrigo Ola vou assumir que sabes portugues.
    Tens de adicionar o joystic á biblioteca do programa IDE do arduino, para ele conhecer os comandos joystic.
    e depois é que mandas o codigo do Hummtaro para a placa.
    no meu caso, ainda tive de instalar as placas sparkfun á biblioteca para o programa IDE conhecer o meu chip 32u4

Schreibe einen Kommentar zu Ricardo Antworten abbrechen

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Pingbacks (0)

› No pingbacks yet.