In this case you do not need a BLE wrapper, you just decide on commands you want to send with a specific frame, you receive the frame, read it, act on it and then send data out.
One example could be:
- from your phone you send a value through BLE to a specific service
- the BLE module receives it and decides to send the value to the mcu through UART. It sends a communication frame (that you designed) with the value
- the mcu gets a uart data available and reads the data and decides what to do with it.
You’ll need to work on two separated code base, one for the module, one for the mcu. The communication protocol will be shared.
One other advantage is that in this case you will be able to use the full feature firmware update over the air of the BLE module. That will only update the BLE module.
For the mcu, as you’ll be using UART (I think it’s easier), you can customize the bootloader and also update the firmware through the BLE module.