Strange predicament

I having been trying to debug my demodulator for a few days now
in due process i receive the following error message.

ValueError: itemsize mismatch : dbpsk_demod(5):0 using 1, sub_ff(15):0
using 4.

Now there are two things that i observed.

  1. With the connect statement of these two at hand , sub_ff is expecting
    float bytes which is only connected to “1 byte/sample” output by the
    dbpsk_demod block.

  2. The output of the dbpsk_demod block (according to the line – >
    io_sig_out = gr.io_signature(1,1,gr.sizeof_char) … so its a
    dbpsk_demod_complex->character conversion where as the sub_ff is a
    –> float " .

My question is will a custom “gr_dbpsk_demod_cf” with a cosine
function(that possibly uses a certain kind of cosine table) be useful to
the following :

  1. keep the constellation in check (i.e 1 bit/symbol) at 0 and 180
  2. ofcourse convert a complex to float.
  3. How effective would such a cpp block be as opposed to a full fledged
    python block ?

Thanks & regards,