Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Creating a single nrf SDK files as static library for application and bootloader

Hello,

I am  trying to create a single static library  for SDK, and use it in application and bootloader, for that i have merged sdk_config.h  files of application and bootloader, combined the makefiles of application and bootloader and generated and single static library out of it.

--------------------------

-> bt.app
     ->project
     ->src
     ->output/.elf& .hex
---------------------------

-> bt.boot
    ->project
    ->src
    ->output/.elf& .hex
---------------------------

-> bt.sdk
    ->project
    ->src
    ->output/ libnrfsdk.a
----------------------------

makefile

PROJECT_NAME     := thirdparty.nordic.sdk.nrf5
TARGETS          := libnrf5
OUTPUT_DIRECTORY := ../../../public/lib

SDKPath := ../../../private
AppDirPath  := ../../../../bt.application
BootDirPath := ../../../..


# Source files common to all targets
SRC_FILES += \
  $(SDKPath)/src/components/ble/ble_services/ble_dfu/ble_dfu.c\
  $(SDKPath)/src/components/ble/ble_services/ble_dfu/ble_dfu_bonded.c\
  $(SDKPath)/src/components/ble/ble_services/ble_dfu/ble_dfu_unbonded.c\
  $(SDKPath)/src/components/ble/ble_services/ble_dis/ble_dis.c\
  $(SDKPath)/src/components/ble/ble_services/ble_tps/ble_tps.c\
  $(SDKPath)/src/components/ble/common/ble_advdata.c\
  $(SDKPath)/src/components/ble/common/ble_conn_params.c\
  $(SDKPath)/src/components/ble/common/ble_conn_state.c\
  $(SDKPath)/src/components/ble/common/ble_srv_common.c\
  $(SDKPath)/src/components/ble/nrf_ble_gatt/nrf_ble_gatt.c\
  $(SDKPath)/src/components/ble/nrf_ble_qwr/nrf_ble_qwr.c\
  $(SDKPath)/src/components/boards/boards.c \
  $(SDKPath)/src/components/libraries/atomic/nrf_atomic.c \
  $(SDKPath)/src/components/libraries/atomic_fifo/nrf_atfifo.c \
  $(SDKPath)/src/components/libraries/atomic_flags/nrf_atflags.c\
  $(SDKPath)/src/components/libraries/balloc/nrf_balloc.c \
  $(SDKPath)/src/components/libraries/bootloader/ble_dfu/nrf_dfu_ble.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/dfu-cc.pb.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_flash.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_handling_error.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_mbr.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_req_handler.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_settings.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_settings_svci.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_svci.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_svci_handler.c \
  $(SDKPath)/src/components/libraries/button/app_button.c\
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_transport.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_utils.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_validation.c \
  $(SDKPath)/src/components/libraries/bootloader/dfu/nrf_dfu_ver_validation.c \
  $(SDKPath)/src/components/libraries/bootloader/nrf_bootloader.c \
  $(SDKPath)/src/components/libraries/bootloader/nrf_bootloader_app_start.c \
  $(SDKPath)/src/components/libraries/bootloader/nrf_bootloader_app_start_final.c \
  $(SDKPath)/src/components/libraries/bootloader/nrf_bootloader_dfu_timers.c \
  $(SDKPath)/src/components/libraries/bootloader/nrf_bootloader_fw_activation.c \
  $(SDKPath)/src/components/libraries/bootloader/nrf_bootloader_info.c \
  $(SDKPath)/src/components/libraries/bootloader/nrf_bootloader_wdt.c \
  $(SDKPath)/src/components/libraries/crc32/crc32.c \
  $(SDKPath)/src/components/libraries/crypto/backend/micro_ecc/micro_ecc_backend_ecc.c \
  $(SDKPath)/src/components/libraries/crypto/backend/micro_ecc/micro_ecc_backend_ecdh.c \
  $(SDKPath)/src/components/libraries/crypto/backend/micro_ecc/micro_ecc_backend_ecdsa.c \
  $(SDKPath)/src/components/libraries/crypto/backend/nrf_sw/nrf_sw_backend_hash.c \
  $(SDKPath)/src/components/libraries/crypto/backend/oberon/oberon_backend_chacha_poly_aead.c \
  $(SDKPath)/src/components/libraries/crypto/backend/oberon/oberon_backend_ecc.c \
  $(SDKPath)/src/components/libraries/crypto/backend/oberon/oberon_backend_ecdh.c \
  $(SDKPath)/src/components/libraries/crypto/backend/oberon/oberon_backend_ecdsa.c \
  $(SDKPath)/src/components/libraries/crypto/backend/oberon/oberon_backend_eddsa.c \
  $(SDKPath)/src/components/libraries/crypto/backend/oberon/oberon_backend_hash.c \
  $(SDKPath)/src/components/libraries/crypto/backend/oberon/oberon_backend_hmac.c \
  $(SDKPath)/src/components/libraries/crypto/nrf_crypto_ecc.c \
  $(SDKPath)/src/components/libraries/crypto/nrf_crypto_ecdsa.c \
  $(SDKPath)/src/components/libraries/crypto/nrf_crypto_hash.c \
  $(SDKPath)/src/components/libraries/crypto/nrf_crypto_init.c \
  $(SDKPath)/src/components/libraries/crypto/nrf_crypto_shared.c \
  $(SDKPath)/src/components/libraries/experimental_section_vars/nrf_section_iter.c \
  $(SDKPath)/src/components/libraries/fstorage/nrf_fstorage.c \
  $(SDKPath)/src/components/libraries/fstorage/nrf_fstorage_nvmc.c \
  $(SDKPath)/src/components/libraries/fstorage/nrf_fstorage_sd.c \
  $(SDKPath)/src/components/libraries/hardfault/hardfault_implementation.c\
  $(SDKPath)/src/components/libraries/log/src/nrf_log_backend_rtt.c\
  $(SDKPath)/src/components/libraries/log/src/nrf_log_backend_serial.c\
  $(SDKPath)/src/components/libraries/log/src/nrf_log_backend_uart.c\
  $(SDKPath)/src/components/libraries/log/src/nrf_log_default_backends.c\
  $(SDKPath)/src/components/libraries/log/src/nrf_log_frontend.c \
  $(SDKPath)/src/components/libraries/log/src/nrf_log_str_formatter.c \
  $(SDKPath)/src/components/libraries/mem_manager/mem_manager.c \
  $(SDKPath)/src/components/libraries/memobj/nrf_memobj.c \
  $(SDKPath)/src/components/libraries/pwr_mgmt/nrf_pwr_mgmt.c\
  $(SDKPath)/src/components/libraries/queue/nrf_queue.c \
  $(SDKPath)/src/components/libraries/ringbuf/nrf_ringbuf.c \
  $(SDKPath)/src/components/libraries/scheduler/app_scheduler.c \
  $(SDKPath)/src/components/libraries/sha256/sha256.c \
  $(SDKPath)/src/components/libraries/serial/nrf_serial.c\
  $(SDKPath)/src/components/libraries/strerror/nrf_strerror.c \
  $(SDKPath)/src/components/libraries/timer/app_timer.c\
  $(SDKPath)/src/components/libraries/svc/nrf_svc_handler.c \
  $(SDKPath)/src/components/libraries/util/app_error_weak.c \
  $(SDKPath)/src/components/libraries/util/app_util_platform.c \
  $(SDKPath)/src/components/libraries/util/nrf_assert.c \
  $(SDKPath)/src/components/softdevice/common/nrf_sdh.c \
  $(SDKPath)/src/components/softdevice/common/nrf_sdh_ble.c \
  $(SDKPath)/src/components/softdevice/common/nrf_sdh_soc.c \
  $(SDKPath)/src/external/nano-pb/pb_common.c \
  $(SDKPath)/src/external/nano-pb/pb_decode.c \
  $(SDKPath)/src/external/utf_converter/utf.c\
  $(SDKPath)/src/integration/nrfx/legacy/nrf_drv_clock.c\
  $(SDKPath)/src/modules/nrfx/drivers/src/nrfx_clock.c\
  $(SDKPath)/src/modules/nrfx/drivers/src/nrfx_gpiote.c\
  $(SDKPath)/src/modules/nrfx/drivers/src/nrfx_timer.c\
  $(SDKPath)/src/modules/nrfx/drivers/src/nrfx_uart.c\
  $(SDKPath)/src/modules/nrfx/drivers/src/prs/nrfx_prs.c\
  $(SDKPath)/src/modules/nrfx/hal/nrf_nvmc.c \
  $(SDKPath)/src/modules/nrfx/mdk/gcc_startup_nrf52.S \
  $(SDKPath)/src/modules/nrfx/mdk/system_nrf52.c \
  $(SDKPath)/src/modules/nrfx/soc/nrfx_atomic.c \
  $(SDKPath)/src/components/ble/common/ble_srv_common.c \

# Include folders common to all targets
INC_FOLDERS += \
  $(SDKPath)/src/components/ble/ble_advertising\
  $(SDKPath)/src/components/ble/ble_dtm\
  $(SDKPath)/src/components/ble/ble_racp\
  $(SDKPath)/src/components/ble/ble_services/ble_ancs_c\
  $(SDKPath)/src/components/ble/ble_services/ble_ans_c\
  $(SDKPath)/src/components/ble/ble_services/ble_bas\
  $(SDKPath)/src/components/ble/ble_services/ble_bas_c\
  $(SDKPath)/src/components/ble/ble_services/ble_cscs\
  $(SDKPath)/src/components/ble/ble_services/ble_cts_c\
  $(SDKPath)/src/components/ble/ble_services/ble_dfu\
  $(SDKPath)/src/components/ble/ble_services/ble_dis\
  $(SDKPath)/src/components/ble/ble_services/ble_gls\
  $(SDKPath)/src/components/ble/ble_services/ble_hids\
  $(SDKPath)/src/components/ble/ble_services/ble_hrs\
  $(SDKPath)/src/components/ble/ble_services/ble_hrs_c\
  $(SDKPath)/src/components/ble/ble_services/ble_hts\
  $(SDKPath)/src/components/ble/ble_services/ble_ias\
  $(SDKPath)/src/components/ble/ble_services/ble_ias_c\
  $(SDKPath)/src/components/ble/ble_services/ble_lbs\
  $(SDKPath)/src/components/ble/ble_services/ble_lbs_c\
  $(SDKPath)/src/components/ble/ble_services/ble_lls\
  $(SDKPath)/src/components/ble/ble_services/ble_nus\
  $(SDKPath)/src/components/ble/ble_services/ble_nus_c\
  $(SDKPath)/src/components/ble/ble_services/ble_rscs\
  $(SDKPath)/src/components/ble/ble_services/ble_rscs_c\
  $(SDKPath)/src/components/ble/ble_services/ble_tps\
  $(SDKPath)/src/components/ble/common \
  $(SDKPath)/src/components/ble/nrf_ble_gatt\
  $(SDKPath)/src/components/ble/nrf_ble_qwr\
  $(SDKPath)/src/components/ble/peer_manager\
  $(SDKPath)/src/components/boards \
  $(SDKPath)/src/components/libraries/atomic \
  $(SDKPath)/src/components/libraries/atomic_fifo \
  $(SDKPath)/src/components/libraries/atomic_flags\
  $(SDKPath)/src/components/libraries/balloc \
  $(SDKPath)/src/components/libraries/bootloader \
  $(SDKPath)/src/components/libraries/bootloader/ble_dfu \
  $(SDKPath)/src/components/libraries/bootloader/dfu \
  $(SDKPath)/src/components/libraries/bootloader\
  $(SDKPath)/src/components/libraries/button\
  $(SDKPath)/src/components/libraries/cli\
  $(SDKPath)/src/components/libraries/crc16\
  $(SDKPath)/src/components/libraries/crc32 \
  $(SDKPath)/src/components/libraries/crypto \
  $(SDKPath)/src/components/libraries/crypto/backend/cc310 \
  $(SDKPath)/src/components/libraries/crypto/backend/cc310_bl \
  $(SDKPath)/src/components/libraries/crypto/backend/cifra \
  $(SDKPath)/src/components/libraries/csense\
  $(SDKPath)/src/components/libraries/csense_drv\
  $(SDKPath)/src/components/libraries/crypto/backend/mbedtls \
  $(SDKPath)/src/components/libraries/crypto/backend/micro_ecc \
  $(SDKPath)/src/components/libraries/crypto/backend/nrf_hw \
  $(SDKPath)/src/components/libraries/crypto/backend/nrf_sw \
  $(SDKPath)/src/components/libraries/crypto/backend/oberon \
  $(SDKPath)/src/components/libraries/crypto/backend/optiga \
  $(SDKPath)/src/components/libraries/delay \
  $(SDKPath)/src/components/libraries/ecc\
  $(SDKPath)/src/components/libraries/experimental_section_vars \
  $(SDKPath)/src/components/libraries/experimental_task_manager\
  $(SDKPath)/src/components/libraries/fds\
  $(SDKPath)/src/components/libraries/fstorage \
  $(SDKPath)/src/components/libraries/gfx\
  $(SDKPath)/src/components/libraries/gpiote\
  $(SDKPath)/src/components/libraries/hardfault\
  $(SDKPath)/src/components/libraries/hci\
  $(SDKPath)/src/components/libraries/led_softblink\
  $(SDKPath)/src/components/libraries/log \
  $(SDKPath)/src/components/libraries/log/src \
  $(SDKPath)/src/components/libraries/low_power_pwm\
  $(SDKPath)/src/components/libraries/mem_manager \
  $(SDKPath)/src/components/libraries/memobj \
  $(SDKPath)/src/components/libraries/mpu\
  $(SDKPath)/src/components/libraries/mutex\
  $(SDKPath)/src/components/libraries/pwm\
  $(SDKPath)/src/components/libraries/pwr_mgmt\
  $(SDKPath)/src/components/libraries/queue \
  $(SDKPath)/src/components/libraries/ringbuf \
  $(SDKPath)/src/components/libraries/scheduler \
  $(SDKPath)/src/components/libraries/sdcard\
  $(SDKPath)/src/components/libraries/serial\
  $(SDKPath)/src/components/libraries/sha256 \
  $(SDKPath)/src/components/libraries/stack_info \
  $(SDKPath)/src/components/libraries/slip\
  $(SDKPath)/src/components/libraries/sortlist\
  $(SDKPath)/src/components/libraries/spi_mngr\
  $(SDKPath)/src/components/libraries/stack_guard\
  $(SDKPath)/src/components/libraries/strerror \
  $(SDKPath)/src/components/libraries/svc \
  $(SDKPath)/src/components/libraries/timer\
  $(SDKPath)/src/components/libraries/twi_mngr\
  $(SDKPath)/src/components/libraries/twi_sensor\
  $(SDKPath)/src/components/libraries/util \
  $(SDKPath)/src/components/softdevice/common \
  $(SDKPath)/src/components/softdevice/s132/headers \
  $(SDKPath)/src/components/softdevice/s132/headers/nrf52 \
  $(SDKPath)/src/components/toolchain/cmsis/dsp/GCC\
  $(SDKPath)/src/components/toolchain/cmsis/include \
  $(SDKPath)/src/components\
  $(SDKPath)/src/config \
  $(SDKPath)/src/external/micro-ecc/micro-ecc \
  $(SDKPath)/src/external/nano-pb \
  $(SDKPath)/src/external/nrf_oberon \
  $(SDKPath)/src/external/nrf_oberon/include \
  $(SDKPath)/src/external/utf_converter\
  $(SDKPath)/src/integration/nrfx/legacy\
  $(SDKPath)/src/integration/nrfx \
  $(SDKPath)/src/modules/nrfx \
  $(SDKPath)/src/modules/nrfx/drivers/include\
  $(SDKPath)/src/modules/nrfx/hal \
  $(SDKPath)/src/modules/nrfx/mdk \
	

