Monthly Archives: November 2012

//November

A bit of an outing. R2 meets a millionaire.

Hello all!

Took my R2 out again today to yet another outing. This time a big breakfast with quite a few of my business friends, and naturally R2 was a big hit!

R2 arrived at the scene in a taxi adopted for wheelchairs(!) An excellent means of transportation as it was only to fold down the ramp, roll him in and strap on the seatbelt!

I managed to get a pic of me with R2, which seems to be a rarity these days..

A lot of people wanted to see him, asked questions about him and took pictures of him. Business as usual! =)

Many people don’t realize this, but R2 is a natural when it comes to mingling..

A bit disappointed that the pitchers only contained juice, and no motor oil, R2 soon started to look for other things to do…

.. roamed around the room for a while.. posed for pictures a lot..

.. and finally managed to find a millionaire in the room!

Marco Koslowski from Canada asked R2 to pose with him in a picture, and R2 graciously agreed.

How could he not? There was an opportunity to get his picture taken … again!

Being slightly grumpy after the apparent lack of motor oil, R2 decided it was time to head on home.

On the way, he did meet a young fan, and being the nice droid he is, stayed around to chat with the young fan for a while outside Gallerian in Stockholm.

All in all, a good day in R2’s life! 😀

By |2016-12-06T00:00:43+01:00November 23rd, 2012|R2-D2|Comments Off on A bit of an outing. R2 meets a millionaire.

R2 sighted in public!

For two weekends, I have now taken my R2 out to get the last bugs out!
I started last weekend with a trial run at a friends birthday party. The kids went nuts and LOVED it!
R2 danced with the kids and posed for pictures. His presence was much appreciated!

During the week, I’ve experimented with the new control system, but there are a few issues there that I’m not all happy with yet, so I had to go back to the radio control, since I wanted to bring R2 to my weekly business meeting!

Every Friday, I eat lunch with about 60 people. A great bunch of people that I’ve gotten to know over the past year and a half, and they have been aware of my project of building this droid. Since he was finished, I had asked for a little time during this meeting to present R2.

When taking the droid home, on the subway, it took me 40 minutes to take him ONE block, due to so many kids, parents, people wanted to see him, take pictures with him and generally asked questions about him. It was great!

However, the cobblestones did not fare well with the center ankle/foot mounting, so the center foot was loose after the little outing.

An hour and a half later, I had removed the existing screws (one of them was bent, due to the full weight of the droid pushing down on this point), increased the holes in the ankle, inserted pieces of aluminium pipe into the ankle holes, and ended up with two thick 6mm screws through the sides of the foot, in to the ankle and out the other side.

This has now firmly locked the ankle in position, and it will not move again. Ever. 😉

I test drove it again on Saturday, at yet another friend that had a kid that had a birthday. Worked like a charm! However, this time, I had some electronics issues, but I’ve narrowed them down to a faulty USB cable in between my power distribution board and my bluetooth speakers! *phew* ! =)

Next up: Finish up the new droid controller in time for ScifiWorld!

By |2016-12-06T00:00:43+01:00November 20th, 2012|R2-D2|Comments Off on R2 sighted in public!

Configuring the XBee’s

So: Just because my droid is finished, doesn’t mean that I’ve stopped working on it!

Lately, I’ve been working on a new droid controller, that will be a lot more stealthy, give a lot more options than my current radio, and could, potentially, give me many many more options!

I’ve got a design in mind, but I’ll need to build a prototype of it first before showing you guys! 😉

Anyway, After soldering the controller together, I tried to start it up to see if it would boot and run my program. The program is made in the US by a couple of guys who came up with this new droid controller, and I’ve been fortunate enough that they graciously shared their hard work!

When starting the control unit up, I get the following picture:

So, it boots up, and then stops here:

This is because the XBee have not been configured at all. So, the transmitter and the arduino is not talking to each other. That is the primary issue. The secondary issue is that neither does my XBee’s, so transmitter and receiver are not aware of each other. Doesn’t matter how much I hold them facing each other and scream “THEY ARE RIGHT THERE!!! *GAAAAAAAAH*” They will still go “nope, no idea what you’re talking about. There’s no transmitter/receiver”.

*sigh*

So, configuring these is relatively easy.

–If you have a windows machine, that is! Me, I’m on a glorious Mac! Makes some things harder, but most things way WAY better!

So, without further ado, I thought I’d give a brief tutorial on how to get the configuration of the XBee’s work on a mac!

😀

First off, I downloaded a free tool called moltosenso Network Manager Iron Best part? It’s free! You can get the software here

In addition to your trusty XBee’s,

you’ll also need a XBee USB Shield and a USB Cable. I mooched my XBee USB Shield of Sigge, since I was too lazy (=forgot) to buy one with me XBee’s.

