Jump to content
xv4y

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

Recommended Posts

Hi!

 

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 :

http://xv4y.radioclub.asia/2013/01/09/librairie-virtualwire-1-10-pour-le-msp430/

 

The original documentation applies :

http://www.open.com.au/mikem/arduino/VirtualWire.pdf

http://www.open.com.au/mikem/arduino/

 

Yan.

Share this post


Link to post
Share on other sites

When I started contributing to the Energia project this is the kind of end result I envisioned. Many users building on a common platform and everyone benefiting. I'm happy you were able to get this going. One less thing I will have to write for myself!

 

Thanks for sharing!

 

-rick

Share this post


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.

 

Yan.

Share this post


Link to post
Share on other sites

Hi,

Version 1.12, the code no compiles:

 

 

 

C:\energia\hardware\msp430\libraries\VirtualWire\VirtualWire.cpp:32:24: fatal error: util/crc16.h: No such file or directory
compilation terminated.

 

Share this post


Link to post
Share on other sites

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...

 

Yan.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 :-(

 


 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×