I understand how CDMA works (kind of). I'm just not sure how to go about figuring out how many orthogonal signals can be produced from a code length of a given number.
Note: I am going to go into a bit of the algebra that goes into understanding CDMA fully. It might be a little overwhelming at first, but I will try to keep it as simple as I can. If you just want the answer, jump to the bottom, but it really isn't as difficult as you might think. Also, I am an engineer, not a mathematician, and many of the things engineers do with math drive mathematician crazy. I may simplify things to the point that the math gets a little fuzzy, but it is all for the sake of understanding.
In order to fully understand how many concurrent senders you can have, you need to step back and make sure you understand what it means to be orthogonal. The simplest way to look at orthogonality is to visualize it in a 2-d or 3-d plane. 2 vectors are orthogonal when they are at 90* angles of each other. So for a 2d plane you get something like this:
These two vectors might be represented as something like  and .
As it works out, there is no way for you to add a 3rd vector to those existing 2 vectors and and have it also be at a 90* angle to both existing vectors. It is possible to add a line that would be at a 90* angle to one of the existing lines, but not both, you should be able to see that visually. This can also be called a basis set, but that isn't overly important unless you want to dive deeper.
This then can also be extended visually into a length 3 vector space which shown graphically is like this:
where the line to the bottom left is actually coming out at you in a 3d model. As you can see we were able to add 1 more vector that is at 90* to both of the existing two vectors. We were unable to do this until we extended the length of our vector to 3. These 3 vectors could be represented as   and .
So as you hopefully can see from my above examples, you are able to have N vectors that are orthogonal to each other when the vectors are of length N. In other words. Length 2 means you can get 2 orthogonal vectors out of it, length 3 means you can get 3 orthogonal vectors out of it.
Now, how does that apply to CDMA and number of users? Well each CDMA channel is created by an orthogonal code, so you can support as many concurrent users as you have orthogonal codes, and you can have as many orthogonal codes as you have length of the code. (if you need more help understanding this part I will be willing to add more, just let me know)
So to summarize, a length N code results in being able to support N number of concurrent users.