Programming an Arduino Uno with LabVIEW

I was wondering if there was any way to reprogram an arduino board using LabVIEW rather than the default arduino software. Specifically, here if my code, which delays an input square wave signal by a number of microseconds specified by the user:

#define DELAYUP 40 //actual delay will be this number plus about 3 us
#define DELAYDOWN 40

void IRQup()
  // DELAY PART - finetuned
  __asm__("nop\n\t""nop\n\t""nop\n\t"); //each nop delays arduino by 1 clock cycle (16 MHz)
  PORTD = B11100000;  // bit 7,6,5 === PIN 7,6,5

void IRQdown()
  // SET PIN 7,6,5 LOW
  PORTD = B00000000; 

void setup()
  Serial.println("Photon delay 0.1");  // reminder for what has been configured

  Serial.print("  UP delay: ");
  Serial.println(DELAYUP, DEC);
  Serial.print("DOWN delay: ");
  Serial.println(DELAYDOWN, DEC);

  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);  
  digitalWrite(7, LOW);
  digitalWrite(6, LOW);
  digitalWrite(5, LOW);// initial state output pin

  pinMode(2, INPUT);    // is irq 0 pin
  pinMode(3, INPUT);    // is irq 1 pin

  attachInterrupt(0, IRQup, RISING);
  attachInterrupt(1, IRQdown, FALLING);

void loop() {}  // do nothing

What I want to do is create a GUI using the front panel of LabVIEW in order to run this program and be able to input the values for DELAYUP, DELAYDOWN, and the PORTD values (so that I can change which pins to output to). I want to do this so that I don't have to continually change the arduino code and upload it to the board every time I want to change the delay/output pins.

Is this possible to do through LabVIEW? If so, will it introduce a significant delay while running, or only when I change a value? ?

One of the things supported by Arduino is a protocol called "firmata", designed to interface high-level languages on a host computer to the low level primitives supported by the Arduino. I don't think you can get labview to "program" an Arduino, but you certainly should be able to get a labview based GUI to fiddle with the operation of the Arduino.

you can interface arduino with labview using "labview interface for arduino software" link:

and steps for interfacing is given below link;[[learn:libraries:lifa:getting_started|]]

Hi csnsc14320

I am doing a project and I faced the same proplem of yours. If you have go a solution for it, can you please share it with me??

Thanx in advance


Did you guys solve the problem? I am struggling with similar.