Please create a Tech Support case so that we can examine why your reads get time out.
i increased the heap size and now i dont experience any problems. For debugging reasons i was using printf() calls which probably used the heap up. How much heap should be reserved for the BLE stack?
Also, how do i monitor the available heap properly? I also asked this question here.
When you use printf(), recommendation is to set a minimum Heap size of 0x400 bytes in .cydwr.