-
Posts
280 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Everything posted by SrSosio
-
Yeah, I got virpil pedals that for some reason don't like some USB ports, not sure what's wrong with them. To remove mods, I only have to delete those folders, right? can I re-install them after repair?
-
Attached, thank you.dcs.log
-
I found it! I was using the wrong formula. This is the right one: DcsBios::LED pltApuL(AH_64D_PLT_APU_L_AM, PIN);
-
I spoke too fast. OCCT didn't crash, but when running DCS, it crashed again :_O
-
I've tested the Mega pins directly with a multimeter, and I should expect 5V coming out of the pin when the APU is on, shouldn't I? but I get nothing, so I'm wondering whether the code is wrong, or the mega is busted. Bort is not recognizing that output either, so I'm not sure what's wrong then. Maybe that line doesn't actually refer to the APU led, or maybe it's not properly coded in DCS BIOS. @No1sonuk any ideas?
-
I removed a PCI-e USB extender board and run the test again, and this time it didn't crash. The CPU got up to 91ºC but I guess that's the point of a stress test, and it didn't crash, I stopped the test. So maybe this cheap Amazon board was messing with the power consumption of the MOBO. I'll keep it out of the computer for a few days, see if that makes a difference with playing DCS.
-
If I was to buy a new PSU, what would you recommend me buying? I thought 850W Gold should be enough for my setup, and it has certainly been for quite a while now, but maybe it's not. I'll also try different ports, since it's modular. Maybe some of the ports went bad.
-
Did the DDU and run the OCCT again, and crashed it again. I think it may be my GPU, but I don't know how to validate it. Or maybe the PSU Maybe I need to replace the thermal pads or something. They were done when I bought it, second hand, a couple of years or so ago
-
I'm not overclocking anything, as far as I know. I may have set the gaming profile in the MSI bios, but I don't think that counts as overclocking.
-
The memtest check didn't throw any error. I run the OCCT test and it crashed the computer just a few seconds after starting it, but how can I now look at what caused it?
-
So the final code is finished and working (attached). The only thing not working is the APU led, which is a korry with 2 leds, hence why I duplicated the line. It may be because it's in a different device (the throttle quadrant) and the ground is not common to the Mega, only the two output lines are coming out of it. So those LEDs have the ground connected to the throttle quadrant USB, but the anodes are connected to the KU's Mega. I'd think any USB device plugged into the computer should have the same ground, shouldn't it? KU-DCS_BIOS_dynamic.ino
-
I've now checked, and I do have that file, however, there are some things that make me think it's not the right one (even though I downloaded dcs-bios from the github just a few days ago for the first time, so I should have the latest version): #define AH_64D_SEAT_POSITION 0x8750, 0x0100, 8 I don't have that line in my file For the display (CPG, for example) bort says this: but my addresses.h file says: #define AH_64D_CPG_KU_DISPLAY_ADDR 0x80AC, that's why I had to use the value instead of the variant. I'll check out the github, see if I can find the file updated. Edit: found it! but probably the one in the zip folder in the release file should be replaced, unless you are expected to replace it afterwards as I had to do now.
-
it got stuck at 21% so I c ancelled it. Attached the dcs.log and dxdiag. I'll try the stress test that you mentioned, @The_Nephilim, as well as the RAM test from memtest.org, that I believe is better than the one from Windows DxDiag.txt dcs.log
-
I'm running an extended windows memory diagnostic atm, which I believe will take a few hours. As soon as the PC restarts I'll attach the files. I do mot think it's a DCS problem though. There's something wrong with my PC
-
Hello everyone. My PC keeps crashing in DCS over and over again. It's not DCS crashes, it's the full PC crashes and reboots. I believe it's a BSD, but it's so quick I don't even have time to see it, and even though I disabled automatic rebooting, it just stays in a black screen in that case until I forcefully reboot it, so I can't even see the BSD error code. It only happens when I play DCS, some times more often than others, but give it some time and it will always crash. I have not tested it on SP, only on Grayflag MP. Since it only happens when I play DCS, and otherwise I can work normally with the PC, I assume it crashes when the system is pushed to the limits, so my main suspects are the PSU and the RAM (maybe a faulty one). I would like to avoid purchasing random new stuff if I can pinpoint the issue first and purchase just what I need. Does anyone know how could I troubleshoot the problem? Here are some of my PC specs: CPU: Ryzen 9 5900X GPU: EVGA 3090 FTW RAM: Corsair LPX 32GB x 2 PSU: Nfortec 850W Thank you
-
I managed to get the Dynamic sketch to work, for the moment, just using the switch. That's a great improvement though, I could just leave it here, but it'd be great if I could handle it with the seat variable. Attaching the current working sketch, in case you want to have a look at it. KU-DCS_BIOS_dynamic.ino
-
It does work in bort, but when I add the code: void onSeatPositionChange(unsigned int newValueSeat) { status = newValueSeat; } DcsBios::IntegerBuffer seatPositionBuffer(0x8750, 0x0100, onSeatPositionChange); it gives me this error: KU-DCS_BIOS_basic:153:79: error: no matching function for call to 'DcsBios::IntegerBuffer::IntegerBuffer(unsigned int, int, void (&)(unsigned int))' DcsBios::IntegerBuffer seatPositionBuffer(0x8750, 0x0100, onSeatPositionChange); ^ In file included from D:\Documentos\Arduino\libraries\dcs-bios-arduino-library-0.3.9\src/DcsBios.h:14:0, from D:\Escritorio\KU-DCS_BIOS_basic\KU-DCS_BIOS_basic.ino:3: D:\Documentos\Arduino\libraries\dcs-bios-arduino-library-0.3.9\src/internal/ExportStreamListener.h:97:4: note: candidate: DcsBios::IntegerBuffer::IntegerBuffer(unsigned int, unsigned int, unsigned char, void (*)(unsigned int)) IntegerBuffer(unsigned int address, unsigned int mask, unsigned char shift, void (*callback)(unsigned int)) : Int16Buffer(address) { ^~~~~~~~~~~~~ D:\Documentos\Arduino\libraries\dcs-bios-arduino-library-0.3.9\src/internal/ExportStreamListener.h:97:4: note: candidate expects 4 arguments, 3 provided D:\Documentos\Arduino\libraries\dcs-bios-arduino-library-0.3.9\src/internal/ExportStreamListener.h:91:8: note: candidate: constexpr DcsBios::IntegerBuffer::IntegerBuffer(const DcsBios::IntegerBuffer&) class IntegerBuffer : public Int16Buffer { ^~~~~~~~~~~~~ D:\Documentos\Arduino\libraries\dcs-bios-arduino-library-0.3.9\src/internal/ExportStreamListener.h:91:8: note: candidate expects 1 argument, 3 provided D:\Documentos\Arduino\libraries\dcs-bios-arduino-library-0.3.9\src/internal/ExportStreamListener.h:91:8: note: candidate: constexpr DcsBios::IntegerBuffer::IntegerBuffer(DcsBios::IntegerBuffer&&) D:\Documentos\Arduino\libraries\dcs-bios-arduino-library-0.3.9\src/internal/ExportStreamListener.h:91:8: note: candidate expects 1 argument, 3 provided exit status 1 no matching function for call to 'DcsBios::IntegerBuffer::IntegerBuffer(unsigned int, int, void (&)(unsigned int))'
-
I didn't either. Does that mean that I actually didn't need a physical switch?
-
Uhm, I see where you are going. I'll try that tomorrow and see if I get it working.
-
Not sure if the dynamic controls sketch would work, since it's the same aircraft. I'll keep digging.
-
I'm not sure I understand that part. what exactly is tryToSendDCSBiosMessage? isn't that a function? and if it doesn't exist, won't it fail? what are the arguments?
-
But this part is already working, I don't see why would I need to change it. What I wanted to know is if I can limit the inputs with that switch as well. Right now, this is what DCS-BIOS reads when I press a button (which makes sense, as this is how I programmed it), but I'd like to be able to do either PLT or CPG, depending on the position of the switch: Not sure if that's even possible at all.
-
hey, no, that was just a test to see if I could read the position of the cursor. The switch does work by: void onCpgKuDisplayChange(char* newValue) { if (status == 0) updateDisplay(newValue); } DcsBios::StringBuffer<22> cpgKuDisplayBuffer(0x80ac, onCpgKuDisplayChange); void onPltKuDisplayChange(char* newValue) { if (status == 1) updateDisplay(newValue); } DcsBios::StringBuffer<22> pltKuDisplayBuffer(0x808e, onPltKuDisplayChange); That only executes the updateDisplay function for the pilot or the CPG if the switch is in the 1 or the 0 position. So if it isn't, it won't display anything. No, each crew member has total control and independence over their KU, including the display. They could be typing in different things at the same time.
-
@Vinc_Vega since I already have you engaged in the conversation, please find below the code I'm using. Ignore the display part for now, I haven't had time to work on it yet, but as you can see I added a bool variant, attached to a 2 position switch. It's intended to switch between PLT and CPG seats, and it works as expected for the display part. However, I've also duplicated the inputs, to be able to use the KU in both seats, which also works, but also has a side effect, and that is that whatever you type, it's displayed in both units, even when a human player is in the other seat. Can you think of a way to also apply the bool variant to the inputs so only one of them is used at a time? Thank you #define DCSBIOS_IRQ_SERIAL #include "DcsBios.h" #include <LiquidCrystal_I2C.h> bool status = 1; LiquidCrystal_I2C lcd(0x27, 8, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display DcsBios::Switch2Pos cpgKu0("CPG_KU_0", 24); DcsBios::Switch2Pos cpgKu1("CPG_KU_1", 34); DcsBios::Switch2Pos cpgKu2("CPG_KU_2", 35); DcsBios::Switch2Pos cpgKu3("CPG_KU_3", 36); DcsBios::Switch2Pos cpgKu4("CPG_KU_4", 43); DcsBios::Switch2Pos cpgKu5("CPG_KU_5", 44); DcsBios::Switch2Pos cpgKu6("CPG_KU_6", 45); DcsBios::Switch2Pos cpgKu7("CPG_KU_7", 52); DcsBios::Switch2Pos cpgKu8("CPG_KU_8", 53); DcsBios::Switch2Pos cpgKu9("CPG_KU_9", 31); DcsBios::Switch2Pos cpgKuA("CPG_KU_A", 14); DcsBios::Switch2Pos cpgKuB("CPG_KU_B", 13); DcsBios::Switch2Pos cpgKuC("CPG_KU_C", 12); DcsBios::Switch2Pos cpgKuD("CPG_KU_D", 11); DcsBios::Switch2Pos cpgKuE("CPG_KU_E", 32); DcsBios::Switch2Pos cpgKuF("CPG_KU_F", 33); DcsBios::Switch2Pos cpgKuG("CPG_KU_G", 37); DcsBios::Switch2Pos cpgKuH("CPG_KU_H", 38); DcsBios::Switch2Pos cpgKuI("CPG_KU_I", 39); DcsBios::Switch2Pos cpgKuJ("CPG_KU_J", 40); DcsBios::Switch2Pos cpgKuK("CPG_KU_K", 41); DcsBios::Switch2Pos cpgKuL("CPG_KU_L", 42); DcsBios::Switch2Pos cpgKuM("CPG_KU_M", 46); DcsBios::Switch2Pos cpgKuN("CPG_KU_N", 47); DcsBios::Switch2Pos cpgKuO("CPG_KU_O", 48); DcsBios::Switch2Pos cpgKuP("CPG_KU_P", 49); DcsBios::Switch2Pos cpgKuQ("CPG_KU_Q", 50); DcsBios::Switch2Pos cpgKuR("CPG_KU_R", 51); DcsBios::Switch2Pos cpgKuS("CPG_KU_S", 30); DcsBios::Switch2Pos cpgKuT("CPG_KU_T", 29); DcsBios::Switch2Pos cpgKuU("CPG_KU_U", 28); DcsBios::Switch2Pos cpgKuV("CPG_KU_V", 27); DcsBios::Switch2Pos cpgKuW("CPG_KU_W", 26); DcsBios::Switch2Pos cpgKuX("CPG_KU_X", 25); DcsBios::Switch2Pos cpgKuY("CPG_KU_Y", 10); DcsBios::Switch2Pos cpgKuZ("CPG_KU_Z", 9); DcsBios::Switch2Pos cpgKuLeft("CPG_KU_LEFT", 18); DcsBios::Switch2Pos cpgKuRight("CPG_KU_RIGHT", 17); DcsBios::Switch2Pos cpgKuBks("CPG_KU_BKS", 7); DcsBios::Switch2Pos cpgKuClr("CPG_KU_CLR", 19); DcsBios::Switch2Pos cpgKuDiv("CPG_KU_DIV", 4); DcsBios::Switch2Pos cpgKuDot("CPG_KU_DOT", 23); DcsBios::Switch2Pos cpgKuEnt("CPG_KU_ENT", 16); DcsBios::Switch2Pos cpgKuMinus("CPG_KU_MINUS", 2); DcsBios::Switch2Pos cpgKuMulti("CPG_KU_MULTI", 5); DcsBios::Switch2Pos cpgKuPlus("CPG_KU_PLUS", 3); DcsBios::Switch2Pos cpgKuSign("CPG_KU_SIGN", 22); DcsBios::Switch2Pos cpgKuSlash("CPG_KU_SLASH", 8); DcsBios::Switch2Pos cpgKuSpc("CPG_KU_SPC", 6); DcsBios::Potentiometer cpgKuBrt("CPG_KU_BRT", A0); DcsBios::Switch2Pos pltKu0("PLT_KU_0", 24); DcsBios::Switch2Pos pltKu1("PLT_KU_1", 34); DcsBios::Switch2Pos pltKu2("PLT_KU_2", 35); DcsBios::Switch2Pos pltKu3("PLT_KU_3", 36); DcsBios::Switch2Pos pltKu4("PLT_KU_4", 43); DcsBios::Switch2Pos pltKu5("PLT_KU_5", 44); DcsBios::Switch2Pos pltKu6("PLT_KU_6", 45); DcsBios::Switch2Pos pltKu7("PLT_KU_7", 52); DcsBios::Switch2Pos pltKu8("PLT_KU_8", 53); DcsBios::Switch2Pos pltKu9("PLT_KU_9", 31); DcsBios::Switch2Pos pltKuA("PLT_KU_A", 14); DcsBios::Switch2Pos pltKuB("PLT_KU_B", 13); DcsBios::Switch2Pos pltKuC("PLT_KU_C", 12); DcsBios::Switch2Pos pltKuD("PLT_KU_D", 11); DcsBios::Switch2Pos pltKuE("PLT_KU_E", 32); DcsBios::Switch2Pos pltKuF("PLT_KU_F", 33); DcsBios::Switch2Pos pltKuG("PLT_KU_G", 37); DcsBios::Switch2Pos pltKuH("PLT_KU_H", 38); DcsBios::Switch2Pos pltKuI("PLT_KU_I", 39); DcsBios::Switch2Pos pltKuJ("PLT_KU_J", 40); DcsBios::Switch2Pos pltKuK("PLT_KU_K", 41); DcsBios::Switch2Pos pltKuL("PLT_KU_L", 42); DcsBios::Switch2Pos pltKuM("PLT_KU_M", 46); DcsBios::Switch2Pos pltKuN("PLT_KU_N", 47); DcsBios::Switch2Pos pltKuO("PLT_KU_O", 48); DcsBios::Switch2Pos pltKuP("PLT_KU_P", 49); DcsBios::Switch2Pos pltKuQ("PLT_KU_Q", 50); DcsBios::Switch2Pos pltKuR("PLT_KU_R", 51); DcsBios::Switch2Pos pltKuS("PLT_KU_S", 30); DcsBios::Switch2Pos pltKuT("PLT_KU_T", 29); DcsBios::Switch2Pos pltKuU("PLT_KU_U", 28); DcsBios::Switch2Pos pltKuV("PLT_KU_V", 27); DcsBios::Switch2Pos pltKuW("PLT_KU_W", 26); DcsBios::Switch2Pos pltKuX("PLT_KU_X", 25); DcsBios::Switch2Pos pltKuY("PLT_KU_Y", 10); DcsBios::Switch2Pos pltKuZ("PLT_KU_Z", 9); DcsBios::Switch2Pos pltKuLeft("PLT_KU_LEFT", 18); DcsBios::Switch2Pos pltKuRight("PLT_KU_RIGHT", 17); DcsBios::Switch2Pos pltKuBks("PLT_KU_BKS", 7); DcsBios::Switch2Pos pltKuClr("PLT_KU_CLR", 19); DcsBios::Switch2Pos pltKuDiv("PLT_KU_DIV", 4); DcsBios::Switch2Pos pltKuDot("PLT_KU_DOT", 23); DcsBios::Switch2Pos pltKuEnt("PLT_KU_ENT", 16); DcsBios::Switch2Pos pltKuMinus("PLT_KU_MINUS", 2); DcsBios::Switch2Pos pltKuMulti("PLT_KU_MULTI", 5); DcsBios::Switch2Pos pltKuPlus("PLT_KU_PLUS", 3); DcsBios::Switch2Pos pltKuSign("PLT_KU_SIGN", 22); DcsBios::Switch2Pos pltKuSlash("PLT_KU_SLASH", 8); DcsBios::Switch2Pos pltKuSpc("PLT_KU_SPC", 6); DcsBios::LED pltApuBtn1(0x8700, 0x1000, A1); DcsBios::LED pltApuBtn2(0x8700, 0x1000, A2); DcsBios::Potentiometer pltKuBrt("PLT_KU_BRT", A0); //void updateDisplay(char* newValue){ // lcd.setCursor(0,0); // lcd.print(newValue); // // lcd.setCursor(0,1); // lcd.print(newValue[8]); // lcd.print(newValue[9]); // lcd.print(newValue[10]); // lcd.print(newValue[11]); // lcd.print(newValue[12]); // lcd.print(newValue[13]); // lcd.print(newValue[14]); // lcd.print(newValue[15]); // lcd.print(newValue[16]); // lcd.print(newValue[17]); // lcd.print(newValue[18]); // lcd.print(newValue[19]); // lcd.print(newValue[20]); // lcd.print(newValue[21]); // //} void updateDisplay(char* newValue){ lcd.setCursor(0,0); if (newValue[0] == char(35)) lcd.print("yes"); } void onCpgKuDisplayChange(char* newValue) { if (status == 0) updateDisplay(newValue); } DcsBios::StringBuffer<22> cpgKuDisplayBuffer(0x80ac, onCpgKuDisplayChange); void onPltKuDisplayChange(char* newValue) { if (status == 1) updateDisplay(newValue); } DcsBios::StringBuffer<22> pltKuDisplayBuffer(0x808e, onPltKuDisplayChange); void setup() { DcsBios::setup(); lcd.init(); lcd.backlight(); lcd.clear(); lcd.print("AH-64 KU"); lcd.setCursor(0,1); lcd.print(" for DCS"); pinMode(A1, OUTPUT); pinMode(A2, OUTPUT); pinMode(A3, INPUT_PULLUP); } void loop() { DcsBios::loop(); if (digitalRead(A3) != status) status = digitalRead(A3); }
-
The first one actually worked!! so now I have to think of how I do the code, but I think this will allow me to do think of something. Thank you very much!!