So, I started with my XBee that I marked as Transmitter. Very important to take note of the numbers on the backside, as they give which addresses the XBee are working within!

XBee goes into the USB Shield, and cable into the computer, then I fire up the software.

For a never configured XBee, make sure the Baud Rate is set to 9600, and click on “Open Port” in the lower right. Let the checkboxes “Force API” and “Escape” be unchecked for now.

You will get this window a lot, by the way:

Look, it found my XBee!

I mark the XBee in the list, and I should get some response in the lower white area like this.

So this tells me some information about my XBee.

Please note that on my pictures, the XBee is already configured, so it will differ from the info you get. Most importantly is that you get a response from your XBee.

Next step: Click on “Node Settings” in the window menu.

Click on the XBee that shows up at the top, and then the button “Get All” and it should look something like this:

These are all the lovely settings you can change in the XBee config, but WAIT! Before you start changing them, you need to flash the XBee cards with the proper firmware, as the firmware is not only an update, it is ALSO programming the ROLE of what this XBee will do!

Click on the button FW Upload.

Leave the settings as is, and click on “Choose FW file and upload”.

Now this is where it got tricky! Which file? from where?

The XBee official site only lets X-CTU download the firmware from within the client!

Fortunately, moltosenso has thought about this, and have actually enclosed the firmware on disk in the installation!

When you click on “Choose FW file and upload” navigate to the “ebl_files” folder, which should be directly visible from the folder you are in.

Since the ROLE of the card is programmed in with the firmware, there are different firmware files that should be used for the transmitter and the receiver!

This is taken from the XBee Firmware release notes:

XBee version numbers will have 4 significant digits. A version number is reported by issuing an ATVR command. The response returns 3 or 4 numbers. All numbers are hexadecimal and can have a range from 0-0xF. A version is reported as “ABCD”. Digits ABC are the main release number and D is the revision number from the main release. “B” is a variant designator. The following variants exist in ZB firmware:

  • “0″ – Coordinator, AT Command Mode (AP=0)
  • “1″ – Coordinator, API Mode (AP=1,2)
  • “2″ – Router AT Command Mode (AP=0)
  • “3″ – Router API Mode (AP=1,2)
  • “8” – End Device, AT Command Mode (AP=0)
  • “9” – End Device, API Mode (AP=1,2)

So, in clear text, this means that whatever the latest firmware is, the SECOND digit HAS to be a “1” for the Coordinator XBee.

Searching in the folder, for Firmware for XBee Pro gives this one:

XBP24-ZB-2170_S2B.ebl – sounds great, let’s use that one!

So, the Firmware is uploaded into the XBee, and then it is time to change the information.

Select the card and Click “Get All” to get the configuration data.

There are really a few things that should be changed on them to get this to work:

  • ID – Your Personal Area Network. This is something that should be unique to you. Remember this as it should be set on both XBee’s. Don’t use mine! =)
  • DH – Destination High Address, which is the THIRD Line listed on the back of your OTHER XBee. You DID write these down in advance, didn’t you? Note that it is the 3rd line of the RECEIVER XBee you should put here, since you are telling the CONTROLLER which addresses it can talk on.
  • DL – Destination Low Address, which is the FOURTH Line listed on the back of your OTHER XBee. You DID write these down in advance, didn’t you? Note that it is the 4th line of the RECEIVER XBee you should put here, since you are telling the CONTROLLER which addresses it can talk on.
  • NI – Recommended. Set this to “COORDINATOR”. This is just a Name for your XBee. It will show up when you connect it, and make future configuration easier!
  • PL – Power Level. This should be set to 4.
  • PM – Power Mode. This should be set to ‘1 – BOOST MODE ENABLED’.
  • BD – Baud Rate. Set this to ‘4 – 19200’. This enables the Arduino to talk to the XBee! *weeeee*
  • AP – This should be set to ‘2’, which is API with Escaping. However, I’ve find that you can’t set this to two at this moment. We’ll get back to this in a moment. Just leave it at ‘1’ for now.

Make sure you click on “Set” after each time you changed a value!

Now, when the values are changed, it is REALLY Important to write these permanently to the XBee. Click on the “Write Permanently” box. I missed this the first time I did this…

Since you have written the baud rate, you will lose connection with the card, even though the software hasn’t realized it. Click on the “Port Setup” tab and change the baud rate at the bottom to ‘19200’.

Check the “Force API” and “Escape” checkboxes, then click on ‘Open Port’ again.

You are back in to the card, and it should show some different info than before. Again, select the card and go into “Node Settings” tab. Select the card and Click “Get All” to get the configuration data.

You can now go back and change the AP value:

  • AP – This should be set to ‘2’, which you can do now. Save this


