Closed chmousset closed 2 years ago
Hi,
Thanks for the feedback on the documentation, we will update this.
Have you tried unplugging and plugging the module back in?
BR, Anders
Hi Anders,
Have you tried unplugging and plugging the module back in?
Yes, I did try but it didn't solve the issue.
Hi,
Have you tried scanning the ports to see if any other ports appear?
If you unplugg the module and scan ports, does any ports appear?
Hello @chmousset ,
I am a bit curious regarding this issue.
In src/acconeer/exptool/clients/reg/client.py line 177 we make exceptions for the SerialLink depending if the OS is Windows or OSX. These exceptions have been needed in order to run UART on these operating systems. Perhaps Manjaro does not handle the SerialProcessLink that is default for Linux.
if platform.system().lower() in ["windows", "darwin"]: self._link = links.SerialLink(port) else: self._link = links.SerialProcessLink(port)
Try and remove the if statement and simply create the standard SerialLink. I.e. self._link = links.SerialLink(port)
After changing this you need to reinstall the acconeer library using: python -m pip install -U --user .
Does this help at all?
hi @vackraetraed ,
that was it! Using I.e. self._link = links.SerialLink(port) did the trick. Now we can start evaluating the performances of this chip :)
diff --git a/src/acconeer/exptool/clients/reg/client.py b/src/acconeer/exptool/clients/reg/client.py
index 1eb2c22..54c47ba 100644
--- a/src/acconeer/exptool/clients/reg/client.py
+++ b/src/acconeer/exptool/clients/reg/client.py
@@ -174,10 +174,7 @@ class UARTClient(RegBaseClient):
self._streaming_control_val = "uart_streaming"
- if platform.system().lower() in ["windows", "darwin"]:
- self._link = links.SerialLink(port)
- else:
- self._link = links.SerialProcessLink(port)
+ self._link = links.SerialLink(port)
def _connect(self):
self._link.timeout = self.CONNECT_ROUTINE_TIMEOUT
It's the first time I've had any issues with Python serial
lib (and I've used it a lot). read()
and write()
'just works' and since that the buffering is done at the OS (or driver) level I never had to worry about polling rate.
What exactly forced you handling the serial link in a seperate thread? Buffer overruns?
Hello @chmousset
I talked a little bit with Erik who wrote the code and he confirmed that it was buffer overruns which forced handling it in a daemon process. This is for sure an issue that we may need to discuss on how to handle buffer overflows and different types of OS in the future. But for now I suggest you continue using the code for SerialLink as long as it works for you.
Describe the bug It is not possible to communicate with the XM112/XB112 combo. The module does not seem to answer the serial commands.
To reproduce
acc_module_server.bin
. "Erase All" and "Boot to FLASH". Successfullpython gui/main.py
Traceback gui/main.py output from the UI:
Screenshots
Environment (please complete the following information):
Additional context
The documentation refers to file
acc_module_server_xm112.bin
but isacc_module_server.bin
is distributed inacconeer_xm112_module_software_v2_10_0.zip
.Result of pip freeze: