Forum >BLE-Link/Bluno suggestions
General

BLE-Link/Bluno suggestions

userHead Darius 2014-11-21 04:55:33 7997 Views3 Replies
Hi,

  1. The timeout between + characters is very short so you need to cut & paste it to enter. It should accept +'s 100msec apart or so.
  2. The AT commands should be case insensitive
  3. A packet mode similar to the XBee modules would be very useful
2016-04-06 22:16:02
bettydhughes wrote:Hey. I am attempting to match a Bluno Nano and a Bluno Beetle. As of not long ago I just figured out how to connection them with the Nano in focal and the Beetle in Peripheral. How would I continue to combine them? I didn't discover any data identified with the matching in the wiki. A debt of gratitude is in order for your assistance.


Hi bettydhughes ,

Do you mean how to bind them?

If so, you can try to use AT command: AT+BIND~

More plz read Q11 in wiki.
userHeadPic Leff
2016-04-06 20:29:05
Darius wrote:Hi,

  1. The timeout between + characters is very short so you need to cut & paste it to enter. It should accept +'s 100msec apart or so.
  2. The AT commands should be case insensitive
  3. A packet mode similar to the XBee modules would be very useful


Hi Darius,

Thanks so much for your suggestions!

I understand that the case insensitive and Xbee modules shape(actually we have that, check here)

But what do you mean for the first one? Do you mean you want to send "+++" by code that print "+" one by one? But now the problem is the timeout between each + characters is too short? If so, you can try this code, from Code: Select all

    const int ledBLE = 13;
    typedef enum {START, WAIT_AT, WAIT_RSSI, WAIT_EXIT, NORM_MODE, _TMP} state_type;
    state_type state = START;
    char chr;
    String buffer, rssi, data;
    bool reading = false;

    void setup() {
       Serial.begin(115200);      //Initiate the Serial comm
       pinMode(ledBLE, OUTPUT);
       state = START;
     }

    void loop() {
       if (state == START) {
          start();
       } else if (state == WAIT_AT) {
          wait_at();
       } else if (state == WAIT_RSSI) {
          wait_rssi();
       } else if (state == WAIT_EXIT) {
          wait_exit();
       } else if (state == NORM_MODE) {
          norm_mode();
       }
    }

    void start() {
       delay(10);
       Serial.print("+");
       Serial.print("+");
       Serial.print("+");
       data = "";
       state = WAIT_AT;
    }

    void wait_at() {
       while (Serial.available() > 0) {
          chr = Serial.read();
          if (chr == 'E') {
             reading = true;
             buffer = "";
          }
          if (reading) {
             buffer += chr;
          } else {
             data += chr;
          }
          if (reading && buffer == "Enter AT Mode\r\n") {
             Serial.println("AT+RSSI=?");
             reading = false;
             state = WAIT_RSSI;
          } else if (data == "led_on") {
             digitalWrite(ledBLE, HIGH);
             data = "";
          } else if (data == "led_off") {
             digitalWrite(ledBLE, LOW);
             data = "";
          }
       }
    }

    void wait_rssi() {
       while (Serial.available() > 0) {
          chr = Serial.read();
          if (chr == '-') {
             reading = true;
             buffer = "";
          }
          if (reading) {
             buffer += chr;
          }
          if (buffer.length() == 4) {
             rssi = buffer;
             Serial.println("AT+EXIT");
             reading = false;
             state = WAIT_EXIT;
             if (rssi == "-000") {
                digitalWrite(ledBLE, LOW);
             }
          }
       }
    }

    void wait_exit() {
       while (Serial.available() > 0) {
          chr = Serial.read();
          if (chr == 'O') {
             reading = true;
             buffer = "";
          }
          if (reading) {
             buffer += chr;
          }
          if (buffer == "OK\r\n") {
             reading = false;
             state = NORM_MODE;
          }
       }
    }

    void norm_mode() {
       Serial.println("\r\n<<<");
       Serial.println(rssi);
       Serial.println(">>>\r\n");
       Serial.flush();
       state = START;
    }
userHeadPic Leff
2016-04-02 02:23:52 Hey. I am attempting to match a Bluno Nano and a Bluno Beetle. As of not long ago I just figured out how to connection them with the Nano in focal and the Beetle in Peripheral. How would I continue to combine them? I didn't discover any data identified with the matching in the wiki. A debt of gratitude is in order for your assistance. userHeadPic bettydhughes