1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

CarDashX : TM1638 sketch for GameDash

Discussion in 'Official Companion Apps' started by vthinsel, Aug 26, 2015.

  1. mys3lf

    mys3lf New Member

    Joined:
    Feb 24, 2016
    Messages:
    24
    Occupation:
    Designer
    Location:
    Portugal
    Balance:
    118Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    how about to integrate two tm1638 modules? and integrate the laptime in project cars UDPplugin
  2. vthinsel

    vthinsel Well-Known Member

    Joined:
    Feb 20, 2015
    Messages:
    436
    Location:
    FRANCE
    Balance:
    5,961Coins
    Ratings:
    +563 / 2 / -0
    My Motion Simulator:
    Arduino, 4DOF
    Hi !
    Integrating 2 tm1638 would require a major rewrite of the current sketch. Maybe one day.....
    I wonder if there is a possibility to have several devices managed by a gamedash instance, or even if it is possible to launch two of them. Due to the TCP behavior of SimTools, I doubt it will work. Maybe with version 2 ... :D

    For the timing, there are many variables available and only a few indicators left in the plugin:

    f32 sBestLapTime; // 12
    f32 sLastLapTime; // 16
    f32 sCurrentTime; // 20
    f32 sSplitTimeAhead; // 24
    f32 sSplitTimeBehind; // 28
    f32 sSplitTime; // 32
    f32 sEventTimeRemaining; // 36
    f32 sPersonalFastestLapTime; // 40
    f32 sWorldFastestLapTime; // 44
    f32 sCurrentSector1Time; // 48
    f32 sCurrentSector2Time; // 52
    f32 sCurrentSector3Time; // 56
    f32 sFastestSector1Time; // 60
    f32 sFastestSector2Time; // 64
    f32 sFastestSector3Time; // 68
    f32 sPersonalFastestSector1Time; // 72
    f32 sPersonalFastestSector2Time; // 76
    f32 sPersonalFastestSector3Time; // 80
    f32 sWorldFastestSector1Time; // 84
    f32 sWorldFastestSector2Time; // 88
    f32 sWorldFastestSector3Time; // 92


    Would you be interested in sCurrentTime ?
    The value reported is a float, in seconds. From a CarDashX point of view this will also probably require some code updates as it current manages only integers..... or maybe some fancy math in gamedash. I'll investigate.

    Cheers
    • Like Like x 1
  3. mys3lf

    mys3lf New Member

    Joined:
    Feb 24, 2016
    Messages:
    24
    Occupation:
    Designer
    Location:
    Portugal
    Balance:
    118Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Thx for the reply!! this is not a request, is only a possiblity to include this feature in a future update. i think if we have 2 modules to see for example in first module: Gear and speed and in the second module: Oil Temp. and water temp.. i know its not so easy to do that. and yes im interested in sCurrentTime...
  4. mys3lf

    mys3lf New Member

    Joined:
    Feb 24, 2016
    Messages:
    24
    Occupation:
    Designer
    Location:
    Portugal
    Balance:
    118Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Just another issue i think.... after 2 laps the leds on tm1638 just light 5 or 6 when get the max rpm... i push the reset button for leds and just stay good middle lap... how can i fix that. Im using arduino uno r3. I have tested with mega and leonardo but get the same issue...
  5. vthinsel

    vthinsel Well-Known Member

    Joined:
    Feb 20, 2015
    Messages:
    436
    Location:
    FRANCE
    Balance:
    5,961Coins
    Ratings:
    +563 / 2 / -0
    My Motion Simulator:
    Arduino, 4DOF
    Which game ?
    Which GameDash settings ?
  6. Malik10

    Malik10 Member

    Joined:
    Mar 3, 2016
    Messages:
    68
    Location:
    MALAYSIA
    Balance:
    657Coins
    Ratings:
    +3 / 0 / -0
    My Motion Simulator:
    3DOF, Arduino, SimforceGT, Motion platform
    sir.. can you help me about my coding...now, i dont know what is problem my real driving simulator because it is delay or slowly movement..maybe from actuator or coding for motor driver( arduino).. this is my coding.

    #include <SoftwareSerial.h>



    const int RedLedPin = 2;
    const int YelLedPin = 3;
    const int GreenLedPin = 4;
    const int Actuator1_Fwd_Pin=6;
    const int Actuator1_Rvs_Pin=5;
    const int Actuator2_Fwd_Pin=8;
    const int Actuator2_Rvs_Pin=7;
    const int Actuator3_Fwd_Pin=10;
    const int Actuator3_Rvs_Pin=9;
    const int Limit_Switch1_Pin=11;
    const int Rx_Pin=12;
    const int Tx_Pin=13;
    int Red_LED_State = LOW;
    int Yel_LED_State = LOW;
    int Green_LED_State = LOW;

    unsigned long Red_LED_previousMillis = 0;
    unsigned long Yel_LED_previousMillis = 0;
    unsigned long Green_LED_previousMillis = 0;
    unsigned long Actuator1Fwd_previousMillis=0;
    unsigned long Actuator1Rvs_previousMillis=0;
    unsigned long Actuator2Fwd_previousMillis=0;
    unsigned long Actuator2Rvs_previousMillis=0;
    unsigned long Actuator3Fwd_previousMillis=0;
    unsigned long Actuator3Rvs_previousMillis=0;

    char numStr[16]; // the number characters and null
    String X_axis[]="";
    long data_X; // the number stored as a long integer
    long data_Y; // the number stored as a long integer
    long data_Z; // the number stored as a long integer
    int position_X;
    int position_Y;
    int position_Z;
    char data_serial[3];
    char X_axis_data[3];

    SoftwareSerial mySerial(12, 13); // RX, TX
    void setup()
    {
    pinMode(RedLedPin, OUTPUT);
    pinMode(YelLedPin, OUTPUT);
    pinMode(GreenLedPin, OUTPUT);
    pinMode(Actuator1_Fwd_Pin, OUTPUT);
    pinMode(Actuator1_Rvs_Pin, OUTPUT);
    pinMode(Actuator2_Fwd_Pin, OUTPUT);
    pinMode(Actuator2_Rvs_Pin, OUTPUT);
    pinMode(Actuator3_Fwd_Pin, OUTPUT);
    pinMode(Actuator3_Rvs_Pin, OUTPUT);
    pinMode(Limit_Switch1_Pin, INPUT);


    Serial.begin(9600);
    mySerial.begin(9600);

    }

    void Red_LED_Blink(const long interval_Red)
    {
    unsigned long Red_LED_currentMillis = millis();

    if(Red_LED_currentMillis - Red_LED_previousMillis >= interval_Red) {
    // save the last time you blinked the LED
    Red_LED_previousMillis = Red_LED_currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (Red_LED_State == LOW)
    Red_LED_State = HIGH;
    else
    Red_LED_State = LOW;

    // set the LED with the ledState of the variable:
    digitalWrite(RedLedPin, Red_LED_State);
    }
    }


    void Yel_LED_Blink(const long interval_Yel)
    {
    unsigned long Yel_LED_currentMillis = millis();

    if(Yel_LED_currentMillis - Yel_LED_previousMillis >= interval_Yel) {
    // save the last time you blinked the LED
    Yel_LED_previousMillis = Yel_LED_currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (Yel_LED_State == LOW)
    Yel_LED_State = HIGH;
    else
    Yel_LED_State = LOW;

    // set the LED with the ledState of the variable:
    digitalWrite(YelLedPin, Yel_LED_State);
    }
    }

    void Green_LED_Blink(const long interval_Green)
    {
    unsigned long Green_LED_currentMillis = millis();

    if(Green_LED_currentMillis - Green_LED_previousMillis >= interval_Green) {
    // save the last time you blinked the LED
    Green_LED_previousMillis = Green_LED_currentMillis;

    // if the LED is off turn it on and vice-versa:
    if (Green_LED_State == LOW)
    Green_LED_State = HIGH;
    else
    Green_LED_State = LOW;

    // set the LED with the ledState of the variable:
    digitalWrite(GreenLedPin, Green_LED_State);
    }
    }

    void move_actuator1_fwd(const long interval_actuator1)
    {
    unsigned long Actuator1Fwd_currentMillis = millis();
    digitalWrite(Actuator1_Fwd_Pin,HIGH);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    if(Actuator1Fwd_currentMillis - Actuator1Fwd_previousMillis >= interval_actuator1) {
    Actuator1Fwd_previousMillis = Actuator1Fwd_currentMillis;
    digitalWrite(Actuator1_Fwd_Pin,LOW);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    }
    delay(50);
    }


    void move_actuator1_rvs(const long interval_actuator1)
    {
    unsigned long Actuator1Rvs_currentMillis = millis();
    digitalWrite(Actuator1_Rvs_Pin,HIGH);
    digitalWrite(Actuator1_Fwd_Pin,LOW);
    if(Actuator1Rvs_currentMillis - Actuator1Rvs_previousMillis >= interval_actuator1) {
    Actuator1Rvs_previousMillis = Actuator1Rvs_currentMillis;
    digitalWrite(Actuator1_Fwd_Pin,LOW);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    }
    delay(50);
    }




    void move_actuator2_fwd(const long interval_actuator2)
    {
    unsigned long Actuator2Fwd_currentMillis = millis();
    digitalWrite(Actuator2_Fwd_Pin,HIGH);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    if(Actuator2Fwd_currentMillis - Actuator2Fwd_previousMillis >= interval_actuator2) {
    Actuator2Fwd_previousMillis = Actuator2Fwd_currentMillis;
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    }

    }


    void move_actuator2_rvs(const long interval_actuator2)
    {
    unsigned long Actuator2Rvs_currentMillis = millis();
    digitalWrite(Actuator2_Rvs_Pin,HIGH);
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    if(Actuator2Rvs_currentMillis - Actuator2Rvs_previousMillis >= interval_actuator2) {
    Actuator2Rvs_previousMillis = Actuator2Rvs_currentMillis;
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    }

    }



    void move_actuator3_fwd(const long interval_actuator3)
    {
    unsigned long Actuator3Fwd_currentMillis = millis();
    digitalWrite(Actuator3_Fwd_Pin,HIGH);
    digitalWrite(Actuator3_Rvs_Pin,LOW);
    if(Actuator3Fwd_currentMillis - Actuator3Fwd_previousMillis >= interval_actuator3) {
    Actuator3Fwd_previousMillis = Actuator3Fwd_currentMillis;
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    digitalWrite(Actuator3_Rvs_Pin,LOW);
    }

    }


    void move_actuator3_rvs(const long interval_actuator3)
    {
    unsigned long Actuator3Rvs_currentMillis = millis();
    digitalWrite(Actuator3_Rvs_Pin,HIGH);
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    if(Actuator3Rvs_currentMillis - Actuator3Rvs_previousMillis >= interval_actuator3) {
    Actuator3Rvs_previousMillis = Actuator3Rvs_currentMillis;
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    digitalWrite(Actuator3_Rvs_Pin,LOW);
    }

    }




















    void Red_LED_Off()
    {
    digitalWrite(RedLedPin,LOW);

    }
    void Yel_LED_Off()
    {

    digitalWrite(YelLedPin,LOW);

    }

    void Green_LED_Off()
    {

    digitalWrite(GreenLedPin,LOW);
    }


    void initialize_actuator_position()
    {

    digitalWrite(Actuator1_Fwd_Pin,LOW);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    digitalWrite(Actuator3_Rvs_Pin,LOW);


    digitalWrite(RedLedPin,LOW);
    delay(100);
    int initialize=1;
    int fwd_status=1;
    int rvs_status=0;
    int count_fwd=0;
    int count_rvs=0;
    int count=0;
    while(initialize)
    {
    int rand_val=rand();
    if (rand_val>1000){rand_val=1000;}
    Yel_LED_Blink(rand_val);
    if((fwd_status==1)&&(rvs_status==0))
    {
    count_fwd=count_fwd+1;
    count_rvs=0;
    digitalWrite(Actuator1_Fwd_Pin,HIGH);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    delay(100);
    digitalWrite(Actuator2_Fwd_Pin,HIGH);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    delay(100);
    digitalWrite(Actuator3_Fwd_Pin,HIGH);
    digitalWrite(Actuator3_Rvs_Pin,LOW);
    if(count_fwd==40){
    fwd_status=0;
    rvs_status=1;
    count=count+1;
    digitalWrite(Actuator1_Fwd_Pin,LOW);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    digitalWrite(Actuator3_Rvs_Pin,LOW);
    delay(100);
    }
    int switch_status=digitalRead(Limit_Switch1_Pin);

    if(switch_status==0){initialize=0;
    Yel_LED_Off();
    digitalWrite(GreenLedPin,HIGH);
    digitalWrite(Actuator1_Fwd_Pin,LOW);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    digitalWrite(Actuator3_Rvs_Pin,LOW);
    delay(100);
    }
    }

    if((fwd_status==0)&&(rvs_status==1))
    {
    count_fwd=0;
    count_rvs=count_rvs+1;
    digitalWrite(Actuator1_Fwd_Pin,LOW);
    digitalWrite(Actuator1_Rvs_Pin,HIGH);
    delay(100);
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    digitalWrite(Actuator2_Rvs_Pin,HIGH);
    delay(100);
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    digitalWrite(Actuator3_Rvs_Pin,HIGH);

    if(count_rvs==40){
    fwd_status=1;
    rvs_status=0;
    count=count+1;
    digitalWrite(Actuator1_Fwd_Pin,LOW);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    digitalWrite(Actuator3_Rvs_Pin,LOW);
    delay(100);
    }
    int switch_status=digitalRead(Limit_Switch1_Pin);

    if(switch_status==0){initialize=0;
    Yel_LED_Off();
    digitalWrite(GreenLedPin,HIGH);
    digitalWrite(Actuator1_Fwd_Pin,LOW);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    digitalWrite(Actuator3_Rvs_Pin,LOW);
    delay(100);
    }
    }



    if(count==5){

    digitalWrite(Actuator1_Fwd_Pin,LOW);
    digitalWrite(Actuator1_Rvs_Pin,LOW);
    digitalWrite(Actuator2_Fwd_Pin,LOW);
    digitalWrite(Actuator2_Rvs_Pin,LOW);
    digitalWrite(Actuator3_Fwd_Pin,LOW);
    digitalWrite(Actuator3_Rvs_Pin,LOW);
    digitalWrite(RedLedPin,HIGH);
    while(1){}
    }


    }
    }





    void loop()
    {
    Red_LED_Off();
    Yel_LED_Off();
    Green_LED_Off();
    delay(100);
    initialize_actuator_position();
    unsigned previous_data_X=511;
    unsigned previous_data_Y=511;
    unsigned previous_data_Z=511;
    signed int val_X;
    signed int val_Y;
    signed int val_Z;
    while(1)
    {

    int rand_val=rand();
    if (rand_val>1000){rand_val=1000;}
    Green_LED_Blink(rand_val);
    int check_data=1;
    int count=0;
    while(check_data)
    {
    if ( Serial.available () > 0 )
    {

    numStr[count]=Serial.read();
    mySerial.write(numStr[count]);

    }

    if(numStr[count]=='C')
    {

    check_data=0;
    }

    count=count+1;

    }




    //mySerial.write(numStr);


    String data= String(numStr);
    mySerial.println(data);

    String data_x=data.substring(2,5);
    int X=data_x.toInt();
    mySerial.println(X);
    String data_y=data.substring(6,9);
    int Y=data_y.toInt();
    mySerial.println(Y);
    String data_z=data.substring(10,13);
    int Z=data_z.toInt();
    mySerial.println(Z);

    if(X<previous_data_X)
    {
    move_actuator1_rvs(1000);
    delay(250);
    previous_data_X=X;
    }
    if(X>previous_data_X)
    {

    move_actuator1_fwd(1000);
    delay(250);
    previous_data_X=X;

    }

    if(Y<previous_data_Y)
    {

    move_actuator2_rvs(1000);
    delay(250);
    previous_data_Y=Y;
    }
    if(Y>previous_data_Y)
    {

    move_actuator2_fwd(1000);
    delay(250);
    previous_data_Y=Y;

    }

    if(Z<previous_data_Z)
    {

    move_actuator3_rvs(1000);
    delay(250);
    previous_data_Z=Z;
    }
    if(Z>previous_data_Z)
    {

    move_actuator3_fwd(1000);
    delay(250);
    previous_data_Z=Z;

    }



    }
    }
  7. Malik10

    Malik10 Member

    Joined:
    Mar 3, 2016
    Messages:
    68
    Location:
    MALAYSIA
    Balance:
    657Coins
    Ratings:
    +3 / 0 / -0
    My Motion Simulator:
    3DOF, Arduino, SimforceGT, Motion platform
    this is my spec for actuator..

    Attached Files:

  8. vthinsel

    vthinsel Well-Known Member

    Joined:
    Feb 20, 2015
    Messages:
    436
    Location:
    FRANCE
    Balance:
    5,961Coins
    Ratings:
    +563 / 2 / -0
    My Motion Simulator:
    Arduino, 4DOF
    This topic is for TM1638 interface for GameDash. It has nothing to do with your post and code. Please create another thread. Thanks.
    • Agree Agree x 1
  9. mys3lf

    mys3lf New Member

    Joined:
    Feb 24, 2016
    Messages:
    24
    Occupation:
    Designer
    Location:
    Portugal
    Balance:
    118Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Hello...
    Game: project cars (ps4 console)
    Game Plugin: ProjectCars_AltPlugin
    When you mean gamedash settings i think its that:
    dash_settings.jpg
  10. vthinsel

    vthinsel Well-Known Member

    Joined:
    Feb 20, 2015
    Messages:
    436
    Location:
    FRANCE
    Balance:
    5,961Coins
    Ratings:
    +563 / 2 / -0
    My Motion Simulator:
    Arduino, 4DOF
    As PCars exposes the MaxRPM, you should defenetly use it : add T<Dash3> and that should do the trick
    I love PS4 RemotePlay :)


    upload_2016-5-12_16-24-13.png
    • Like Like x 1
  11. mys3lf

    mys3lf New Member

    Joined:
    Feb 24, 2016
    Messages:
    24
    Occupation:
    Designer
    Location:
    Portugal
    Balance:
    118Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Thanks @vthinsel Its working now....
    Thanks again mate.... :cheers
    • Winner Winner x 1
  12. vthinsel

    vthinsel Well-Known Member

    Joined:
    Feb 20, 2015
    Messages:
    436
    Location:
    FRANCE
    Balance:
    5,961Coins
    Ratings:
    +563 / 2 / -0
    My Motion Simulator:
    Arduino, 4DOF
    Good. Nevertheless, this is strange. I'll review a couple of things in the code just in case.
    • Like Like x 1
  13. mys3lf

    mys3lf New Member

    Joined:
    Feb 24, 2016
    Messages:
    24
    Occupation:
    Designer
    Location:
    Portugal
    Balance:
    118Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    Hello @vthinsel.... in question of 2 tm1638...
    i have 2 tm1638 work at some time.... but both display the some think :) .... i have connected 1 module: stb(pin3) clk(pin4) dio(pin5) and the second module: stb(pin2) clk(pin4) dio(pin5) i have made some modifications to your code to display in the second module....

    so i have looked into your code and i see:

    byte leftindicator = 0; //speed on left by default
    byte rightindicator = 1; //gear on right by default

    #define LEFT 1
    #define RIGHT 2

    //Data Clock Strobe
    TM1638 module1(5, 4, 3)

    Now my question:
    Its possible to add something like that:

    byte leftindicator = 0; //speed on left by default
    byte rightindicator = 1; //gear on right by default
    byte left1indicator = 2; //rpm on left in second module
    byte righ1tindicator = 3; //Position on right in second module


    #define LEFT 1
    #define RIGHT 2
    #define LEFT1 3
    #define RIGHT1 4


    //Data Clock Strobe
    TM1638 module1(5, 4, 3)
    TM1638 module2(5, 4, 2)
    The big problem its im really noob coding....:cool: with yours skills i think you can do that because i cant understand the bits and bytes :blush....
    I will keep trying but with no promess and i ask you if you can try to do that... hug:
  14. vthinsel

    vthinsel Well-Known Member

    Joined:
    Feb 20, 2015
    Messages:
    436
    Location:
    FRANCE
    Balance:
    5,961Coins
    Ratings:
    +563 / 2 / -0
    My Motion Simulator:
    Arduino, 4DOF
    Yes, some copy/paste/edit should work at some point. Buttons should also be changed : only 2 buttons needed on module 2.
    I must say the way I detect which indicator should be printed where is a bit confusing.....
    Good luck :)
  15. mys3lf

    mys3lf New Member

    Joined:
    Feb 24, 2016
    Messages:
    24
    Occupation:
    Designer
    Location:
    Portugal
    Balance:
    118Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    I will try to figure out how to do that... i will get another sketch with working 2 tm1638 for pcars but its for pc version i think the process and the values will be the some. And i will keep informe here... Wich me luck.... :popcorn

    OFFTOPIC:
    there is some preview date to release of simtools 2.0 the cardashX and gamedash will be compatible?
  16. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    20,460
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    144,596Coins
    Ratings:
    +10,741 / 52 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    • Informative Informative x 1
  17. vthinsel

    vthinsel Well-Known Member

    Joined:
    Feb 20, 2015
    Messages:
    436
    Location:
    FRANCE
    Balance:
    5,961Coins
    Ratings:
    +563 / 2 / -0
    My Motion Simulator:
    Arduino, 4DOF
    Laptime added in plugin output is dash16.
    Now, some tweaking in GameDash and probably CarDashX will be needed as CarDashX was not initilly designed to display time. Plugin outputs time in milli seconds.
    • Like Like x 1
    • Winner Winner x 1
  18. vthinsel

    vthinsel Well-Known Member

    Joined:
    Feb 20, 2015
    Messages:
    436
    Location:
    FRANCE
    Balance:
    5,961Coins
    Ratings:
    +563 / 2 / -0
    My Motion Simulator:
    Arduino, 4DOF
    @mboloo : this will depend on the game plugin you use. For Project Cars as an example you have the tank capacity and current level :
    upload_2016-5-24_8-45-55.png
    We could imagine using the 8 LEDS to display gasoline instead of RPMs, which is something you can already do now : RPM becomes FuelLevel and maxRPM becomes FuelCapa.
    • Like Like x 1
  19. mys3lf

    mys3lf New Member

    Joined:
    Feb 24, 2016
    Messages:
    24
    Occupation:
    Designer
    Location:
    Portugal
    Balance:
    118Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    i made the adjustment to implent the laptime and its running but i cant do to display in the format : mm:ss:SSS. there is someone can send or say how can i display in that format. i have trying to tweak in gamedash but no lucky.... here is the code i have modified

    Attached Files:

  20. mys3lf

    mys3lf New Member

    Joined:
    Feb 24, 2016
    Messages:
    24
    Occupation:
    Designer
    Location:
    Portugal
    Balance:
    118Coins
    Ratings:
    +9 / 0 / -0
    My Motion Simulator:
    2DOF, Arduino
    The letter i have include in the code was "I" so in gamedash add I<Dash16>