Yes, disabling the channels in the EV_JOINED event does the trick: all messages are sent on channel 0 now.
My node is an Arduino Pro Micro, running the LMIC port of matthijskooijman. In the LMIC library the frequency and SF are hardcoded for RX2. So there is no need to be careful about what channels to disable…
That very much depends on how much data each node sends, and how often.
The TTN Fair Access Policy maximum of 30 seconds airtime per node, per day, is based on on supporting at least 1,000 nodes per gateway, using 8 frequencies. So that would probably translate to 125 single-channel nodes for a single-channel gateway, if they send 30 seconds per day. (Regular, multi-channel nodes will be alternating the frequencies they use, so would only see 1/8th of their traffic being received by a single-channel gateway.)
In many other places, 8-channel gateways are advertised to support over 10,000 nodes.
But beware: those nodes cannot send at the same time, and there’s no synchronization in place. So if multiple nodes send simultaneously, data will be lost. But that’s the same for multi-channel gateways, when multiple nodes are sending simultaneously using the same frequency and spreading factor.
Thanks @arjanvanb I understand much better now. What you described " no synchronization in place" is class-A, right ? What is the solution ? Is it class-B ? Is it possible to implement class-B with Single Channel Gateway ?
Not at the moment, in order to save space, I removed all SX1272 code. There are only a few places where the SX1272 differs from the SX1276 so it won’t be a big change. I have no SX1272, so I cannot test. Feel free to add SX1272 support via github!