HM-10 read, write, notify, Can i do it all at once?

Hello guys

I have written the following code below using the SoftwareSerial.h library

void loop(){
      int c =;
      if (c == 1)
        digitalWrite(ledpin, HIGH);
      else if (c == 0)
        digitalWrite(ledpin, LOW);

      buttonState = digitalRead(inputPin);
      if(buttonState == HIGH)
        digitalWrite(outputLed, HIGH);
        digitalWrite(outputLed, LOW);


To accompany my code, I have written a mobile application in Xamarin studio. What my code does, is that it accepts a call from the application (either 0 or 1 byte) which makes it turn on an LED.

Secondly, what I'm trying to accomplish, and yet struggle with, is that I want the Arduino to notify my application (or write... I'm really not sure what this library allows me to do since I have a hard time finding some elaborate documentation) when a button on my breadboard is pressed - it turns on an LED too when pressed..

I realized that if I encapsulate the code for the button press inside BTSerial.available() it doesn't work, meaning that it doesn't send any data to my application, nor does the LED turn on when I press the button. - It does though still accept parameters being sent to it.

Vise versa, if I don't encapsulate my button code inside the BTSerial.available() I can write data to my phone, but my phone cannot send data to the BT device...

What is going on here, and why can't I access the two functionalities simultaneous, and what is a potential fix?

Post complete code!