Jump to content

No1sonuk

Members
  • Posts

    1594
  • Joined

  • Last visited

Everything posted by No1sonuk

  1. Anyone got any idea why this is happening? It looks like the undercarriage is collapsing on takeoff (Taxi is OK), but I can't figure out why. Collision lines and shells are in place on all 3 wheels, and another puzzle is why the tail wheel is part-submerged.
  2. It REALLY annoys me how condescendingly arrogant some of the people on the "coding" forums are. Stepper drivers wouldn't stop you having power noise problems. They might even make it worse. And reading a bit more, 0.1uF across the supply might help with the noise as well as 10uF. The 10uF gets the low frequency and the 0.1uF gets the high.
  3. Possibly. Might be noisy power lines caused by the inductive coils of the motors, too
  4. Putting it in the setup routine should make it run only once on startup. If you're having other power issues, could you be having a "brownout" - a glitch that causes the processor to restart? Maybe a 10uF or more capacitor on the 5V lines might help.
  5. Yeah. I think there's a configuration program on the Leo Bodnar page you can use to change the name. Look for "Renaming firmware" under "Product downloads".
  6. You should be able to click on something where the errors show up.
  7. IIRC, you have to use TX0 and RX0 on the slave devices.
  8. Maybe the RS485 uses a slower data rate? OR it uses a different connection protocol the Arduino has to "pay more attention to" because it's not handed off to a dedicated interface chip. When you think about it, the USB interface device handles whether or not the data is for the device, then passes it on if it is. With the RS485 setup, I assume the main processor has to decide if it should do anything with the data it receives
  9. It's where you select the aircraft module.
  10. If you use RS485, that goes in D0 and D1 too. They're the processor's serial lines.
  11. Not a good idea to use D0 and D1 if you plan to program the board with the circuit connected or use USB. The USB interface is connected to D0 and D1, so you can't use them with serial comms such as DCS-BIOS active.
  12. I found with the P51 that the gauge in the game uses a lookup table to make it non-linear to match the real one The solution is doing the same, with some interpolation maths, or redraw the gauge scale so that it's linear. The absolute speed numbers are available from the "common data" section.
  13. I suppose one option would be to try using an Arduino Pro Micro or Leonardo in the box.
  14. Thanks. I might try it. I run a gaming laptop...
  15. This one uses a matrix for 32+4 buttons +8 analogue. You just add diodes and switches: http://www.leobodnar.com/shop/index.php?main_page=product_info&cPath=94&products_id=204&zenid=ec67a171c1c110d61bf6b89e1c5d0910
  16. Maybe check out The Warthog Project. I think most, if not all of his inputs go via Bodnar boards. https://thewarthogproject.com/
  17. Are there memory issues with USB converters like these?
  18. Maybe ask the mod makers if they have a livery template like the official aircraft ones?
  19. Then I've gone as far as I can I'm afraid. You should try the Flightpanels bug reporting on Github and/or Discord.
  20. Additional info in case it helps: Using a DCS-BIOS connected switch allows selection of up (open) and centre (off/stop), but not down (close).
  21. Looks like you didn't notice the subtle difference I made in the dial code. "if ( valueDial_1() == 2) {" becomes "if ( valueDial_1 == 2) {" - remove "()" after valueDial_1. You might also need an extra } at the end - my snippet was intended as an example of the beginning of the setDials function. If you stop it there, you'll need to make sure there are the correct number of }.
  22. Ah, OK. So if the expected DCS-BIOS messages are being sent, it might be the control reference messages to DCS conversions themselves are wrong. That might be a DCS_BIOS script coding issue, and I don't know it works. Which version of DCS-BIOS are you using?
  23. It's possible it might be the port reading that is the issue. Also, the switch wiring combinations are odd. I'd have thought they'd be some form of binary coded decimal or somesuch. Do you have a part number for a switch?
  24. The returned variables from your port reads (valueDial_1, etc) are unique, so you could make them global and reduce the read cycles - each of your "if" statements in setDials reads the port. You could read the port once, convert the input combination to a number, then compare the global variable to the value from DCS and send the correction if it's different. e.g. Assign global variables: int valueDial_1; int valueDial_2; int valueDial_3; int valueDial_4; int valueDial_5; Then inputDial_1 becomes: // JADRO 1MHZ Knob////////////////////// void inputDial_1() { int valueDial = PINC; // temporary int for port conversion if (valueDial == B00010110) { valueDial_1 = 2; // Set the global variable } if (valueDial == B00001100) { valueDial_1 = 3; } if (valueDial == B00010100) { valueDial_1 = 4; } if (valueDial == B00000110) { valueDial_1 = 5; } if (valueDial == B00001010) { valueDial_1 = 6; } if (valueDial == B00000011) { valueDial_1 = 7; } if (valueDial == B00000101) { valueDial_1 = 8; } if (valueDial == B00010001) { valueDial_1 = 9; } if (valueDial == B00010010) { valueDial_1 = 10; } } ////////END OF 1MHZ knob Set the other dial globals in the same way. Then the beginning of setDials becomes this: void setDials(int timer){ inputDial_1(); // Read the dials inputDial_2(); inputDial_3(); inputDial_4(); inputDial_5(); // Check and adjust selector dial 1MHZ if (DCS_valueDial_1 != valueDial_1) { // use the global variables if ( valueDial_1 == 2) { sendDcsBiosMessage("PLT_JADRO_1M", "2"); } if ( valueDial_1 == 3) { sendDcsBiosMessage("PLT_JADRO_1M", "3"); } if ( valueDial_1 == 4) { sendDcsBiosMessage("PLT_JADRO_1M", "4"); } if ( valueDial_1 ==5) { sendDcsBiosMessage("PLT_JADRO_1M", "5"); } if ( valueDial_1 == 6) { sendDcsBiosMessage("PLT_JADRO_1M", "6"); } if ( valueDial_1 == 7) { sendDcsBiosMessage("PLT_JADRO_1M", "7"); } if ( valueDial_1 == 8) { sendDcsBiosMessage("PLT_JADRO_1M", "8"); } if ( valueDial_1 == 9) { sendDcsBiosMessage("PLT_JADRO_1M", "9"); } if ( valueDial_1 == 10) { sendDcsBiosMessage("PLT_JADRO_1M", "10"); } // And so on... Primarily, only programme one of the dials first. Get that working, then move onto the next. There's no point putting all five dials' code in if you have to keep changing it to get it going. Do one. Fix it, then write the others.
  25. Have you matched the text case? Sometimes in coding, "HY4" is not the same as "hy4".
×
×
  • Create New...