IO-Repeater App Sending Strings

Does the io_repeater app only send digital data? I’m asking because I need to extend the range of an app I’m writing that sends strings from a PC through a Wixel to a remote Wixel that sits on an Arduino that displays the string on an LCD. I have this all working using the wireless serial app, but the range is too short. Here is the dataflow:

  • A message is sent from a PC connected to a Wixel (the “local” Wixel).
  • The “local” Wixel sends the message to another Wixel (the “remote” Wixel – mounted at the front door. The “remote” Wixel is attached to an Arduino UNO with the Wixel Shield.)
  • The “remote” Wixel sends the data to its attached Arduino and the Arduino displays the message on an LCD.

If the answer to my question is yes, I’ll probably need to have two Wixels at a midpoint in my house. What about the following scenario:

  • A message is sent from a PC connected to a Wixel (the “local” Wixel).
  • The “local” Wixel sends the message to another Wixel (the “receiver” Wixel) mounted half-way between the PC and the front door.
  • The “receiver” Wixel somehow sends the message to another Wixel ( the “forwarder” Wixel) mounted next to the “receiver” Wixel.
  • The “forwarder” Wixel sends the message to anotherWixel ( the “remote” Wixel – mounted at the front door. The “remote” Wixel is attached to an Arduino UNO with the Wixel Shield.)
  • The “remote” Wixel sends the data to its attached Arduino and the Arduino displays the message on an LCD.

I think this would work, but I have no clue how the two half-way mounted Wixels could share the message. Any help will be appreciated.

Hello.

Your proposed plan to use two Wixels at the midpoint of your house should work. However, you will probably want to use the Wireless Serial App for both Wixels. The IO Repeater App is only suitable for very low-speed digital signals. With both Wixel pairs running the Wireless Serial App, you will want to connect the TX and RX pins of the first receiver to the RX and TX pins of the second transmitter, respectively. Each pair of Wixels will also have to be running on different channels.

- Jeremy

Thanks, Jeremy for your swift reply. I guess you are saying yes to my first question: That you can’t send strings with the io_repeater app, correct?

You might be able to find a way to send strings through the I/O Repeater App using a clever protocol, but it is probably not practical or recommended.

- Jeremy

Jeremy,

I guess I should have asked my question this way: “One would have to heavily modify the io_repeater app to be able to send strings, correct?”

The reason I’m being picky about this is because there seems to be lots of advice given on this forum about extending the range of a Wixel – yet there hasn’t been any emphasis that the advice is talking about digital I/O and not anything else. To me, the documentation and advice seems to be a little evasive on this subject. Either that, or my reading-for-comprehension skills are failing me faster that I realize! :wink: I sincerely apologize if the case is the latter. I sincerely recommend some updates to the documentation if the case is the former.

Again, I appreciate your speedy reply and your confirmation of what I can try to do to fix my problem. The Wixel and Pololu still rock.

Sincerely,

Keith E. Cooper

Hello, Keith.

The answer to your question is yes.

Have you seen the “Ensuring a Good Radio Signal” section in the Wixel User’s Guide? That section is all about the Wixel’s radio, and it applies to any Wixel app that uses the radio. It applies to both the I/O Repeater App and the Wireless Serial App. I think that most of the advice you have seen on this forum about extending the Wixel’s range is similar in that it talks about extending the range of the Wixel’s radio, not the reach of its I/O lines.

I suspect you are getting confused by the introductory sentence for the I/O Repeater App in the user’s guide:

I would like to explain the background behind that sentence. I/O pins on a microcontroller typically have a hard time sending signals through wires that are more than 5-10 feet long. The point of the I/O Repeater App is that if you have a microcontroller with a digital output and you want it to control something with a digital input on the other side of the room, you might consider using the Wixel. A pair of Wixels running the I/O Repeater App effectively extends the reach of your microcontroller’s I/O lines by using the Wixel’s radio.

The I/O Repeater App is not a general tool for extending things. It is just for simple, low-speed, digital I/O signals. It is not suitable for extending the reach of a wireless serial link made with a pair of Wixels like yours that are running the Wireless Serial App. There is nothing special about the I/O Repeater App’s use of the radio that allows it to have extra range or anything like that; it uses the same radio settings as all the other apps.

To extend the reach of your wireless serial link, I recommend that you follow Jeremy’s suggestion and simply put two wireless serial links in series with eachother, on different channels. You would use one wireless link to connect your PC to a midpoint and use another wireless link to connect the midpoint to the Arduino at the door.

This sounds like an interesting project, so please post some pictures on the forum when you are finished!

–David

David,

Thanks for the clarification and the explanation about the I/O Repeater App. You are right: I was getting hung-up on the word “extending” and then jumping ahead without fully understanding the documentation. I’m hopeful that this thread will help others who are looking for a similar solution, or have similar questions.

I also appreciate Jeremy’s responses and suggestions. I hope to find the time during this upcoming three-day weekend to do some testing on his solution.

I will post pictures when I get it all working.

Thanks again, both of you!

Sincerely,

Keith E. Cooper