# Libraries common to all targets
LIB_FILES += \
  $(SDKPath)/src/external/nrf_oberon/lib/cortex-m4/hard-float/liboberon_2.0.7.a \
  $(SDKPath)/src/external/micro-ecc/nrf52hf_armgcc/armgcc/libmicro_ecc_nrf52.a \
# Optimization flags
OPT = -O3 -g3
# Uncomment the line below to enable link time optimization
#OPT += -flto

# C flags common to all targets
CFLAGS += $(OPT)
CFLAGS += -DBLE_STACK_SUPPORT_REQD
CFLAGS += -DBOARD_PCA10040
CFLAGS += -DCONFIG_GPIO_AS_PINRESET
CFLAGS += -DFLOAT_ABI_HARD
CFLAGS += -DNRF52
CFLAGS += -DNRF52832_XXAA
CFLAGS += -DNRF52_PAN_74
CFLAGS += -DNRF_DFU_SETTINGS_VERSION=2
CFLAGS += -DNRF_DFU_SVCI_ENABLED
CFLAGS += -DNRF_SD_BLE_API_VERSION=6
CFLAGS += -DS132
CFLAGS += -DSOFTDEVICE_PRESENT
CFLAGS += -DSVC_INTERFACE_CALL_AS_NORMAL_FUNCTION
CFLAGS += -DuECC_ENABLE_VLI_API=0
CFLAGS += -DuECC_OPTIMIZATION_LEVEL=3
CFLAGS += -DuECC_SQUARE_FUNC=0
CFLAGS += -DuECC_SUPPORT_COMPRESSED_POINT=0
CFLAGS += -DuECC_VLI_NATIVE_LITTLE_ENDIAN=1
CFLAGS += -mcpu=cortex-m4
CFLAGS += -mthumb -mabi=aapcs
CFLAGS += -Werror
CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
# keep every function in a separate section, this allows linker to discard unused ones
CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
CFLAGS += -fno-builtin -fshort-enums

# C++ flags common to all targets
CXXFLAGS += $(OPT)

# Assembler flags common to all targets
ASMFLAGS += -g3
ASMFLAGS += -mcpu=cortex-m4
ASMFLAGS += -mthumb -mabi=aapcs
ASMFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
ASMFLAGS += -DBLE_STACK_SUPPORT_REQD
ASMFLAGS += -DBOARD_PCA10040
ASMFLAGS += -DCONFIG_GPIO_AS_PINRESET
ASMFLAGS += -DFLOAT_ABI_HARD
ASMFLAGS += -DNRF52
ASMFLAGS += -DNRF52832_XXAA
ASMFLAGS += -DNRF52_PAN_74
ASMFLAGS += -DNRF_DFU_SETTINGS_VERSION=2
ASMFLAGS += -DNRF_DFU_SVCI_ENABLED
ASMFLAGS += -DNRF_SD_BLE_API_VERSION=6
ASMFLAGS += -DS132
ASMFLAGS += -DSOFTDEVICE_PRESENT
ASMFLAGS += -DSVC_INTERFACE_CALL_AS_NORMAL_FUNCTION
ASMFLAGS += -DuECC_ENABLE_VLI_API=0
ASMFLAGS += -DuECC_OPTIMIZATION_LEVEL=3
ASMFLAGS += -DuECC_SQUARE_FUNC=0
ASMFLAGS += -DuECC_SUPPORT_COMPRESSED_POINT=0
ASMFLAGS += -DuECC_VLI_NATIVE_LITTLE_ENDIAN=1


# Linker flags
LDFLAGS += $(OPT)
LDFLAGS += -mthumb -mabi=aapcs -Lmodules/nrfx/mdk
LDFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
# let linker dump unused sections
LDFLAGS += -Wl,--gc-sections
# use newlib in nano version
LDFLAGS += --specs=nano.specs

libnrf5: CFLAGS += -D__HEAP_SIZE=0
libnrf5: ASMFLAGS += -D__HEAP_SIZE=0

# Add standard libraries at the very end of the linker input, after all objects
# that may need symbols provided by these libraries.
LIB_FILES += -lc -lnosys -lm


.PHONY: default help

# Default target - first one defined
default: libnrf5

# Print all targets that can be built
help:
	@echo following targets are available:
	@echo		libnrf5


TEMPLATE_PATH := $(SDKPath)/src/components/toolchain/gcc


include $(TEMPLATE_PATH)/Makefile.common
$(call define_library, $(TARGETS), $(OUTPUT_DIRECTORY)/$(TARGETS).a)


define create_library
@echo Creating library: $($@)
$(NO_ECHO)$(AR) $($@) $^
@echo Done
endef
#copy dependent library
define copy_Dep_library
@echo copying library:
-"$(CURDIR)\copy_results.bat"
@echo copying Done
endef
libnrf5:
	$(create_library)
	$(copy_Dep_library)

With this i could able build and execute successfully for application, but for bootloader after trigger buttonless dfu update, it jumps to bootloader after selecting zip file from  nrf connect app(ver 4.24.3). It  starts update after 1% its failing to update CRC mismatch error is showed in app. With bootloader as single make file project it works fine.

After debugging in dfu_observer() called NRF_DFU_EVT_TRANSPORT_DEACTIVATED. In nrf connect () logger its CRC does not Match But I couldn't understand why CRC is failing

Is their any variable i can to watch to debug the CRC error.

Is combing the SDK  files and generating single libsdk.a is good idea or not? does it have any implication?

Note: I am using Eclipse and Lauterbach debugger.

SDK: 15.3.0

Added log files of nrf connect app for both working and not working case

