<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Custom bluetooth profile structure advice?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/12054/custom-bluetooth-profile-structure-advice</link><description>I&amp;#39;ve been thinking recently about how to structure the custom profile for some hardware I&amp;#39;m developing, which has a a few sensor components and a button onboard. 
 What I&amp;#39;d like to have in terms of functionality is this: 
 
 Read data from 4 different</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 22 Feb 2016 15:40:48 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/12054/custom-bluetooth-profile-structure-advice" /><item><title>RE: Custom bluetooth profile structure advice?</title><link>https://devzone.nordicsemi.com/thread/45642?ContentTypeID=1</link><pubDate>Mon, 22 Feb 2016 15:40:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:36670077-3e3f-4326-9fd9-456edc5897b2</guid><dc:creator>MartinBL</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t think there is a definite answer to this. I guess it is mostly up to you and what you think will provide the cleanest implementation on both client and server side. However, three factors come to mind:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Power:&lt;/strong&gt; To save power you would want to separate your characteristics and services in such a way that you don&amp;#39;t transmit any unnecessary data. For example, your configuration characteristic is probably rarely read and written, but the sensor data might be read frequently. Hence, you don&amp;#39;t want to bundle configuration and sensor values in the same characteristic (it doesn&amp;#39;t sound like you plan to do this anyway, but just as an example). A different example would be if sensor 1 updates once every minute, but sensor 2 updates every 10 ms. To save power you don&amp;#39;t want to put these values in the same characteristic and hence transmit the same value from sensor 1 600 times.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bandwidth:&lt;/strong&gt; Bandwidth and power consumption can be two opposing forces. You often need to chose one or the other or a middle way. If, for example, you need to transmit all sensor values frequently it might be wise to bundle them together. This way you will avoid some overhead. I.e. if you have one value characteristic for each of your four sensors you will have to prepare and process four different transmissions. If you bundle all four values together you only need to prepare and process one packet. Although the packet will be slightly longer you will save a lot of overhead and the total airtime will be shorter (Bundling like this might actually save you some power as well).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Code size:&lt;/strong&gt; Lots of services will take up more space in memory than a few well structured services, even though they contain the same amount of data.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>