Jump to content

MetalGear_Honk

Members
  • Posts

    129
  • Joined

  • Last visited

Everything posted by MetalGear_Honk

  1. ReHi Here is the first version for testing. ADC7 = X Axis Pro Micro pin A0 ADC6 = Y Axis Pro Micro pin A1 PORTD7 = X Axis PWM = Pro Micro Pin 06 PORTD0 = Y Axis PWM = Pro Micro Pin 03 PORTB6 = X Axis Direction left = Pro Micro pin 10 PORTB1 = X Axis Direction right = Pro Micro pin 15 PORTB2 = Y Axis Direction left = Pro Micro pin 14 PORTB3 = Y Axis Direction right = Pro Micro pin 16 Here is a list of functions that I have been working on. Auto Center (no FFB Support / no USB Connection) Constant Force Square Force Ramp (not working properly) Spring Damper Interia (not sure if it is correct) Still missing: Sin Wave Triangle Wave Saw tooth up Saw tooth down I Have some tests integrated that should make multi Forces possible. But it is NOT Tested. But for the Test Rig that functionality is hopefully not necessary. This is only a test Version, based on the LUFA Library. I had to change the pin configuration as some pins are not accessible on a Pro Micro. I do not have a Test Rig at hand so I can’t test if the Changes where all successful. Greatings MetalGear_Honk [ATTACH]149066[/ATTACH]
  2. Holy You must have a Warehose. at your disposal. the first one will do (never saw it that cheap). but i just read about that an UNO can be used as ISP Programmer as well. give a Day. i will put some infos together and Build the Hex file. i need to sort out the conections too. MetalGear_Honk P.S.: I just got some Pro Micros. so i will play a bit with these. if you have a Teensy2.0 (the one with a ATMEGA32u4) you can Flash it without Programmer using "Flip"
  3. Hi Hegykc: do you know how to burn a ATMEGA with ISP? or can you use "FLIP" to loadup a Teensy2.0 i will build a basic test Version (Hex file) for testing FFB. it will conect as FFB Joystick. and you can test diferent functions whith the FEdit test tool. i can not provide all functions but the most Basic ones. (constant force / Square / Spring ) i will see what else i can provide. this can be used in a Sim but i do not think it will be usable at this stat. MetalGear_Honk
  4. Hi Here is a Sketch. I have no Uno to test it at work. const int left = 2; const int right = 3; const int power = 4; void setup() { // put your setup code here, to run once: pinMode(left, OUTPUT); pinMode(right, OUTPUT); pinMode(power, OUTPUT); } void loop() { // put your main code here, to run repeatedly: Power = LOW; right = LOW; left = HIGH; Power = HIGH; delay(1000); Power = LOW; left = LOW; right = HIGH; Power = HIGH; delay(1000); } It is for one Axis Pins 2 and 3 for directions 4 is the enable. It will turn the Motor at full Speed for one second than revers.
  5. Hi all that is quit an interesting discussion. But it will lead us nowhere, as Long as we don't have a running Controller. To cut the discussion a bit. If we work together on a Controller/Software which has the outputs for direction and Speed everybody can mount whatever he/she fancies. At worst there is the Need for a conversion of signals. But that is trivia. So given that we agree on that: is someone else familiar with c programming and willed to help sort out the bugs? MetalGear_Honk
  6. Hi I do not think that a Servo will work. the ones I have here have a response angle >1° that would make quiet some travel at the end of the grip. and it will make Programming for some Force difficult. for gears: The Gear that are grinded are very precise. and when we ad some torque or "V" shape these should be free of slip. I think that we should stay cheap, and use Stuff ready available. and most of all lets first get some working Software than we can talk about making things better. MetalGear_Honk
  7. Hi all Good to see that more People are willing to help. Some thoughts on Motors: Steps from Steppers can be minimized with Stepper Drivers. For example if we take a Stepper with 200 Steps / turn. That will make a 1, 8 Degree step on full step mode. 0.9 On Half step (that is possible without Driver). Now modern Driver can do 1/64 or 1/128 that would make 0.028 / 0.014 Degree. I think that would be acceptable. For brushed Motors (and all Motors in General) using some gear Ratio (Belt /gear) that would decrease the gap feel. I have not tested it so someone might have some more Info’s for us. Now to get a FFB Stick we really need to stay with the USB Standard that is the most common used for FFB and the only one that is supported by all Sims I am Aware of. Making a Special Version for DCS (Export.lua data Transfer) would take almost as much time as the PID-USB Version. And it will only be good for DCS. @Hegyhc: I will try and use the L298 with a brushless DC Motor For the Controller I will Experiment with the pro Micro
  8. Ah great. Ok the ATMEGA32u4 is the Microcontroller used in the Arduino Micro. So that is where all code goes. I ordered some Pro Micro boards for testing. Hopefully those can be programmed using "FLIP" (Atmel Software). That way we can hook up the board with your H-Bridge board (add in an External Power source) and we are ready to go. I do not know what Controller you have at Hand. I think a Teensy or better an Arduino pro micro would be good. I will look up some Info’s how to Program These. Then I can give you the wiring for the rig. Assuming you will use the Motor and L298 Board you named bevor. And I still do not know how to upload the Software.
  9. Hi For using Steppers: If we use a Stepper driver between Controller and Dual H-Bridge it is almost the same as a DC Motor. Two Wires for direction (one is not really used but kept for compatibility) and the PWM is giving the steps (but Needs to made slower). So it will be only one Number to Change in the software. For the Positioning: It needs to be on the Initial test. Some Forces are responding to Stick Position. Maybe it would be good for all to get a look at the PID Document for understanding how the Transfers are done by USB. I am more than happy to help in understanding as it took me weeks to understand it myself :-) In short: All Force functions are send to the Device and only activated when needed. It is possible to slave Functions to Joystick Buttons (gun trigger + Square wave function) The spring effect is directly corresponding to the Position of the stick. As it increases by the distance to the defined Center (not necessary natural Center) Friction and Damper functions respond to the change in Stick Position. (Speed of stick Position Change) For the test Setup: I think for the very first tests it will be enough to use a Hand full of LED and 2 10k pots. A used this to determine the directions that the Motor will turn (2x2LED) and how strong they are turning (2LED Dimmed by PWM) and of course the pots to simulate stick movement. But if hegykc can bring up some better test rig it would be great. For the code: I have found my "old test source" it is not finished and it has only some of the Functions added. But it is a start. Now I need to know how to upload it here. (Never done uploading code. is it the same as with Pictures?) greatings MetalGear_Honk
  10. Hi I do not think that we can make an Arduino sketch to test the FFB. Or can a Micro be booted as different device? I don't own one, and normaly use AVR Studio If it is possible I will see if I can port my Test code to Arduino. For a test Rig: What DC Motor have you at Hand? FFB Needs Feedback from Axis Position so Pots deeded to be attached (I used Hall sensor and glued the Magnets to the Axis)
  11. Hi Yes the descriptor is working but you will need to add some functions for the USB communication. I use a SDK600 with ATMEGA32U4 And the AVR Studio 7.0 But I think it will work with a teensy or pro micro as well. I see if I can find the rest of this Project as I had put it on hold for I couldn't sort out the Timing Problems when using multiple Forces at the same time. Greatings MetalGear_Honk
  12. Hi For getting enough Force to the Grip it would be easy to use DC-Motors (brushless or Brushed is of no concern). Using an H-Bridge Driver (L298N can supply 5A) that is capable of powering two decent Motors. And the Controller can give Direction through 4 Pins (two for each Motor / or 2 Pins given some circuit for switching) and two PWM signals for manipulating the Motors Rotation Speed. In Combination with some Gearbox for degreasing the turn Speed that will give us a Cheap and Powerful solution. For the Crazy ones: Using optocouplers on the Direction Pins to switch some contactors (? German: Schürtz schalter) and an external Frequency Modulator on the PWM pin. That can source industrial Motors with enough Force to lift a plane. Now to get the Ball rolling: Here is my Descriptor for an Force Feedback Joystick. It contains most Forces (excluding custom force) 4 Axis with 16bit res 4 Axis with 10bit res 4 directional Buttons (cooli) 32 Buttons. (That is the maximum for Windows Directx inputs. Raw data could be much more but is not supported by all games) 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x04, // USAGE (Joystick) 0xa1, 0x01, // COLLECTION (Application) 0xa1, 0x00, // COLLECTION (Physical) 0x85, 0x01, 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x30, // USAGE (X) 0x09, 0x31, // USAGE (Y) 0x09, 0x32, // USAGE (Z) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x26, 0xff, 0x71, // LOGICAL_MAXIMUM (25000) 0x75, 0x10, // REPORT_SIZE (16) 0x95, 0x03, // REPORT_COUNT (3) 0x81, 0x02, // INPUT (Data,Var,Abs) //HID_RI_END_COLLECTION(0), 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x33, // USAGE (X) 0x95, 0x01, // REPORT_COUNT (1) 0x75, 0x10, // REPORT_SIZE (16) 0x26, 0xff, 0xff, // LOGICAL_MAXIMUM (32000) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x34, // USAGE (Ry) 0x09, 0x35, // USAGE (Rz) 0x09, 0x36, // USAGE (Slider) 0x09, 0x36, // USAGE (Slider) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x26, 0x00, 0x04, // LOGICAL_MAXIMUM (1024) 0x75, 0x10, // REPORT_SIZE (16) 0x95, 0x04, // REPORT_COUNT (5) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x05, 0x09, // USAGE_PAGE (Button) 0x19, 0x01, // USAGE_MINIMUM (Button 1) 0x29, 0x20, // USAGE_MAXIMUM (Button 48) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x95, 0x20, // REPORT_COUNT (48) 0x75, 0x01, // REPORT_SIZE (1) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x05, 0x01, // Usage Page (Generic Desktop) 0x09, 0x39, // Usage (Hat switch) 0x09, 0x39, // Usage (Hat switch) 0x09, 0x39, // Usage (Hat switch) 0x09, 0x39, // Usage (Hat switch) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x07, // Logical Maximum (7) 0x35, 0x00, // Physical Minimum (0) 0x46, 0x3B, 0x01, // Physical Maximum (315) 0x75, 0x04, // Report Size (4) 0x95, 0x04, // Report Count (4) 0x65, 0x14, // Unit (20) 0x81, 0x42, // Input (variable,absolute,null_state) 0xc0, // END_COLLECTION 0x05,0x0F, // USAGE_PAGE (Physical Interface) 0x09,0x92, // USAGE (PID State Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x02, // REPORT_ID (02) 0x09,0x9F, // USAGE (Device Paused) 0x09,0xA0, // USAGE (Actuators Enabled) 0x09,0xA4, // USAGE (Safety Switch) 0x09,0xA5, // USAGE (Actuator Override Switch) 0x09,0xA6, // USAGE (Actuator Power) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x25,0x01, // LOGICAL_MINIMUM (01) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x45,0x01, // PHYSICAL_MAXIMUM (01) 0x75,0x01, // REPORT_SIZE (01) 0x95,0x05, // REPORT_COUNT (05) 0x81,0x02, // INPUT (Data,Var,Abs) 0x95,0x03, // REPORT_COUNT (03) 0x81,0x03, // INPUT (Constant,Var,Abs) 0x09,0x94, // USAGE (Effect Playing) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x25,0x01, // LOGICAL_MAXIMUM (01) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x45,0x01, // PHYSICAL_MAXIMUM (01) 0x75,0x01, // REPORT_SIZE (01) 0x95,0x01, // REPORT_COUNT (01) 0x81,0x02, // INPUT (Data,Var,Abs) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x07, // REPORT_SIZE (07) 0x95,0x01, // REPORT_COUNT (01) 0x81,0x02, // INPUT (Data,Var,Abs) 0xC0, // END COLLECTION () 0x09,0x21, // USAGE (Set Effect Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x01, // REPORT_ID (01) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x25, // USAGE (25) 0xA1,0x02, // COLLECTION (Logical) 0x09,0x26, // USAGE (26) 0x09,0x27, // USAGE (27) 0x09,0x30, // USAGE (30) 0x09,0x31, // USAGE (31) 0x09,0x32, // USAGE (32) 0x09,0x33, // USAGE (33) 0x09,0x34, // USAGE (34) 0x09,0x40, // USAGE (40) 0x09,0x41, // USAGE (41) 0x09,0x42, // USAGE (42) 0x09,0x43, // USAGE (43) 0x09,0x28, // USAGE (28) 0x25,0x0C, // LOGICAL_MAXIMUM (0C) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x0C, // PHYSICAL_MAXIMUM (0C) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x00, // OUTPUT (Data) 0xC0, // END COLLECTION () 0x09,0x50, // USAGE (Duration) 0x09,0x54, // USAGE (Trigger Repeat Interval) 0x09,0x51, // USAGE (Sample Period) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x7F, // LOGICAL_MAXIMUM (7F FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0xFF,0x7F, // PHYSICAL_MAXIMUM (7F FF) 0x66,0x03,0x10, // UNIT (Eng Lin:Time) 0x55,0xFD, // UNIT_EXPONENT (-3) 0x75,0x10, // REPORT_SIZE (10) 0x95,0x03, // REPORT_COUNT (03) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x55,0x00, // UNIT_EXPONENT (00) 0x66,0x00,0x00, // UNIT (None) 0x09,0x52, // USAGE (Gain) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x00, // LOGICAL_MAXIMUM (00 FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x53, // USAGE (Trigger Button) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x08, // LOGICAL_MAXIMUM (08) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x08, // PHYSICAL_MAXIMUM (08) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x55, // USAGE (Axes Enable) 0xA1,0x02, // COLLECTION (Logical) 0x05,0x01, // USAGE_PAGE (Generic Desktop) 0x09,0x30, // USAGE (X) 0x09,0x31, // USAGE (Y) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x25,0x01, // LOGICAL_MAXIMUM (01) 0x75,0x01, // REPORT_SIZE (01) 0x95,0x02, // REPORT_COUNT (02) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0xC0, // END COLLECTION () 0x05,0x0F, // USAGE_PAGE (Physical Interface) 0x09,0x56, // USAGE (Direction Enable) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x95,0x05, // REPORT_COUNT (05) 0x91,0x03, // OUTPUT (Constant,Var,Abs) 0x09,0x57, // USAGE (Direction) 0xA1,0x02, // COLLECTION (Logical) 0x0B,0x01,0x00,0x0A,0x00, 0x0B,0x02,0x00,0x0A,0x00, 0x66,0x14,0x00, // UNIT (Eng Rot:Angular Pos) 0x55,0xFE, // UNIT_EXPONENT (FE) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x00, // LOGICAL_MAXIMUM (00 FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x47,0xA0,0x8C,0x00,0x00, // PHYSICAL_MAXIMUM (00 00 8C A0) 0x66,0x00,0x00, // UNIT (None) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x02, // REPORT_COUNT (02) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x55,0x00, // UNIT_EXPONENT (00) 0x66,0x00,0x00, // UNIT (None) 0xC0, // END COLLECTION () 0x05,0x0F, // USAGE_PAGE (Physical Interface) // 0x09,0xA7, // USAGE (Start Delay) 0x66,0x03,0x10, // UNIT (Eng Lin:Time) 0x55,0xFD, // UNIT_EXPONENT (-3) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x7F, // LOGICAL_MAXIMUM (7F FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0xFF,0x7F, // PHYSICAL_MAXIMUM (7F FF) 0x75,0x10, // REPORT_SIZE (10) 0x95,0x01, // REPORT_COUNT (01) // 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x66,0x00,0x00, // UNIT (None) 0x55,0x00, // UNIT_EXPONENT (00) 0xC0, // END COLLECTION () 0x05,0x0F, // USAGE_PAGE (Physical Interface) 0x09,0x5A, // USAGE (Set Envelope Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x02, // REPORT_ID (02) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x5B, // USAGE (Attack Level) 0x09,0x5D, // USAGE (Fade Level) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0x10,0x27, // LOGICAL_MAXIMUM (00 FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x75,0x10, // REPORT_SIZE (08) 0x95,0x02, // REPORT_COUNT (02) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x5C, // USAGE (5C) 0x09,0x5E, // USAGE (5E) 0x66,0x03,0x10, // UNIT (Eng Lin:Time) 0x55,0xFD, // UNIT_EXPONENT (-3) 0x26,0xFF,0x7F, // LOGICAL_MAXIMUM (7F FF) 0x46,0xFF,0x7F, // PHYSICAL_MAXIMUM (7F FF) 0x75,0x10, // REPORT_SIZE (10) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x45,0x00, // PHYSICAL_MAXIMUM (00) 0x66,0x00,0x00, // UNIT (None) 0x55,0x00, // UNIT_EXPONENT (00) 0xC0, // END COLLECTION () 0x09,0x5F, // USAGE (Set Condition Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x03, // REPORT_ID (03) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x23, // USAGE (Parameter Block Offset) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x25,0x01, // LOGICAL_MAXIMUM (01) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x45,0x01, // PHYSICAL_MAXIMUM (01) 0x75,0x04, // REPORT_SIZE (04) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x58, // USAGE (Type Specific Block Offset) 0xA1,0x02, // COLLECTION (Logical) 0x0B,0x01,0x00,0x0A,0x00, // USAGE (Instance 1) 0x0B,0x02,0x00,0x0A,0x00, // USAGE (Instance 2) 0x75,0x02, // REPORT_SIZE (02) 0x95,0x02, // REPORT_COUNT (02) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0xC0, // END COLLECTION () 0x15,0x80, // LOGICAL_MINIMUM (80) 0x25,0x7F, // LOGICAL_MAXIMUM (7F) 0x36,0xF0,0xD8, // PHYSICAL_MINIMUM (-10000) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x09,0x60, // USAGE (CP Offset) 0x09,0x61, // USAGE (Positive Coefficient) 0x09,0x62, // USAGE (Negative Coefficient) 0x09,0x63, // USAGE (Positive Saturation) 0x09,0x64, // USAGE (Negative Saturation) 0x09,0x65, // USAGE (Dead Band ) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x26, 0x10, 0x27, // LOGICAL_MAXIMUM (25000) 0x75, 0x10, // REPORT_SIZE (16) //0x75,0x08, // REPORT_SIZE (08) 0x95,0x06, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x36,0xF0,0xD8, // PHYSICAL_MINIMUM (-10000) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) /* 0x95,0x02, // REPORT_COUNT (01) // ???? WAS 2 with "negative coeff" 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26, 0x10, 0x27, // LOGICAL_MAXIMUM (00 FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x09,0x63, // USAGE (Positive Saturation) 0x09,0x64, // USAGE (Negative Saturation) 0x75,0x10, // REPORT_SIZE (08) 0x95,0x02, // REPORT_COUNT (02) // 0x91,0x02, // OUTPUT (Data,Var,Abs) // 0x09,0x65, // USAGE (Dead Band ) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x26, 0x10, 0x27, // LOGICAL_MAXIMUM (25000) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x95,0x01, // REPORT_COUNT (01) // 0x91,0x02, // OUTPUT (Data,Var,Abs) */ 0xC0, // END COLLECTION () 0x09,0x6E, // USAGE (Set Periodic Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x04, // REPORT_ID (04) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x70, // USAGE (Magnitude) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x00, // LOGICAL_MAXIMUM (00 FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x6F, // USAGE (Offset) 0x15,0x80, // LOGICAL_MINIMUM (80) 0x25,0x7F, // LOGICAL_MAXIMUM (7F) 0x36,0xF0,0xD8, // PHYSICAL_MINIMUM (-10000) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x71, // USAGE (Phase) 0x66,0x14,0x00, // UNIT (Eng Rot:Angular Pos) 0x55,0xFE, // UNIT_EXPONENT (FE) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x00, // LOGICAL_MAXIMUM (00 FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x47,0xA0,0x8C,0x00,0x00, // PHYSICAL_MAXIMUM (00 00 8C A0) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x72, // USAGE (Period) 0x26,0xFF,0x7F, // LOGICAL_MAXIMUM (7F FF) 0x46,0xFF,0x7F, // PHYSICAL_MAXIMUM (7F FF) 0x66,0x03,0x10, // UNIT (Eng Lin:Time) 0x55,0xFD, // UNIT_EXPONENT (-3) 0x75,0x10, // REPORT_SIZE (10) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x66,0x00,0x00, // UNIT (None) 0x55,0x00, // UNIT_EXPONENT (00) 0xC0, // END COLLECTION () 0x09,0x73, // USAGE (Set Constant Force Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x05, // REPORT_ID (05) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x70, // USAGE (Magnitude) 0x16,0x01,0xFF, // LOGICAL_MINIMUM (-255) 0x26,0xFF,0x00, // LOGICAL_MAXIMUM (255) 0x36,0xF0,0xD8, // PHYSICAL_MINIMUM (-10000) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x75,0x10, // REPORT_SIZE (10) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0xC0, // END COLLECTION () 0x09,0x74, // USAGE (Set Ramp Force Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x06, // REPORT_ID (06) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x75, // USAGE (Ramp Start) 0x09,0x76, // USAGE (Ramp End) 0x15,0x80, // LOGICAL_MINIMUM (-128) 0x25,0x7F, // LOGICAL_MAXIMUM (127) //0x15,0x00, //0x25,0xff, 0x36,0xF0,0xD8, // PHYSICAL_MINIMUM (-10000) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x02, // REPORT_COUNT (02) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0xC0, // END COLLECTION () 0x09,0x68, // USAGE (Custom Force Data Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x07, // REPORT_ID (07) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x6C, // USAGE (Custom Force Data Offset) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0x10,0x27, // LOGICAL_MAXIMUM (10000) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x75,0x10, // REPORT_SIZE (10) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x69, // USAGE (Custom Force Data) 0x15,0x81, // LOGICAL_MINIMUM (-127) 0x25,0x7F, // LOGICAL_MAXIMUM (127) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0xFF,0x00, // PHYSICAL_MAXIMUM (255) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x0C, // REPORT_COUNT (0C) 0x92,0x02,0x01, // OUTPUT ( Data,Var,Abs,Buf) 0xC0, // END COLLECTION () 0x09,0x66, // USAGE (Download Force Sample) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x08, // REPORT_ID (08) 0x05,0x01, // USAGE_PAGE (Generic Desktop) 0x09,0x30, // USAGE (X) 0x09,0x31, // USAGE (Y) 0x15,0x81, // LOGICAL_MINIMUM (-127) 0x25,0x7F, // LOGICAL_MAXIMUM (127) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0xFF,0x00, // PHYSICAL_MAXIMUM (255) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x02, // REPORT_COUNT (02) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0xC0, // END COLLECTION () 0x05,0x0F, // USAGE_PAGE (Physical Interface) 0x09,0x77, // USAGE (Effect Operation Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x0A, // REPORT_ID (0A) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x78, // USAGE (78) 0xA1,0x02, // COLLECTION (Logical) 0x09,0x79, // USAGE (Op Effect Start) 0x09,0x7A, // USAGE (Op Effect Start Solo) 0x09,0x7B, // USAGE (Op Effect Stop) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x03, // LOGICAL_MAXIMUM (03) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x00, // OUTPUT (Data,Ary,Abs) 0xC0, // END COLLECTION () 0x09,0x7C, // USAGE (Loop Count) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x00, // LOGICAL_MAXIMUM (00 FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0xFF,0x00, // PHYSICAL_MAXIMUM (00 FF) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0xC0, // END COLLECTION () 0x09,0x90, // USAGE (PID Block Free Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x0B, // REPORT_ID (0B) 0x09,0x22, // USAGE (Effect Block Index) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0xC0, // END COLLECTION () 0x09,0x96, // USAGE (PID Device Control) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x0C, // REPORT_ID (0C) 0x09,0x97, // USAGE (DC Enable Actuators) 0x09,0x98, // USAGE (DC Disable Actuators) 0x09,0x99, // USAGE (DC Stop All Effects) 0x09,0x9A, // USAGE (DC Device Reset) 0x09,0x9B, // USAGE (DC Device Pause) 0x09,0x9C, // USAGE (DC Device Continue) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x06, // LOGICAL_MAXIMUM (06) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x00, // OUTPUT (Data) 0xC0, // END COLLECTION () 0x09,0x7D, // USAGE (Device Gain Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x0D, // REPORT_ID (0D) 0x09,0x7E, // USAGE (Device Gain) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x00, // LOGICAL_MAXIMUM (00 FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0x10,0x27, // PHYSICAL_MAXIMUM (10000) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0xC0, // END COLLECTION () 0x09,0x6B, // USAGE (Set Custom Force Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x0E, // REPORT_ID (0E) 0x09,0x22, // USAGE (Effect Block Index) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x6D, // USAGE (Sample Count) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x00, // LOGICAL_MAXIMUM (00 FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0xFF,0x00, // PHYSICAL_MAXIMUM (00 FF) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x09,0x51, // USAGE (Sample Period) 0x66,0x03,0x10, // UNIT (Eng Lin:Time) 0x55,0xFD, // UNIT_EXPONENT (-3) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x7F, // LOGICAL_MAXIMUM (32767) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0xFF,0x7F, // PHYSICAL_MAXIMUM (32767) 0x75,0x10, // REPORT_SIZE (10) 0x95,0x01, // REPORT_COUNT (01) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0x55,0x00, // UNIT_EXPONENT (00) 0x66,0x00,0x00, // UNIT (None) 0xC0, // END COLLECTION () 0x09,0xAB, // USAGE (Create New Effect Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x05, // REPORT_ID (05) 0x09,0x25, // USAGE (Effect Type) 0xA1,0x02, // COLLECTION (Logical) 0x09,0x26, // USAGE (26) 0x09,0x27, // USAGE (27) 0x09,0x30, // USAGE (30) 0x09,0x31, // USAGE (31) 0x09,0x32, // USAGE (32) 0x09,0x33, // USAGE (33) 0x09,0x34, // USAGE (34) 0x09,0x40, // USAGE (40) 0x09,0x41, // USAGE (41) 0x09,0x42, // USAGE (42) 0x09,0x43, // USAGE (43) 0x09,0x28, // USAGE (28) 0x25,0x0C, // LOGICAL_MAXIMUM (0C) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x0C, // PHYSICAL_MAXIMUM (0C) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0xB1,0x00, // FEATURE (Data) 0xC0, // END COLLECTION () 0x05,0x01, // USAGE_PAGE (Generic Desktop) 0x09,0x3B, // USAGE (Byte Count) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x26,0xFF,0x01, // LOGICAL_MAXIMUM (511) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x46,0xFF,0x01, // PHYSICAL_MAXIMUM (511) 0x75,0x0A, // REPORT_SIZE (0A) 0x95,0x01, // REPORT_COUNT (01) 0xB1,0x02, // FEATURE (Data,Var,Abs) 0x75,0x06, // REPORT_SIZE (06) 0xB1,0x01, // FEATURE (Constant,Ary,Abs) 0xC0, // END COLLECTION () 0x05,0x0F, // USAGE_PAGE (Physical Interface) 0x09,0x89, // USAGE (PID Block Load Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x06, // REPORT_ID (06) 0x09,0x22, // USAGE (Effect Block Index) 0x25,0x28, // LOGICAL_MAXIMUM (28) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x28, // PHYSICAL_MAXIMUM (28) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0xB1,0x02, // FEATURE (Data,Var,Abs) 0x09,0x8B, // USAGE (Block Load Status) 0xA1,0x02, // COLLECTION (Logical) 0x09,0x8C, // USAGE (Block Load Success) 0x09,0x8D, // USAGE (Block Load Full) 0x09,0x8E, // USAGE (Block Load Error) 0x25,0x03, // LOGICAL_MAXIMUM (03) 0x15,0x01, // LOGICAL_MINIMUM (01) 0x35,0x01, // PHYSICAL_MINIMUM (01) 0x45,0x03, // PHYSICAL_MAXIMUM (03) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0xB1,0x00, // FEATURE (Data) 0xC0, // END COLLECTION () 0x09,0xAC, // USAGE (RAM Pool Available) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x27,0xFF,0xFF,0x00,0x00, // LOGICAL_MAXIMUM (00 00 FF FF) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x47,0xFF,0xFF,0x00,0x00, // PHYSICAL_MAXIMUM (00 00 FF FF) 0x75,0x10, // REPORT_SIZE (10) 0x95,0x01, // REPORT_COUNT (01) 0xB1,0x00, // FEATURE (Data) 0xC0, // END COLLECTION () 0x09,0x7F, // USAGE (PID Pool Report) 0xA1,0x02, // COLLECTION (Logical) 0x85,0x07, // REPORT_ID (07) 0x09,0x80, // USAGE (RAM Pool Size) 0x75,0x10, // REPORT_SIZE (10) 0x95,0x01, // REPORT_COUNT (01) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x27,0xFF,0xFF,0x00,0x00, // LOGICAL_MAXIMUM (00 00 FF FF) 0x47,0xFF,0xFF,0x00,0x00, // PHYSICAL_MAXIMUM (00 00 FF FF) 0xB1,0x02, // FEATURE (Data,Var,Abs) 0x09,0x83, // USAGE (Simultaneous Effects Max) 0x26,0xFF,0x00, // LOGICAL_MAXIMUM (00 FF) 0x46,0xFF,0x00, // PHYSICAL_MAXIMUM (00 FF) 0x75,0x08, // REPORT_SIZE (08) 0x95,0x01, // REPORT_COUNT (01) 0xB1,0x02, // FEATURE (Data,Var,Abs) 0x09,0xA9, // USAGE (Device Managed Pool) 0x09,0xAA, // USAGE (Shared Parameter Blocks) 0x75,0x01, // REPORT_SIZE (01) 0x95,0x02, // REPORT_COUNT (02) 0x15,0x00, // LOGICAL_MINIMUM (00) 0x25,0x01, // LOGICAL_MAXIMUM (01) 0x35,0x00, // PHYSICAL_MINIMUM (00) 0x45,0x01, // PHYSICAL_MAXIMUM (01) 0xB1,0x02, // FEATURE (Data,Var,Abs) 0x75,0x06, // REPORT_SIZE (06) 0x95,0x01, // REPORT_COUNT (01) 0xB1,0x03, // FEATURE ( Cnst,Var,Abs) 0xC0, // END COLLECTION () 0xc0, // END_COLLECTION
  13. Hi Revvin is right about the Licenses of Immersions. But as far as i know that all the License violations only occur when we are talking about commercial products. As Long as it is only and pure "do it for yourself and not selling it" there should be nothing to worry about. But that is only my opinion might be wrong. greatings MetalGear_Honk
  14. Hi i have some source mostly stolen/ lend from other projects. or from old stuff i made. it is written in AVR Studio 7.1 and i tested it with the STK600 so i don't have an wireing. i can send you a mail if you are willing to help. as i sad constructor and IO is working for some Degree. but i think i have some timing issius. Greatings MetalGear_Honk
  15. Hi The FFB will enable you to use Heli Trim and out of Center Spring loads. I don’t think it can be archived without FFB. For the Electrical part: Most Old FFB Joysticks uses DC Motors. To drive those you need only an H-Bridge the l298n is a Double H-Bridge so we can use it for both axis. For using Steppers we would need at last 2 H-Bridges for every Motor. But it would be better to use a Stepper Driver for higher precision. Using Servos as in RC-Servo no special parts are needed as a PWM Signal for the Position will be enough. But strong servos will be expensive For the Software: A working Descriptor can be found at the DecentBB Forum or in the FFB-Adapter. It is very long for it contains every Effect an all Settings for the effects. Using a Teensy (or ATMEGA32u4) will give us enough Pins to drive the Motors and getting all the Fancy Buttons/Axis we want. I think an Arduino will be possible as well, but it is more complicated because we cannot write to the communication chip directly. (I have done it before). So I think it can be archived without paying hundreds of Euros. I will happily chare my source code if someone can help finding out what is not working. @Metalnwood Can you link to someone who has done an DIY FFB Joystick? I am not aware of any successful Project. Greatings MetalGear_Honk
  16. Hi The SimuCube is for FFB Wheels. Wheels have only two directions where Force is applied to. A Joystick has 2 Axis. Given that the Direction value in the PID is only one Byte. That makes 254 possible directions. So we have to calculate the Force that goes to what Motor and multiply it with the Force that should be applied. Of course we have to do that for all active Effects and take all Effect directions and Forces into account. Greatings MetalGear_Honk
  17. Hi I think it is time to share some of my gadgets. it all started with the need of some more Potis for Engine Management. so I Hacked an old USB Stick I had lying around. after that i needed some form of Pedals, but was unwilling to spend any Money in them. so i scavenged some old Furniture for the Base and sliders. next part was some Headtracker some IR-LED and an SP2 Eye. and FreeTrack was my friend. I was never realy happy with the Poti Box. so i build myself a Throttle. thistime i used an Arduino as base. now was the time do some real work. i started on my first Joystick. and no Cockpit would be completed without an proper Button Box. at late i expanded the Arduino with an ADS1115 for better resolution. and some minor updates on different parts. mostly on the Pedals last add-on is an 7" Tablet that runs as CDU for the A10c / as Nadir for the Gazelle /as PVI-800 for the Ka-50. (sorry no pictures for that). so now that is my setup as i play today. time to start working on the Hotas Mark2 :joystick: Greatings MetalGear_Honk
  18. Hi FFB is part of the USB Protocol. So it is basically always supported. The only Problem is that there is no SDK for implementing it in the Software (Sim). As far as I know FFB is supported by many Flight Sims. DCS, BOS, ROF, FSX have it for sure. The main Problem is that there is no FFB Stick in Production any more. That makes the demand for Support very low. So the Support will die if there are no more Sticks around. For my try on a Stick it is recognized by Windows as a FFB Device and can be used with the DirectX Force Feedback Test Tool. (Or in Games for that matter). But the Communication will Freeze sometime after any Effect is set on the Device. Greating MetalGear_Honk
  19. Hi I am also very also interested in building an FFB Stick. I have built an Hotas, so I have some experience with that. My build is based on an Atmel ATMega32U4 that is compatible with the Teensy series. Using the Lufa library makes Joystick building quit easy. For using this with FFB I was thinking of using DC Motors with H-Bridge a DWM from the Controller. Got the Descriptor and all running. But I Keep failing on the Timings when it comes to the different force-sets. The most difficult part will be the combination of force-sets. The old Microsoft stick could handle 7 sets in combination (spring load, sin, square...). Greetings MetalGear_Honk P.S.: sorry for my bad English
  20. Hello I just found out about this bug. is there some kind of work around?
  21. Hello I had to make an New instalation of DCS and decided to go direct for 1.5 but now i can't move the Axis (Pedals and Stick) i tried to unbind all input devices (Joystick, Buttonbox, Keyboard, Pedals, Throttle). and rebind only keyboard keys for the Pitch. but that also didn't work. I uninstalled the Huey Module and deleted the folder under Mods. reinstalled it but the Stick will not move. the other modules that i tried work fine (A10c, FC, Dora, Ka50...) Thanks for any tips MetalGear_Honk
×
×
  • Create New...