Jump to content

[Energia Library] VirtualWire 1.10 library ported to MSP430/Energia

Recommended Posts



I am proud to share with you the result of my work during this afternoon.

This code is some kind of beta as I have not tested everything.

I have done a successful communication between a MSP430G2452 driving a cheap 433 Mhz transmitter to a Arduino Nano listening the receiver.

I have not tested the client/server examples but I will try it soon with some 2,4GHz modules I have.

The code compiles on both MSP430G2452 and MSP430G2553 but the latter has not been tested.


Apart from understanding what was done by the code, my work has been to change the timer and interrupts codes from AVR to MSP430, and to port the crc16.h AVR/libc library to Energia (mostly rewriting no real coding).


Comments are welcome of course.

I will try to make the same code working on both Arduino and Energia/MSP430 later.


The link to download is at the bottom of this blog article :



The original documentation applies :





Link to post
Share on other sites

Hi Rick,


Thanks for this comment.

I am happy too ;-) That was more than 10 years I have not been really working with micro-controlers.

Now they are far more powerful and that gives a lot of flexibility.

For me, Arduino has really changed the deal because you can now mix low level and high level programming allowing both new-comers and experimented developers to do interesting things together.

Energia is a great project first because the MSP430 has its own advantages in some applications in front of the AVR. Now making it working also on Stellaris will sure make more community projects (including Arduino, Arduino Due, MSP430, Stellaris...) even more fruitful.


About sharing, well since this code was in GPL I had no choice ;-)

However I think working on an open platform one should contribute to the community.

I will not publish all my codes, but as much as I can will try to do it for the libraries I will be working on in my projects.



Link to post
Share on other sites
  • 2 weeks later...

Hi demon 1977 (great year),


Perhaps the author forgot to include my port of the crc16.h library. Try to download my first version of the VirtualWire library (the first link on the first post here above). You will find the util directory you can copy in the library directory.

If this not work either, try to use my library as this one is tested...



Link to post
Share on other sites
  • 3 weeks later...

Hello there,


first of all, many thanks for your fantastic work, I have downloaded and installed latest version of VirtualWire library 1.14 et when trying to compile with Energia 009 I get the following errors:

..\VirtualWire.cpp:568:7: error: expected constructor, destructor, or type conversion before '(' token
..\VirtualWire.cpp:648:1: error: expected '}' at end of input


Any advices?

Thanks in advance

Link to post
Share on other sites
  • 1 month later...

Hi. Thanks :smile:


Its compiles and run on msp430g2553 :smile:


Except on msp430g2452 i get:


core.a(TimerSerial.cpp.o): In function `TimerSerial__TxIsr':
/home/warend/energia-0101E0009/hardware/msp430/cores/msp430/TimerSerial.cpp:213: multiple definition of `__isr_9'
VirtualWire/VirtualWire.cpp.o:VirtualWire.cpp:(.text.Timer_A_int+0x0): first defined here
collect2: ld returned 1 exit status


This error maybe because 2452 have only one timer ???


I buy many msp430g2452 chips, and cheap rf 315mhz from ebay: and now tray to compile virtualwire for my projects :-(



Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...