I’ve bought me a pair of Pololu Wixels during the black Friday sale last month. The Wixel is based on the CC2511F32 micro controller from Texas Instruments. It has an integrated USB controller and 2.4GHz RF transceiver. The micro controller is based on Intels old 8051 architecture.
I did not buy it to try and program an 8051 arch micro controller, I’m sticking to Arduino 🙂 The reason I bought these modules is that Pololu has made some nice software and scripts for them. I especially bought them because it is possible to upload Arduino sketches over a wireless link with a pair of Wixel modules. You can also use the Arduino serial monitor over the wireless link. Which is very handy when you are debugging a robot that is driving around.
Pololu has written an extensive user guide for the Wixel modules, you can find it here. I wanted to connect the Wixel module to one of my own Bajduinos to try them out. I started by installing the Pololu Wixel configuration utility. I did not have to install any modules or drivers on my GNU/Linux workstation. The Wixel configuration utility allows you to upload software to the Wixel module over USB. I installed the wireless-serial-v1.3 script to both modules. This script turns the Wixel modules in a wireless serial link. I needed to change one setting to make them work with my ATmega1284 based Bajduino. The default baud rate is set at 9600, I changed this to 115200 as I’m using an optiboot bootloader on my ATmega1284 boards.
After uploading the wireless serial program I connected the Wixel to my computer over USB. It showed up in the Arduino IDE as a new serial device.
I then connected the other Wixel to my Bajduino. I had to go through the Wixel user guide a couple of times to find the right connections. The Wixel is a 3V3 device so I used a cheap level converter to convert the serial signals to the right voltage. I powered the Wixel through the Vin pin with 5V from my Bajduino. There is a 3V3 voltage regulator on the Wixel.
Connections for Wixel to my Bajduino:
Pin P1_6 (RX) to TX on the Bajduino via level shifter
Pin P1_7 (TX) to RX on the Bajduino via level shifter
GND to GND
Vin to 5V
P0_0 to DTR pin on Bajduino
I’ve now tried out the Wixels with an ATmega1284 and an ATmega328. Uploading Arduino sketches has never been that easy 🙂 You can have a robot that’s driving around with a Wixel module and just sent it a new Arduino sketch over the wireless link.
Hi, Thanks for Blogging. By reading your Wixel experience you are taking the intimidation out of the RF devices.
Did you know that you could directly link your Wixel Tx to the Arduino Rx and then use a simple voltage divider as the cheaper level converter from the Arduino Tx (5V) pin to the Wixel Rx (3.3V) pin? I just learned about this today for BT devices and then read the same configuration setup on the Pololu instructions for your Wixel. See: http://www.pololu.com/docs/0J46/5.b
Wouldn’t this be good enough?
I prefer to use the level converter as its much easier to connect then fiddling with a couple of resistors. I’ve done that before to connect a HC05 bluetooth module to an ATmega: http://www.bajdi.com/bluetooth-remote-control/
I’ve been struggling to get wireless sketch uploading (to a Nano) working and I just kept getting that sdk500 out-of synch message. My ‘scope was defunct so I was working in the dark. Finally got the scope working today and could see an apparent conflict of levels in the serial signals. Looked at the Pololu site and noticed a difference in function of P1.6 and P1.7 compared with your wiring table. Swapped ’em – it now works! But thanks for providing the groundwork because without your article I wouldn’t have got started.