... y definir mis propios servicios / características? ¿Cómo configuro el periférico BLE con mi propio perfil de Gatt?
La respuesta se encuentra en la sección en la página del producto que dice,
Operación independiente: Texas Instruments (TI) CC2540 es un IC SoC (Sistema en chip) que puede funcionar sin ningún microcontrolador externo. Puede desarrollar su propio firmware utilizando IAR Embedded Workbench para el compilador 8051, todos los pines de E / S de CC2540 son accesibles.
Firmware actualizable: desarrolle el suyo propio o descargue un firmware "preempaquetado" y cárguelo a BLE Mini a través del conector USB, no se requiere el depurador TI CC.
Aunque no he tenido la oportunidad de ver cómo se ve su firmware "preempaquetado", pero estoy seguro de que cuando dicen que puedes desarrollar tu propio Firmware (supongo que se refieren específicamente al Firmware que reside en el flash del microcontrolador en el módulo BLE, que debe contener la configuración de GATT y otra implementación opcional dependiendo de lo que soporte la placa)
¿Es un protocolo que se usa en todas partes o es propiedad del fabricante de módulos BLE?
En primer lugar, GATT es un perfil y no un protocolo. Si bien podemos decir que el GATT se usa en todas partes (con BLE para el alcance de esta pregunta), las formas de configurar la base de datos del GATT y su inclusión en el módulo se dejan a los fabricantes de módulos. Uno de ellos prefiere hacerlo por medio de un xml (BlueGiga), mientras que el otro que he usado prefiere el lenguaje SmartBASIC (Laird).