new wireless comms module


I have built a new VirtualWire library which can be used to send and receive messages with inexpensive wireless transmitters/receivers/transceivers such as the RxB1, TxC1, DR3100 at 433.92MHz (you can easily get these for under 10$ here in Australia).

Anyone want to test it?

How can I get this library added to the unofficial libraries page?


Soudns good.

Did you get a pair for $10, or $10 each end? Any sources besides Jaycar and Altronics?


Hi Alex, I got the RxB1 receiver and TxC1 transmitter from Jaycar $9.95 each. The DR3100 transceiver was from Rockby $9.70 each

You should post the library on your website or the Arduino playground. You can create an account for the playground here:

Thanks for the tip.

Have added info about VirtualWire to

Feedback invited

Wow, that's a very professional document! And it looks like quite a useful library.

Have you considered making the API more "Arduino-like"? That is, wrapping up the functions inside of a class with a pre-instantiated instance (VirtualWire) that people can call methods on? And giving the methods names that are more consistent with those in the other libraries (e.g. begin(), read(), write(), available())? That might make it easier to use for Arduino people.


Yes, I have considered an OO interface. The next installment is expected to add an OO styled layer to provide reliable (ie with automatic retransmissions), acknowledged message delivery. That should have more arduino-like naming conventions where appropriate.

Added some photos to the documentation at

I see that Rockby ( have the DR3100s on special for $6 each at the moment.

Would something like be suitable to use with the virtualwire library?

Hello, Im not familiar with that device, but it looks like it encodes and transmits 8 bit data. Very nice, but VirtualWire is intended for single-bit input and output transceivers. So I would say no.

It looks like a nice device though, good for parallel data. Could be used with Arduino, though not with the VirtualWire library.


@mikem: Thanks for the info. I'm not brave enough to go it alone yet, so I'm going to try to get some experience via the virtualwire library first :) I'm still very much a noob.

Does anyone know anywhere in the UK which sells RxB1 receivers and TxC1 transmitters?

Mike, this is a significant new module! I have the RLP434 and TLP434 and have not never able to get reliable/solid communication until now. I don't know if I had a particular fussy set of modules or it was something else, but I spent many hours on it. I had tried the Holtek HT-12E/HT-12D route, and various other encodings with only partial success until now. Your VirtualWire library is not only the simplest solution hardware-wise, it seems to work the best for me.

One small item in the library. When I run it on a atmega8 based arduino I get a TIMSK1 undeclared. I believe this notation is only valid on the atmega168. I changed it to TIMSK in VirtualWire.cpp and it compiled and ran fine. I suspect you just need to wrap in it in a processor compile-time check.

Thanks again! I'll look forward to the OO version!



thanks for the feedback. I have fixed that compile problem for atmega8 and uploaded a new version to


Hi MikeM

Thanks for posting the VirtualWire libary it looks fantastic. I am having a few problems compiling it, but I am sure this is an IDE problem and not VirtualWire.

Which IDE do you use for the ATMEGA 168 Arduino

I am using Arduino 0012 Alpha IDE, I copied the Virtual Wire Library to


then opened the client.pde

when i try and compile I get the following error:

(see next post for image) -------->

(as this is my first post I could only post an image in my second post)

Thanks in advance


I found this post

and added the extra lines under virtualwire.h and it now compiles :slight_smile:

#include <VirtualWire.h>
#undef int
#undef abs
#undef double
#undef float
#undef round



Hi, when I use VirtualWire it seems to be throwing off the execution of the loop() function. If I throw in a delay(300), the function just starts over again at the top. Is this something I can fix? Thanks in advance.

Found out that gcc-avr version 4.3.0 breaks this library. Upgrading to 4.3.2 fixed the problem. Amazing module! Have you considered making store and forward? This could be like the $10 XBee!

Did anyone succesfully run it 0014 or 0013? It does 'crash' every time it reaches the setup for me (using a 328)...