the valid_channels() method was inconsistently implemented between boards, and served two quite different purposes. It is clearer as two functions