Conversation
Deploying ferrous-systems-rust-exercises with
|
| Latest commit: |
61a6238
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://f96123f1.ferrous-systems-rust-exercises.pages.dev |
| Branch Preview URL: | https://update-loopback-fw.ferrous-systems-rust-exercises.pages.dev |
e87b121 to
eaa8e30
Compare
|
Waiting for #226, but some notes:
|
1d6f02d to
6512912
Compare
|
Unfortunately, this currently breaks the puzzle firmware because both loopback and puzzle firmware depend on the dongle firmware lib. I duplicated the old dongle lib so the puzzle firmware keeps working, to pacify the CI. |
|
I think I'd rather see the puzzle-fw updated to use the new Dongle BSP in this PR, instead of having two copies of the Dongle BSP in the tree. I'm also not sure that it makes sense to starting pull parts of the BSPs into a shared library - it probably makes sense for a code maintainability point of view (only write things once) but it makes the code harder to read and understand (because now you have to look across multiple libraries). In this material I would prioritise readability over maintainability because we read it (or teach it) much much more often than we update it. |
d9dd3e0 to
d4c9566
Compare
|
I ported the puzzle firmware now as well, and removed the shared BSP. However, there is still some weird behavior for the puzzle firmware: When being connected to the serial terminal, the software is a lot more responsive and faster than when not being connected. I am not fully sure what the reason for this is, and this might just be due to my lack of knowledge about the behavior of USB CDC ACM devices. For example, when connected via serial terminal, the puzzle solution takes 2-3 seconds. When not being connected |
d4c9566 to
50a5e15
Compare
|
Alright. I just lowered the timeout on the packet write, and it seems to work now at comparable speed :) |
50a5e15 to
33e4118
Compare
|
ready for review now. I also kept the old board initialization function signature, makes this PR a little bit more focused on the port. It is a lot of unwraps but it could be argued that a double initialization will not happen very often and that a panic is okay for an error like this. What do you think (would be a separate PR though). |
5efaec7 to
c511c5f
Compare
48e6967 to
6b9743b
Compare
|
I did some experiments in https://github.com/ferrous-systems/rust-exercises/tree/sleep-experiments . I essentially flashed the loopback firmware with sleep handling enabled onto the DK board and created a really simple radio packet sender for the dongle. The DK firmware seems to receive the radio packets, and I can see packets arriving in the serial monitor. So I am not sure what is going on. Why would this not work specifically for the dongle? |
|
Unfortunately detected new issues: I think we seemingly lose data over the serial monitor: Received 4 bytes (L
Received 4 bytes (LQI=55)
Received 4 bytes (LQI=55)
Received 4 bytes (LQI=55)
Received 4 bytes (LQI=55)
Received 4 bytes (L
Received 4 bytes (LQI=55)
Received 4 bytes (LQI=55)
Received 4 bytes (LQI=55)
Received 4 bytes (LQI=55)
Received 4 bytes (LUpdate: Fixed. Classic mistake: using |
9481532 to
b521579
Compare
|
I think I've understood how these queues and pipes work. I propose some changes in https://github.com/ferrous-systems/rust-exercises/tree/update-loopback-fw-jp-updates to try and rename the types and variables to be consistent. |
|
well at the very least i got some basic windows setup ready now so I can test this myself in the future. I found the bug. I mis-intepreted a generic (919497c). |
|
there seems to be some github issue.. |
|
github had another outage. Try again now? |
|
could aslo be a cloudclare issue |
|
I kicked cloudflare. |
|
My proposed changes branch was updated - feel free to merge it in if you like it. |
|
Can confirm the dongle channel change now works on Windows, for both puzzle-fw and loopback-fw. Unfortunately the loopback-fw's default radio channel is 20, but the application is expecting channel 25. |
The application was wrong, and was fixed in v1.28.1. |
cad051d to
5641127
Compare
Previously, core core SYST peripheral was used as the monotonics provider. This is probably problematic when doing IDLE mode sleepping.
…sleep-support Update loopback fw with sleep support
Based on #226 .
Like expected, not exactly trivial, but definitely a good learning opportunity. Let's see if async can actually simplify the complexity here.