Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for two UART connections #25

Closed
daveythacher opened this issue May 26, 2023 · 4 comments
Closed

Add support for two UART connections #25

daveythacher opened this issue May 26, 2023 · 4 comments

Comments

@daveythacher
Copy link
Owner

This will require dividing the frame buffer into two sections. I will need to think about this some more later on. This has a few compatibility issues.

@daveythacher daveythacher modified the milestone: 0.1.3 May 26, 2023
@daveythacher
Copy link
Owner Author

The issue I have with this is the 2 to 1 relationship of this. I would need to create a background thread that submits the front buffer or build a command protocol. The background thread would create tearing. The command protocol creates blocking and forces reliable transportation without tearing.

I would end up with two serial algorithms running as coroutines. This would also mean more interrupts. I may also have to change the interface to the matrix algorithms.

I think the serial algorithms should stay monolithic. Faster IO protocols are possible with PIO, however this will require an external bridge. This may be pointless, however this may be the cleanest way to go.

Unless I implement a bonded mode. I think I could use pointers to keep this clean with the existing APIs. In fact I may be able to make this approach work with the new version of the serial algorithm I am considering. The only difference is there will be second channel with frame data. If I keep them monolithic then one governs the other. The host will have to obey this.

@daveythacher
Copy link
Owner Author

Note the protocol in #20 is somewhat blocking and does not work with out of order frames. In fact it actually intentionally blocks the problem by allowing only one frame to be in flight. The RP2040 does not have the memory for this, even if it wanted to try this with buffers. This would be closer to USB than Ethernet. This would be like a hybrid of bulk and isochronous? I am not sure TCP or bulk is what I am looking for here.

daveythacher added a commit that referenced this issue May 28, 2023
@daveythacher
Copy link
Owner Author

This may not be required anymore due to #7. Trying to decide if it is worth the complexity.

@daveythacher
Copy link
Owner Author

Decided to remove.

@daveythacher daveythacher closed this as not planned Won't fix, can't repro, duplicate, stale Nov 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant