<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>BlackBerry Developer Blog &#187; nfc</title>
	<atom:link href="http://devblog.blackberry.com/tag/nfc/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.blackberry.com</link>
	<description></description>
	<lastBuildDate>Wed, 19 Jun 2013 18:00:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='devblog.blackberry.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/9ef0a66c09615fa946c4179662398878?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>BlackBerry Developer Blog &#187; nfc</title>
		<link>http://devblog.blackberry.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://devblog.blackberry.com/osd.xml" title="BlackBerry Developer Blog" />
	<atom:link rel='hub' href='http://devblog.blackberry.com/?pushpress=hub'/>
		<item>
		<title>Bluetooth Low Energy on BlackBerry 10 &#8211; Cadence and Cascades</title>
		<link>http://devblog.blackberry.com/2013/05/nfc-cadence-cascades/</link>
		<comments>http://devblog.blackberry.com/2013/05/nfc-cadence-cascades/#comments</comments>
		<pubDate>Wed, 22 May 2013 14:52:44 +0000</pubDate>
		<dc:creator>jcmrim</dc:creator>
				<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[Bluetooth Low Energy]]></category>
		<category><![CDATA[nfc]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=15066</guid>
		<description><![CDATA[I think everyone would agree that living a healthy lifestyle and following a suitable exercise regime is an important factor in keeping well in today’s world. It’s not without its challenges though! How many good intentions have fallen by the way-side? It’s not easy to get yourself out of that comfy chair and head off [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15066&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I think everyone would agree that living a healthy lifestyle and following a suitable exercise regime is an important factor in keeping well in today’s world. It’s not without its challenges though! How many good intentions have fallen by the way-side? It’s not easy to get yourself out of that comfy chair and head off to the gym, take that walk or get on that bicycle. More often than not the comfy chair wins. At least that’s been my experience. Maybe I have a special, demonic chair or something.  It also tells me to eat cake sometimes. Hmmm.</p>
<p>That said there are&#8230;. apparently&#8230;. people in this world who have a bit more resolve than I do and take their sporting and fitness activities a bit more seriously. Not only do they manage to get out of the comfy chair, they even like to measure and analyse their performance so they can improve.</p>
<p>Now my colleague Martin (<a href="https://twitter.com/mdwrim"><b>@mdwrim</b></a>) has normal furniture in his house and seems more than capable of getting out of the comfy chair and down to the climbing wall or out on his bike. He and I (<b><a href="https://twitter.com/jcmrim">@jcmrim</a> </b>) talked about the kind of technology available to sporty people, in particular cyclists. Martin had just come back from watching part of the Giro d’Italia and pointed out that all the pro cyclists have sensors on their bikes. BlackBerry 10, Bluetooth Low Energy and cycling! What a perfect combination of great technology, fun and exercise as well as a great opportunity for a new Blog post, video and sample app!</p>
<p>If you haven’t already done so, this is probably a good time to have a read of our previous blog posts and articles on the <a href="http://devblog.blackberry.com/2013/04/bluetooth-low-energy-and-the-internet-of-things/">Internet of Things</a> and <a href="http://devblog.blackberry.com/2013/04/dude-wheres-my-car-keys-bluetooth-le-and-blackberry-10-how-to/">Finding Car Keys</a> since they cover the basic concepts needed in this blog post.</p>
<p>As before, the first thing we did was to do a little bit of research to see if the Bluetooth SIG had defined any standards in this area; no point in re-inventing the wheel [no pun intended] and the existence of a standard would mean that a vendor may have already implemented the technology in a product.</p>
<p>Whenever you have a requirement that may be solvable using Bluetooth LE the first place to look is here: <a href="http://developer.bluetooth.org/gatt/Pages/default.aspx"><br />
http://developer.bluetooth.org/gatt/Pages/default.aspx<br />
</a>.</p>
<p>Browsing through the GATT Profiles we came upon this one: <a href="http://developer.bluetooth.org/gatt/profiles/Pages/ProfileViewer.aspx?u=org.bluetooth.profile.cycling_speed_and_cadence.xml">Cycling Speed and Cadence</a> (CSC)… this sounded promising, and the description looked like it was just what we needed.</p>
<blockquote><p><i>“The Cycling Speed and Cadence Profile is used to enable a data collection device to obtain data from a Cycling Speed and Cadence Sensor (CSC Sensor) that exposes the Cycling Speed and Cadence Service.”</i></p></blockquote>
<p>The key element of this profile is the <a href="http://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.cycling_speed_and_cadence.xml">Cycling Speed and Cadence Service</a> (<b>UUID 0&#215;1816</b>) which contains four really useful fields:</p>
<ul>
<li>“Cumulative Wheel Revolutions”</li>
<li>“Cumulative Crank Revolutions”</li>
<li>“Last Wheel Event Time”</li>
<li>“Last Crank Event Time”</li>
</ul>
<p>These are part of the “CSC Measurement” GATT Characteristic (<b>UUID 0x2A5B</b>). They are described in detail here: <a href="http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.csc_measurement.xml">CSC Characteristics</a> and outlined in Figure 1.</p>
<p>There are some other characteristics that allow configuration and control of the device but we’ll talk about these when we come across them.</p>
<div id="attachment_15070" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-15070 " alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/05/nfc1-e1369229551403.png?w=600&#038;h=604" width="600" height="604" /><p class="wp-caption-text">Figure 1 Key GATT Characteristics for CSC</p></div>
<p>So, if you think about these characteristics they allow you to derive a number of key measurements:</p>
<ol start="1">
<li><b>Total distance travelled</b> – using “Cumulative Wheel Revolutions” – all you need to know is the wheel circumference to calculate this, but if you combine this with a time and a geo-location measurement you can even derive sufficient information to plot your progress on a map.</li>
<li><b>Speed</b> – using “Last Wheel Event Time” – you can figure out how fast the bike is going if you do a simple calculation involving the time between successive Last Wheel Event Time values and the number of wheel revolutions that occurred in that time. But if you combine this with a geo-location measurement you can derive sufficient information to plot your speed on the map as well.</li>
<li><b>Instantaneous effort</b> – using ““Last Crank Event Time”” – this can help identify those times that you’re free-wheeling and not expending energy.</li>
</ol>
<p>It’s at this point that the engineer in me begins to wonder how to instrument a bicycle to make use of this GATT profile. Martin’s a cyclist, so, after identifying a device that matched the requirements (Wahoo Fitness Blue SC<a title="" href="/Users/akinsella/AppData/Local/Microsoft/Windows/Temporary%20Internet%20Files/Content.Outlook/X7OSEEYU/Bluetooth%20Low%20Energy%20and%20CSC%20V0_3.doc#_ftn1">[1]</a> device), he attached it to his cycle as shown in Figure 2.</p>
<div>
<div id="attachment_15073" class="wp-caption aligncenter" style="width: 610px"><a href="http://rimdevblog.files.wordpress.com/2013/05/nfc21.jpg"><img class="size-full wp-image-15073" alt="Figure 2 Attachment of cycle monitor" src="http://rimdevblog.files.wordpress.com/2013/05/nfc21-e1369229754261.jpg?w=600&#038;h=338" width="600" height="338" /></a><p class="wp-caption-text">Figure 2 Attachment of cycle monitor</p></div>
<p>For those of you who are mechanically minded small magnets on both the crank and the rear wheel spokes activate the sensor strapped to the frame. The sensor maintains the counts and timings and will report them to a suitable Bluetooth LE device such as a BlackBerry 10 smartphone.</p>
<p>The application that we developed based on this is actually very similar in structure to the Heart Rate Monitor application that was described in a previous blog and article. The basic logic is the same:</p>
<ol start="1">
<li>Pair the Bluetooth LE device with the BlackBerry 10 handset before using the application.</li>
<li>Launch the application which:
<ol start="1">
<li>Discovers devices that support the CSC Service (<b>UUID 0&#215;1816</b>)</li>
<li>Connects to a discovered device selected by the user</li>
<li>Requests the device to notify our application as changes are made to the CSC Measurement characteristic (<b>UUID 0x2A5B</b>) which contains the wheel and crank data that we’re interested in.</li>
<li>Receive, parse and display in numerical (RPM) and historical graphical form the CSC Measurement data as they are received.</li>
</ol>
</li>
</ol>
<p>Here are some screenshots showing what the application looks like:</p>
<div id="attachment_15076" class="wp-caption aligncenter" style="width: 610px"><a href="http://rimdevblog.files.wordpress.com/2013/05/nfc3.png"><img class="size-full wp-image-15076" alt="Figure 3 The CscMonitor Application" src="http://rimdevblog.files.wordpress.com/2013/05/nfc3-e1369229851373.png?w=600&#038;h=324" width="600" height="324" /></a><p class="wp-caption-text">Figure 3 The CscMonitor Application</p></div>
<p>Instantaneous values of the wheel and crank readings in revolutions per minute (RPM) are shown in the upper part of the screen whilst historical RPM data are plotted on the lower half of the display. Wheel and crank historical data displays can be toggled by touching the screen. Mapping RPM values to distance or energy expended would require additional information to be provided, such as the wheel circumference or radius of the crank &#8212; we’ll leave this for a possible later iteration of the application and focus on the Bluetooth LE aspects for now.</p>
<p>If we inspect the GATT services the CSC device supports using a tool like <b>BTool</b> we can see (Figure 4) that the CSC Measurement Characteristic (<b>UUID 0x2A5B</b>) is exposed at handle <b>0&#215;0023</b>. Handles are the references to entries in the GATT that our application will discover and use to access the value associated with a characteristic. We’ve used handles before in both our previous examples.</p>
<div id="attachment_15078" class="wp-caption aligncenter" style="width: 610px"><a href="http://rimdevblog.files.wordpress.com/2013/05/nfc4.png"><img class="size-full wp-image-15078" alt="Figure 4 GATT showing CSC Characteristics" src="http://rimdevblog.files.wordpress.com/2013/05/nfc4-e1369229973665.png?w=600&#038;h=128" width="600" height="128" /></a><p class="wp-caption-text">Figure 4 GATT showing CSC Characteristics</p></div>
<p>Associated with the CSC Measurement Characteristic is a “Client Characteristic Configuration” characteristic (<b>UUID 0&#215;2902</b>) exposed at handle <b>0&#215;0024</b>. The value of this field determines whether our application will receive <b>Notifications</b> or <b>Indications</b> for the CSC Measurement Characteristic. We’ve used these before as well in our previous examples. In this case this characteristic will be set to enable Notifications using the BlackBerry 10 Bluetooth LE API.</p>
<p>So, how do we manage the data that is notified to us from the CSC device? The CSC data received is managed by a class called “CscDataContainer” &#8230; here’s part of its definition:</p>
<pre><b>class</b> CscDataContainer: <b>public</b> QObject {
       Q_OBJECT
<b>private</b>:
       <b>CscDataContainer</b>();
...
       // notification data
       QQueue&lt;csc_notification_t&gt; _csc_notifications;
       // CSC values
       QQueue&lt;csc_values_t&gt; _csc_values;
       <b>int</b> _min_wheel_rpm;
       <b>int</b> _max_wheel_rpm;
       <b>int</b> _avg_wheel_rpm;
       <b>long</b> _total_wheel_rpm;<b></b>
...
}</pre>
<p>At its core are a couple of queues that maintain the data that is received. The queue has a maximum length that can accommodate one notification per second for an 8 hour period. A future version might persist these data in a database but this is sufficient to demonstrate the principle in this case.</p>
<p>Once again the excellent little JavaScript library called “Flot” is used to plot these data in a WebView component in QML.</p>
<p>As notifications are received by our application the <b>addNotification()</b> method of the <b>CscDataContainer </b>class is called with the CSC Measurement data passed as a (uint8_t *) and a length (uint16_t) &#8212; that is an array of bytes.</p>
<p>Parsing this data is the first task and it’s instructive to see how this works – the main points are highlighted in the code fragment below:</p>
<pre><b>void</b> <b>CscDataContainer::addNotification</b>(<b>const</b> uint8_t *val, uint16_t len) {
       // parse value, paying attention to the bit settings in the FLAGS field
       <b>bool</b> wheel_revolution_data_present = <b>false</b>; // bit 0 of Flags field
       <b>bool</b> crank_revolution_data_present = <b>false</b>; // bit 1 of Flags field
       uint32_t cumulative_wheel_revolutions = 0;
       uint16_t cumulative_crank_revolutions = 0;
       uint16_t last_wheel_event_time = 0;
       uint16_t last_crank_event_time = 0;
       <b>int</b> index = 0;
       uint8_t flags = val[index];
       wheel_revolution_data_present = ((
flags &amp; WHEEL_REVOLUTION_DATA_PRESENT) == WHEEL_REVOLUTION_DATA_PRESENT);
       crank_revolution_data_present = ((
flags &amp; CRANK_REVOLUTION_DATA_PRESENT) == CRANK_REVOLUTION_DATA_PRESENT);
       // Fields are in the order of LSO to MSO.
       // Where LSO = Least Significant Octet and MSO = Most Significant Octet.
       index++;
       <b>if</b> (wheel_revolution_data_present) {
              // Cumulative Wheel Revolutions, 4 bytes.
             // Field exists if the key of bit 0 of the Flags field is set to 1.
              cumulative_wheel_revolutions =
(val[index + 3] &lt;&lt; 24) | (val[index + 2] &lt;&lt; 16) |
(val[index + 1] &lt;&lt; 8)  |  val[index];
index += 4;
              // Last Wheel Event Time, 2 bytes. 
              // Field exists if the key of bit 0 of the Flags field is set to 1.
              last_wheel_event_time = (val[index + 1] &lt;&lt; 8) | val[index];
              index += 2;
...
}
       <b>if</b> (crank_revolution_data_present) {
// Cumulative Crank Revolutions, 2 bytes. 
// Field exists if the key of bit 1 of the Flags field is set to 1.
              cumulative_crank_revolutions =
(val[index + 1] &lt;&lt; 8) | val[index];
              index += 2;
              // Last Crank Event Time, 2 bytes. 
              // Field exists if the key of bit 1 of the Flags field is set to 1.
              last_crank_event_time = (val[index + 1] &lt;&lt; 8) | val[index];
              index += 2;
    ...
    }
...
}</pre>
<p>The first byte of data contains an 8-bit flag field (see Figure 1 for details). This indicates whether crank or wheel data is present in the following data.  If these are present they are represented in Little-endian form and need to be extracted by shifting them out a byte at a time.</p>
<p>The rest of the application is more focussed on the display of this data using QML so I’ll leave that for you to look at yourself since the main learning points are to do with how to interface to the Bluetooth Low Energy device itself.</p>
<p>We made a video which has Martin (<a href="https://twitter.com/mdwrim"><b>@mdwrim</b></a>) showing the application in action and explaining the code. Here it is:</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/KpoMm9rIvsk?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>If you want to know more then check out the following resources:</p>
<ul>
<li>The complete source code for this application on Git Hub;
<ul>
<li><a href="https://github.com/blackberry/Cascades-Community-Samples"><br />
https://github.com/blackberry/Cascades-Community-Samples<br />
</a></li>
</ul>
</li>
<li>If you’re completely new to Bluetooth LE then we recommend you read our “BlackBerry 10 Bluetooth LE Primer for Developers”  which you’ll find in our knowledge base. This and all other Bluetooth LE related developer resources that we’ve created, are listed in a single resource index page:
<ul>
<li><a href="http://supportforums.blackberry.com/t5/Native-Development/BlackBerry-10-Bluetooth-LE-resource-index/ta-p/2326147"><br />
http://supportforums.blackberry.com/t5/Native-Development/BlackBerry-10-Bluetooth-LE-resource-index/ta-p/2326147<br />
</a></li>
</ul>
</li>
</ul>
<p>I hope you’ve enjoyed this short note and hope it has piqued your interest to find out more about Bluetooth Low Energy and how it can be integrated into your BlackBerry 10 applications.</p>
<hr align="left" size="1" width="33%" />
<div>
<p><a title="" href="/Users/akinsella/AppData/Local/Microsoft/Windows/Temporary%20Internet%20Files/Content.Outlook/X7OSEEYU/Bluetooth%20Low%20Energy%20and%20CSC%20V0_3.doc#_ftnref1">[1]</a> This should not be regarded as an endorsement by BlackBerry, explicit or implied.</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/15066/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/15066/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=15066&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/05/nfc-cadence-cascades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/87d5f773c912570622fcb0a907a5636b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jcmurray2012</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/nfc1-e1369229551403.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/nfc21-e1369229754261.jpg" medium="image">
			<media:title type="html">Figure 2 Attachment of cycle monitor</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/nfc3-e1369229851373.png" medium="image">
			<media:title type="html">Figure 3 The CscMonitor Application</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/nfc4-e1369229973665.png" medium="image">
			<media:title type="html">Figure 4 GATT showing CSC Characteristics</media:title>
		</media:content>
	</item>
		<item>
		<title>NFC, NFC, and more NFC at BlackBerry Jam Americas 2013</title>
		<link>http://devblog.blackberry.com/2013/05/nfc-blackberry-jam-2013/</link>
		<comments>http://devblog.blackberry.com/2013/05/nfc-blackberry-jam-2013/#comments</comments>
		<pubDate>Fri, 10 May 2013 19:07:16 +0000</pubDate>
		<dc:creator>robwilliamsjnrrim</dc:creator>
				<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[nfc]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14964</guid>
		<description><![CDATA[I’m excited to share two NFC sessions with you in Orlando from May 14-16 for BlackBerry Jam Americas. One of them is an overview of what you can do with BlackBerry 10 and NFC, the other delves deep into making payments happen. JAM36 &#8211; NFC development for BlackBerry 10: A whirlwind tour Here we’ll look [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14964&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I’m excited to share two NFC sessions with you in Orlando from May 14-16 for BlackBerry Jam Americas. One of them is an overview of what you can do with BlackBerry 10 and NFC, the other delves deep into making payments happen.</p>
<p><a href="https://bblive.blackberryconferences.net/2013/connect/sessionDetail.ww?SESSION_ID=2716">JAM36 &#8211; NFC development for BlackBerry 10: A whirlwind tour</a></p>
<p>Here we’ll look at all the tech that is available from you to create solutions. We’ll cover tag reading and writing, P2P and more.  Great to keep in mind that NFC is more than just payment!!!</p>
<p><a href="https://bblive.blackberryconferences.net/2013/connect/sessionDetail.ww?SESSION_ID=2696">JAM26 &#8211; Demystifying NFC Payment</a></p>
<p>But – if you’re thinking about getting into payment (or loyalty programs) – this is the session for you.</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/05/robbie.png"><img class="aligncenter size-full wp-image-14969" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/05/robbie-e1368212778768.png?w=550&#038;h=309" width="550" height="309" /></a></p>
<p>We’ll cover a few different approaches and talk about everything you need lined up. There are lots of moving pieces involved to make complete secure element / card emulation solution.</p>
<p>Send me an email or tweet <a href="http://twitter.com/robbieDubya" target="_blank">@robbieDubya</a> for all of your NFC needs.</p>
<p>Thinking of twitter &#8211; Martin <a href="http://twitter.com/mdwrim" target="_blank">@mdwrim</a> and John <a href="http://twitter.com/jcmrim" target="_blank">@jcmrim</a> are people you really should be following if you are into NFC and BlackBerry! #nfcguys</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14964/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14964/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14964&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/05/nfc-blackberry-jam-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6e3641573bfea7977bb68017a91c03b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">robwilliamsjnrrim</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/05/robbie-e1368212778768.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry Jam Unplugged: Connectivity</title>
		<link>http://devblog.blackberry.com/2013/05/blackberry-jam-unplugged-connectivity/</link>
		<comments>http://devblog.blackberry.com/2013/05/blackberry-jam-unplugged-connectivity/#comments</comments>
		<pubDate>Thu, 09 May 2013 01:25:34 +0000</pubDate>
		<dc:creator>Tim N.</dc:creator>
				<category><![CDATA[Adobe AIR Development]]></category>
		<category><![CDATA[Cascades]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Interviews/Thought Leadership]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Platform Services]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[GPS]]></category>
		<category><![CDATA[Jam]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[Unplugged]]></category>
		<category><![CDATA[WiFi]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14873</guid>
		<description><![CDATA[We’ve now posted the final episode of the BlackBerry Jam Unplugged series where we learn a little more about connecting to the world around you with BlackBerry 10. I hope you’ve enjoyed the series and we look forward to seeing you all at BlackBerry Jam Americas in Orlando. Please let us know what you thought [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14873&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>We’ve now posted the final episode of <a href="http://devblog.blackberry.com/?s=jam+unplugged&amp;search=" target="_blank">the BlackBerry Jam Unplugged series</a> where we learn a little more about connecting to the world around you with BlackBerry 10.</p>
<p>I hope you’ve enjoyed the series and we look forward to seeing you all at <a href="http://www.blackberryjamconference.com/americas" target="_blank">BlackBerry Jam Americas in Orlando</a>. Please let us know what you thought of the videos to ensure that we can bring information to you in a way that’s educational, but entertaining as well.</p>
<p>This particular video will give you some information about the current opportunities and upcoming roadmap items that we’re looking at for extending connectivity for developers. In this video we’re joined by <a href="https://twitter.com/robbieDubya" target="_blank">Rob Williams</a> who talks about how you can connect BlackBerry 10 to the world around you to incorporate context into your apps.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/3jTckvem5pk?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14873/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14873/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14873&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/05/blackberry-jam-unplugged-connectivity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/3939390650b170ba28e9bf3c53d397ad?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">timneil1</media:title>
		</media:content>
	</item>
		<item>
		<title>BlackBerry Jam 2013 will be a Truly Mobile Conference with NFC, the Conference App, and More</title>
		<link>http://devblog.blackberry.com/2013/05/blackberry-jam-2013-will-be-a-truly-mobile-conference-with-nfc-the-conference-app-and-more/</link>
		<comments>http://devblog.blackberry.com/2013/05/blackberry-jam-2013-will-be-a-truly-mobile-conference-with-nfc-the-conference-app-and-more/#comments</comments>
		<pubDate>Mon, 06 May 2013 17:38:55 +0000</pubDate>
		<dc:creator>Luke Reimer</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[BlackBerry Jam]]></category>
		<category><![CDATA[BlackBerry Live]]></category>
		<category><![CDATA[#BBJam]]></category>
		<category><![CDATA[#BBLive]]></category>
		<category><![CDATA[BlackBerry Jam Conference App]]></category>
		<category><![CDATA[BlackBerry Live Conference App]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[nfc]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14920</guid>
		<description><![CDATA[One of our goals for this year&#8217;s BlackBerry Live conference is to integrate mobile technology not just in the discussions, sessions, and resources – but into the actual conference itself to help keep attendees closely plugged into all of the action. Near Field Communication (NFC) One of my all-time favorite technologies, Near Field Communication (NFC) [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14920&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-10825" alt="BlackBerry Live Conference App" src="http://rimbizblog.files.wordpress.com/2013/05/header2.png?w=600&#038;h=405" width="600" height="405" /></p>
<p>One of our goals for this year&#8217;s <a href="http://www.blackberrylive.com/" target="_new">BlackBerry Live conference</a> is to integrate mobile technology not just in the discussions, sessions, and resources – but into the actual conference itself to help keep attendees closely plugged into all of the action.</p>
<h3><strong>Near Field Communication (NFC)</strong></h3>
<p>One of my all-time favorite technologies, <a href="http://demos.blackberry.com/blackberry-z10/na/us/gen/how-to/your-blackberry-z10-smartphone/connections/nfc/index.html" target="_new">Near Field Communication</a> (NFC) will be integrated into BlackBerry Live in a big way. You’ll be able to scan into BlackBerry Live and <a href="http://www.blackberryjamamericas.com/" target="_new">BlackBerry Jam</a> sessions and interact with aspects of the venue using the BlackBerry Live Conference App, but that’s just the beginning. You’ll also be able to share contact information with sponsors, scoop up links to resources and web sites, and take advantage of all that BlackBerry 10 has to offer when it comes to NFC.</p>
<p><span id="more-14920"></span></p>
<h3><strong>BlackBerry Live Conference App </strong></h3>
<p>Shortly before BlackBerry Live the Mobile Conference Guide app will be available in <a href="http://appworld.blackberry.com/" target="_new">BlackBerry World</a> for you to download. This will be your ultimate conference guide, including a wide range of features:</p>
<ul>
<li>Find sessions, speaker, sponsor, and event details</li>
<li>Receive event update messages</li>
<li>View the conference agenda and floor plan</li>
<li>Build and edit your conference schedule</li>
<li>Scan into sessions using Near Field Communication (NFC)</li>
<li>Complete conference and session surveys</li>
<li>Share your information with conference sponsors using NFC</li>
</ul>
<h3><strong>It’s not too late to register for BlackBerry Live! </strong></h3>
<p>Head over to <a href="http://www.blackberrylive.com/" target="_new">www.blackberrylive.com</a> to register for this year’s conference, and don’t forget that if you’ve attended a BlackBerry event in the past, you may be eligible for a $150 discount as part of the <a href="http://www.blackberrylive.com/registration/special-offers" target="_new">Alumni Discount</a>!</p>
<p>Stay tuned for availability in BlackBerry World, and get ready for a seriously mobile conference! See you next week in Orlando.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14920/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14920/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14920&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/05/blackberry-jam-2013-will-be-a-truly-mobile-conference-with-nfc-the-conference-app-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/02798908b6c8de45a0e4aa8531a6d869?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lukereim1</media:title>
		</media:content>

		<media:content url="http://rimbizblog.files.wordpress.com/2013/05/header2.png" medium="image">
			<media:title type="html">BlackBerry Live Conference App</media:title>
		</media:content>
	</item>
		<item>
		<title>Bluetooth Low Energy and the Internet of Things</title>
		<link>http://devblog.blackberry.com/2013/04/bluetooth-low-energy-and-the-internet-of-things/</link>
		<comments>http://devblog.blackberry.com/2013/04/bluetooth-low-energy-and-the-internet-of-things/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 14:50:27 +0000</pubDate>
		<dc:creator>jcmrim</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[Bluetooth Low Energy]]></category>
		<category><![CDATA[nfc]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=14532</guid>
		<description><![CDATA[Having spent some time looking at Near Field Communication (NFC), my colleague Martin Woolley (@mdwrim) and I (@jcmrim) became really excited when we came across the new Bluetooth Low Energy APIs in BlackBerry 10. “Bluetooth Low Energy”, I hear you say. ”I know all about Bluetooth since that’s been around for many years. It’s what [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14532&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Having spent some time looking at Near Field Communication (NFC), my colleague Martin Woolley (<a href="http://twitter.com/mdwrim">@mdwrim</a>) and I (<a href="http://twitter.com/jcmrim">@jcmrim</a>) became really excited when we came across the new <a href="http://developer.blackberry.com/native/reference/bb10/bluetooth_libref/topic/about_btle_8h.html">Bluetooth Low Energy</a> APIs in BlackBerry 10.</p>
<p><a href="http://rimdevblog.files.wordpress.com/2013/04/lowenergy-1.png"><img class="alignleft size-full wp-image-14533" alt="lowenergy-1" src="http://rimdevblog.files.wordpress.com/2013/04/lowenergy-1-e1365432296600.png?w=200&#038;h=170" width="200" height="170" /></a></p>
<p>“Bluetooth Low Energy”, I hear you say. ”I know all about Bluetooth since that’s been around for many years. It’s what I use to connect my headset to my BlackBerry device and play music though my sound system. What’s this ‘Low Energy’ thing?”</p>
<p>Well, the Bluetooth specification went through a number of changes a couple of years ago when Bluetooth 4.0 was released. Bluetooth Low Energy (LE) is an addition to the classic specification that allows ultra low power devices to participate in Bluetooth Networks.</p>
<p><span id="more-14532"></span></p>
<p><!--more--></p>
<p>What does “Ultra low power” mean? Well, Bluetooth LE is designed to support devices that would typically be powered by battery cells like the one in this picture.</p>
<p>That means that such devices can have incredibly small footprints yet can be full participants in a Bluetooth network alongside larger devices like tablets or smart phones such as BlackBerry 10 smartphones.</p>
<p>It also means that this awesome technology is an enabler for the “Internet of things” where such devices can participate in an Internet populated with all sorts and sizes of devices ranging from large servers to intelligent thermometers; from tablets to intelligent sensors in your running shoes; from mobile phones to intelligent light switches in your home.</p>
<p>Imagine being able to use your BlackBerry 10 smartphone to tailor your environment to your preferences as you move around. It’s already capable of knowing where you are and Bluetooth LE gives it the capability of communicating with smart devices in your home or car. Imagine returning home and having your BlackBerry 10 smartphone communicate with your lighting to set it appropriately; your home entertainment system to play your favourite playlist; and your house’s environmental controls to set just the right temperature!</p>
<p>The diversity of potential applications is quite staggering. Sports, wearable devices, home automation, automotive and healthcare, are just a few of the sectors recognising the potential of Bluetooth LE.</p>
<p>And &#8230; BlackBerry 10 is a perfect fit here! So, we got to thinking how we could demonstrate how easy it is to integrate Bluetooth LE technology into your BlackBerry 10 application!</p>
<p>In order to provide some focus for this activity we acquired some Bluetooth LE technology and tools including a Wahoo Blue HR device to see what we could do with it. There are a number of similar devices on the market but this seemed like a good starting point. It’s a small, lightweight electronic device, encased in plastic. It has an adjustable strap to allow you to strap it around your chest and the strap has two conductive pads which need to be in contact with the skin.</p>
<p>The nice thing about Bluetooth LE is that there are standards for devices like this that support what’s called the Heart Rate Profile and we managed to develop a nice, even though I say it myself, self contained BlackBerry 10 application that interacted with the heart rate monitor and displayed it’s data.</p>
<p><img class="alignright size-full wp-image-14535" alt="lowenergy-2" src="http://rimdevblog.files.wordpress.com/2013/04/lowenergy-2-e1365432387754.png?w=200&#038;h=118" width="200" height="118" /></p>
<p>Take a look at the images below! The image on the left shows a typical trace for a healthy person like Martin who went on a long, exhausting bike ride to gather this data.</p>
<p>The middle one is probably from a small, hyperactive animal like this hamster; whilst the one on the right probably comes from a hibernating hedgehog I came across in my garden.</p>
<p>Rest assured that no small timid animals were involved in our testing other than in our imaginations!</p>
<h3><a href="http://rimdevblog.files.wordpress.com/2013/04/lowenergy-3.png"><img class="aligncenter size-full wp-image-14537" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2013/04/lowenergy-3-e1365432471173.png?w=600&#038;h=327" width="600" height="327" /></a></h3>
<p>If you want to know more then check out the following resources:</p>
<ul>
<li>A much more <a href="http://supportforums.blackberry.com/t5/Native-Development/BlackBerry-10-Bluetooth-LE-primer-for-developers/ta-p/2287377" target="_blank">detailed article</a> describing the theory and practice behind this application</li>
<li>The complete <a href="https://github.com/blackberry/Cascades-Community-Samples" target="_blank">source code</a> for this application on Git Hub</li>
<li>A <a href="http://youtu.be/dcrJZSL7dpg" target="_blank">video</a> on YouTube showing an overview of the theory and practice behind this application</li>
</ul>
<p>I hope you&#8217;ve enjoyed this short note and hope it has piqued your interest to find out more about Bluetooth Low Energy and how it can be integrated into your BlackBerry 10 applications.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/14532/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/14532/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=14532&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2013/04/bluetooth-low-energy-and-the-internet-of-things/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/87d5f773c912570622fcb0a907a5636b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jcmurray2012</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/04/lowenergy-1-e1365432296600.png" medium="image">
			<media:title type="html">lowenergy-1</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/04/lowenergy-2-e1365432387754.png" medium="image">
			<media:title type="html">lowenergy-2</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2013/04/lowenergy-3-e1365432471173.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>Talking With Your Arduino via NFC on BlackBerry</title>
		<link>http://devblog.blackberry.com/2012/12/talking-with-your-arduino-via-nfc-on-blackberry/</link>
		<comments>http://devblog.blackberry.com/2012/12/talking-with-your-arduino-via-nfc-on-blackberry/#comments</comments>
		<pubDate>Fri, 14 Dec 2012 16:28:20 +0000</pubDate>
		<dc:creator>robwilliamsjnrrim</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[nfc]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=12599</guid>
		<description><![CDATA[Did you know that it’s easy to exchange data between your NFC enabled smartphone and your Arduino? It can be arbitrary data too – it does not need to be formatted as NDEF tags or ISO 7816-4 APDUs! What does it take to get an Arduino that talks with BlackBerry running? Here’s what I used [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12599&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-12600" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/12/devblog-nfc-avec-arduino-e1354894489515.png?w=600&#038;h=163" width="600" height="163" /></p>
<p>Did you know that it’s easy to exchange data between your NFC enabled smartphone and your Arduino? It can be arbitrary data too – it does not need to be formatted as NDEF tags or ISO 7816-4 APDUs!</p>
<p>What does it take to get an Arduino that talks with BlackBerry running? Here’s what I used to make a very basic color mixing application that shares colors between the Arduino and the BlackBerry over NFC.</p>
<ul>
<li>Some NFC enabled BlackBerry devices. I’m using my Bold 9900s. &lt;3 the keyboard!</li>
<li>1 Arduino. I’m using an Arduino Uno R3 (it’s under the shield)</li>
<li>1 Adafruit Industries PN532 NFC/RFID shield. A great shield available here: <a href="http://adafruit.com/products/789"><br />
http://adafruit.com/products/789<br />
</a></li>
<li>1 BlackBerry application.</li>
<li>1 Arduino sketch</li>
<li>A copy of the Adafruit NFCShield library. Note that I have made modifications to get the functionality that I needed; <a href="https://github.com/blackberry/Adafruit_NFCShield_I2C"><br />
https://github.com/blackberry/Adafruit_NFCShield_I2C<br />
</a> (pull request pending&#8230;)</li>
<li><b><i>Imagination.</i></b> This is the most important ingredient! With these other ingredients you could build… anything! (Hit me up in the comments with your project!)</li>
</ul>
<ul>
<li>Optional: The manual for the PN532. <a href="http://www.adafruit.com/datasheets/pn532um.pdf"><br />
http://www.adafruit.com/datasheets/pn532um.pdf<br />
</a></li>
</ul>
<p><span id="more-12599"></span></p>
<h2>Arduino Sketch</h2>
<p>Here are the guts of my sketch – stripped to the barest functionality… I need to ‘inList’ a passive target and then ‘inDataExchange’. If you can ‘inList’ a target – then you can send data to it…</p>
<pre>if (nfc.inListPassiveTarget()) {
    while(true) {
      message[0] = 1; message[1] = r; message[2] = g; message[3] = b;
      uint8_t responseLength = sizeof(message);
      if (nfc.inDataExchange(message,sizeof(message),message,&amp;responseLength)) {
        uint8_t command = message[0];
        switch(command) {
        case 1:
          if (responseLength==4) {
            r = message[1];
            g = message[2];
            b = message[3];
            showColor();
          }
          else {
            //Serial.println("Doesn't seem to be a color...");
          }
          break;
        default:
          ;
        }</pre>
<p>The Adafruit samples show you everything you need to know about initializing the class.</p>
<p>The active NFC peer (the Arduino) is responsible for sending data first. You may have to keep on polling your passive peer.</p>
<h2>Java</h2>
<p>Again – just the basics. You need to create a VirtualISO14443Part4TypeATarget. You have to be aware that the target is only active when your app is in the foreground. The number below is not used by the API. <b>this</b> is an instance of VirtualISO14443Part4TargetCallback.</p>
<pre>    emulated = <b>new</b> VirtualISO14443Part4TypeATarget(<b>this</b>, "10451045", <b>null</b>);
    emulated.startEmulation();</pre>
<p>Then, in the callback I send the color that has been mixed on the screen (unless the user hasn’t chosen a color recently). The byte array returned from this method is transmitted over NFC.</p>
<p><b>private</b> <b>byte</b>[] processCommand(<b>byte</b>[] command) {</p>
<pre>        <b>if</b> (command == <b>null</b>) {
            <b>return</b> <b>new</b> <b>byte</b>[0];
        }
        <b>int</b> messageType = command[0] &amp; 0xff;
        <b>switch</b> (messageType) {
        <b>case</b> 1:
            <b>if</b> (command.length == 4) {
                <b>int</b> colorIn = (command[1] &amp; 0xff) &lt;&lt; 16;
                colorIn |= (command[2] &amp; 0xff) &lt;&lt; 8;
                colorIn |= (command[3] &amp; 0xff);

                <b>if</b> (colorIn != color) {
                    <b>if</b> (colorQueued) {

                        <b>byte</b>[] toReturn = <b>new</b> <b>byte</b>[4];
                        toReturn[0] = 1;
                        toReturn[1] = (<b>byte</b>) (color &gt;&gt; 16);
                        toReturn[2] = (<b>byte</b>) (color &gt;&gt; 8);
                        toReturn[3] = (<b>byte</b>) color;

                        <b>return</b> toReturn;</pre>
<p>Existing BlackBerry samples and tutorials explain the listener really well.</p>
<h2>The Result</h2>
<p>Here’s a very short video showing several BlackBerrys sharing colors with the Arduino. I built a paper cube around my LED to try and make it easier to capture on video.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/SmGnn1Bb2yc?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<h2>My NFC Slogan</h2>
<p><b><i>You’re already there! No need to PAIR!</i></b></p>
<p>What I’m trying to say in my slogan is this: there are times when you want to be physically at a device and make it do something. To me – NFC feels a little like the crystals that power starship computers in SCI-FI shows. The hero moves them into the right spot; completing the system and saving the day, galaxy and timeline.</p>
<p>There are times that you don’t want to be there either… And there are lots of higher powered RF systems for that…</p>
<h2>What Can You Make?</h2>
<p>Who will make the first bridge for NFC to XBee that has a cradle form factor?</p>
<p>I’m looking forward to hearing in the comments what you are going to Make!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/12599/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/12599/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12599&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/12/talking-with-your-arduino-via-nfc-on-blackberry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6e3641573bfea7977bb68017a91c03b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">robwilliamsjnrrim</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/12/devblog-nfc-avec-arduino-e1354894489515.png" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>
	</item>
		<item>
		<title>#Re-Hash&#8217;d: Monday, November 26th 2012</title>
		<link>http://devblog.blackberry.com/2012/11/rehashed-monday-november-26-2012/</link>
		<comments>http://devblog.blackberry.com/2012/11/rehashed-monday-november-26-2012/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 19:40:53 +0000</pubDate>
		<dc:creator>Alex Kinsella</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[#BlackBerry10]]></category>
		<category><![CDATA[BB10Believe]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[BlackBerry Jam Asia]]></category>
		<category><![CDATA[nfc]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=12344</guid>
		<description><![CDATA[Here&#8217;s what you missed last week&#8230; #BBGotGame Port-A-Thon Update http://devblog.blackberry.com/2012/11/got-game-port-a-thon-update/ Using the Invocation Framework with BlackBerry Messenger http://devblog.blackberry.com/2012/11/bbm-invocation-framework/ Be Bold and Vote: What&#8217;s Your Reason to Believe in BlackBerry 10? http://blogs.blackberry.com/2012/11/blackberry-10-believe-poll/ Near Field Communication: Just a Payment Tool? Debunking a Common NFC Myth http://bizblog.blackberry.com/2012/11/nfc-myths/<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12344&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s what you missed last week&#8230;</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/Rndw4o09KhU?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>#BBGotGame Port-A-Thon Update<br />
<a title="http://devblog.blackberry.com/2012/11/got-game-port-a-thon-update/" href="http://devblog.blackberry.com/2012/11/got-game-port-a-thon-update/" target="_blank" rel="nofollow"><br />
http://devblog.blackberry.com/2012/11/got-game-port-a-thon-update/<br />
</a></p>
<p>Using the Invocation Framework with BlackBerry Messenger<br />
<a title="http://devblog.blackberry.com/2012/11/bbm-invocation-framework/" href="http://devblog.blackberry.com/2012/11/bbm-invocation-framework/" target="_blank" rel="nofollow"><br />
http://devblog.blackberry.com/2012/11/bbm-invocation-framework/<br />
</a></p>
<p>Be Bold and Vote: What&#8217;s Your Reason to Believe in BlackBerry 10?<br />
<a title="http://blogs.blackberry.com/2012/11/blackberry-10-believe-poll/" href="http://blogs.blackberry.com/2012/11/blackberry-10-believe-poll/" target="_blank" rel="nofollow"><br />
http://blogs.blackberry.com/2012/11/blackberry-10-believe-poll/<br />
</a></p>
<p>Near Field Communication: Just a Payment Tool? Debunking a Common NFC Myth<br />
<a title="http://bizblog.blackberry.com/2012/11/nfc-myths/" href="http://bizblog.blackberry.com/2012/11/nfc-myths/" target="_blank" rel="nofollow"><br />
http://bizblog.blackberry.com/2012/11/nfc-myths/<br />
</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/12344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/12344/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12344&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/11/rehashed-monday-november-26-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7d0e94a7e96e80d5911732d43f31a39c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alex K.</media:title>
		</media:content>
	</item>
		<item>
		<title>Missed a Webcast? We&#8217;ve Got Them On Demand For You!</title>
		<link>http://devblog.blackberry.com/2012/11/developer-webcasts/</link>
		<comments>http://devblog.blackberry.com/2012/11/developer-webcasts/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 15:06:03 +0000</pubDate>
		<dc:creator>melyoung17</dc:creator>
				<category><![CDATA[Android Development]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Native SDK Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Marmalade]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=12131</guid>
		<description><![CDATA[Did you miss or would like to re-watch any of our past developer webcasts? Below is a summary of where to find all the recordings posted to date, along with a couple that are coming soon. NFC-related webcasts, specific webcast titles listed below: NFC overview (Native) NFC Tags BlackBerry® 10 NFC Tags BlackBerry® 7 Cascades™-related [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12131&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><img class="aligncenter  wp-image-12245" title="8027758996_28c3bdd6dd_z" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/11/8027758996_28c3bdd6dd_z.jpg?w=576&#038;h=383" height="383" width="576" /></p>
<p>Did you miss or would like to re-watch any of our past developer webcasts? Below is a summary of where to find all the recordings posted to date, along with a couple that are coming soon.</p>
<p><a href="http://supportforums.blackberry.com/t5/Java-Development/NFC-Article-and-Code-Index/ta-p/1538775" target="_new"><strong>NFC</strong>-related webcasts</a>, specific webcast titles listed below:</p>
<ul>
<li>NFC overview (Native)</li>
<li>NFC Tags BlackBerry® 10</li>
<li>NFC Tags BlackBerry® 7</li>
</ul>
<p><a href="https://developer.blackberry.com/cascades/documentation/videos" target="_new"><strong>Cascades™</strong>-related webcasts</a>, specific webcast titles listed below:</p>
<ul>
<li>Astonishing UIs using the new BlackBerry 10 framework</li>
<li>Astonishing UIs using the new BlackBerry 10 framework continued</li>
<li>Cascades – everything you’ve always wanted to ask about retrieving, storing and displaying your Data – but were afraid to ask</li>
<li>Building Compelling 3D Apps using Cascades and OpenGL ES</li>
</ul>
<p><a href="http://developer.blackberry.com/native/beta/documentation/videos" target="_new"><strong>Native</strong>-related webcasts</a>, specific webcast titles listed below:</p>
<ul>
<li>BlackBerry Native Game Development</li>
</ul>
<p><a href="https://developer.blackberry.com/html5/documentation/videos" target="_new"><strong>HTML5/BlackBerry® WebWorks™</strong>-related webcasts</a>, specific webcast titles listed below:</p>
<ul>
<li>Using the Dojo Toolkit in a BlackBerry WebWorks app Full Webcast</li>
<li>BlackBerry 10 WebWorks Applications with the Enyo.js framework Full Webcast</li>
<li>Exploring the use of bbUI.js for building a BlackBerry UI with HTML5</li>
</ul>
<p><i>Coming soon!</i></p>
<ul>
<li>HTML5 Gaming (WebGL (3D), Audio, Social Integration (BBM™), Web Workers, Web Sockets)</li>
<li>Building BlackBerry 10 apps with jQuery Mobile &amp; backbone.js</li>
</ul>
<p><a href="https://developer.blackberry.com/builtforblackberry/documentation/videos/index.html" target="_new"><strong>Built for BlackBerry</strong>-related webcasts</a>, specific webcast titles listed below:</p>
<ul>
<li>10k Developer Commitment</li>
<li>Built For BlackBerry Part 1: User Benefit, User Experience, and System Integration</li>
<li>Built For BlackBerry Part 2: Performance</li>
</ul>
<p><a href="http://developer.blackberry.com/android/documentation/videos" target="_new"><strong>Android</strong>-related webcasts</a>, specific webcast titles listed below:</p>
<ul>
<li>Running Android Applications on BlackBerry® PlayBook™ and BlackBerry 10</li>
</ul>
<p><a href="https://developer.blackberry.com/devzone/blackberry10devalpha/devalpha_webcasts.html" target="_new"><strong>Alpha</strong>-related webcasts</a>, specific webcast titles listed below:</p>
<ul>
<li>Beta 3: Beta 3: BlackBerry 10 WebWorks SDK Update</li>
<li>Beta 3: The Power of the Integrated Platform Emerges</li>
</ul>
<p><a href="http://wdev001ykf/devzone/develop/enterprise/enterprise_webcasts.html" target="_new"><strong>Enterprise</strong>-related webcasts</a>, specific webcast titles listed below:</p>
<ul>
<li>Enterprise App Developers: BlackBerry® Balance™ technology</li>
</ul>
<p>The <strong>Marmalade</strong> webcast is hosted on the <a href="http://www.madewithmarmalade.com/blackberryhub" target="_new">Marmalade site</a>:</p>
<ul>
<li>BlackBerry game development with Marmalade SDK</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/12131/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/12131/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=12131&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/11/developer-webcasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/94603149a977464cd6bcf1837030497f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melyoung17</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/11/8027758996_28c3bdd6dd_z.jpg" medium="image">
			<media:title type="html">8027758996_28c3bdd6dd_z</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrating NFC into your BlackBerry 10 Application</title>
		<link>http://devblog.blackberry.com/2012/10/blackberry-10-app-nfc/</link>
		<comments>http://devblog.blackberry.com/2012/10/blackberry-10-app-nfc/#comments</comments>
		<pubDate>Thu, 25 Oct 2012 15:34:13 +0000</pubDate>
		<dc:creator>mdwrim</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Near Field Communication]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[sample]]></category>
		<category><![CDATA[use case]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=11782</guid>
		<description><![CDATA[Guest post from John Murray &#8211; Ed. You know, working in the Developer Relations team at Research In Motion® (RIM®), you get to get to play around with some fun stuff. Recently, Near Field Communication (NFC) has been exercising my brain cells. Some of you may be familiar with the NFC-related articles and code samples [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11782&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><i>Guest post from John Murray &#8211; Ed.</i></p>
<p>You know, working in the Developer Relations team at Research In Motion® (RIM®), you get to get to play around with some fun stuff. Recently, Near Field Communication (NFC) has been exercising my brain cells. Some of you may be familiar with the NFC-related articles and code samples that I’ve co-authored with my co-conspirator, Martin Woolley (<a href="http://twitter.com/mdwrim" target="_new">@mdwrim</a>), which you can find listed in our <a href="http://supportforums.blackberry.com/t5/Java-Development/NFC-Article-and-Code-Index/ta-p/1538775" target="_new">NFC Article and Code index</a>.</p>
<p>Now, whenever you mention NFC in a conversation, people invariably think of payments. Using NFC to make secure payments is perhaps the most obvious use case. However, when I think of NFC I tend to think of workflows as well. “Workflows,” you say? What do you mean?</p>
<p>OK, let’s think about it anecdotally. How many times have you had the challenge of transcribing some data from an external source to your handset whilst holding a bag and trying to hold a conversation at the same time? How many times have you tried to share information on your handset with someone else and had to struggle with inputting email addresses whilst doing three other things at the same time? These use cases are examples of Workflows, or Business Processes, that stumble on the point of having to accommodate more “human” interaction than is really necessary. NFC can be used to help streamline simple workflows that involve human interactions on mobile devices and ultimately help achieve efficiencies.</p>
<p><span id="more-11782"></span></p>
<p>So, having thought about this and how to demonstrate a simple but realistic use case (whilst also having some fun), we came up with the concept of the “Fun Run”.</p>
<p>Suppose you’re taking part in a charity “Fun Run” – not quite a marathon but something shorter for fun. The race organizers have developed a simple mobile application to allow you to register for the event and have placed NFC Tags in the starting and finishing areas. As you start you tap on one of the tags, your race timer is started as well as notifying the organizers that you have begun. When you pass the finish line, simply tap on one of the tags in the Finish area to stop your timer and notify the organizers of your finishing time!</p>
<p>In between the start and finish, there may be Way Points with NFC Reader devices that can be used to register intermediate times as the runner passes these points. Tap the handset to the NFC Reader and receive confirmation that the timing data has been transferred successfully.</p>
<p>OK, maybe it’s not 100% realistic, but as an example it is sufficient to demonstrate how a workflow process that involves having to record start and finish times and tracking progress can be made more efficient using NFC. The key learning point is to understand how integrating NFC technology into your application can be used to achieve efficiencies in similar processes.</p>
<h3><strong>The Applications</strong></h3>
<p>Let’s take a look at how we implemented this simple example using BlackBerry® 10 and BlackBerry® 7 NFC capable devices. There are really three use cases:</p>
<p>1. Tap your handset against an NFC tag at the start of the race to start your race timer.<br />
2. Tap your handset against NFC readers at intermediate waypoints during the race to transfer your current race timer data to an application that manages the reader.<br />
3. Tap your handset against an NFC tag at the end of the race to stop your race timer.</p>
<h3><strong>Acting on External Tag Events</strong></h3>
<p>To implement the first and last use case, we decided to provide two NFC tags that had specific NDEF messages as their content. There would be one tag that would start the timer at the start of the race and one tag that would stop the timer at the end of the race.</p>
<p>Specifically the data in the two tags is:</p>
<p><strong>1. Tag used to start the timer:</strong></p>
<p>NDEF TNF = External ( integer value 4 )<br />
Type = &#8220;my.rim.com:myrecordtype&#8221;<br />
Payload = &#8220;start&#8221;</p>
<p><strong>2. Tag used to stop the timer:</strong></p>
<p>NDEF TNF = External ( integer value 4 )<br />
Type = &#8220;my.rim.com:myrecordtype&#8221;<br />
Payload = &#8220;stop&#8221;</p>
<p>Why use this data? Well, firstly we choose an NDEF TNF (Type Name Format) for the NDEF Message because it allows us to define custom tag content that won’t clash with standard tag message types such as Smart Poster (“Sp”) or URL (“U”) or Text (“T”). We want to make sure that when one of these tags is presented, our application, and our application alone, is launched to process the tag.</p>
<p>Secondly, we choose a “Type” of &#8220;<strong>my.rim.com:myrecordtype</strong>&#8220;. Within the context of an External TNF record the Type can be arbitrary, but in order to prevent clashes with other organizations’ custom tag formats, we use the DNS naming scheme to set the namespace of the tag as “<strong>my.rim.com</strong>” to establish it as a RIM NDEF message. We further qualify it with a specific sub-type of “<strong>myrecordtype</strong>” since an organization may define a whole family of custom tag formats for its own use.</p>
<p>So, these settings ensure that these tags will only make sense to our application and not overlap with tags form elsewhere. The “Payload” of the two tags differs in that one has the string “<strong>start</strong>” and the other has the string “<strong>stop</strong>” to mark them as ones to be used to start and stop the timers respectively.</p>
<p>In the case of BlackBerry 10, our application registered with the Invocation Framework through the stanza in its “<strong>bar-descriptor.xml</strong>” file as shown in Figure 1. The “<strong>uris</strong>” attribute of the “<strong>&lt;property &#8230; /&gt;</strong>” tag has been set to the value “<strong>ndef://4/my.rim.com/myrecordtype</strong>” which a URI format specification of the two tags just described above.</p>
<pre>...
&lt;invoke-target id="com.example.NfcRaceTimeWay"&gt;
    &lt;type&gt;APPLICATION&lt;/type&gt;
    &lt;filter&gt;
        &lt;action&gt;bb.action.OPEN&lt;/action&gt;
        &lt;mime-type&gt;application/vnd.rim.nfc.ndef&lt;/mime-type&gt;
        &lt;property var="uris" value="ndef://4/my.rim.com/myrecordtype"/&gt;
    &lt;/filter&gt;
&lt;/invoke-target&gt;
...</pre>
<p style="text-align:center;">Figure 1 Registering for tag types in BlackBerry 10</p>
<p>When a “start” or “stop” tag is presented to the handset, then our application is launched if it’s not already running, and the tag contents are handled as shown in Figure 2 &#8212; where the payload of “start” or “stop” is extracted once we’ve verified that it’s of the correct type.</p>
<pre>...
void NfcListener::receivedInvokeRequest(const bb::system::InvokeRequest&amp; request) {

    QByteArray data = request.data();
    QtMobilitySubset::QNdefMessage ndefMessage = QtMobilitySubset::QNdefMessage::fromByteArray(data);

    handleNdefRequest(ndefMessage);
}

void NfcListener::handleNdefRequest(const QtMobilitySubset::QNdefMessage ndefMessage) {

    QList::const_iterator ndefRecord;

    for ( ndefRecord = ndefMessage.begin(); ndefRecord != ndefMessage.end(); ndefRecord++) {
        if (ndefRecord-&gt;typeNameFormat() == QtMobilitySubset::QNdefRecord::ExternalRtd) {
            if (QString(ndefRecord-&gt;type()).compare("my.rim.com:myrecordtype") == 0 ) {
                emit raceTagDetected(QString(ndefRecord-&gt;payload()));
            }
        }
    }
}
...</pre>
<p style="text-align:center;">Figure 2 Handling a Start or Stop tag in BlackBerry 10</p>
<p>In the case of BlackBerry 7, registration is achieved in Java® by registering a listener for the specific NDEF message type as shown in Figure 3.</p>
<pre>...
    nfcManager = ReaderWriterManager.getInstance();
    nfcManager.addNDEFMessageListener(listener, NDEFRecord.TNF_EXTERNAL, "my.rim.com:myrecordtype", true);
...</pre>
<p style="text-align:center;">Figure 3 Registering for tag types in BlackBerry 7</p>
<p>A similar behaviour is achieved for BlackBerry 7 through the implementation of the “<strong>onNDEFMessageDetected()</strong>” method of the “<strong>NDEFMessageListener</strong>” interface as shown in Figure 4.</p>
<pre>...
    public void onNDEFMessageDetected(NDEFMessage msg) {
        NDEFRecord[] records = msg.getRecords();
        int numRecords = records.length;
        if(numRecords &gt; 0) {
            byte[] payloadBytes = records[0].getPayload();
            try {
                String ascii_payload = new String(payloadBytes,"US-ASCII");
                Utilities.log("XXXX payload="+ascii_payload);
                if (ascii_payload.equals("start")) {
                    startTimer();
                }
                if (ascii_payload.equals("stop")) {
                    stopTimer();
                }
            } catch(UnsupportedEncodingException e) {
                Utilities.log("XXXX "+e.getClass().getName()+":"+e.getMessage());
            }
        }

    }

...</pre>
<p style="text-align:center;">Figure 4 Handling a Start or Stop tag in BlackBerry 7</p>
<p>So, what we’ve achieved here is the ability to use an external NFC tag to trigger a process in our application. In this case it’s simply the starting and stopping of a timer, but it could be extended quite easily to, say, call a web service and integrate the event into a larger workflow process.</p>
<p>What does this look like in practice? Well, here’s a short video of the BlackBerry 10 application in action:</p>
<p style="text-align:center;"><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='480' height='360' src='http://www.youtube.com/embed/QZ5nABZcFuo?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p style="text-align:center;">[ <a href="http://www.youtube.com/watch?v=QZ5nABZcFuo&amp;feature=youtu.be" target="_new">YouTube link for mobile viewing</a> ]</p>
<h3><strong>Virtual Tag Emulation</strong></h3>
<p>Let’s get back to the original use cases. To implement the second one, we decided to have the BlackBerry handset emulate a virtual tag and allow the contents of the virtual tag to be read by an external NFC reader.<br />
What format of tag should be emulated by the handset? This is what we chose:</p>
<p><strong>1. Virtual tag emulated by the application</strong></p>
<p>NDEF TNF = External ( integer value 4 )<br />
Type = &#8220;my.rim.com:myrecordtype&#8221;<br />
Payload = &#8220;hh:mm:ss&#8221;</p>
<p>a. That is the time displayed on the handset in:<br />
Hours (hh)<br />
Minutes (mm)<br />
Seconds (ss)</p>
<p>The type of the virtual tag is exactly the same as for the “start” and “stop” physical tags for the very same reasons, except that the payload is a representation of the current race timer value (“hh:mm:ss”) as displayed by the application.</p>
<pre>...
void NfcListener::startTagEmulation(const QString &amp;tagData) {
    nfc_ndef_record_t *ndefRecord = makeCustomRecord(QString("my.rim.com"), QString("myrecordtype"), tagData);
    if (_emulateNdefMessage) {
        CHECK(nfc_delete_ndef_message(_emulateNdefMessage, true));
        _emulateNdefMessage = 0;
    }
    CHECK(nfc_create_ndef_message(&amp;_emulateNdefMessage));
    CHECK(nfc_add_ndef_record(_emulateNdefMessage, ndefRecord));
    CHECK(nfc_start_ndef_tag_emulation(_emulateNdefMessage));
...</pre>
<p style="text-align:center;">Figure 5 BlackBerry 10 &#8211; starting virtual tag emulation</p>
<p>As shown in Figure 5, starting tag emulation in BlackBerry 10 is quite simple. It just involves calling “<strong>nfc_start_ndef_tag_emulation()</strong>”. In addition we can use BPS (BlackBerry Platform Services) to determine when a read on the virtual tag has been successful, as shown here in Figure 6:</p>
<pre>...
void NfcListener::handleNfcEvent(bps_event_t *event) {
    uint16_t code = bps_event_get_code(event);
    if (NFC_VIRTUAL_TAG_SELECTION_EVENT == code) {
        emit tagEmulationSelectEvent();
    } else if (NFC_VIRTUAL_TAG_LEFT_EVENT == code) {
        emit tagEmulationLeftEvent();
    } else if (NFC_VIRTUAL_TAG_READ_EVENT == code) {
        emit tagEmulationReadEvent();
    }
}
...</pre>
<p style="text-align:center;">Figure 6 BlackBerry 10 &#8211; stopping virtual tag emulation</p>
<p>So, what we’ve achieved here is the ability to transmit live information from an application in the BlackBerry handset in real time to an external application via an NFC reader. The external application simply displays the time displayed by the BlackBerry application, but it could easily be extended to integrate with some larger workflow process.</p>
<p>Take a look at the video here for a demonstration of this on BlackBerry 10:</p>
<p style="text-align:center;"><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='480' height='360' src='http://www.youtube.com/embed/g58Xpnsqq4o?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p style="text-align:center;">[ <a href="http://www.youtube.com/watch?v=g58Xpnsqq4o&amp;feature=youtu.be" target="_new">YouTube link for mobile viewing</a> ]</p>
<p>If you’re interested, the virtual tag emulation functionality was tested using an NFC Reader attached to a PC controlled by a Python application using the “PyScard” (Python for Smart Cards) library available from <a href="http://pyscard.sourceforge.net/" target="_new">SourceForge.net</a>. (Python and Ruby are my favorite programming languages!)</p>
<p>The two versions of our NFC-enabled “Fun Run” applications are available with full source code from our GitHub repositories here:</p>
<p><a href="https://github.com/blackberry/Cascades-Community-Samples/tree/master/NfcRaceTimeWay" target="_new"><br />
https://github.com/blackberry/Cascades-Community-Samples/tree/master/NfcRaceTimeWay<br />
</a><br />
<a href="https://github.com/blackberry/Samples-for-Java/tree/master/NFC/NfcRaceTime7" target="_new"><br />
https://github.com/blackberry/Samples-for-Java/tree/master/NFC/NfcRaceTime7<br />
</a></p>
<p>Just in closing, it’s worth making one or two comments about the relative ease of developing applications to the same set of end user specifications in BlackBerry 10 Cascades™ versus BlackBerry 7 Java. I’ve been developing code in C/C++ for more years than I care to remember and for a shorter time in Java (but still since the language first saw the light of day), so I feel I’m qualified to make comparisons. I’ll be honest: I’ve found it much easier to develop applications using C/C++ and Cascades. The user interface elements are particularly easy to use, and I’ve found it possible to get a user interface up and running in Cascades much faster than I would have done in Java. It’s much easier to modify and extend since Cascades elements map directly to Qt/Cascades C++ classes and the SIGNAL() / SLOT() model makes it so easy to connect events to handlers.</p>
<p>I’m definitely sold on Cascades, Qt and C/C++!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/11782/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/11782/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=11782&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/10/blackberry-10-app-nfc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d86c7fdd0d15b754b2760af4536923b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdwrim</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing Proximity Gaming with NFC</title>
		<link>http://devblog.blackberry.com/2012/10/proximity-gaming-nfc/</link>
		<comments>http://devblog.blackberry.com/2012/10/proximity-gaming-nfc/#comments</comments>
		<pubDate>Tue, 16 Oct 2012 17:06:03 +0000</pubDate>
		<dc:creator>mdwrim</dc:creator>
				<category><![CDATA[Game Development]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[BlackBerry 10]]></category>
		<category><![CDATA[BlackBerry 7]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Near Field Communications]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Proximity Gaming]]></category>
		<category><![CDATA[sample code]]></category>

		<guid isPermaLink="false">http://devblog.blackberry.com/?p=10865</guid>
		<description><![CDATA[Amongst the many interesting things I’m lucky enough to get involved with in my role on the RIM® Developer Relations team, Near Field Communications (NFC) has become very much center stage for me over the last year. Some readers of this post may be familiar with the NFC-related articles and code samples that I’ve co-authored [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10865&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Amongst the many interesting things I’m lucky enough to get involved with in my role on the RIM® Developer Relations team, Near Field Communications (NFC) has become very much center stage for me over the last year. Some readers of this post may be familiar with the NFC-related articles and code samples that I’ve co-authored with my buddy John Murray (<a href="http://twitter.com/jcmrim" target="_new">@jcmrim</a>), which you can find listed in our <a href="http://supportforums.blackberry.com/t5/Java-Development/NFC-Article-and-Code-Index/ta-p/1538775" target="_new">NFC Article and Code Index</a>.</p>
<p>Now it has to be said that it wasn’t the best summer here in the UK (though fortunately the weather gave us a break just in time for the Olympics!) and so I occasionally found myself at the weekend with “fine weather-dependent plans” cancelled and time on my hands. One such weekend, I was thinking about NFC and my thoughts turned to discussions I’d had with John about whether NFC could enrich games and the gaming experience in some way.</p>
<p>The world of computer games has changed somewhat in the 30-something years I’ve been playing them! It’s gone from text-based adventure games (“go north!”) played on a PDP-11 with a teletype and no screen, through the block graphics of Lunar Lander on a Commodore Pet, and onwards through Space Quest, Civilisation I, the Monkey Island series and (many) more favourites.</p>
<p>In the beginning and for many years, games were single-player &#8212; or at least they were single machine games. More than one player could play, but you’d have to share the keyboard or take turns. Then came LAN games, and this evolved into Internet-based gaming with huge online gaming communities (without whom, I have no doubt, the world would now be over-run with zombies). The truly great thing about online gaming is that you need never know that “goreslayer765” who just destroyed you in your favourite game is actually a 9-year-old with far more knowledge of automatic weapons than can possibly be healthy. I mean, whose fragile ego could handle knowing that?</p>
<p>So, both extreme ends of the single player vs. multiplayer spectrum are well catered to these days. But in what way might NFC enrich the gaming experience, and in what kind of games? I had a quick brainstorm with John on IM and we came up with a few use cases:</p>
<p><span id="more-10865"></span></p>
<table border="5">
<tbody>
<tr>
<td><strong>Start Game</strong></td>
<td>Two-player games could be kicked off by the two players touching devices. This could trigger an NFC based interaction which your application drives, the outcome of which could be the decision as to which of the players is “Player 1” and which is “Player 2” for example.</td>
</tr>
<tr>
<td><strong>Your Turn</strong></td>
<td>Turn based games would work well with NFC being used to indicate “it’s your turn now,” with a player taking their turn and then touching the other player’s device with theirs.</td>
</tr>
<tr>
<td><strong>Pass it on</strong></td>
<td>It could be cool to create digital tokens of some sort that you could pass to other players by touching their device with yours. With a web component of your game, you could perhaps track your token as it moves from player to player and perhaps travels the world!</td>
</tr>
<tr>
<td><strong>Been there</strong></td>
<td>Games involving visiting physical locations could use NFC tags to allow players to “prove” they’ve been to a place and found the item with the tag. Each tag would contain unique content, including perhaps clues on how to find the next game location. Touching and reading the tag from your application would establish the “been there” credentials required.</td>
</tr>
</tbody>
</table>
<p>But why would you want to do this? After all, there are plenty of other ways to trigger “new game” or “it’s your turn now” and to share data across a network. Well, the appeal of using NFC is simply this: it adds a physical, tactile element to the game. You’re sitting right next to the person you’re playing with, and having to touch devices at intervals in the game could add a novel and fun element to the experience.</p>
<p>We then realized our most important task. We needed a name for the phenomenon of NFC-enabled games that we were now thinking about. In a flash, I had it! Please welcome “<strong>Proximity Gaming</strong>” to the world!</p>
<p>Armed with a few ideas, we decided to develop a game as a proof of concept and set about thinking about what the first game would be and how it would work. We decided we’d develop an NFC-enabled version of “tic tac toe” or “noughts and crosses” as it’s known in the UK.</p>
<p>We decided to use NFC in two places. Firstly, players would have to touch devices to start a game, and secondly, they’d touch devices to indicate “it’s your turn now”.</p>
<p>We had to consider a few issues regarding the implementation. It was immediately apparent that we’d have to pass some kind of message from device A to device B and that we’d probably need several message types. In other words, we’d need a simple protocol.</p>
<p>We could also see several technical ways of sending a message from one device to another. We could use virtual target emulation in theory, or maybe we could use one of the two NFC peer-to-peer APIs, SNEP (Simple NDEF Exchange Protocol) or LLCP (Logical Link Control Protocol).</p>
<p>We dismissed target emulation and focused on the peer-to-peer options, since this was clearly a peer-to-peer scenario. We concluded that either SNEP or LLCP could be used, but that SNEP would be a little easier to work with &#8212; LLCP being a lower-level connection-oriented protocol whereas SNEP is a higher-level message-oriented protocol. We’d worked with both in the past, so we had a pretty good feel for what the coding would be like.</p>
<p>In conclusion, we decided to invent a simple message-oriented protocol and use SNEP as the NFC protocol, which would transport game messages between devices. The UI design was to be basic: an initial screen that prompted players to touch devices to start a new game; a screen for “player 1” to choose either noughts or crosses; and the main game screen upon which to place noughts and crosses.</p>
<p>We also decided to implement the game for both BlackBerry® 7 OS using Java®, and our BlackBerry® 10 Dev Alpha devices using C++/Qt/Cascades. Being able to play the game between a BlackBerry 7 device and a BlackBerry 10 device would be a nice proof of the interoperability of NFC between generations of BlackBerry technology.</p>
<p>Here are some screen shots from the proof of concept game, first from the BlackBerry 7 version of the game:</p>
<p><img class="aligncenter size-full wp-image-10868" title="" alt="TITLE_IMAGE" src="http://rimdevblog.files.wordpress.com/2012/08/proximity-gaming-1.jpg?w=507&#038;h=382" height="382" width="507" /></p>
<p style="text-align:center;"><i>Figure 1 &#8211; New game screen</i></p>
<p><img class="aligncenter size-full wp-image-10867" title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/08/proximity-gaming-2.jpg?w=507&#038;h=382" height="382" width="507" /></p>
<p style="text-align:center;"><i>Figure 2 &#8211; Player 1, choose nought or cross</i></p>
<p><img class="aligncenter size-full wp-image-10866" title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/08/proximity-gaming-3.jpg?w=507&#038;h=382" height="382" width="507" /></p>
<p style="text-align:center;"><i>Figure 3 &#8211; Main game screen</i></p>
<p>And here are some screen shots from the proof of concept game, from the BlackBerry 10 version of the game:</p>
<p style="text-align:center;"><img title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/10/proximity-gaming-4.jpg?w=155" width="155" /> <img title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/10/proximity-gaming-5.jpg?w=155" width="155" /> <img title="" alt="" src="http://rimdevblog.files.wordpress.com/2012/10/proximity-gaming-6.jpg?w=155" width="155" /><br />
<i>Figure 4 &#8211; New game screen; Figure 5 &#8211; In game; Figure 6 &#8211; Game over</i></p>
<p>Thoughts on the “game protocol” crystalized properly as we worked through prototyping the game and we found we needed the following message types in the simple protocol:</p>
<table border="5">
<tbody>
<tr>
<td><strong>Bid for player 1</strong></td>
<td>The act of requesting a new game by touching devices would also determine which of the two players would be Player 1 and get to choose which of noughts or crosses to play with. The “bid” message would be exchanged by both devices and contain a random number. The device that had produced the highest number would “win” the bid and become Player 1.</td>
</tr>
<tr>
<td><strong>End of turn</strong></td>
<td>After placing their nought or cross on the board, players would touch devices so that the other player’s game instance would be informed it could now let the player update the game screen. The protocol message to indicate “end of turn” would need to include information about the turn taken by the current player; specifically, which square on the board they had updated in their turn.</td>
</tr>
<tr>
<td><strong>Reset</strong></td>
<td>There would be occasions where the game state in a device would need to be reset and a suitable message type in the protocol would allow this.</td>
</tr>
</tbody>
</table>
<p>We’d like to tell you how we went about coding the game.</p>
<p>If you want to know how to use SNEP in general terms, we’ve written articles on the subject for both BlackBerry 7 and BlackBerry 10 and sample code too. You’ll find details here:</p>
<p><a href="http://supportforums.blackberry.com/t5/Java-Development/NFC-Peer-to-Peer-Communications-with-SNEP/ta-p/1532841" target="_new">BlackBerry 7 – Peer to Peer Communication with SNEP</a><br />
<a href="http://supportforums.blackberry.com/t5/Native-Development/NFC-on-BlackBerry-10-peer-to-peer-communication-using-SNEP/ta-p/1758859" target="_new">BlackBerry 10 – Peer to Peer Communication with SNEP</a></p>
<p>There’s a key point here: you could implement your Proximity Gaming ideas for either BlackBerry 7 or BlackBerry 10 because both have the specific types of NFC peer-to-peer capabilities that you will need.<br />
Harnessing NFC SNEP in the way we wanted for our game was easy. The APIs themselves are very straightforward to use. For BlackBerry 7 we designed some Java classes, which represent the various message types in the game protocol. This was standard stuff if you’re accustomed to working with protocols, and we ended up with an abstract class called ProtocolMessage and a series of concrete sub-classes, one for each message type. Each of these classes implemented a marshall and demarshall method so that we could easily swap between byte array representations, which would be exchanged over NFC SNEP and Java objects for internal use in the application.</p>
<p>Here&#8217;s an example of one of the protocol message classes:</p>
<pre>public class ProtocolMessageMasterBid extends ProtocolMessage {

    private int bid;

    public ProtocolMessageMasterBid() {
        message_id = Constants.PROTOCOL_MASTER_BID;
        Random rand = new Random(System.currentTimeMillis());
        bid = rand.nextInt(1000000);
    }

    public byte[] marshall() {
        byte [] bid_bytes = Utilities.toBytes(bid);
        byte [] bytes = new byte[1+bid_bytes.length];
        bytes [0] = message_id;
        System.arraycopy(bid_bytes, 0, bytes, 1, bid_bytes.length);
        return bytes;
    }

    public void demarshall(byte[] bytes) {
        if (bytes.length != 5) {
            Utilities.log("XXXX invalid parameter length passed to ProtocolMessageMasterBid demarshall:"+ bytes.length);
            return;
        }
        message_id = bytes[0];
        bid = Utilities.toInt(bytes,1);
    }

    public int getBid() {
        return bid;
    }

    public void setBid(int bid) {
        this.bid = bid;
    }

    public String toString() {
        String string = super.toString() + ",ProtocolMessageMasterBid" + ",bid="+bid;
        return string;
     }
}</pre>
<p>We also implemented classes called NfcReceiver and NfcSender, which implemented NDEFMessageListener and NDEFMessageBuilder respectively and provided the basic mechanism for sending and receiving my protocol messages.</p>
<p>For BlackBerry 10, life was actually simpler and we just needed to create message using the Qt QbyteArray class and then utilize the BlackBerry 10 native APIs for NFC, as shown below:</p>
<pre>void NfcWorker::sendTurnData(bps_event_t *bps_event) {
	nfc_event_t *nfc_event;
	nfc_target_t* target;
	nfc_ndef_record_t* myNdefRecord;
	nfc_ndef_message_t* myNdefMessage;
	// Obtain NFC target object from our BPS NFC event object
	//------------------------------------------------------------------------------
	CHECK(nfc_get_nfc_event(bps_event, &amp;nfc_event));
	CHECK(nfc_get_target(nfc_event, &amp;target));
	//------------------------------------------------------------------------------

	QByteArray ba;
	ba.resize(9);
	ba[0] = 2; // turn over message ID
	// tile changed
	ba[1] = 0;
	ba[2] = 0;
	ba[3] = 0;
	ba[4] = _state-&gt;lastSelection();
	int ls = _state-&gt;lastSelection();
	// symbol changed
	ba[5] = 0;
	ba[6] = 0;
	ba[7] = 0;
	ba[8] = _state-&gt;mySymbol();
	int ms = _state-&gt;mySymbol();
	_state-&gt;mySymbol();
	myNdefRecord = makeTurnOverRecord(ba.constData());
	//------------------------------------------------------------------------------
	CHECK(nfc_create_ndef_message(&amp;myNdefMessage));
	//------------------------------------------------------------------------------
	CHECK(nfc_add_ndef_record(myNdefMessage, myNdefRecord));
	qDebug() &lt;&lt; "XXXX Pushing NDEF message over SNEP";
	//------------------------------------------------------------------------------
	CHECK(nfc_push_ndef_message(target, myNdefMessage));
	//------------------------------------------------------------------------------
	CHECK(nfc_delete_ndef_message(myNdefMessage, true));
	CHECK(nfc_destroy_target(target));
}</pre>
<p>So, having designed and implemented a message-oriented protocol and coded classes which used NFC SNEP to transport those messages between devices, the rest of the effort that rainy weekend was spent on standard game development issues like creating the UI. The UI was really easy to create for the BlackBerry 10 version using Cascades™, and took a fraction of the time and effort we spent on the BlackBerry 7 Java version of the game. In both cases, the NFC part was also quite easy and took relatively little effort as a portion of the whole application.</p>
<p>The next step was to find some guinea pigs to test the application out. (Not real guinea pigs, of course &#8212; their paws are too small and they have claws that make working with a touch screen problematic. So instead, we decided to use humans &#8212; our respective friends and family to be precise. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>Testing was informal. In my case, I explained I’d developed a two-player game that allowed you to take certain actions just by touching the two devices back to back. My guinea pigs generally looked a bit blank or even cynical at this point. “Just touch them together? Really?!” But with a little coaxing I got them started and watched them carefully.</p>
<p>At the very start of the game, the two players are instructed to touch devices to start the game. Looking a little unsure at first, the players touched devices and held them together for a second. The devices responded, vibrating to indicate an NFC message had been received, and the game moved on to the next screen to allow the selected Player 1 to choose noughts or crosses. At this point, the expressions on the players’ faces changed &#8212; from expressions that suggested they were being asked to participate in a black magic ritual to sheer delight with big smiles all around! And from that point, there was no stopping them. They were each playing on devices with touch screens – the BlackBerry® Bold™ 9900 and 9790 smartphones, to be precise – so selecting a place to put their mark on the game “board” was simply a case of touching the screen. And passing turns to the other player? They just touched the devices together, of course!</p>
<p>Here’s a video showing the game in use:</p>
<p style="text-align:center;"><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='560' height='315' src='http://www.youtube.com/embed/ApEO_WJWlZM?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p style="text-align:center;">[ <a href="http://www.youtube.com/watch?v=ApEO_WJWlZM" target="_new">YouTube link for mobile viewing</a> ]</p>
<p>The verdict was very positive. Players liked the idea in general and enjoyed the tactile element of the game play. It seemed that Proximity Gaming was a big hit!</p>
<p>The two versions of our NFC-enabled tic tac toe games are available with full source code from our github repositories here:</p>
<p><a href="https://github.com/blackberry/Samples-for-Java/tree/master/NFC/TouchTicTacToe" target="_new"><br />
https://github.com/blackberry/Samples-for-Java/tree/master/NFC/TouchTicTacToe<br />
</a><br />
<a href="https://github.com/blackberry/Cascades-Community-Samples/tree/master/TouchTicTacTen" target="_new"><br />
https://github.com/blackberry/Cascades-Community-Samples/tree/master/TouchTicTacTen<br />
</a></p>
<p>So over to you, BlackBerry developers! How could you use NFC in your BlackBerry smartphone game?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rimdevblog.wordpress.com/10865/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rimdevblog.wordpress.com/10865/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devblog.blackberry.com&#038;blog=17235680&#038;post=10865&#038;subd=rimdevblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devblog.blackberry.com/2012/10/proximity-gaming-nfc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d86c7fdd0d15b754b2760af4536923b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdwrim</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/08/proximity-gaming-1.jpg" medium="image">
			<media:title type="html">TITLE_IMAGE</media:title>
		</media:content>

		<media:content url="http://rimdevblog.files.wordpress.com/2012/08/proximity-gaming-2.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/08/proximity-gaming-3.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/10/proximity-gaming-4.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/10/proximity-gaming-5.jpg" medium="image" />

		<media:content url="http://rimdevblog.files.wordpress.com/2012/10/proximity-gaming-6.jpg" medium="image" />
	</item>
	</channel>
</rss>
