Hi,
I'm getting back "01 10 06" when attempting to send 0x01 Start DFU to the DFU Control Point from my gateway which is a Pi3 running Noble. Notifications are enabled. With the NRF ToolBox I do not seem to get this error. If I send 0x05 or 0x06 from the gateway, the peripheral reboots perfectly fine.
Code:
static _reconnect(peripheral) {
peripheral.once('disconnect', (error)=>{
console.log("Final d/c")
})
peripheral.connect((error)=>{
console.log("Connected, about to send 0x01 to control point")
peripheral.discoverServices([DFU_UPDATE_SERVICE], (error_, services) => {
let dfuService = services[0]
dfuService.discoverCharacteristics([DFU_CONTROL_POINT, DFU_PACKET_CHAR], (error__, characteristics) => {
let controlPointChar = characteristics[1]
let dfuPacketChar = characteristics[0]
// Must enable notifications (subscribe in Noble) to write to control point
this._initResponseListener(controlPointChar)
controlPointChar.subscribe((er)=>{
let dat = Buffer.from(new Uint8Array([START_DFU]))
// Notification param must be false
controlPointChar.write(dat, false, (error___) => {
console.log("Wrote 0x01 to Ctrl Pt..", error___)
})
//this._sendImageSize(controlPointChar, dfuPacketChar)
})
})
})
})
}
static _initResponseListener(controlPointChar) {
controlPointChar.on('data', (data, isNotification)=>{
console.log("Control pt res:", data)
console.log("isNotif:", isNotification)
})
}
Logs:
Connected, about to send 0x01 to control point
Wrote 0x01 to Ctrl Pt.. null
Control pt res: <Buffer 10 01 06>
isNotif: true