BLE MIDI with Feather Bluefruit nRF52
Re: BLE MIDI with Feather Bluefruit nRF52
nRF52 support requires at least Arduino IDE version 1.8.6! Please make sure you have an up to date version before proceeding with this guide!
Re: BLE MIDI with Feather Bluefruit nRF52
Re: BLE MIDI with Feather Bluefruit nRF52
If you get this error:
Timed out waiting for acknowledgement from device.
Failed to upgrade target. Error is: No data received on serial port. Not able to proceed.
Traceback (most recent call last):
File "nordicsemi\__main__.py", line 294, in serial
File "nordicsemi\dfu\dfu.py", line 235, in dfu_send_images
File "nordicsemi\dfu\dfu.py", line 203, in _dfu_send_image
File "nordicsemi\dfu\dfu_transport_serial.py", line 155, in send_init_packet
File "nordicsemi\dfu\dfu_transport_serial.py", line 243, in send_packet
File "nordicsemi\dfu\dfu_transport_serial.py", line 282, in get_ack_nr
nordicsemi.exceptions.NordicSemiException: No data received on serial port. Not able to proceed.
This is probably caused by the bootloader version mismatched on your feather and installed BSP. Due to the difference in flash layout (more details) and Softdevice API (which is bundled with bootloader), sketch built with selected bootloader can only upload to board having the same version. In short, you need to upgrade/burn bootloader to match on your Feather, follow above Update The Bootloader guide
It only has to be done once to update your Feather
Re: BLE MIDI with Feather Bluefruit nRF52
Re: BLE MIDI with Feather Bluefruit nRF52
BSP release & Bootloader version
The memory usage depends on the version of the Softdevice and/or bootloader (single/dual bank). Following is the Bootloader and Softdevice version included with BSP release
- 0.9.x :nRF52832 S132 v6.1.1 single bank andnRF52840 S140 v6.1.1 single bank
- 0.8.x :nRF52832 S132 v2.0.1 dual banks and S132 v5.1.0 dual banks
- 0.7.x and older:nRF52832 S132 v2.0.1 dual banks
Re: BLE MIDI with Feather Bluefruit nRF52
Re: BLE MIDI with Feather Bluefruit nRF52
Re: BLE MIDI with Feather Bluefruit nRF52
Re: BLE MIDI with Feather Bluefruit nRF52
Re: BLE MIDI with Feather Bluefruit nRF52
Upgrading target on COM4 with DFU package C:\Users\13154\AppData\Local\Arduino15\packages\adafruit\hardware\nrf52\0.20.1\bootloader\feather_nrf52832\feather_nrf52832_bootloader-0.3.2_s132_6.1.1.zip. Flow control is disabled, Dual bank, Touch 1200
Touched serial port COM4
Opened serial port COM4
Starting DFU upgrade of type 3, SoftDevice size: 147792, bootloader size: 20428, application size: 0
Sending DFU start packet
Timed out waiting for acknowledgement from device.
Sending DFU init packet
Failed to upgrade target. Error is: Attempting to use a port that is not open
Traceback (most recent call last):
File "nordicsemi\__main__.py", line 294, in serial
File "nordicsemi\dfu\dfu.py", line 226, in dfu_send_images
File "nordicsemi\dfu\dfu.py", line 203, in _dfu_send_image
File "nordicsemi\dfu\dfu_transport_serial.py", line 155, in send_init_packet
File "nordicsemi\dfu\dfu_transport_serial.py", line 241, in send_packet
File "site-packages\serial\serialwin32.py", line 304, in write
serial.serialutil.SerialException: Attempting to use a port that is not open
Possible causes:
- Selected Bootloader version does not match the one on Bluefruit device.
Please upgrade the Bootloader or select correct version in Tools->Bootloader.
- Baud rate must be 115200, Flow control must be off.
- Target is not in DFU mode. Ground DFU pin and RESET and release both to enter DFU mode.
Re: BLE MIDI with Feather Bluefruit nRF52
Failed to upgrade target. Error is: No data received on serial port. Not able to proceed.
Re: BLE MIDI with Feather Bluefruit nRF52
Re: BLE MIDI with Feather Bluefruit nRF52
Error compiling to board Adafruit Feather nRF52832
In file included from C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.h:307,
from C:\Users\13154\AppData\Local\Arduino15\packages\adafruit\hardware\nrf52\0.20.5\libraries\Bluefruit52Lib\src\services\BLEMidi.cpp:42:
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp: In instantiation of 'void midi::MidiInterface<Transport, _Settings, _Platform>::sendRealTime(midi::MidiType) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform]':
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.h:118:39: required from 'void midi::MidiInterface<Transport, _Settings, _Platform>::sendActiveSensing() [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform]'
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:725:9: required from 'bool midi::MidiInterface<Transport, _Settings, _Platform>::read(midi::Channel) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; midi::Channel = unsigned char]'
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:706:30: required from 'bool midi::MidiInterface<Transport, _Settings, _Platform>::read() [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform]'
C:\Users\13154\AppData\Local\Arduino15\packages\adafruit\hardware\nrf52\0.20.5\libraries\Bluefruit52Lib\src\services\BLEMidi.cpp:210:64: required from here
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:505:28: error: 'class BLEMidi' has no member named 'beginTransmission'
505 | if (mTransport.beginTransmission(inType))
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:508:28: error: 'class BLEMidi' has no member named 'endTransmission'
508 | mTransport.endTransmission();
| ~~~~~~~~~~~^~~~~~~~~~~~~~~
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp: In instantiation of 'void midi::MidiInterface<Transport, _Settings, _Platform>::send(midi::MidiType, midi::DataByte, midi::DataByte, midi::Channel) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; midi::DataByte = unsigned char; midi::Channel = unsigned char]':
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:1416:17: required from 'void midi::MidiInterface<Transport, _Settings, _Platform>::thruFilter(midi::Channel) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; midi::Channel = unsigned char]'
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:774:5: required from 'bool midi::MidiInterface<Transport, _Settings, _Platform>::read(midi::Channel) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; midi::Channel = unsigned char]'
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:706:30: required from 'bool midi::MidiInterface<Transport, _Settings, _Platform>::read() [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform]'
C:\Users\13154\AppData\Local\Arduino15\packages\adafruit\hardware\nrf52\0.20.5\libraries\Bluefruit52Lib\src\services\BLEMidi.cpp:210:64: required from here
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:180:24: error: 'class BLEMidi' has no member named 'beginTransmission'
180 | if (mTransport.beginTransmission(inType))
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:204:24: error: 'class BLEMidi' has no member named 'endTransmission'
204 | mTransport.endTransmission();
| ~~~~~~~~~~~^~~~~~~~~~~~~~~
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp: In instantiation of 'void midi::MidiInterface<Transport, _Settings, _Platform>::sendSysEx(unsigned int, const byte*, bool) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; byte = unsigned char]':
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:1464:17: required from 'void midi::MidiInterface<Transport, _Settings, _Platform>::thruFilter(midi::Channel) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; midi::Channel = unsigned char]'
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:774:5: required from 'bool midi::MidiInterface<Transport, _Settings, _Platform>::read(midi::Channel) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; midi::Channel = unsigned char]'
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:706:30: required from 'bool midi::MidiInterface<Transport, _Settings, _Platform>::read() [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform]'
C:\Users\13154\AppData\Local\Arduino15\packages\adafruit\hardware\nrf52\0.20.5\libraries\Bluefruit52Lib\src\services\BLEMidi.cpp:210:64: required from here
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:363:20: error: 'class BLEMidi' has no member named 'beginTransmission'
363 | if (mTransport.beginTransmission(MidiType::SystemExclusiveStart))
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:374:20: error: 'class BLEMidi' has no member named 'endTransmission'
374 | mTransport.endTransmission();
| ~~~~~~~~~~~^~~~~~~~~~~~~~~
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp: In instantiation of 'void midi::MidiInterface<Transport, _Settings, _Platform>::sendCommon(midi::MidiType, unsigned int) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform]':
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:432:5: required from 'void midi::MidiInterface<Transport, _Settings, _Platform>::sendSongSelect(midi::DataByte) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; midi::DataByte = unsigned char]'
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:1468:17: required from 'void midi::MidiInterface<Transport, _Settings, _Platform>::thruFilter(midi::Channel) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; midi::Channel = unsigned char]'
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:774:5: required from 'bool midi::MidiInterface<Transport, _Settings, _Platform>::read(midi::Channel) [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform; midi::Channel = unsigned char]'
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:706:30: required from 'bool midi::MidiInterface<Transport, _Settings, _Platform>::read() [with Transport = BLEMidi; _Settings = midi::DefaultSettings; _Platform = midi::DefaultPlatform]'
C:\Users\13154\AppData\Local\Arduino15\packages\adafruit\hardware\nrf52\0.20.5\libraries\Bluefruit52Lib\src\services\BLEMidi.cpp:210:64: required from here
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:457:20: error: 'class BLEMidi' has no member named 'beginTransmission'
457 | if (mTransport.beginTransmission(inType))
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
C:\Users\13154\Documents\Arduino\libraries\MIDI_Library\src/MIDI.hpp:477:20: error: 'class BLEMidi' has no member named 'endTransmission'
477 | mTransport.endTransmission();
| ~~~~~~~~~~~^~~~~~~~~~~~~~~
exit status 1
Error compiling for board Adafruit Feather nRF52832.