Extend the IO app to include Paring ID

Hi All, I want to use two Wixels for something fairly simple. My programming skills for Wizel is near nothing… What I’m tring to do is extend the Remote I/O app so that two Wixels are paired by ID. I want to do this by adding another configuration parmeter that can hold a Wixel ID (* This would be the ID of the OTHER Wizel in the pair).

In short… I want the receiving Wixel to compair the ID of the sending Wixel to the Paired ID held in it’s parameters. If the ID is the same, Process the I/O command. Otherwise, Ignore it.

By adding this check it would make a pair of Wixels a unique pair. If another Wixel (outside the pair) were to transmit an I/O command on the same frequency the commands would be ignored by the first pair.

So to do this I need to know how to do the following…

1.) Get the Wixel UID from code.
2.) Send the Wixel UID in the Tx message (Sender)
3.) Retreive the UID from the Rx message (Reciever)
4.) (Reciever) Compair the Rx UID with it’s partner ID (held as a parameter that was set when the app was loaded) and if different, do not process the I/O command.
5.) I also want to invert the I/O. I want the slaves output to turn on when the masters pin is pulled down.

Hope this makes sence…

PS: I do not want to simply use another channel. I have my design reasons for this.

Tim

Hello, Tim.

Have you checked out the link ID parameters which are documented in the “I/O Repeater App” section of the Wixel User’s Guide? You should be able to accomplish what you are asking for by just using different link IDs for different pairs of Wixels. It just requires a little more typing than what you are asking for.

For example:

Wixel 1 has an input with link ID -1.
Wixel 2 has an output with link ID 1.
Wixel 3 has an input with link ID -11.
Wixel 4 has an output with link ID 11.

Inverting the I/O would require adding an inverter somewhere in the system or modifying the Wixel code. If you are able to compile Wixel apps, I could point you to the line you need to modify.

–David

Hi David,

Since I’ve posted this question I’ve accomplished the following…
1.) Set up eclipse with the wixel-sdk
2.) Found the post that describes how to invert the output pin signal of the I/O app
3.) Modified the pin putput code, compiled and loaded a copy of the I/O app

I thank you for your quick response and your suggestion on using unique ID’s will work… I will use that approach for now. I do however want to learn HOW to program the Wixel. So I may still shoot to do this same project in another way, simply so I can learn…

I have some experience in programming the mbed, so I’m surprised to be struggling with the Wixel as much as I am. I tend to lean toward serial communication to send textual comands back and forth, then take actions on those commands. So I’ve been looking at the “wireless serial” app too… Is there a really basic serial app example out there? Or is the “wireless serial” example as basic as it gets…

I basicially want a serial app that does the following…

1.) Any serial string recieved from the computer gets broadcast out via radio.
2.) Any serial string received by radio gets transmitted to the computer.

On characters coming in I want to use a delimiter “;” to mark the each of a message. Then load each message into a Queue. I would then have another routine processing the messages in the Queue…

Thanks again for the quick and thoughtful response… Much appreciated.

Best Regards

Tim

I am glad you were able to figure it out.

For the serial project you mentioned, I would recommend using an unmodified version of the wireless serial app for the Wixel that is connected to the computer. That Wixel doesn’t actually have to know anything about the delimiters or the protocol being used.

Then for the other Wixel, you should check out the Shiftbrite app we provide, which is documented in the Wixel User’s Guide. That would be a good starting point. That app already has a command format defined and you could change the delimiter to be whatever you want.

–David

I’ve finally got this working… I ended up merging parts of the IO and Radio sniffer app and then boiling it down to just what I need… So the result is that you can define a master and slave relationship. You can even define a slave of a slave or have mutiple slaves to a single master… More then I need for what I’m doing but that is the result…

I am glad you were able to get your app working! --David

Thank you for your help David. Much appreciated. Your contributions make Pololu a great resourse…

Best Regards and have a Happy Holiday…

Tim