Combining CDMA with differential Manchester-like encoding? I wonder to which extend it is possible to combine a self-clocking code (like Differential Manchester encoding) with synchronous CDMA, and how it would be done?

Suppose I want to receive some bits from devices where each of them has sufficiently synchronized clocks but the receiver of the bits does not (and hence suffers from clock drift, delays etc).

Right now (without CDMA) I do not even need to care about the clock ... I just detect the transitions at the receiver and can infer the bits (because there is a guaranteed transition every bit). I wonder if something similar can be done while still using CDMA?

Take for example 3 IoT devices which send data in parallel via 4-order Walsh-Haddamard code.

The code matrix is:

$$
\begin{bmatrix}
  1 &amp; 1 &amp; 0 &amp; 0 \\
  1 &amp; 0 &amp; 0 &amp; 1 \\
  1 &amp; 0 &amp; 1 &amp; 0 \\
  1 &amp; 1 &amp; 1 &amp; 1 \\
\end{bmatrix}
$$

and the three devices send bits $001011010101$, $001010110011$ and $001010001111$. The waveform as seen at the receiver looks like:



(as per assumption above they sum up nicely in the channel and preserve orthogonality of the data bits but the receiver does not know the clock). We can see that there is not necessarily a transition (or at least change of sample value) every bit/symbol. I tried replacing each 1 with $[1, 0]$ and each 0 with $[0, 1]$ in the code matrix but this doesn't change anything significantly.

What would be the best way to implement this?

(I hope my question is clear enough. If not, please leave a comment and I will clarify)
With CDMA everything you would traditionally do with a symbol such as timing and carrier recover still applies- but in CDMA the symbol is the series of many “chips”.

So yes you could certainly add any higher level coding to the symbols where in CDMA the symbol may represent a data bit such as +1 and -1 only (perhaps), but each of these data bits after such coding would then be expanded to the CDMA sequence.

There is no motivation to change the sequence itself other than its cross correlation properties to the other codes used and the overall processing gain required. Timing and carrier recovery is done after despreading.