Don’t forget to “Write Permanently” on to the card, and you are all set!

Next, click on the “Port Setup” tab and click on “Close Port”. Disconnect the USB cable from the XBee USB Shield and remove the card. This is now DONE! Good Work!

Time to change the Receiver Card!

Same procedure as last time, almost.

You need to flash the firmware of the receiver as well, and by reading the little list from the Release Notes earlier, you realize that this Firmware should have a 3 as the second digit in order to be the role of ‘Router Api’, which is what we want!

Click on the button FW Upload.

Searching in the folder, for Firmware for XBee Pro gives this one:

XBP24-ZB-2370_S2B.ebl – Same version, but a 3 instead of a one. Just the one I want!

Upload this, then start changing the values as before.

Select the card and Click “Get All” to get the configuration data.

  • ID – Your Personal Area Network. This should be the same as you put on your other XBee! Otherwise they can’t talk to each other!
  • SD – Scan Duration. Set this to 4. 3 should be enough, but it will allow a longer scan for connections.
  • DH – Destination High Address, which is the THIRD Line listed on the back of your OTHER XBee. You DID write these down in advance, didn’t you? Note that it is the 3rd line of the CONTROLLER XBee you should put here, since you are telling the RECEIVER which addresses it can talk on.
  • DL – Destination Low Address, which is the FOURTH Line listed on the back of your OTHER XBee. You DID write these down in advance, didn’t you? Note that it is the 4th line of the CONTROLLER XBee you should put here, since you are telling the RECEIVER which addresses it can talk on.
  • NI – Recommended. Set this to “ROUTER”. This is just a Name for your XBee. It will show up when you connect it, and make future configuration easier!
  • PL – Power Level. This should be set to 4.
  • PM – Power Mode. This should be set to ‘1 – BOOST MODE ENABLED’.
  • BD – Baud Rate. Set this to ‘4 – 19200’. This enables the Arduino to talk to the XBee! *weeeee*
  • AP – This should be set to ‘2’, which is API with Escaping. However, I’ve find that you can’t set this to two at this moment. We’ll get back to this in a moment. Just leave it at ‘1’ for now.
  • JV – Channel Verification. Set this to 1. It will verify the channel to the controller board.
  • JN – Join Notification. Set this to 1 as well, so your receiver board actually tells the controller board that they are paired!

Make sure you click on “Set” after each time you changed a value!

Now, when the values are changed, it is REALLY Important to write these permanently to the XBee. Click on the “Write Permanently” box.

Since you have written the baud rate, you will lose connection with the card, even though the software hasn’t realized it. Click on the “Port Setup” tab and change the baud rate at the bottom to ‘19200’.

Check the “Force API” and “Escape” checkboxes, then click on ‘Open Port’ again.

You are back in to the card, and it should show some different info than before. Again, select the card and go into “Node Settings” tab. Select the card and Click “Get All” to get the configuration data.

You can now go back and change the AP value:

  • AP – This should be set to ‘2’, which you can do now. Save this

Don’t forget to “Write Permanently” on to the card, and you are all set!

Next, click on the “Port Setup” tab and click on “Close Port”. Disconnect the USB cable from the XBee USB Shield and remove the card. This is now DONE! Good Work!

So, in theory, if you’ve followed this, both your XBee’s should now be complete and configured!

Last step is to change the Arduino Sketches. You need to change both of them.

Like in the XBee’s, you need to add the correct address for the receiver XBee in the Arduino controller sketch, and the correct address for the controller XBee in the Arduino receiver sketch.

Search for “Address” in the Arduino sketch.

The line should look something like this

From my RSeries_Controller sketch:

XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x40913e21); // Destination (Receiver) address

(Note the values are the same values I have on my XBee marked as my receiver in the picture up top. The value will be same, but start with 0x before the actual value. This needs to be there, by the way.)

From my RSeries_Controller sketch:

XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x40913dc6); // Destination (Controller) address

(Note the values are the same values I have on my XBee marked as my transmitter(controller) in the picture up top. The value will be same, but start with 0x before the actual value. This still needs to be there.)

Upload these into your arduinos, and you should be done! *yay*

A BIG THANK YOU to Steele who wrote the how-to for Windows / X-CTU. It was his guide I followed and used as basis for my own setup. I just didn’t want to pollute my Mac, and I’m sure others would like to know how to get this done natively on a mac/Linux system as well.

Also a BIG THANK YOU to Ted (buhatkj) for finding the Join channel values to change!

Download this post as a PDF here: XBee Configuration for Mac and RSeries Controllers

By |2016-12-06T00:00:44+01:00November 14th, 2012|R2-D2|Comments Off on Configuring the XBee’s