Am I right in saying BPDU filter stops the port sending bpdu's but not receiving them? and if I enable port fast does it turn on bpdu filter or does the port in portfast mode still send/receive bpdu's ?
Enabling BPDU filter stops send and receiving BPDUs. I would strongly advise anyone never to use BPDU filter unless there is a very strong well-thought-out reason for doing so. The Spanning Tree protocol is there to protect your network against loops. If you block the BPDUs, you remove this protection.
Enabling portfast does not make any difference to sending or receiving BPDUs. Without portfast, there is a 30 second moratorium on port traffic before it goes into forwarding, just in case the attached equipment is generating BPDUs that have to be taken into account. When you enable portfast, effectively you are saying "OK, I don't think the attached equipment will generate BPDUs, so I am willing to take the risk of bringing the port up immediately. But at the same time it is best to enable bpduguard as well. That way if the attached equipment does generate a BPDU, it will kill the port stone dead before it can do too much damage to the rest of the network.