Jump to content

Rapti

Members
  • Posts

    149
  • Joined

  • Last visited

Everything posted by Rapti

  1. I got a similar problem, I cant move the mousecursor to to bottom right. It stops before I reach the button. Did you find a solution?
  2. This would be so great. Thanks. Gesendet von meinem SM-S928B mit Tapatalk
  3. great job!!! Would it be possible to get the kneeboard from you for masking the cockpit?
  4. My use case is as follows: We use almost 25 arduinos (nano, uno, mega) in our A-10 pit, We always have the problem that after a certain number of arduinos running on powered USB hubs, the last arduinos are no longer recognized. My idea would be to operate most of the panels with the "normal" arduinos and operate the remaining say 5 panels using ESP32. would this mixed operation work?
  5. any ideas on this topic?
  6. Can I mix this with a "normal" DCS-BIOS / Arduino setup?
  7. mhh that's strange. Do you possibly have no authorization in Windows? I simply open the file with Notepad++
  8. You have to start the ports in any case. You do not have to do this individually, but you can edit the file multiple-com-ports.cmd with notepad++ and enter your ports there. This way you only have to execute this one cmd file null
  9. Looks great! Gesendet von meinem SM-S928B mit Tapatalk
  10. Yes its quite challenging to run it all. We also had a steep leaning courve.
  11. We use this display. Don't know if its the same than yours. IIC / I2C 2002 20x02 OLED Module Display Our Code: this work on our side. #define DCSBIOS_DEFAULT_SERIAL #include "DcsBios.h" #include "Wire.h" #include "OLedI2C.h" OLedI2C LCD; /* paste code snippets from the reference documentation here */ void onCmsp1Change(char* newValue) { LCD.sendString(newValue, 0, 0); } DcsBios::StringBuffer<19> cmsp1Buffer(0x1000, onCmsp1Change); void onCmsp2Change(char* newValue) { LCD.sendString(newValue, 0, 1); } DcsBios::StringBuffer<19> cmsp2Buffer(0x1014, onCmsp2Change); void setup() { DcsBios::setup(); Wire.begin(); LCD.init(); } void loop() { DcsBios::loop(); }
  12. https://www.aero-news.net/index.cfm?do=main.textpost&id=0f5168ee-6721-40de-abee-e03759c96dc7 Gesendet von meinem SM-S928B mit Tapatalk
  13. fully agree!
  14. +1 – This feature is absolutely essential for many users I fully support this request and want to emphasize how important this functionality would be for a large part of the DCS community. For cockpit builders who use multi-screen or projection setups instead of VR, the current HMCS/HMD implementation is often unusable. The symbology becomes difficult or impossible to see because it’s fixed in space rather than following the head’s position as it would in a real helmet-mounted display. The fact that MFCDs and other displays can already be exported proves that viewports are supported and feasible. HMCS/HMD should be no exception. A head-tracked, exportable HMCS viewport would be a game-changer for non-VR cockpit setups. Please consider this seriously — many advanced users would greatly benefit from it. Eagle Dynamics, I love your simulator. Keep on going the good work!!!
  15. the stepper motor is an x27-168 The driver is a SparkFun EasyDriver Its controlled by a arduino nano Its the same setup then the setup from the warthog project.
  16. Unfortunately, changing the value did not help. If anyone has a working sketch, I would be happy, as I unfortunately have no programming skills myself
  17. I try that. Thanks for the tip. Gesendet von meinem SM-S928B mit Tapatalk
  18. Hello everyone, I am trying to build the Standby Compass for my F/A-18 pit. For the A-10 I have successfully put it into operation with an Arduino sketch available on github: #define DCSBIOS_IRQ_SERIAL #include <AccelStepper.h> #include "DcsBios.h" struct StepperConfig { unsigned int maxSteps; unsigned int acceleration; unsigned int maxSpeed; }; class Vid60Stepper : public DcsBios::Int16Buffer { private: AccelStepper& stepper; StepperConfig& stepperConfig; inline bool zeroDetected() { return digitalRead(irDetectorPin) == 1; } unsigned int (*map_function)(unsigned int); unsigned char initState; long currentStepperPosition; long lastAccelStepperPosition; unsigned char irDetectorPin; long zeroOffset; bool movingForward; bool lastZeroDetectState; long normalizeStepperPosition(long pos) { if (pos < 0) return pos + stepperConfig.maxSteps; if (pos >= stepperConfig.maxSteps) return pos - stepperConfig.maxSteps; return pos; } void updateCurrentStepperPosition() { // adjust currentStepperPosition to include the distance our stepper motor // was moved since we last updated it long movementSinceLastUpdate = stepper.currentPosition() - lastAccelStepperPosition; currentStepperPosition = normalizeStepperPosition(currentStepperPosition + movementSinceLastUpdate); lastAccelStepperPosition = stepper.currentPosition(); } public: Vid60Stepper(unsigned int address, AccelStepper& stepper, StepperConfig& stepperConfig, unsigned char irDetectorPin, long zeroOffset, unsigned int (*map_function)(unsigned int)): Int16Buffer(address), stepper(stepper), stepperConfig(stepperConfig), irDetectorPin(irDetectorPin), zeroOffset(zeroOffset), map_function(map_function), initState(0), currentStepperPosition(0), lastAccelStepperPosition(0) { } virtual void loop() { if (initState == 0) { // not initialized yet pinMode(irDetectorPin, INPUT); stepper.setMaxSpeed(stepperConfig.maxSpeed); stepper.setSpeed(1200); initState = 1; } if (initState == 1) { // move off zero if already there so we always get movement on reset // (to verify that the stepper is working) if (zeroDetected()) { stepper.runSpeed(); } else { initState = 2; } } if (initState == 2) { // zeroing if (!zeroDetected()) { stepper.runSpeed(); } else { stepper.setAcceleration(stepperConfig.acceleration); stepper.runToNewPosition(stepper.currentPosition() + zeroOffset); // tell the AccelStepper library that we are at position zero stepper.setCurrentPosition(0); lastAccelStepperPosition = 0; // set stepper acceleration in steps per second per second // (default is zero) stepper.setAcceleration(stepperConfig.acceleration); lastZeroDetectState = true; initState = 3; } } if (initState == 3) { // running normally // recalibrate when passing through zero position bool currentZeroDetectState = zeroDetected(); if (!lastZeroDetectState && currentZeroDetectState && movingForward) { // we have moved from left to right into the 'zero detect window' // and are now at position 0 lastAccelStepperPosition = stepper.currentPosition(); currentStepperPosition = normalizeStepperPosition(zeroOffset); } else if (lastZeroDetectState && !currentZeroDetectState && !movingForward) { // we have moved from right to left out of the 'zero detect window' // and are now at position (maxSteps-1) lastAccelStepperPosition = stepper.currentPosition(); currentStepperPosition = normalizeStepperPosition(stepperConfig.maxSteps + zeroOffset); } lastZeroDetectState = currentZeroDetectState; if (hasUpdatedData()) { // convert data from DCS to a target position expressed as a number of steps long targetPosition = (long)map_function(getData()); updateCurrentStepperPosition(); long delta = targetPosition - currentStepperPosition; // if we would move more than 180 degree counterclockwise, move clockwise instead if (delta < -((long)(stepperConfig.maxSteps/2))) delta += stepperConfig.maxSteps; // if we would move more than 180 degree clockwise, move counterclockwise instead if (delta > (stepperConfig.maxSteps/2)) delta -= (long)stepperConfig.maxSteps; movingForward = (delta >= 0); // tell AccelStepper to move relative to the current position stepper.move(delta); } stepper.run(); } } }; /* modify below this line */ /* define stepper parameters multiple Vid60Stepper instances can share the same StepperConfig object */ struct StepperConfig stepperConfig = { 6000, // maxSteps 2000, // maxSpeed 1000 // acceleration }; // define AccelStepper instance AccelStepper stepper(AccelStepper::DRIVER, 5, 6); // define Vid60Stepper class that uses the AccelStepper instance defined in the line above // v-- arbitrary name Vid60Stepper hsiHdg(0x104c, // address of stepper data stepper, // name of AccelStepper instance stepperConfig, // StepperConfig struct instance 4, // IR Detector Pin (must be HIGH in zero position) 0, // zero offset [](unsigned int newValue) -> unsigned int { /* this function needs to map newValue to the correct number of steps */ return map(newValue, 0, 65535, 0, stepperConfig.maxSteps-1); }); void setup() { DcsBios::setup(); } void loop() { DcsBios::loop(); } This uses the “heading” value of the HSI as input for the standby compass: hsiHdg(0x104c). However, the F/A-18 does not have an HSI for which the heading value can be used. However, there is the “Magnetic Heading” under CommonData, which is output for each aircraft. But I don't know what to enter in the Arduino code. I tried it with the following value: HdgDegMag(0x0464) But it does not work. Does anyone know what needs to be entered?null A-10 Heading: Common Data Heading:
  19. looks amazing! Did you make the wooden parts yourself? On a CNC?
  20. So, the Problem was the WiFi router. It creates a different subnet. I reconfigured the WiFi router to an Access Point. This was the solution. Gesendet von meinem SM-S928B mit Tapatalk
  21. I'm getting a little closer. I have attached a wireless router to the Internet router, as I connect to the PC with a Quest 3 via Virtual Desktop. So the PC is connected to the wireless router via LAN cable and the wireless router is connected to the Internet router via LAN. I have tried to open port 10308 of the DCS server on the wireless router, as I did with the Internet router. However, the wireless router does not allow this. The wireless router only “sees” my PC and not the DCS server. Although I can ping the DCS server from the PC. From the PC, I am able to ping the DCS-Server Any advice?
  22. So I tried another client computer. I can see my server there. So must something with the other pc.
  23. hmmm dont work on my side... null
  24. I installed a dedicated multiplayer server. Server is up and running. Port 10308 (TCP and UDB is forwarded) I still cant see the server in DCS World. What could be the cause?
×
×
  • Create New...