Bfsk

There isn’t muchin this.
Here is a brief explanation.

Consider a signal

f(t)

which represents an instantaneous frequency of a sinusoid
and which carries some information.

Then you can generate the signal

phi(t) = 2 * pi* K * int_0^t f(tau) dtau

which is the instantaneous phase (since it is an integral of f(t))
with some frequency gain K.

Now you can form the complex exponential baseband signal

s(t) = exp( j phi(t) )

and transmit it. This is the basis of FM modulation.

Now imagine doing the above in discrete time.
You would have something like

f_k = f(k Ts)

phi_k = phi(k Ts) ~= 2 * pi* K * sum_i=0^k f(i Ts) Ts
= phi_{k-1} + 2 * pi * K * Ts * f_k (1)

and finally

s_k = exp(j phi_k) (2)

The FM modulator block in GNURADIO does exactly that,
ie
equations (1) and (2) with
sensitivity = 2 * pi * K * Ts

The quadrature demodulator block in GNURADIO extracts

phi_k from s_k (or from any complex signal for that matter) and
multiplies
with some irrelevant gain M so you get

M * phi_k

I hope this help,
Achilleas