{"id":509,"date":"2015-06-29T21:14:15","date_gmt":"2015-06-29T20:14:15","guid":{"rendered":"http:\/\/www.sevenwatt.com\/main\/?p=509"},"modified":"2016-01-10T14:17:28","modified_gmt":"2016-01-10T13:17:28","slug":"rfm69-ook-compare-rssi-on-stm32-lpc824-and-jeelink","status":"publish","type":"post","link":"https:\/\/www.sevenwatt.com\/main\/rfm69-ook-compare-rssi-on-stm32-lpc824-and-jeelink\/","title":{"rendered":"RFM69 OOK compare RSSI on STM32 LPC824 and JeeLink"},"content":{"rendered":"<p>The RFM69 contains internal calibration features for the receive circuitry. So in theory different RFM69 receivers should have comparable noise levels as well as comparable signal levels provided the antenna design is the same, and also the antenna positioning is comparable for the receivers. Now lets put this theory to the test.<!--more--><\/p>\n<p>Three different receivers were constructed, a Nucleo STM32F103, a LPC824 and a JeeLink V3C with an AtMega (Arduino compatible). The transmitter is an LPC812+RFM69, simulating a FS20 signal at 868.28MHZ every 5 seconds. The receiving SW logs various numbers, such as a millisecond timestamp, an interval between the last series of transmissions (read 5 seconds), an interval between each of the three packets in a train (around 60 ms) and <em>88400031214C<\/em> is the transmitted FS20 code.<br \/>\nThe interesting part is however the final two numbers in brackets. Those are raw RSSI numbers, measured during the OOK train.<br \/>\nThe first is the RawRSSI level during an OFF transmission, the noise level. The second is during the ON level. To convert them to RSSI, the following formula can be applied:<\/p>\n<blockquote><p>RSSI (in dBm) = (RawRSSI-256) \/ 2<\/p><\/blockquote>\n<p>The following three screenshots show the outputs of the signal reception logging simultaneously for the three receivers:<\/p>\n<h4>Nucleo STM32F103<\/h4>\n<p><a href=\"\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-NucleoSTM32.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-517\" src=\"\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-NucleoSTM32.png\" alt=\"Compare OOK weak NucleoSTM32\" width=\"494\" height=\"426\" srcset=\"https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-NucleoSTM32.png 494w, https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-NucleoSTM32-300x259.png 300w\" sizes=\"auto, (max-width: 494px) 100vw, 494px\" \/><\/a><\/p>\n<h5>LPC824<\/h5>\n<h5><a href=\"\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-LPC824.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-513\" src=\"\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-LPC824.png\" alt=\"Compare OOK weak LPC824\" width=\"485\" height=\"426\" srcset=\"https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-LPC824.png 485w, https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-LPC824-300x264.png 300w\" sizes=\"auto, (max-width: 485px) 100vw, 485px\" \/><\/a><\/h5>\n<h5>JeeLink V3C<\/h5>\n<h5><a href=\"\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-JeeLink.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-512\" src=\"\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-JeeLink.png\" alt=\"Compare OOK weak JeeLink\" width=\"550\" height=\"427\" srcset=\"https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-JeeLink.png 550w, https:\/\/www.sevenwatt.com\/main\/wp-content\/uploads\/2015\/06\/Compare-OOK-weak-JeeLink-300x233.png 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/h5>\n<p>For all three receivers, noise levels are around 58\/59 which is -99dBm.<br \/>\nsignal-ON levels are around 88, which is -84dBm<\/p>\n<p>There is a slight variation between receivers. The LPC824 seems to have the lowest noise floor. Antenna&#8217;s were quite identical being a 86mm quarter wavelength wire.<\/p>\n<blockquote><p>It is confirmed that RSSi levels compare well across different RFM69&#8217;s<\/p><\/blockquote>\n<h2>Bonus<\/h2>\n<p>What does this mean:<br \/>\n<code>RSSI:  47(v 77-s  9-m129) THD:fix\/peak\/maxp:65\/65\/117<\/code><br \/>\nThe receiver program samples the RSSI levels every millisecond, and calculates statistics every 10 seconds.<br \/>\n<code>RSSI: 47<\/code> avarege RawRSSI<br \/>\n<code>(v 77-s  9-m129)<\/code> v = variance, s = standard deviation, m = maximum of RawRSSI<br \/>\n<code>THD:<\/code> OOK-thresholding (bit-slicing between ON and OFF):<br \/>\n<code>THD:fix\/peak\/maxp:65\/65\/117<\/code> fix &#8211; the minimum value of the slice threshold, some dB above noise floor.<br \/>\n<code>THD:fix\/peak\/maxp:65\/65\/117<\/code> peak\/maxp &#8211; SW simulation of the PEAK-threshold of the RFM69. Current and maximum.<\/p>\n<p>The receiver code (LPC824) can be found in github: <a href=\"https:\/\/github.com\/SevenW\/embapps\/tree\/master\/embapps\/rf-ook\" target=\"_blank\">https:\/\/github.com\/SevenW\/embapps\/tree\/master\/embapps\/rf-ook<\/a><br \/>\ntransmitter code, as well as Arduino\/JeeLib\/Jeelink code can be found in the same repo in different folders.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The RFM69 contains internal calibration features for the receive circuitry. So in theory different RFM69 receivers should have comparable noise levels as well as comparable signal levels provided the antenna design is the same, and also the antenna positioning is comparable for the receivers. Now lets put this theory to the test.<\/p>\n","protected":false},"author":1,"featured_media":515,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[12,7,15],"tags":[38,45,28,48,47,33,58,43,46],"class_list":["post-509","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jeenode","category-ook","category-rfm69","tag-jeelib","tag-jeelink","tag-jeenode","tag-lpc812","tag-lpc824","tag-nucleo","tag-ook","tag-rssi","tag-stm32"],"_links":{"self":[{"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/posts\/509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/comments?post=509"}],"version-history":[{"count":9,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/posts\/509\/revisions"}],"predecessor-version":[{"id":589,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/posts\/509\/revisions\/589"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/media\/515"}],"wp:attachment":[{"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/media?parent=509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/categories?post=509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sevenwatt.com\/main\/wp-json\/wp\/v2\/tags?post=509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}