nRF Connect, 2021-09-06
default (F4:94:6F:53:AE:19)
V	22:25:52.749	Connecting to F4:94:6F:53:AE:19...
D	22:25:52.749	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D	22:25:52.994	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D	22:25:53.817	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	22:25:53.817	Connected to F4:94:6F:53:AE:19
I	22:25:53.834	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
V	22:25:54.814	Discovering services...
D	22:25:54.814	gatt.discoverServices()
I	22:25:54.814	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
D	22:25:54.830	[Callback] Services discovered with status: 0
I	22:25:54.830	Services discovered
V	22:25:54.919	Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
- Central Address Resolution [R] (0x2AA6)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- Manufacturer Name String [R] (0x2A29)
- Firmware Revision String [R] (0x2A26)
- Software Revision String [R] (0x2A28)
Tx Power (0x1804)
- Tx Power Level [R] (0x2A07)
Unknown Service (02a62000-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62001-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62002-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62003-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62004-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62005-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62006-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62007-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62008-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62009-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62010-dc00-1000-2000-f2801f1b9fd1)
Unknown Service (02a61000-5822-4451-83dc-34b1efd0c0fd)
- Unknown Characteristic [I WNR] (02a61001-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (02a61002-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R WNR] (02a61003-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R WNR] (02a61004-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
Secure DFU Service (0xFE59)
- Buttonless DFU [I W] (8ec90003-f315-4f60-9fb8-838830daea50)
   Client Characteristic Configuration (0x2902)
D	22:25:54.919	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D	22:25:54.922	gatt.setCharacteristicNotification(02a61001-5822-4451-83dc-34b1efd0c0fd, true)
D	22:25:54.926	gatt.setCharacteristicNotification(02a61002-5822-4451-83dc-34b1efd0c0fd, true)
D	22:25:54.929	gatt.setCharacteristicNotification(02a61003-5822-4451-83dc-34b1efd0c0fd, true)
D	22:25:54.933	gatt.setCharacteristicNotification(02a61004-5822-4451-83dc-34b1efd0c0fd, true)
I	22:25:58.729	Connection parameters updated (interval: 195.0ms, latency: 0, timeout: 4000ms)
V	22:26:09.571	[DFU] DFU service started
V	22:26:09.571	[DFU] Opening file...
I	22:26:09.624	[DFU] Firmware file opened successfully
V	22:26:09.624	[DFU] Connecting to DFU target...
D	22:26:09.624	[DFU] gatt = device.connectGatt(autoConnect = false)
I	22:26:09.642	[DFU] Connected to F4:94:6F:53:AE:19
V	22:26:09.642	[DFU] Discovering services...
D	22:26:09.642	[DFU] gatt.discoverServices()
I	22:26:09.645	[DFU] Services discovered
D	22:26:09.662	[DFU] wait(1000)
W	22:26:10.657	[DFU] Application with buttonless update found
V	22:26:10.657	[DFU] Jumping to the DFU Bootloader...
V	22:26:10.657	[DFU] Enabling indications for 8ec90003-f315-4f60-9fb8-838830daea50
D	22:26:10.657	[DFU] gatt.setCharacteristicNotification(8ec90003-f315-4f60-9fb8-838830daea50, true)
D	22:26:10.660	[DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x02-00)
I	22:26:11.015	[DFU] Data written to descr.8ec90003-f315-4f60-9fb8-838830daea50, value (0x): 02-00
V	22:26:11.015	[DFU] Notifications enabled for 8ec90003-f315-4f60-9fb8-838830daea50
A	22:26:11.016	[DFU] Indications enabled
D	22:26:11.016	[DFU] wait(1000)
V	22:26:12.057	[DFU] Writing to characteristic 8ec90003-f315-4f60-9fb8-838830daea50
D	22:26:12.057	[DFU] gatt.writeCharacteristic(8ec90003-f315-4f60-9fb8-838830daea50)
A	22:26:12.381	[DFU] Enter bootloader sent (Op Code = 1)
I	22:26:12.382	[DFU] Notification received from 8ec90003-f315-4f60-9fb8-838830daea50, value (0x): 20-01-01
A	22:26:12.382	[DFU] Response received (Op Code = 1, Status = 1)
D	22:26:16.385	[Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E	22:26:16.385	Error 8 (0x8): GATT CONN TIMEOUT
I	22:26:16.385	Disconnected
I	22:26:16.423	[DFU] Disconnected by the remote device
D	22:26:16.423	[DFU] gatt.refresh() (hidden)
D	22:26:16.423	[DFU] gatt.close()
D	22:26:16.424	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	22:26:16.452	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V	22:26:16.452	[DFU] Scanning for the DFU Bootloader...
I	22:26:16.586	[DFU] DFU Bootloader found with address F4:94:6F:53:AE:1A
V	22:26:16.609	[DFU] DFU service started
I	22:26:16.609	[DFU] Firmware file opened successfully
D	22:26:16.610	[DFU] wait(1000)
D	22:26:17.610	[DFU] wait(1000)
V	22:26:19.467	[DFU] Connecting to DFU target...
D	22:26:19.469	[DFU] gatt = device.connectGatt(autoConnect = false)
I	22:26:19.469	[DFU] Connected to F4:94:6F:53:AE:1A
V	22:26:19.469	[DFU] Discovering services...
D	22:26:19.469	[DFU] gatt.discoverServices()
I	22:26:19.469	[DFU] Services discovered
D	22:26:19.469	[DFU] wait(1000)
D	22:26:19.807	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
V	22:26:20.340	[DFU] Requesting new MTU...
D	22:26:20.340	[DFU] gatt.requestMtu(517)
I	22:26:20.376	[DFU] MTU changed to: 247
V	22:26:20.376	[DFU] Enabling notifications for 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:20.376	[DFU] gatt.setCharacteristicNotification(8ec90001-f315-4f60-9fb8-838830daea50, true)
D	22:26:20.379	[DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I	22:26:20.435	[DFU] Data written to descr.8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-00
V	22:26:20.436	[DFU] Notifications enabled for 8ec90001-f315-4f60-9fb8-838830daea50
A	22:26:20.436	[DFU] Notifications enabled
D	22:26:20.436	[DFU] wait(1000)
V	22:26:21.437	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:21.437	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:21.471	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-01
I	22:26:21.472	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-06-01-00-02-00-00-00-00-00-00-00-00-00-00
A	22:26:21.472	[DFU] Command object info received (Max size = 512, Offset = 0, CRC = 00000000)
V	22:26:21.473	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:21.473	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:21.503	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-00-00
I	22:26:21.506	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01
A	22:26:21.506	[DFU] Packet Receipt Notif disabled (Op Code = 2, Value = 0)
V	22:26:21.506	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:21.506	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:21.531	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-01-8D-00-00-00
I	22:26:21.532	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:21.532	[DFU] Command object created
V	22:26:21.533	[DFU] Writing to characteristic 8ec90002-f315-4f60-9fb8-838830daea50
D	22:26:21.533	[DFU] gatt.writeCharacteristic(8ec90002-f315-4f60-9fb8-838830daea50)
I	22:26:21.536	[DFU] Data written to 8ec90002-f315-4f60-9fb8-838830daea50, value (0x): 12-8A-01-0A-44-08-01-12-40-08-01-10-34-1A-02-B7-01-20-00-28-00-30-00-38-B0-E2-04-42-24-08-03-12-20-EE-E0-A8-2D-66-87-3C-E2-4B-B8-E4-4D-D2-07-02-22-6F-8C-B9-40-B0-E3-97-FE-37-FE-28-41-E5-08-0F-34-48-00-52-04-08-01-12-00-10-00-1A-40-41-5C-EE-26-08-9B-50-D1-E0-A9-BA-31-C4-26-05-E4-4F-DB-60-40-DF-EC-C1-90-73-8C-01-CB-C3-8F-F7-D4-72-D0-44-2A-22-38-88-E8-7C-5A-49-E4-43-38-14-9B-B4-4E-59-93-3F-85-07-20-B6-D7-CA-AF-2B-A0-D6-83
A	22:26:21.537	[DFU] Command object sent (CRC = 1939F6E6)
V	22:26:21.537	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:21.537	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:21.577	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:21.578	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-8D-00-00-00-E6-F6-39-19
A	22:26:21.579	[DFU] Checksum received (Offset = 141, CRC = 1939F6E6)
V	22:26:21.580	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:21.580	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:21.606	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:21.742	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:21.742	[DFU] Command object executed
V	22:26:21.744	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:21.744	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:21.772	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-02
I	22:26:21.773	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-06-01-00-10-00-00-00-00-00-00-00-00-00-00
A	22:26:21.774	[DFU] Data object info received (Max size = 4096, Offset = 0, CRC = 00000000)
V	22:26:21.810	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:21.810	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:21.905	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:21.906	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:21.906	[DFU] Data object (1/20) created
D	22:26:21.906	[DFU] wait(400)
A	22:26:22.307	[DFU] Uploading firmware...
V	22:26:22.307	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:22.351	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:22.351	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:22.888	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:22.889	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-10-00-00-26-46-5F-7A
A	22:26:22.889	[DFU] Checksum received (Offset = 4096, CRC = 7A5F4626)
V	22:26:22.889	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:22.889	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:22.889	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:22.889	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:22.889	[DFU] Data object executed
V	22:26:22.889	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:22.889	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:22.889	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:22.889	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:22.889	[DFU] Data object (2/20) created
A	22:26:22.889	[DFU] Uploading firmware...
V	22:26:22.889	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:22.892	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:22.892	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:23.012	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:23.012	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-20-00-00-08-C0-5B-1B
A	22:26:23.012	[DFU] Checksum received (Offset = 8192, CRC = 1B5BC008)
V	22:26:23.012	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:23.012	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:23.030	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:23.031	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:23.031	[DFU] Data object executed
V	22:26:23.032	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:23.032	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:23.061	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:23.062	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:23.063	[DFU] Data object (3/20) created
A	22:26:23.063	[DFU] Uploading firmware...
V	22:26:23.098	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:23.163	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:23.163	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:23.421	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:23.421	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-30-00-00-E4-FD-3B-68
A	22:26:23.422	[DFU] Checksum received (Offset = 12288, CRC = 683BFDE4)
V	22:26:23.422	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:23.422	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:23.450	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:23.451	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:23.451	[DFU] Data object executed
V	22:26:23.452	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:23.452	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:23.482	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:23.484	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:23.484	[DFU] Data object (4/20) created
A	22:26:23.484	[DFU] Uploading firmware...
V	22:26:23.485	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:23.629	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:23.629	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:23.858	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:23.858	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-40-00-00-D0-9D-C2-16
A	22:26:23.859	[DFU] Checksum received (Offset = 16384, CRC = 16C29DD0)
V	22:26:23.861	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:23.861	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:23.885	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:23.885	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:23.886	[DFU] Data object executed
V	22:26:23.886	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:23.886	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.902	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:25.902	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:25.902	[DFU] Data object (5/20) created
A	22:26:25.902	[DFU] Uploading firmware...
V	22:26:25.902	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:25.912	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.912	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.912	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:25.912	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-50-00-00-92-A0-38-05
A	22:26:25.912	[DFU] Checksum received (Offset = 20480, CRC = 0538A092)
V	22:26:25.912	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.912	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.912	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:25.912	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:25.912	[DFU] Data object executed
V	22:26:25.912	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.912	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.912	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:25.912	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:25.912	[DFU] Data object (6/20) created
A	22:26:25.912	[DFU] Uploading firmware...
V	22:26:25.912	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:25.919	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.919	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.919	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:25.919	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-60-00-00-C4-61-EC-22
A	22:26:25.919	[DFU] Checksum received (Offset = 24576, CRC = 22EC61C4)
V	22:26:25.919	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.919	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.919	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:25.919	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:25.919	[DFU] Data object executed
V	22:26:25.919	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.919	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.919	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:25.919	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:25.919	[DFU] Data object (7/20) created
A	22:26:25.919	[DFU] Uploading firmware...
V	22:26:25.919	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:25.927	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.927	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.927	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:25.927	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-70-00-00-79-42-57-6C
A	22:26:25.927	[DFU] Checksum received (Offset = 28672, CRC = 6C574279)
V	22:26:25.927	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.927	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.927	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:25.927	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:25.927	[DFU] Data object executed
V	22:26:25.927	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.927	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.927	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:25.927	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:25.927	[DFU] Data object (8/20) created
A	22:26:25.927	[DFU] Uploading firmware...
V	22:26:25.927	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:25.934	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.934	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.934	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:25.934	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-80-00-00-F8-7B-94-3E
A	22:26:25.934	[DFU] Checksum received (Offset = 32768, CRC = 3E947BF8)
V	22:26:25.934	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.934	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.934	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:25.934	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:25.934	[DFU] Data object executed
V	22:26:25.934	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.934	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:25.934	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:25.934	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:25.934	[DFU] Data object (9/20) created
A	22:26:25.934	[DFU] Uploading firmware...
V	22:26:25.934	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:25.944	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:25.944	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:26.045	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:26.046	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-90-00-00-68-52-31-37
A	22:26:26.046	[DFU] Checksum received (Offset = 36864, CRC = 37315268)
V	22:26:26.046	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:26.046	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:26.075	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:26.078	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:26.079	[DFU] Data object executed
V	22:26:26.079	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:26.080	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:26.105	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:26.106	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:26.106	[DFU] Data object (10/20) created
A	22:26:26.106	[DFU] Uploading firmware...
V	22:26:26.107	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:26.213	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:26.213	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:26.511	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:26.513	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-A0-00-00-FE-3D-60-38
A	22:26:26.514	[DFU] Checksum received (Offset = 40960, CRC = 38603DFE)
V	22:26:26.514	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:26.514	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:26.542	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:26.543	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:26.544	[DFU] Data object executed
V	22:26:26.544	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:26.544	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:26.570	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:26.573	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:26.573	[DFU] Data object (11/20) created
A	22:26:26.573	[DFU] Uploading firmware...
V	22:26:26.574	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:26.654	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:26.654	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.092	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.092	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-B0-00-00-E0-C3-F0-38
A	22:26:31.092	[DFU] Checksum received (Offset = 45056, CRC = 38F0C3E0)
V	22:26:31.092	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.092	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.092	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.092	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.092	[DFU] Data object executed
V	22:26:31.092	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.092	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.092	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:31.092	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:31.092	[DFU] Data object (12/20) created
A	22:26:31.092	[DFU] Uploading firmware...
V	22:26:31.092	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:31.100	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.100	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.100	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.100	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-C0-00-00-85-7A-57-94
A	22:26:31.100	[DFU] Checksum received (Offset = 49152, CRC = 94577A85)
V	22:26:31.100	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.100	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.100	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.100	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.100	[DFU] Data object executed
V	22:26:31.100	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.100	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.100	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:31.100	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:31.100	[DFU] Data object (13/20) created
A	22:26:31.100	[DFU] Uploading firmware...
V	22:26:31.100	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:31.109	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.109	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.109	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.109	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-D0-00-00-D1-FF-B8-90
A	22:26:31.109	[DFU] Checksum received (Offset = 53248, CRC = 90B8FFD1)
V	22:26:31.109	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.109	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.109	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.109	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.109	[DFU] Data object executed
V	22:26:31.109	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.109	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.109	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:31.109	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:31.109	[DFU] Data object (14/20) created
A	22:26:31.109	[DFU] Uploading firmware...
V	22:26:31.109	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:31.115	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.115	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.115	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.115	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-E0-00-00-2C-09-0E-B0
A	22:26:31.115	[DFU] Checksum received (Offset = 57344, CRC = B00E092C)
V	22:26:31.115	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.115	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.115	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.115	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.115	[DFU] Data object executed
V	22:26:31.115	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.115	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.115	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:31.115	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:31.115	[DFU] Data object (15/20) created
A	22:26:31.115	[DFU] Uploading firmware...
V	22:26:31.115	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:31.123	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.123	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.123	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.123	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-F0-00-00-0A-C7-AD-38
A	22:26:31.123	[DFU] Checksum received (Offset = 61440, CRC = 38ADC70A)
V	22:26:31.123	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.123	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.123	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.123	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.123	[DFU] Data object executed
V	22:26:31.123	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.123	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.123	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:31.123	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:31.123	[DFU] Data object (16/20) created
A	22:26:31.123	[DFU] Uploading firmware...
V	22:26:31.123	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:31.130	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.130	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.130	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.130	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-00-01-00-AD-48-08-BE
A	22:26:31.130	[DFU] Checksum received (Offset = 65536, CRC = BE0848AD)
V	22:26:31.130	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.130	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.130	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.130	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.130	[DFU] Data object executed
V	22:26:31.130	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.130	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.130	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:31.130	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:31.130	[DFU] Data object (17/20) created
A	22:26:31.130	[DFU] Uploading firmware...
V	22:26:31.130	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:31.139	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.139	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.139	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.139	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-10-01-00-29-64-32-A2
A	22:26:31.139	[DFU] Checksum received (Offset = 69632, CRC = A2326429)
V	22:26:31.139	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.139	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.139	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.139	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.139	[DFU] Data object executed
V	22:26:31.139	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.139	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.139	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:31.139	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:31.139	[DFU] Data object (18/20) created
A	22:26:31.139	[DFU] Uploading firmware...
V	22:26:31.139	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:31.146	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.146	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.146	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.146	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-20-01-00-18-94-9E-C6
A	22:26:31.146	[DFU] Checksum received (Offset = 73728, CRC = C69E9418)
V	22:26:31.146	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.146	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.146	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.146	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.146	[DFU] Data object executed
V	22:26:31.146	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.146	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.146	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	22:26:31.146	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:31.146	[DFU] Data object (19/20) created
A	22:26:31.146	[DFU] Uploading firmware...
V	22:26:31.146	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:31.153	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.153	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.153	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.153	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-00-30-01-00-89-23-67-49
A	22:26:31.153	[DFU] Checksum received (Offset = 77824, CRC = 49672389)
V	22:26:31.153	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.153	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.153	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.153	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.153	[DFU] Data object executed
V	22:26:31.153	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.153	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.153	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-30-01-00-00
I	22:26:31.153	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	22:26:31.153	[DFU] Data object (20/20) created
A	22:26:31.153	[DFU] Uploading firmware...
V	22:26:31.153	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	22:26:31.155	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.155	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.155	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	22:26:31.155	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-30-31-01-00-03-50-D3-E8
A	22:26:31.155	[DFU] Checksum received (Offset = 78128, CRC = E8D35003)
V	22:26:31.155	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	22:26:31.155	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	22:26:31.155	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	22:26:31.228	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	22:26:31.228	[DFU] Data object executed
A	22:26:31.228	[DFU] Upload completed in 9030 ms
I	22:26:31.510	[DFU] Disconnected by the remote device
D	22:26:31.513	[DFU] gatt.refresh() (hidden)
D	22:26:31.575	[DFU] gatt.close()
D	22:26:31.575	[DFU] wait(1400)
D	22:26:37.330	gatt.close()
D	22:26:37.339	wait(200)
V	22:26:37.542	Connecting to F4:94:6F:53:AE:19...
D	22:26:37.543	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D	22:26:37.720	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	22:26:37.720	Connected to F4:94:6F:53:AE:19
I	22:26:38.104	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D	22:26:39.746	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I	22:26:39.746	Connection parameters updated (interval: 45.0ms, latency: 0, timeout: 5000ms)
V	22:26:39.747	Discovering services...
D	22:26:39.747	gatt.discoverServices()
D	22:26:39.762	[Callback] Services discovered with status: 0
I	22:26:39.771	Services discovered
V	22:26:39.869	Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
- Central Address Resolution [R] (0x2AA6)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- Manufacturer Name String [R] (0x2A29)
- Model Number String [R] (0x2A24)
- Serial Number String [R] (0x2A25)
- Hardware Revision String [R] (0x2A27)
- Firmware Revision String [R] (0x2A26)
- Software Revision String [R] (0x2A28)
Tx Power (0x1804)
- Tx Power Level [R] (0x2A07)
Unknown Service (02a62000-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62001-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62002-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62003-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62004-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62005-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62006-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62007-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62008-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62009-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62010-dc00-1000-2000-f2801f1b9fd1)
Unknown Service (02a61000-5822-4451-83dc-34b1efd0c0fd)
- Unknown Characteristic [I WNR] (02a61001-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (02a61002-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R WNR] (02a61003-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R WNR] (02a61004-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
Secure DFU Service (0xFE59)
- Buttonless DFU [I W] (8ec90003-f315-4f60-9fb8-838830daea50)
   Client Characteristic Configuration (0x2902)
D	22:26:39.869	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D	22:26:39.872	gatt.setCharacteristicNotification(02a61001-5822-4451-83dc-34b1efd0c0fd, true)
D	22:26:39.875	gatt.setCharacteristicNotification(02a61002-5822-4451-83dc-34b1efd0c0fd, true)
D	22:26:39.878	gatt.setCharacteristicNotification(02a61003-5822-4451-83dc-34b1efd0c0fd, true)
D	22:26:39.881	gatt.setCharacteristicNotification(02a61004-5822-4451-83dc-34b1efd0c0fd, true)
I	22:26:43.550	Connection parameters updated (interval: 195.0ms, latency: 0, timeout: 4000ms)
V	13:06:07.711	Disconnecting...
D	13:06:07.711	gatt.disconnect()
D	13:06:07.740	[Callback] Connection state changed with status: 0 and new state: DISCONNECTED (0)
I	13:06:07.740	Disconnected
D	13:06:08.744	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED

nRF Connect, 2021-09-07
default (E5:1D:DD:70:96:27)
I	12:53:26.291	[Server] Server started
V	12:53:26.309	Heart Rate (0x180D)
- Heart Rate Measurement [N] (0x2A37)
   Client Characteristic Configuration (0x2902)
- Body Sensor Location [R] (0x2A38)
- Heart Rate Control Point [W] (0x2A39)
Unknown Service (0000aaa0-0000-1000-8000-aabbccddeeff)
- Unknown Characteristic [N R] (0000aaa1-0000-1000-8000-aabbccddeeff)
   Client Characteristic Configuration (0x2902)
   Unknown Descriptor (0000aab0-0000-1000-8000-aabbccddeeff)
   Characteristic User Description (0x2901)
   Characteristic Presentation Format (0x2904)
- Unknown Characteristic [I W WNR] (0000aaa2-0000-1000-8000-aabbccddeeff)
   Client Characteristic Configuration (0x2902)
User Data (0x181C)
- First Name [R W] (0x2A8A)
- Last Name [R W] (0x2A90)
- Gender [R W] (0x2A8C)
Current Time Service (0x1805)
- Current Time [N R] (0x2A2B)
   Client Characteristic Configuration (0x2902)
- Local Time Information [R] (0x2A0F)
V	12:53:26.658	Connecting to E5:1D:DD:70:96:27...
D	12:53:26.658	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D	12:53:26.879	[Server callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	12:53:26.880	[Server] Device with address E5:1D:DD:70:96:27 connected
I	12:53:26.880	[Server] MTU changed to 247
D	12:53:26.907	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
D	12:53:26.907	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I	12:53:26.907	Connected to E5:1D:DD:70:96:27
V	12:53:26.931	Discovering services...
D	12:53:26.931	gatt.discoverServices()
I	12:53:27.663	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
D	12:53:28.028	[Callback] Services discovered with status: 0
I	12:53:28.028	Services discovered
V	12:53:28.086	Generic Access (0x1800)
- Device Name [R W] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
- Central Address Resolution [R] (0x2AA6)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- Manufacturer Name String [R] (0x2A29)
- Firmware Revision String [R] (0x2A26)
- Software Revision String [R] (0x2A28)
Tx Power (0x1804)
- Tx Power Level [R] (0x2A07)
Unknown Service (02a62000-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62001-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62002-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62003-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62004-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62005-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62006-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62007-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62008-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62009-dc00-1000-2000-f2801f1b9fd1)
- Unknown Characteristic [R] (02a62010-dc00-1000-2000-f2801f1b9fd1)
Unknown Service (02a61000-5822-4451-83dc-34b1efd0c0fd)
- Unknown Characteristic [I WNR] (02a61001-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (02a61002-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R WNR] (02a61003-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R WNR] (02a61004-5822-4451-83dc-34b1efd0c0fd)
   Client Characteristic Configuration (0x2902)
Secure DFU Service (0xFE59)
- Buttonless DFU [I W] (8ec90003-f315-4f60-9fb8-838830daea50)
   Client Characteristic Configuration (0x2902)
D	12:53:28.086	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D	12:53:28.089	gatt.setCharacteristicNotification(02a61001-5822-4451-83dc-34b1efd0c0fd, true)
D	12:53:28.092	gatt.setCharacteristicNotification(02a61002-5822-4451-83dc-34b1efd0c0fd, true)
D	12:53:28.094	gatt.setCharacteristicNotification(02a61003-5822-4451-83dc-34b1efd0c0fd, true)
D	12:53:28.097	gatt.setCharacteristicNotification(02a61004-5822-4451-83dc-34b1efd0c0fd, true)
I	12:53:28.113	Connection parameters updated (interval: 48.75ms, latency: 0, timeout: 5000ms)
V	12:53:32.237	[DFU] DFU service started
V	12:53:32.237	[DFU] Opening file...
I	12:53:32.256	[DFU] Firmware file opened successfully
V	12:53:32.256	[DFU] Connecting to DFU target...
D	12:53:32.257	[DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
I	12:53:32.263	[DFU] Connected to E5:1D:DD:70:96:27
V	12:53:32.264	[DFU] Discovering services...
D	12:53:32.264	[DFU] gatt.discoverServices()
I	12:53:32.267	[DFU] Services discovered
D	12:53:32.285	[DFU] wait(1000)
I	12:53:33.147	Connection parameters updated (interval: 198.75ms, latency: 0, timeout: 4000ms)
W	12:53:33.286	[DFU] Application with buttonless update found
V	12:53:33.286	[DFU] Jumping to the DFU Bootloader...
V	12:53:33.286	[DFU] Enabling indications for 8ec90003-f315-4f60-9fb8-838830daea50
D	12:53:33.286	[DFU] gatt.setCharacteristicNotification(8ec90003-f315-4f60-9fb8-838830daea50, true)
D	12:53:33.286	[DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x02-00)
I	12:53:33.544	[DFU] Data written to descr.8ec90003-f315-4f60-9fb8-838830daea50, value (0x): 02-00
V	12:53:33.544	[DFU] Notifications enabled for 8ec90003-f315-4f60-9fb8-838830daea50
A	12:53:33.544	[DFU] Indications enabled
D	12:53:33.544	[DFU] wait(1000)
V	12:53:34.555	[DFU] Writing to characteristic 8ec90003-f315-4f60-9fb8-838830daea50
D	12:53:34.555	[DFU] gatt.writeCharacteristic(8ec90003-f315-4f60-9fb8-838830daea50)
A	12:53:34.934	[DFU] Enter bootloader sent (Op Code = 1)
I	12:53:34.935	[DFU] Notification received from 8ec90003-f315-4f60-9fb8-838830daea50, value (0x): 20-01-01
A	12:53:34.935	[DFU] Response received (Op Code = 1, Status = 1)
D	12:53:39.110	[Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0)
I	12:53:39.110	[Server] Device disconnected
D	12:53:39.131	[Callback] Connection state changed with status: 8 and new state: DISCONNECTED (0)
E	12:53:39.132	Error 8 (0x8): GATT CONN TIMEOUT
I	12:53:39.132	Disconnected
I	12:53:39.132	[DFU] Disconnected by the remote device
D	12:53:39.132	[DFU] gatt.refresh() (hidden)
D	12:53:39.132	[DFU] gatt.disconnect()
D	12:53:39.132	[DFU] gatt.close()
D	12:53:39.133	[Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
D	12:53:39.154	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED
V	12:53:39.155	[DFU] Scanning for the DFU Bootloader...
I	12:53:43.259	[DFU] DFU Bootloader found with address E5:1D:DD:70:96:28
V	12:53:43.282	[DFU] DFU service started
I	12:53:43.282	[DFU] Firmware file opened successfully
D	12:53:43.282	[DFU] wait(1000)
D	12:53:44.282	[DFU] wait(1000)
V	12:53:45.295	[DFU] Connecting to DFU target...
D	12:53:45.296	[DFU] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferredPhy = LE_1M | LE_2M)
D	12:53:45.399	[DFU] [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I	12:53:45.405	[DFU] Connected to E5:1D:DD:70:96:28
V	12:53:45.406	[DFU] Discovering services...
D	12:53:45.406	[DFU] gatt.discoverServices()
I	12:53:46.341	[DFU] Services discovered
D	12:53:46.356	[DFU] wait(1000)
V	12:53:47.353	[DFU] Requesting new MTU...
D	12:53:47.353	[DFU] gatt.requestMtu(517)
I	12:53:47.392	[DFU] MTU changed to: 247
V	12:53:47.392	[DFU] Enabling notifications for 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:47.392	[DFU] gatt.setCharacteristicNotification(8ec90001-f315-4f60-9fb8-838830daea50, true)
D	12:53:47.394	[DFU] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x01-00)
I	12:53:47.451	[DFU] Data written to descr.8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-00
V	12:53:47.451	[DFU] Notifications enabled for 8ec90001-f315-4f60-9fb8-838830daea50
A	12:53:47.451	[DFU] Notifications enabled
D	12:53:47.451	[DFU] wait(1000)
V	12:53:48.452	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:48.452	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:48.471	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-01
I	12:53:48.472	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-06-01-00-02-00-00-91-00-00-00-7C-7F-4E-F6
A	12:53:48.472	[DFU] Command object info received (Max size = 512, Offset = 145, CRC = F64E7F7C)
V	12:53:48.472	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:48.472	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:48.501	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-00-00
I	12:53:48.502	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01
A	12:53:48.502	[DFU] Packet Receipt Notif disabled (Op Code = 2, Value = 0)
V	12:53:48.502	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:48.502	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:48.531	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-01-8D-00-00-00
I	12:53:48.532	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	12:53:48.532	[DFU] Command object created
V	12:53:48.532	[DFU] Writing to characteristic 8ec90002-f315-4f60-9fb8-838830daea50
D	12:53:48.532	[DFU] gatt.writeCharacteristic(8ec90002-f315-4f60-9fb8-838830daea50)
I	12:53:48.534	[DFU] Data written to 8ec90002-f315-4f60-9fb8-838830daea50, value (0x): 12-8A-01-0A-44-08-01-12-40-08-01-10-34-1A-02-B7-01-20-00-28-00-30-00-38-E0-E2-04-42-24-08-03-12-20-C8-1E-9B-1A-6C-D9-25-3F-9F-09-3A-0B-44-BC-A3-63-EC-D8-08-F4-64-6B-B1-B3-BC-52-A4-96-50-06-D1-3A-48-00-52-04-08-01-12-00-10-00-1A-40-B7-EE-74-7C-B8-17-51-B6-1F-C4-1A-E6-DD-69-44-04-DF-48-3A-69-2D-08-E7-6A-4B-55-95-B8-D2-73-D0-E4-69-AF-82-C2-CD-D1-00-C3-28-BD-42-75-78-BF-5A-7F-8E-F9-C5-AF-EE-F6-87-AA-9C-00-9F-A8-E0-28-F1-87
A	12:53:48.535	[DFU] Command object sent (CRC = 715B39E6)
V	12:53:48.535	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:48.535	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:48.562	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	12:53:48.563	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-8D-00-00-00-E6-39-5B-71
A	12:53:48.563	[DFU] Checksum received (Offset = 141, CRC = 715B39E6)
V	12:53:48.563	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:48.563	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:48.592	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 04
I	12:53:48.727	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-04-01
A	12:53:48.727	[DFU] Command object executed
V	12:53:48.728	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:48.728	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:48.757	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-0A-00
I	12:53:48.758	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01
A	12:53:48.758	[DFU] Packet Receipt Notif Req (Op Code = 2) sent (Value = 10)
V	12:53:48.758	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:48.759	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:48.877	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 06-02
I	12:53:48.878	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-06-01-00-10-00-00-00-00-00-00-00-00-00-00
A	12:53:48.879	[DFU] Data object info received (Max size = 4096, Offset = 0, CRC = 00000000)
V	12:53:48.912	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:48.912	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:49.012	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	12:53:49.013	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	12:53:49.013	[DFU] Data object (1/20) created
D	12:53:49.013	[DFU] wait(400)
A	12:53:49.414	[DFU] Uploading firmware...
V	12:53:49.414	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	12:53:49.642	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:49.642	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:49.672	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	12:53:49.672	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-B8-05-00-00-EA-4F-F6-1A
A	12:53:49.673	[DFU] Checksum received (Offset = 1464, CRC = 1AF64FEA)
W	12:53:49.673	[DFU] 976 bytes were lost
V	12:53:49.714	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:49.714	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:49.717	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 02-01-00
I	12:53:49.719	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-02-01
A	12:53:49.719	[DFU] Packet Receipt Notif Req (Op Code = 2) sent (Value = 1)
W	12:53:49.719	[DFU] CRC does not match! Expected BA2C2521 but found 1AF64FEA. Retrying...(2/3)
V	12:53:49.722	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:49.722	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:49.762	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	12:53:49.762	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	12:53:49.763	[DFU] Data object (1/20) created
D	12:53:49.763	[DFU] wait(400)
A	12:53:50.163	[DFU] Uploading firmware...
V	12:53:50.163	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	12:53:50.512	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:50.512	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:50.542	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	12:53:50.543	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-A0-07-00-00-CF-18-D0-6D
A	12:53:50.544	[DFU] Checksum received (Offset = 1952, CRC = 6DD018CF)
W	12:53:50.544	[DFU] 244 bytes were lost
W	12:53:50.544	[DFU] CRC does not match! Expected CA3E8ABC but found 6DD018CF. Retrying...(3/3)
V	12:53:50.581	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:50.581	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:50.587	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 01-02-00-10-00-00
I	12:53:50.588	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-01-01
A	12:53:50.588	[DFU] Data object (1/20) created
D	12:53:50.588	[DFU] wait(400)
A	12:53:50.989	[DFU] Uploading firmware...
V	12:53:50.989	[DFU] Sending firmware to characteristic 8ec90002-f315-4f60-9fb8-838830daea50...
V	12:53:51.337	[DFU] Writing to characteristic 8ec90001-f315-4f60-9fb8-838830daea50
D	12:53:51.337	[DFU] gatt.writeCharacteristic(8ec90001-f315-4f60-9fb8-838830daea50)
I	12:53:51.367	[DFU] Data written to 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 03
I	12:53:51.367	[DFU] Notification received from 8ec90001-f315-4f60-9fb8-838830daea50, value (0x): 60-03-01-A0-07-00-00-CF-18-D0-6D
A	12:53:51.368	[DFU] Checksum received (Offset = 1952, CRC = 6DD018CF)
W	12:53:51.368	[DFU] 244 bytes were lost
E	12:53:51.369	[DFU] CRC does not match! Expected CA3E8ABC but found 6DD018CF.
V	12:53:51.369	[DFU] Disconnecting...
D	12:53:51.380	[DFU] gatt.disconnect()
I	12:53:51.386	[DFU] Disconnected
D	12:53:51.388	[DFU] gatt.refresh() (hidden)
D	12:53:51.390	[DFU] gatt.disconnect()
D	12:53:51.394	[DFU] gatt.close()
D	12:53:51.397	[DFU] wait(600)
D	12:53:52.006	gatt.close()
D	12:53:52.010	wait(200)
V	12:53:52.212	Connecting to E5:1D:DD:70:96:27...
D	12:53:52.213	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D	12:53:57.232	[Server callback] Connection state changed with status: 0 and new state: DISCONNECTED (0)
I	12:53:57.232	[Server] Device disconnected
D	12:53:57.244	[Callback] Connection state changed with status: 133 and new state: DISCONNECTED (0)
E	12:53:57.244	Error 133 (0x85): GATT ERROR
I	12:53:57.244	Disconnected

  • yes, a static lib is the best idea.  It's been done here and worked fine github.com/.../IOsonata

  • Hi,

    Building the SDK as a library is not something we test and it can lead to a several issues. . I advice against this unless you have a particularly good reason to go in this direction. As you use a static library I do not see any advantages of doing it like this.

    (If you were using shared libraries between application and bootloader that could make sense to save some space as you can reduce duplication of functionality, but it is not that much, and will will  be problematic. If you update one or the other - which you always do with the nRF5 SDK example bootloader - you risk getting incompatibilities if you change the shared library, so this is not a good idea.)

  • Hello Einar Thorsrud,

    Thanks for your response.

    Our intension is to just maintain SDK as separate repository and build it as library, only use it with our application or bootloader, without sdk source files.

  • I see. I would not recommend that. There are several reasons, but a key point which is a blocker in itself is that SDK configuration is to a large extent done via sdk_config.h and preprocessor macros in the source files. This means that you would have to rebuild the entire SDK library every time you make a change. And the same configuration will typically not be suitable for different projects, for instance bootloader and application, so you cannot use the same library file for both. This would defeat the purpose.

    Also, while the SDK is as generic as possible and well tested, there are sometimes need to do minor changes in the SDK files themselves.

    Lastly, we customers report several issues with this with different toolchains ad it is not supported nor tested by Nordic.

Related