Search the Community
Showing results for tags 'fuel gauge'.
-
I am running DCS world beta 2.7.9.18080, single player, and I am finding too low levels of fuel at the start of missions / campaigns. I initially noticed it in DCS Liberation, but I did a few tests without Liberation to exclude this as as cause. Example 1: Mission editor - a10C II at Batumi airport with no weapons. In mission editor it shows 100% fuel, after starting the fuel gauge shows only up to 2 (six is maximum) Example 2: A10C II instant action free flight - in this mission the fuel gauge shows less than 0.5 fuel. As this mission is intended to fly around, I would expect a high level of fuel (and almost no weapons). So another indication that there is something wrong with the fuel calculation or fuel gauge or something related. Example 3 A10C II instant action CAS Nevada - near zero fuel at the start of the mission mission editor fuel test.miz
- 13 replies
-
- fuel gauge
- bug
-
(and 2 more)
Tagged with:
-
Okay everyone thanks to @Middlefart for his main code, my wife for her expertise, helping me with this code for everyone looking for the F-16 Total Fuel gauge. All you need to do is add your code for your motors for the FWD/AFT pointers and your backlighting for your gauge. Easy and done! Hope this helps everyone!! This does work great on my seeeduino XIAO controller (DEFAULT_SERIAL only). Mega, nano, etc will work with IRQ_SERIAL. /* F-16 Total Fuel Gauge Thanks to: Middlefart (Original code), Fusion and Fusion's Wife (software engineer) Code is for the 128x32 oled i2c display. All you have to do is add your motor pins and guage backlight pins if desired. Hope this helps others! DCS-BIOS has made things far easier for DCS than software made to drive simulator components in FalconBMS. Glad to be apart of the DCS world. Matt "Fusion" G. */ //#define DCSBIOS_DEFAULT_SERIAL #define DCSBIOS_DEFAULT_SERIAL #include "DcsBios.h" #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include "characters.h" #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 32 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); int AB; float Value1; float Value2; float Value3; float Total; unsigned long time = 0; unsigned int i = 0; //Comment for barometric pressure #define ALTIMETER int updateInterval = 100; //the number of milliseconds between updates struct scrollDigit { int digit; //The digit that is displayed int y; // The vertical position of the digit }; struct disp { Adafruit_SSD1306 display; int width; int numberOfDigits; scrollDigit digits[5]; }; //disp oled = {Adafruit_SSD1306(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET), 24, 5, {{0,0},{0,0},{0,0},{0,0},{0,0}}}; disp oled = {Adafruit_SSD1306(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET), 16, 5, {{0,0},{0,0},{0,0},{0,0},{0,0}}}; void setup() { if(!oled.display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32 for(;;); // Don't proceed, loop forever } DcsBios::setup(); } void UpdateDisplay() { oled.display.clearDisplay(); for (int i = 0; i < oled.numberOfDigits; i++) { printScrollingDigit(oled.digits[i].digit, oled.width, oled.digits[i].y, i + 1, &oled); } //Clear the area below the the numbers if we are using the small font if (oled.width == 16) { oled.display.fillRect(0, 30, 127, 7, BLACK); } oled.display.display(); } int YPos() { return ((oled.width + 9) * -1); } void printScrollingDigit(int digit, int width, int y, int pos, disp *oled) { int x = (width * pos) - width + pos + 30; y +=5; switch (digit) { case -1: oled->display.drawBitmap(x, y, c16_0, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_1, 16, 24, 1); break; case 1: oled->display.drawBitmap(x, y, c16_1, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_2, 16, 24, 1); break; case 2: oled->display.drawBitmap(x, y, c16_2, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_3, 16, 24, 1); break; case 3: oled->display.drawBitmap(x, y, c16_3, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_4, 16, 24, 1); break; case 4: oled->display.drawBitmap(x, y, c16_4, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_5, 16, 24, 1); break; case 5: oled->display.drawBitmap(x, y, c16_5, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_6, 16, 24, 1); break; case 6: oled->display.drawBitmap(x, y, c16_6, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_7, 16, 24, 1); break; case 7: oled->display.drawBitmap(x, y, c16_7, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_8, 16, 24, 1); break; case 8: oled->display.drawBitmap(x, y, c16_8, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_9, 16, 24, 1); break; case 9: oled->display.drawBitmap(x, y, c16_9, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_0, 16, 24, 1); break; default: if (pos < 3) { oled->display.drawBitmap(x, y, c16_0, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_1, 16, 24, 1); } else { oled->display.drawBitmap(x, y, c16_0, 16, 24, 1); oled->display.drawBitmap(x, y+25, c16_0, 16, 24, 1); } break; } } void onFueltotalizer10kChange(unsigned int newValue) { unsigned int mappedValue = newValue / 6553; unsigned int y = map(newValue, mappedValue * 6553, mappedValue * 6553 + 6553, 0, YPos()); if (mappedValue == 0) { mappedValue = -1; } #ifdef TEST Serial.println(mappedValue); #endif oled.digits[0].digit = mappedValue; oled.digits[0].y = y; } void onFueltotalizer1kChange(unsigned int newValue) { unsigned int mappedValue = newValue / 6553; unsigned int y = map(newValue, mappedValue * 6553, mappedValue * 6553 + 6553, 0, YPos()); oled.digits[1].digit = mappedValue; oled.digits[1].y = y; } void onFueltotalizer100Change(unsigned int newValue) { unsigned int mappedValue = newValue / 6553; unsigned int y = map(newValue, mappedValue * 6553, mappedValue * 6553 + 6553, 0, YPos()); oled.digits[2].digit = mappedValue; oled.digits[2].y = y; oled.digits[3].digit = 0; oled.digits[3].y = y; oled.digits[4].digit = 0; oled.digits[4].y = y; } DcsBios::IntegerBuffer fueltotalizer10kBuffer(0x44e4, 0xffff, 0, onFueltotalizer10kChange); DcsBios::IntegerBuffer fueltotalizer1kBuffer(0x44e6, 0xffff, 0, onFueltotalizer1kChange); DcsBios::IntegerBuffer fueltotalizer100Buffer(0x44e8, 0xffff, 0, onFueltotalizer100Change); void loop() { DcsBios::loop(); time = millis(); if (time % updateInterval == 0) { UpdateDisplay(); } }
- 1 reply
-
- 2
-
-
-
- f-16
- total fuel
-
(and 6 more)
Tagged with:
-
this was supposed to be an entry in https://leatherneck-sim.mantishub.io/bug_report_page.php - but a constant activity/spam message made this impossible (will keep trying though): build: DCS 2.7.0.5659 Open Beta description: fuel gauge does not react to refueling when central droptank mounted and jettisoned. workaround is using airframe REPAIR, then gauge snaps to correct value steps: - central droptank - fly mission - jettison tank - land - RRR - notice fuel gauge not reacting to REFUEL additional info: DRAG CHUTE legacy bug also still aplies, also gets only replenished via AIRFRAME REPAIR original description was far more extensive and suitable, but was lost because system reporting activity limit and SPAM exemplary screenshots AFTER full REFUEL and AFTER airframe REPAIR update: hah... waddayaknow.. it might actually have been correctly saved on mantishub https://leatherneck-sim.mantishub.io/view.php?id=1134
- 12 replies
-
- fuel gauge
- refuel
-
(and 2 more)
Tagged with:
-
Hello let me know if a track is needed. The low fuel warning lights in Mi-24 both turn on simultaneously at 240 L left, or 120 L left in tank 1 and same amount in tank 2. However currently it seems to turn on around 200 L. It seems this might be Becuase of the unusable fuel capacity of 40 L being useable in DCS, which I believe happens with some other modules. It might be easier to see this happen with the fuel tank Selector in the 1 or 2 position rather then total, as the tank 1/2 scale on the gauge is easier to see small changes with. I do not mind being able to use unusable fuel of 40 L, but I wanted to post this just in case it was desired to have the low fuel warning light actually appear at 240 L indicated. Currently there is no problems compared to real life procedure with the exception of the fuel tank gauge being about 40 L lower then actual fuel level. I think it would be nice if either fuel tank warning happened at 240 L indicated (even though that would give you slightly more time until empty then stated in manual), or if the fuel warning was moved to 240 L as it is suppossed to be and the un-useable fuel capacity of 40 L eliminated Just wanted to bring this up. If track is needed or video I can do so right away