# I am having problems with Arduino and xml file, file parser gives error

**URL:** <https://forum.realdash.net/t/i-am-having-problems-with-arduino-and-xml-file-file-parser-gives-error/9074>\
**Category:** RealDash CAN\
**Created:** [October 3, 2025, 5:50pm UTC](https://forum.realdash.net/t/i-am-having-problems-with-arduino-and-xml-file-file-parser-gives-error/9074 "2025-10-03T17:50:48Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ayten](https://forum.realdash.net/letter_avatar_proxy/v4/letter/a/90db22/32.png) [@Ayten](https://forum.realdash.net/u/Ayten)\
**Post date:** [October 3, 2025, 5:50pm UTC](https://forum.realdash.net/t/i-am-having-problems-with-arduino-and-xml-file-file-parser-gives-error/9074/1 "2025-10-03T17:50:48Z")

</div>

Hello, I’m making a dashboard for my Tofas. I’m going to participate in trade shows, but I need to send information from Arduino to RealDash. However, I haven’t been able to create the XML file. It says the file hasn’t been parsed. Could you help? I’m sending my XML file and Arduino code. I’d be very grateful if you could help. I’m doing my own electrical installation, but I’m very new to programming.

\<?xml version="1.0" encoding="utf-8"?\> 

```
<frame id="3201">
  
  <value name="Yağ Basıncı Lambası" startbit="0" bitcount="1"></value> <value name="Akü/Şarj Lambası" startbit="1" bitcount="1"></value> <value name="Hararet Uyarı Lambası" startbit="2" bitcount="1"></value> <value name="El Freni Lambası" startbit="3" bitcount="1"></value> <value name="Kapı Açık Lambası" startbit="4" bitcount="1"></value> <value name="Kısa Far Lambası" startbit="5" bitcount="1"></value> <value name="Uzun Far Lambası" startbit="6" bitcount="1"></value> <value name="Park Lambası" startbit="7" bitcount="1"></value> <value name="Ön Sis Lambası" startbit="8" bitcount="1"></value> <value name="Arka Sis Lambası" startbit="9" bitcount="1"></value> <value startbit="10" bitcount="6"></value>
  <value offset="2" length="6"></value> 
</frame>

<frame id="3203">
  <value targetId="2" units="rpm" offset="0" length="2"></value> 
  
  <value targetId="12" units="c" offset="2" length="2"></value>
  
  <value targetId="33" units="%" offset="4" length="2"></value>
  
  <value offset="6" length="2"></value> 
</frame>

<frame id="3204">
  <value targetId="36" units="km/h" offset="0" length="2"></value>
  
  <value targetId="44" units="km" offset="2" length="4"></value>
  
  <value offset="6" length="2"></value>
</frame>

```

// ---------- İLETİŞİM VE ZAMAN AYARLARI ----------  
const long BAUD\_RATE = 115200;  
const long TRANSMIT\_INTERVAL\_MS = 100; // Veri gönderme aralığı  
unsigned long previousMillis = 0;

// ---------- PİN TANIMLAMALARI ----------  
// Hız / Kilometre (D2 - INT0)  
const byte HALL\_SENSOR\_PIN = 2;

// Dijital Girişler (GND ile tetiklenecek - INPUT\_PULLUP gerekli)  
// Pinleri, RealDash’teki sıralamada bitlere karşılık gelecek şekilde sıraya koyun  
const byte KISA\_FAR\_PIN = 3;  
const byte UZUN\_FAR\_PIN = 4;  
const byte PARK\_LAMBASI\_PIN = 5;  
const byte SIS\_FARI\_PIN = 6;  
const byte EL\_FRENI\_PIN = 7;  
const byte KAPI\_ACIK\_PIN = 8;  
// Yağ, Akü ve Hararet Uyarıları için pin yoksa (simülasyon) kullanılmayacaktır.

// ---------- HIZ VE KİLOMETRE AYARLARI ----------  
const float TIRE\_CIRCUMFERENCE\_M = 1.97; // !!! Lütfen Kendi Lastik Çevrenizi Girin (metre) !!!  
const float PULSES\_PER\_REVOLUTION = 1.0;  
const unsigned long MIN\_PULSE\_INTERVAL\_MS = 10;

volatile unsigned long totalPulseCount = 0;  
unsigned long odometer\_km = 0;  
unsigned int vehicleSpeed\_kmh = 0;  
unsigned long lastPulseTime = 0;  
unsigned long pulseInterval = 0;  
const float MIN\_SPEED\_THRESHOLD = 0.5;

// ---------- GÖNDERİLECEK VERİ DEĞİŞKENLERİ ----------  
// Analog/Sayısallaştırılmış Değerler  
unsigned int currentRPM = 0;  
unsigned int coolantTemp = 90; // Santigrat (°C)  
unsigned int fuelPercent = 75; // Yüzde (%)

// Dijital Lambalar (1 = Aktif / YANAN LAMBA)  
byte yagLambasi = 0;  
byte akuLambasi = 0;  
byte hararetLambasi = 0;  
byte elFreniLambasi = 0;  
byte kapiAcikLambasi = 0;  
byte uzunFarLambasi = 0;  
byte kisaFarLambasi = 0;  
byte parkLambasi = 0;  
byte sisFariLambasi = 0;

// ---------- KESME RUTİNİ (ISR) - Hız/KM Sayımı ----------  
void countPulse() {  
unsigned long currentTime = millis();

if (currentTime - lastPulseTime \< MIN\_PULSE\_INTERVAL\_MS) {  
return;  
}

totalPulseCount++;  
pulseInterval = currentTime - lastPulseTime;  
lastPulseTime = currentTime;  
}

// ---------- SETUP ----------  
void setup() {  
Serial.begin(BAUD\_RATE);

// Hız/KM pin ayarı  
pinMode(HALL\_SENSOR\_PIN, INPUT\_PULLUP);  
attachInterrupt(digitalPinToInterrupt(HALL\_SENSOR\_PIN), countPulse, FALLING);

// Dijital Pinler (GND ile tetiklenecek)  
pinMode(KISA\_FAR\_PIN, INPUT\_PULLUP);  
pinMode(UZUN\_FAR\_PIN, INPUT\_PULLUP);  
pinMode(PARK\_LAMBASI\_PIN, INPUT\_PULLUP);  
pinMode(SIS\_FARI\_PIN, INPUT\_PULLUP);  
pinMode(EL\_FRENI\_PIN, INPUT\_PULLUP);  
pinMode(KAPI\_ACIK\_PIN, INPUT\_PULLUP);

Serial.println(“RealDash Serial Gosterge Sistemi Baslatildi.”);  
}

// ---------- LOOP ----------  
void loop() {  
unsigned long currentMillis = millis();

if (currentMillis - previousMillis \>= TRANSMIT\_INTERVAL\_MS) {  
previousMillis = currentMillis;

```
// --- 1. VERİ OKUMA / SİMÜLASYON ---

// RPM Simülasyonu
currentRPM = (unsigned int)(1500 + (sin(currentMillis / 500.0) + 1) * 1000); 

// Dijital Lambalar Okuma (LOW = Aktif / Yanan Lamba)
kisaFarLambasi = (digitalRead(KISA_FAR_PIN) == LOW) ? 1 : 0;
uzunFarLambasi = (digitalRead(UZUN_FAR_PIN) == LOW) ? 1 : 0;
parkLambasi = (digitalRead(PARK_LAMBASI_PIN) == LOW) ? 1 : 0;
sisFariLambasi = (digitalRead(SIS_FARI_PIN) == LOW) ? 1 : 0;
elFreniLambasi = (digitalRead(EL_FRENI_PIN) == LOW) ? 1 : 0;
kapiAcikLambasi = (digitalRead(KAPI_ACIK_PIN) == LOW) ? 1 : 0;

// Yağ, Akü, Hararet Uyarı Simülasyonu (Sensör bağlamadıysanız)
yagLambasi = (currentMillis / 5000) % 2; // 5 saniyede bir yanıp sönsün
akuLambasi = 0;
hararetLambasi = (coolantTemp > 105) ? 1 : 0; 

// Hararet ve Yakıt Simülasyonu
coolantTemp = (unsigned int)(90 + (sin(currentMillis / 10000.0) + 1) * 15); // 90-120 °C arası
fuelPercent = (unsigned int)(75 + (cos(currentMillis / 20000.0) * 20)); // %55-%95 arası

// Hız ve Kilometre Hesaplaması
float totalDistance_m = (float)totalPulseCount * (TIRE_CIRCUMFERENCE_M / PULSES_PER_REVOLUTION);
odometer_km = (unsigned long)(totalDistance_m / 1000.0);

float vehicleSpeed_kmh_float = 0.0;
if (pulseInterval > 0) {
   vehicleSpeed_kmh_float = ((TIRE_CIRCUMFERENCE_M / PULSES_PER_REVOLUTION) / 1000.0) / ((float)pulseInterval / 3600000.0);
}
if (currentMillis - lastPulseTime > 1000 || vehicleSpeed_kmh_float < MIN_SPEED_THRESHOLD) {
   vehicleSpeed_kmh_float = 0.0;
}
vehicleSpeed_kmh = (unsigned int)round(vehicleSpeed_kmh_float);

// ----------------------------------------------------
// 2. SERIAL VERİ GÖNDERİMİ (CSV Formatı)
// ----------------------------------------------------

// 1. RPM (Target ID 2)
Serial.print(currentRPM);
Serial.print(",");

// 2. Hız (Target ID 36)
Serial.print(vehicleSpeed_kmh);
Serial.print(",");

// 3. Kilometre (Target ID 44)
Serial.print(odometer_km);
Serial.print(",");

// 4. Hararet (°C) (Target ID 12)
Serial.print(coolantTemp);
Serial.print(",");

// 5. Yakıt (%) (Target ID 33)
Serial.print(fuelPercent);
Serial.print(",");

// Dijital Lambalar (ECU Specific Digital 1'den başlar)
// Yağ (Digital 1)
Serial.print(yagLambasi);
Serial.print(",");

// Akü (Digital 2)
Serial.print(akuLambasi);
Serial.print(",");

// Hararet Lambası (Digital 3)
Serial.print(hararetLambasi);
Serial.print(",");

// El Freni (Digital 4)
Serial.print(elFreniLambasi);
Serial.print(",");

// Kapı Açık (Digital 5)
Serial.print(kapiAcikLambasi);
Serial.print(",");

// Kısa Far (Digital 6)
Serial.print(kisaFarLambasi);
Serial.print(",");

// Uzun Far (Digital 7)
Serial.print(uzunFarLambasi);
Serial.print(",");

// Park Lambası (Digital 8)
Serial.print(parkLambasi);
Serial.print(",");

// Sis Farı (Digital 9) - Son değer olduğu için println kullanılır.
Serial.println(sisFariLambasi); 

```

}  
}

---

<div class="post-metadata">

**Author:** ![realdashdev](https://forum.realdash.net/user_avatar/forum.realdash.net/realdashdev/32/6_2.png) [@realdashdev](https://forum.realdash.net/u/realdashdev)\
**Post date:** [October 6, 2025, 6:00am UTC](https://forum.realdash.net/t/i-am-having-problems-with-arduino-and-xml-file-file-parser-gives-error/9074/2 "2025-10-06T06:00:17Z")

</div>

> [@Ayten](#):
>
> ```auto
> <frame id="3201">
>   
> <value name="Yağ Basıncı Lambası" startbit="0" bitcount="1"></value> <value name="Akü/Şarj Lambası" startbit="1" bitcount="1"></value> <value name="Hararet Uyarı Lambası" startbit="2" bitcount="1"></value> <value name="El Freni Lambası" startbit="3" bitcount="1"></value> <value name="Kapı Açık Lambası" startbit="4" bitcount="1"></value> <value name="Kısa Far Lambası" startbit="5" bitcount="1"></value> <value name="Uzun Far Lambası" startbit="6" bitcount="1"></value> <value name="Park Lambası" startbit="7" bitcount="1"></value> <value name="Ön Sis Lambası" startbit="8" bitcount="1"></value> <value name="Arka Sis Lambası" startbit="9" bitcount="1"></value> <value startbit="10" bitcount="6"></value>
> <value offset="2" length="6"></value> 
> </frame>
> 
> <frame id="3203">
> <value targetId="2" units="rpm" offset="0" length="2"></value> 
>   
> <value targetId="12" units="c" offset="2" length="2"></value>
>   
> <value targetId="33" units="%" offset="4" length="2"></value>
>   
> <value offset="6" length="2"></value> 
> </frame>
> 
> <frame id="3204">
> <value targetId="36" units="km/h" offset="0" length="2"></value>
>   
> <value targetId="44" units="km" offset="2" length="4"></value>
>   
> <value offset="6" length="2"></value>
> </frame>
> 
> ```

You have a lot of segments that has no targetId nor name attribute set. That will fail the parsing of the XML.
