rfm12


I’ve been playing around with the Arduino Diecimila and the ATMEGA168 over the last couple of weeks to better familiarise myself with the AVR ATMega168 MCU, I’ve been using PICs on and off the last few years, but the decision was made to use the ATMEGA as the MCU of choice for the Strobit Triggr project, mainly due to the open source tool chains available, and the simply programmer required.

In short I’m glad I’ve made the switch and I must say I’m loving the learning experience.  I’ve moved from the Arduino software development platform as I found it very limiting and am now using the open source avr-gcc (win-avr) and Eclipse, using the AVR plugin and CDT plugin as my development platform of choice, I’m comfortable with eclipse as my editor as I’ve been using this for my Java development for the last 5 or so years.

As a task I set for myself to learn the onboard peripherals,  I’ve created a Weather Shield for the Arduino, so far it has the RFM12B RF module, DS1307 RTC, HH10D Humidity Sensor, a HP03D, combined barometric pressure and temperature sensor, and soon to have a light sensor and Dallas 1-Wire interface for talking to the Dallas Weather Station that I’ve had lying around in a box for the last 10 years, (yes one of the original ones released by Dallas in 1998, I’ve been waiting to move in my house for a long time),  I’ll post the weather shield design up on a separate topic later, but suffice to say, I’ve enjoyed playing with the SPI, I2C, ICP, UART and onboard timers.

IMG_8204.JPGAll the design files and software are now available online for Jan Gentschs M8 Triggr Implementation.

Files can be found here.

During the prototyping of the StrobIt Triggr, I found that I could only hit the maximum bit rate of approx 12000bps, this is a far cry from the reported 256Kbps, so what was I doing wrong?

(more…)

Well my new tool, a LogicPort Logic analyser from http://www.pctestinstruments.com/index.htm, arrived last week whilst in the middle of our house move and I’ve been itching to try it out, well last night I made time to play with it.  The result is, man I wish I had one of these beasts earlier.

(more…)

Part 2 - RFM12 Hardware Interface

In this next part of the RFM12 tutorials I’ll be covering the hardware interface, signal descriptions and how you go about hooking it up to the MCU of your choice.

 

(more…)

IMG_8198.JPG, originally uploaded by jgentsch.

The first StrobIt Triggr seen in the Wild!

Jan has made a neat and well packaged version of the StrobIt Triggr. Based on the AtMega8 it runs from a single AA battery. Well done Jan!!!

Ok I have finally had a little bit of time to work on things (will be short lived as I’ve just bought a house and moving in the next couple of weeks Aghh!!).

Things are getting very close to reality after many design changes, the very nearly final Strobit Trigger base board, aka a modified Ardiuno BT board, with the Bluetooth removed and now fitted with the RFM12B SMD Tranceiver module and an external SMA antenna connector. The Eagle 3D side of things still needs work as some components are not shown and the inductor for the DC-DC converter is incorrect, but you get the basic idea right!

Why have I gone to a non-dedicated trigger board?

Well a couple of reasons, initially to cover myself from any patent issues that might have arrisen had I used a dedicated wireless triggering device, but mainly to allow better expandability. Why have a dedicated trigger with all the fruit and only use half of it, this way dedicated boards can be used, i.e. standard trigger, or sound/light trigger, sequences etc. Another reason is that the Ardruino is very well established and supported in the open source community, especially when it comes to the firmware libraries etc, it’s already been done. also I can use these in my robotics hobby as well, not just for photography.

Ok onto the board features:

  • Fairly compact same size as ArduinoBT
  • Standard Arduino Pin headers, so should be able to use with existing shields.
  • Will operate from as low as 1.2V, so should work from x1 NIMH AA easily enough.
  • RFM12 Tranceiver, up to 300m range (as per datasheets, although it does depend on the datarate)
  • SMA connector so you can connect an external antenna for better reliability and range, or remove the SMA connector and use a piece of wire as the antenna.

What is left to do?

  • Well the design is pretty well done, I want to get some prototypes made so I will be sending it off very shortly for fabrication.
  • Different variations of shields need to be done, first one being stock standard strobe type of triggr, input and outputs, then others as needed

