I have a project whereby we may need the BLE peripheral to have about 16 different characteristics, some read-only and some read/write. None are longer than 4 bytes. Is there a maximum number of characteristics that the stack can support?
In theory no, I have read of a couple of cases where more than 20 characteristics were declared in a single service. However in reality, you might be limited by your available memory.