Snipeye / Dichotomy-Nordic

Nordic files for Dichotomy Programming
GNU General Public License v3.0
4 stars 4 forks source link

Multiple Recievers #2

Open equalunique opened 5 years ago

equalunique commented 5 years ago

Hi,

Recently I made this Issue under the Mitosis project and am wondering if there is an applicable solution for Dichotomy: https://github.com/reversebias/mitosis/issues/17

Please let me know, Thanks!

Snipeye commented 5 years ago

That would depend on what you mean by "switch between them." It is certainly possible to build two receivers and have Dichotomy, Mitosis, or anything built along the same vein communicate with either, individually (like at work and at home) - but I don't know what would happen if you were to attempt communication with both simultaneously. If you want to be able to plug one into your laptop and one into your desktop and use them from the same location... that should also be possible, but it would require a firmware modification and reprogramming the nordic chips - take a look here at lines 200 and 201:

https://github.com/reversebias/mitosis/blob/master/mitosis-keyboard-basic/main.c#L200

As well as lines 94-95 here:

https://github.com/reversebias/mitosis/blob/master/mitosis-receiver-basic/main.c#L94

Those are where the addresses are defined - one is for the left hand, one is for the right, and I don't remember which is which off the top of my head. You would have to write a firmware routine to change the base address on the transmitters (the keyboard halves) based on some input, like a certain key combination or something - I don't know if you'd have to restart the gazell process; it's possible you may.

You'd then program one receiver with one pair of addresses, and the second receiver with the other pair of addresses - IIRC, the nordic documentation had some recommendation for addresses that was pretty much "avoid using repeating patterns that would produce binary like 101010101010... etc". Other than that, you can use whatever you want - so the operation would be: keyboard halves transmit to receiver #1 using address pair #1 until a key combination is pressed. Then keyboard halves strop transmitting on address pair #1 and start on address pair #2 to reach receiver #2. The most difficult part is that the keyboard halves don't currently talk to each other - so some operation would have to be done on each half, or else they wouldn't BOTH know to switch.

Does that help?

On Thu, Sep 12, 2019 at 9:50 AM Evan Rowley notifications@github.com wrote:

Hi,

Recently I made this Issue under the Mitosis project and am wondering if there is an applicable solution for Dichotomy: reversebias/mitosis#17 https://github.com/reversebias/mitosis/issues/17

Please let me know, Thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Snipeye/Dichotomy-Nordic/issues/2?email_source=notifications&email_token=AA2MX7IFSVUEM2AAE5NM3UDQJJQLDA5CNFSM4IWGMNXKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HLA5J6A, or mute the thread https://github.com/notifications/unsubscribe-auth/AA2MX7LFECAVH5YYSDBQEV3QJJQLDANCNFSM4IWGMNXA .

-- What does not kill me only postpones the inevitable.

equalunique commented 5 years ago

Does that help?

Yes, absolutely. Thank you.

Implementing this would be a non-trivial learning curve for me, but all that you've said here is very encouraging.