Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp128433ybm; Tue, 26 May 2020 12:28:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyI4aOUSBzDyhmyDi2YUpwH3dgOQZX6x2oPG2v6s81aPi5rBlPcg6SjnciYgRSGEsKeGRAw X-Received: by 2002:a17:906:4dc3:: with SMTP id f3mr2435374ejw.323.1590521329067; Tue, 26 May 2020 12:28:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590521329; cv=none; d=google.com; s=arc-20160816; b=CfHHkx0QqHXvbqpdVsTXs/uJTejUsulxiLojiVVOF61pDMo6+gHnWBb+gQa49unmKG hGRR8I9AePR3fFhLz6lEsVYsPflNisUoYxic9oWlLkdcdJqV+6V79n98gnxrAIElkIgR J7T3RQ7vvUzqnCiQ59ZG4MkCYcVa9z1AWTEBMLM8qlSn+nJfQbIugHyhRfl8tb002nXY 9Aq8oOA7gI6DPmbwkXtz7mM0oLsiLgtJ9WcogPkQU0anu5UXqINfFeQShFJ7lTA5xOc7 2eGi3Sen4OG3D8Ma5KKHanyc8eT6iglVmGa+QHDKLFuOdWUAHOPSdtIuu4da5HDWWIs+ bknw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=AxKmxSaEr4yh3HnXyZtdzWzs8mO5jn/1jUUMtoKpqzk=; b=MflRwJwOgOv9guXPNTaNT4BxvBr6wnP9Kgb6vZHtiu5W+0MdZV/wVjAi982fdWp60x +f5u5BX/EEk4KHPiMaFeKV5+xJyT8DFAp87Wp0PQM5FFUII0MCkUw10Y7KgrTlKr0uSY 9lbVywzASo3oJf2CrJIlJ3y4tXkt7ClCrJE2NFFsx79wHto1GNoNFTNMGQjO0T9GE05s pIMhAu8QknQXY9wRWHTu704aMDYl9YlAANHOoKXvnp9RM+GKELRMATsxFx4jlkU0Zz+C dAxRNrW3BqoUvKL7lmVkQQIw60g1WtltMWc56I8VKvldcJeeCujjFLUsWSVBrNe6eZ1J Pzyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=NR8YlSFq; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 9si509527ejf.668.2020.05.26.12.28.05; Tue, 26 May 2020 12:28:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=NR8YlSFq; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2403870AbgEZTZo (ORCPT + 99 others); Tue, 26 May 2020 15:25:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2392568AbgEZTZi (ORCPT ); Tue, 26 May 2020 15:25:38 -0400 Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7E72C03E96D for ; Tue, 26 May 2020 12:25:37 -0700 (PDT) Received: by mail-lj1-x22b.google.com with SMTP id w10so26023904ljo.0 for ; Tue, 26 May 2020 12:25:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AxKmxSaEr4yh3HnXyZtdzWzs8mO5jn/1jUUMtoKpqzk=; b=NR8YlSFq+cIUv4V6Z5Ec/HvbjPTqxSjgu6AFouJalMDxeobzNK3Dm04K60OEGj45MA 92Zor/+BTQIe4wrJ3C2ix3AT0JMWSpwFmp8xLHdKSc+b/1qf5bjAw0Tfvz8vs49llEuY KnmSIAyRQ8lyiZB4CifR6mx2h5Jw85ZoTOvKultKkE0KiVrOmN0zlJ3m3ULodeiGqUqY 9eSIdVp71G7D2s+A6yRzcCT4dIZBaxD5k6hbwud3SQq9dekNsxBUwL0AwTJeLvWmfoI5 bvDeGIq302YQtC+PCH3ieeqE1flHNjulCnAbkku51Cyq+CyLman6U4cLNwCB1K+w5ks0 NHyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AxKmxSaEr4yh3HnXyZtdzWzs8mO5jn/1jUUMtoKpqzk=; b=CHbicrjw7BLL6JHHbal74Ui1PvUc3UZncAo1ebZdoO4rbIE/9VSTwhECKfazZfHRhA kL/bwsjN3VUagNTukCa4XYI1YMkVhCsB5JGLei9XOv2CP9gbXrfVONWjR6KlcLGgOAGP kGC3+Z/R50DL6WYIAkHjNFSWyU/rDfcNFpfYjmJqSjUpOIxk15C5FFg+bEvRuW5FjPDN vLVgh+s/1K2Cnr/EvtWTUdqBp2ZvfdpB+V3jigc6fXNzPYohb3PddXVaERpcFGBre3H8 yIc7a9kx+e2wBu86/qYq1dgI391O/8X69nCYpHKGGNiRZFV/618BgLE2CNjLR1US4ogW efAg== X-Gm-Message-State: AOAM531IwF15O0sLfrmUnJb+zLs/NzuI/DBFjPW9XtSXkXBfxDHVoKf5 pf32duh27vrEhKcp8ofF7rx4eOXsbRvQLzFIDEJp4Q== X-Received: by 2002:a2e:98da:: with SMTP id s26mr1305931ljj.3.1590521136130; Tue, 26 May 2020 12:25:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Alain Michaud Date: Tue, 26 May 2020 15:25:24 -0400 Message-ID: Subject: Re: UUIDs for every single physical peripheral's service and characteristics? To: Christopher de Vidal Cc: BlueZ Content-Type: text/plain; charset="UTF-8" Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Yes. Unless each of your 1000 devices will have a different protocol/contract to interact with them, you don't need to have unique UUIDs for the services/characteristics per device instance. On Tue, May 26, 2020 at 12:22 PM Christopher de Vidal wrote: > > So let me make sure I understand. The devices themselves have their > own Bluetooth addresses (similar to MAC addresses, I don't know the > proper term) which are unique among every physical device sold. And > also there is one (and only one) service UUID which is shared among > all 1,000+ peripherals which I sell, and 19 characteristic UUIDs that > are shared among the physical peripherals. The devices come with their > own Bluetooth "MAC" and I only need to obtain 20 UUIDs in total for > the product line. Did I get that right? > > Christopher de Vidal > > Would you consider yourself a good person? Have you ever taken the > 'Good Person' test? It's a fascinating five minute quiz. Google it. > > On Tue, May 26, 2020 at 10:57 AM Alain Michaud wrote: > > > > Hi Christopher, > > > > The term "unique" will vary based on context. In the context of a > > Gatt Service and Characteristic, it is intended to uniquely identify > > the "contract" defined by the service/characteristics. For example a > > Temperature Service would have a UUID that universally defines the > > contract/interface defined by that service. > > > > So for your custom service, you'll need to define a set of 20 128 bit > > UUID (16 bit uuids are reserved for SIG defined uuids) that uniquely > > identify the contract that's defined by your service/characteristics. > > The devices can uniquely be identified/addressed by their respective > > addresses. > > > > I hope this is helpful. > > > > Thanks! > > Alain > > > > On Tue, May 26, 2020 at 10:38 AM Christopher de Vidal > > wrote: > > > > > > Help a newbie? I'm seeking to build a niche product for sale, a > > > Raspberry Pi-based device which during the initial setup acts a BLE > > > peripheral. (Python using dbus to Bluez.) It has a single service and > > > 19 characteristics. I get that the first "U" in UUID stands for > > > unique. Must that be unique among each physical product, or may it be > > > unique among the product line? > > > > > > So if I sell 1,000 units (which would be a success), would I need to > > > obtain 1,000 service UUIDs and 19,000 characteristic UUIDs? Or just 20 > > > total, for the entire product line? > > > > > > The goal is so that the iOS/Android app can have that pre-set in the > > > code and quickly discover the device, pair it automagically. > > > > > > I suppose the risk is of a conflict of two similar devices which are > > > in the same vicinity of the phone, and both set into peripheral mode > > > at the same time. But that would be a minimal risk which I could > > > accommodate for. > > > > > > Christopher de Vidal > > > > > > Would you consider yourself a good person? Have you ever taken the > > > 'Good Person' test? It's a fascinating five minute quiz. Google it.