Why won't the xbee work with my teensy?

Status
Not open for further replies.

Moonsteps

New member
Hello all,

This is my first thread, so I am sorry if I post anything outside of the customary range. I am also an electrical noob.

I am using xbees to communicate information between two teensy 3.2s at a distance. I know I could use this adapter:

https://www.sparkfun.com/products/13311?_ga=2.9586677.190581417.1554858967-105543982.1552815426

However, the project is going to be used in soft gloves and around the wrist, so I would like to be able to separate the teensy and xbee around jointed areas and make the device the least cumbersome possible without a large rigid rectangle. Thus I am wiring the xbee alone to the teensy. I found a source online that said you could wire xbee pin 1 to the 3.3v power from the teeny, xbee pin 10 to teensy ground, and xbee dout and din to teensy RX (1) and TX (0) respectively.

I tested the components separately. When using the Xbee XCTU software, the xbees are calibrated correctly and communicate serially with each other over the monitors. They properly echo characters. I tried wiring the tx and rx lines on the teensys directly to each other, and one Teensy successfully transmits a "Hello World" message to the other. Here is the code for each teensy:

Teensy 1

Code:
void setup()
{
  //Begin serial monitor port
  Serial.begin(9600);
  //Begin HW serial
  Serial1.begin(9600);

}

void loop() {
  //Serial.println ("Hello World");
  Serial1.println ("Hello World");
  delay (5000);
}

Teensy 2

Code:
//Serial test using the hardware uart on pins 0/1 (UART1).
//Connect an XBee and Teensy 3.1 to the adapter board
//Connect an XBee to a serial terminal of your choice (USB dongle for example)
//
//Characters sent out the XBee terminal go:
// Onto the airwaves -> into UART1 RX -> out the serial monitor
//
//Characters sent out the serial monitor go:
// Out the UART1 TX pin -> onto the airwaves -> out the SBee serial terminal
//
//Be sure to select UART1 on the adapter board's switch for HW serial

String incoming;   // for incoming serial data



void setup()
{
  //Begin serial monitor port
  Serial.begin(9600);
  //Begin HW serial
  Serial1.begin(9600);

}

void loop()
{
  // Take data received from the serial monitor and pass it to the HW UART
  if(Serial.available())
  {
    Serial1.print(Serial.read());
   //Serial1.print(Serial.read(), BYTE);
  }

  // Take data received from the HW UART and pass it to the serial monitor
  if(Serial1.available())
  {
    // read the incoming byte:
    incoming = Serial1.read();
    String mysrr = String(incoming);
    Serial.print(mysrr);

    
  }

  //Wait to reduce serial load
  delay(5);
}

However, when I try to plug both teensies into USB, and then power the xbees off of the 3.3v ports, I get nothing. I wired xbee ground to GND by the white programming button on the teensy. I tried both 3.3v ports.

I read that it is difficult to power xbee pros and any of the xbees that take more than 100ma of current, but I have the cheapest xbee (the signal only needs to go a couple feet). This xbee claims to draw only 50ma, and my teensy pin diagram said it could put out 250mA max. There are no other sensors or devices hooked up yet.

https://www.sparkfun.com/products/11215

The xbee works on regulated 3.3v, so I thought the Teensy power output would be perfect. I could try using a 3.3v voltage regulator off of my lipo battery, but I am trying to keep the form factor as small as possible. I read here is a trace on the Teensy you can cut so that it is powered by battery instead of USB (I didn't cut this). Will the teensy still power devices if hooked to USB? I did try to hook up a multimeter in series to measure amps, and got 0.0 between a teensy and xbee (but I don't know if I did it right).

Am I doing something else wrong? Could it be something besides a power issue?

Thank You!
 
Status
Not open for further replies.
Back
Top