title: C# console application talking to Arduino via Bluetooth
body: <p>Not a whole lot to say here other than this doesn't work, and I have no idea why.</p>
  
  <p>The serial output on the Arduino is nothing. The output on the C# code goes down to waiting for a response and then nothing.</p>
  
  <p>The Bluetooth card LED on the Arduino goes green when I start the C# program so there is a connection being made. Just nothing else.</p>
  
  <p><img src="https://i.stack.imgur.com/rYcWo.jpg" alt="Enter image description here">
  <img src="https://i.stack.imgur.com/MLb6w.jpg" alt="Enter image description here"></p>
  
  <h3>Arduino Code</h3>
  
  <pre><code>#include &lt;SoftwareSerial.h&gt; //Software Serial Port
  #define RxD 8 // This is the pin that the Bluetooth (BT_TX) will transmit to the Arduino (RxD)
  #define TxD 7 // This is the pin that the Bluetooth (BT_RX) will receive from the Arduino (TxD)
  
  SoftwareSerial blueToothSerial(RxD,TxD);
  boolean light = false;
  void setup(){
    Serial.begin(9600); // Allow Serial communication via USB cable to computer (if required)
    pinMode(RxD, INPUT); // Setup the Arduino to receive INPUT from the bluetooth shield on Digital Pin 6
    pinMode(TxD, OUTPUT); // Setup the Arduino to send data (OUTPUT) to the bluetooth shield on Digital Pin 7
    pinMode(13,OUTPUT); // Use onboard LED if required.
  }
  
  void loop(){
     delay(1000);
     if(light){
        light = false;
        digitalWrite(13,LOW);
     }
     else{
       light = true;
       digitalWrite(13,HIGH);
     }
     //Serial.println(blueToothSerial.available());
     blueToothSerial.write("Im alive");
     if(blueToothSerial.read()&gt;0){
       Serial.write(blueToothSerial.read());
     }
  }
  </code></pre>
  
  <h3>Core C# Code</h3>
  
  <pre><code>static void Main(string[] args)
          {
          byte[] Command = Encoding.ASCII.GetBytes("It works");//{0x00,0x01,0x88};
  
          SerialPort BlueToothConnection = new SerialPort();
          BlueToothConnection.BaudRate = (9600);
  
          BlueToothConnection.PortName = "COM4";
          BlueToothConnection.Open();
          if (BlueToothConnection.IsOpen)
          {
  
              BlueToothConnection.ErrorReceived += new SerialErrorReceivedEventHandler(BlueToothConnection_ErrorReceived);
  
              // Declare a 2 bytes vector to store the message length header
              Byte[] MessageLength = { 0x00, 0x00 };
  
              //set the LSB to the length of the message
              MessageLength[0] = (byte)Command.Length;
  
  
              //send the 2 bytes header
              BlueToothConnection.Write(MessageLength, 0, MessageLength.Length);
  
              // send the message itself
  
              System.Threading.Thread.Sleep(2000);
              BlueToothConnection.Write(Command, 0, Command.Length);
  
              Messages(5, ""); //This is the last thing that prints before it just waits for response.
  
              int length = BlueToothConnection.ReadByte();
              Messages(6, "");
              // retrieve the reply data
              for (int i = 0; i &lt; length; i++)
              {
                  Messages(7, (BlueToothConnection.ReadByte().ToString()));
              }
          }
      }
  </code></pre>