Funky v1

Revision for “Funky v1” created on August 12, 2013 @ 14:59:11

Funky v1
The 'Funky' Sensor is a miniature <a href="" target="_blank">ATTiny84</a> based node with a <a href="" target="_blank">RFM12b</a> module for wireless communications.  It was <a href="" target="_blank">originally created</a> by <a href="" target="_blank">Tobias Floery</a>, and inspired by Jeelab's <a href="" target="_blank">JeeNode Micro</a>. I was <a title="Stamp sized ATtiny84 remote sensor" href="" target="_blank">quite impressed</a> by the small size and usability of the device and asked Tobias for <a href="" target="_blank">permission </a>to copy and develop further a version of my own. My revisions include <ul> <li>Added voltage step-up circuit based on the <a href="" target="_blank">LTC3525 </a>boost regulator chip , the exact same as the one found on <a href="" target="_blank">Jeelab's AA power board</a>.</li> <li>Removed the battery voltage sensing circuitry as it can be achieved using the <a href="" target="_blank">bandgap method</a></li> <li>Added micro-USB plug, so that the node can be powered from there (only power function, no USB communication). The voltage regulator is retained, so alternatively the Funky can be powered from a source up to 7.5V</li> <li>I added provision for a 4.7K or 10K between pads 4 and 5 on the Funky, that will allow directly soldering <a title="Measuring humidity and temperature with DHT22 and Funky" href="">DHT22</a> humidity+temperature or <a title="Funky as remote temperature sensing node with DS18B20" href="" target="_blank">DS18B20</a> temperature sensors (or any other sensor that uses three pins and requires pull-up on the data line).</li> <li><a title="Clocking the Funky sensor from RFM12B’s crystal" href="" target="_blank">The RFM12b clock out pin is connected to ATTiny's CLKI pin,</a> providing possibility for using RFM's 10Mhz crystal for clocking. This required changing the LED pin.</li> </ul> The board measures 23 x 23.4 mm in size. I use the "flat crystal" version of the RFM12b module to keep it low-profile and to allow the optional CR2032 battery holder to be soldered on either side. The latest Eagle design files are available <a href="" target="_blank">here</a>. <a href=""><img class="alignnone size-large wp-image-863" title="super_funky_sch" alt="" src="" width="584" height="399" /></a> <a href=""><img class="alignnone size-large wp-image-862" title="super_funky_brd" alt="" src="" width="584" height="655" /></a> <a href=""><img class="alignnone size-full wp-image-930" alt="IMG_1579" src="" width="4000" height="3000" /></a> <strong>Building it</strong> Because of its miniature size, I only offer pre-built Funky sensors in the <a href="">store</a>. <strong>Programming the Funky</strong> You need to set-up the Arduino IDE for use with ATTiny processors. I have shared my experience in this <a title="Setting up Arduino IDE for working with Attinys" href="">post</a>. My already configured Arduino IDE 1.0.1 for Windows is available for download <a href="">here</a>. You need a six pin ISP programmer to program the Funky. I own a clone of the <a href="">USBTiny</a> programmer, these are widely available on ebay and cost less than 10 dollars delivered. <strong>Note</strong>: The Funky is a 3.3V device, and the RFM12b module cannot withstand more than 3.6V. When programming the Funky, make sure you don't supply 5V thru the ISP programmer, or the RFM12b module will most likely be burned. The USBTiny programmer has a jumper on it that when removed, does not provide power to the ISP connector. You still have to provide 3.3V from other source so that the Funky can be programmed. You need 6 pin ISP connector to program the Funky. The PCB is 1.60mm thick, while a 2x3 pin header has 2mm spacing. It requires a small bending to make better contact, use pliers to apply minimal pressure to the pins so they make better contact:<a href=""><img class="alignnone size-large wp-image-865" title="IMG_1540" alt="" src="" width="584" height="297" /></a> <a href=""><img class="alignnone size-large wp-image-864" title="IMG_1541" alt="" src="" width="584" height="403" /></a> <a href=""><img class="alignnone size-large wp-image-867" title="IMG_1544" alt="" src="" width="584" height="458" /></a> Prior to uploading a sketch, make sure you have set the correct fuses. I recommend running the Funky on the Internal Oscillator at 8 Mhz, because 1Mhz is not enough for sending/receiving  RFM12B packets. Setting the fuses is done by selecting the appropriate desired option and then pressing "burn bootloader". This doesn't really burn a bootloader, only sets the correct fuses for this type of board. You only need to to this once, fuse settings are then "remembered"; Since I ship the Funkys already pre-programmed with a test sketch, I have already set the fuses to 8Mhz BOD disabled for you. <a href=""><img class="alignnone size-full wp-image-871" title="attiny_fuses" alt="" src="" width="707" height="301" /></a> You can run the Funky on RFM12b's crystal @ 10Mhz as described <a title="Clocking the Funky sensor from RFM12B’s crystal" href="">here</a>, but only do this if you absolutely know what you are doing because you may end up with unresponsive Funky. I ship the Funky Sensors with the <a title="Using ATtiny 84′s internal temperature sensor" href="">"Internal Temperature sensor" sketch</a> uploaded, it allows me to test the MCU and RFM module easily. <strong>Example usage</strong> <div>Check my blog categories for <a href="" target="_blank">TinySensor</a> and <a href="" target="_blank">Funky</a>, since they are both ATTiny84 based, the code will work on both.</div> Examples on <a href="" target="_blank">github</a> Pads on the Funky: <div>Pad 1 on Funky is VCC (this is the pad that is closest to the antenna)</div> <div>Pad 2 is Analog 1 or digital 9</div> <div>Pad 3 is Analog 2 or digital 8</div> <div>Pad 4 is Analog 3 or digital 7</div> <div>Pad 5 is Anaog 7 or digital 3</div> <div>Pad 6 is GND</div> &nbsp;

OldNewDate CreatedAuthorActions
August 12, 2013 @ 14:59:11 Martin
April 19, 2013 @ 13:03:06 Martin
April 19, 2013 @ 13:02:40 [Autosave] Martin
January 16, 2013 @ 14:21:19 Martin
January 16, 2013 @ 13:59:56 Martin
January 16, 2013 @ 13:59:42 Martin
December 22, 2012 @ 11:58:05 Martin
November 1, 2012 @ 19:50:51 Martin
October 24, 2012 @ 09:05:40 Martin
October 8, 2012 @ 20:36:37 Martin
October 8, 2012 @ 20:13:56 Martin
October 8, 2012 @ 20:00:34 Martin
October 8, 2012 @ 15:54:25 Martin
October 8, 2012 @ 15:42:24 Martin
October 8, 2012 @ 15:42:22 Martin
October 8, 2012 @ 15:36:26 Martin
October 8, 2012 @ 15:35:26 Martin