Due to the number of requests for help in getting a link operation with the RFM12 tranceiver, I’ve set up a dedicated topic on the forums.  http://forums.everythingrobotics.com/index.php. Please post any cries for help there, that way no information is lost in the comments of my blog or my email inbox :)

During the development of the StrobIt Open Trigger Project I’ve been using the HopeRF RFM12B Tranceiver as the RF module. The learning curve was fairly steep so I’ve decided to create a series of How-To articles so that others can easily get the module up and running fairly quickly for their project of choice. So far I’ve already slated these for use in a few other projects around the house, both robotics, home control and weather station related.

(more…)

Well I finished the two prototype boards tonight with some minor changes and a bit of troubleshooting, still lots to do though.  I now have them triggering.  Will be testing further over the next few days to get indication of range etc.  So far it is only syncing at 1/100.  I will be posting more details , schematics, firmware etc as well as I get time.

Strobit Triggr fires up for first time

What did I say in my last entry about murphys law and my RFM12 header boards?  Guess what arrived in the post today lol…..

After a hectic and very hot Christmas (41DegC) I managed to get some development time and finished 2 prototype boards.  My RFM12 header boards still have not arrived, caught up in the christmas mail I guess :(  So I’ve had to resort to hand soldering some wires to the header in the meantime. (Murphys law suggests that as soon as I finish soldering these headers the breakout boards will arrive in the mail)

Tomorrow/Later tonight I will test both of them and see if I can get a remote trigger happening woohoo.

Sorry about the quality of the photos as they were taken with my phone :(

Strobit Triggr PrototypeRFM12 HeaderRFM12 Header SolderedRFM Development

Unfortunately development has ground to a halt for me. 

Whilst repartitioning my laptop to give my system drive some more space (I REALLY dislike the default DELL partitioning of 20GB for c: and the rest for d:), I lost my development drive (and the rest of my data drive as well) with all my recent work on it, like the latest pcb I finished yesterday.  Luckily I have most of it backed up, however murphys law now comes into play and some of it was not. 

To cut a long store short I’ve had to resort to lowlevel recovery of my files, which at this point looks like I’ll recover 100% of my data…phew, but its slow work doing sector level file recovery of a 140GB worth of data!

On a brighter side, just received a shipping notice from batchpcb that my first lot of header boards for the RFM12 has been shipped, I’m hoping that they arrives before Christmas so I can play with them over the break.  My 2×6 2mm headers also arrived earlier this week.

I’m pleased to announce the very ALPHA release of the RFM12 library for the wireless HopeRF RFM12 FSK tranceiver module that I’m using for the strobist open trigger project.  It was developed under BOOSTC for the PIC embedded controller, but should be easily ported to any compiler.

Most of it is untested, hence the alpha release, but it’s a good starting point.  Everything is fairly well documented, but like any project could do with more.   Please send me any bug fixes/improvements that you may find while using it.

Download:  rfm12-0_1a.zip 

Features:

  • 433Mhz and 915Mhz HopeRF FSK RFM12 modules supported
  • Initialisation with a basic config
  • Set Frequency
  • Set Receiver Bandwidth
  • Set Receiver Gain
  • Set Receiver Signal Strength Indicator Level (RSSI)
  • Set Transmit Power level
  • Set Transmit Modulation
  • Set Baud rate
  • Enable/Disable Transmitter
  • Enable/Disable Receiver
  • Transmit a single byte - blocking
  • Transmit a buffer of data - blocking
  • Receive single byte - blocking with timeout
  • Receive ‘x’ number of bytes into buffer - blocking with timout

 TODO:  (not in any order)

  • Testing
  • Howto documentation
  • RFM12 Interrupt handling 
  • Non-blocking Tx/Rx routines
  • MSSP SPI implementation (current SPI implemented via bit bang)
  • Frequency hopping
  • Custom configurations

License:

Released under the Creative Commons - Attribution-Noncommercial-Share Alike

Disclaimer:

Please use this library at your own risk.  I will not be held liable for any damages.