Closed n8ur closed 1 year ago
Hi @n8ur
Can you post the entire Python script you're using please, and ideally a log of the receiver output?
How are you connecting to the NEO-6M? Are you definitely sending a SET command, as opposed to a GET poll?
By way of illustration, here is a log of a sequence of CFG-PRT command I've just sent to a u-blox receiver via USB. Here I'm changing the baud rates on UART1 and UART2 (portID 1 and 2) to 115200 and 57600 respectively, from the default 38400. You can see the CFG-PRT poll responses showing the original baud rates, the ACK-ACK response to the CFG-PRT update command, and the subsequent CFG-PRT poll responses showing the updated baud rates.
As you can see, it all works fine.
Here is the Python script with the update (SET) commands:
Bear in mind that any attribute keywords you don't set explicitly default to 0 - this includes for example charLen
, parity
and inUBX
. So you need to set these attributes explicitly.
from serial import Serial
from pyubx2 import UBXMessage, SET, POLL
with Serial("/dev/tty.usbmodem1101", 9600, timeout=3) as stream: # USB
# UART1
uart1poll = UBXMessage("CFG", "CFG-PRT", POLL, portID=1)
uart1set = UBXMessage(
"CFG",
"CFG-PRT",
SET,
portID=1,
enable=0,
pol=0,
pin=0,
thres=0,
charLen=3,
parity=4,
nStopBits=0,
baudRate=115200,
inUBX=1,
inNMEA=1,
outUBX=1,
outNMEA=1,
extendedTxTimeout=0,
)
print(uart1set)
print(uart1set.serialize())
# UART2
uart2poll = UBXMessage("CFG", "CFG-PRT", POLL, portID=2)
uart2set = UBXMessage(
"CFG",
"CFG-PRT",
SET,
portID=2,
enable=0,
pol=0,
pin=0,
thres=0,
charLen=3,
parity=4,
nStopBits=0,
baudRate=57600,
inUBX=1,
inNMEA=1,
outUBX=1,
outNMEA=1,
extendedTxTimeout=0,
)
print(uart2set)
print(uart2set.serialize())
stream.write(uart1poll.serialize()) # poll before
stream.write(uart1set.serialize()) # updating...
stream.write(uart1poll.serialize()) # poll after
stream.write(uart2poll.serialize()) # poll before
stream.write(uart2set.serialize()) # updating..
stream.write(uart2poll.serialize()) # poll after
And here is the log output:
<UBX(CFG-PRT, portID=1, reserved0=0, enable=0, pol=0, pin=0, thres=0, charLen=3, parity=4, nStopBits=0, baudRate=38400, inUBX=1, inNMEA=1, inRTCM=0, inRTCM3=1, outUBX=1, outNMEA=1, outRTCM3=1, extendedTxTimeout=0, reserved1=0)>
000: b562 0600 1400 0100 0000 c008 0000 0096 | b'\xb5b\x06\x00\x14\x00\x01\x00\x00\x00\xc0\x08\x00\x00\x00\x96' |
016: 0000 6300 2300 0000 0000 ff30 | b'\x00\x00c\x00#\x00\x00\x00\x00\x00\xff0' |
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-PRT)>
000: b562 0501 0200 0600 0e37 | b'\xb5b\x05\x01\x02\x00\x06\x00\x0e7' |
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-PRT)>
000: b562 0501 0200 0600 0e37 | b'\xb5b\x05\x01\x02\x00\x06\x00\x0e7' |
<UBX(CFG-PRT, portID=1, reserved0=0, enable=0, pol=0, pin=0, thres=0, charLen=3, parity=4, nStopBits=0, baudRate=115200, inUBX=1, inNMEA=1, inRTCM=0, inRTCM3=1, outUBX=1, outNMEA=1, outRTCM3=1, extendedTxTimeout=0, reserved1=0)>
000: b562 0600 1400 0100 0000 c008 0000 00c2 | b'\xb5b\x06\x00\x14\x00\x01\x00\x00\x00\xc0\x08\x00\x00\x00\xc2' |
016: 0100 2300 2300 0000 0000 ec1e | b'\x01\x00#\x00#\x00\x00\x00\x00\x00\xec\x1e' |
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-PRT)>
000: b562 0501 0200 0600 0e37 | b'\xb5b\x05\x01\x02\x00\x06\x00\x0e7' |
<UBX(CFG-PRT, portID=2, reserved0=0, enable=0, pol=0, pin=0, thres=0, charLen=3, parity=4, nStopBits=0, baudRate=38400, inUBX=1, inNMEA=0, inRTCM=0, inRTCM3=1, outUBX=0, outNMEA=0, outRTCM3=1, extendedTxTimeout=0, reserved1=0)>
000: b562 0600 1400 0200 0000 c008 0000 0096 | b'\xb5b\x06\x00\x14\x00\x02\x00\x00\x00\xc0\x08\x00\x00\x00\x96' |
016: 0000 6100 2000 0000 0000 fb22 | b'\x00\x00a\x00 \x00\x00\x00\x00\x00\xfb"' |
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-PRT)>
000: b562 0501 0200 0600 0e37 | b'\xb5b\x05\x01\x02\x00\x06\x00\x0e7' |
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-PRT)>
000: b562 0501 0200 0600 0e37 | b'\xb5b\x05\x01\x02\x00\x06\x00\x0e7' |
<UBX(CFG-PRT, portID=2, reserved0=0, enable=0, pol=0, pin=0, thres=0, charLen=3, parity=4, nStopBits=0, baudRate=57600, inUBX=1, inNMEA=0, inRTCM=0, inRTCM3=1, outUBX=0, outNMEA=0, outRTCM3=1, extendedTxTimeout=0, reserved1=0)>
000: b562 0600 1400 0200 0000 c008 0000 00e1 | b'\xb5b\x06\x00\x14\x00\x02\x00\x00\x00\xc0\x08\x00\x00\x00\xe1' |
016: 0000 2100 2000 0000 0000 065b | b'\x00\x00!\x00 \x00\x00\x00\x00\x00\x06[' |
<UBX(ACK-ACK, clsID=CFG, msgID=CFG-PRT)>
000: b562 0501 0200 0600 0e37 | b'\xb5b\x05\x01\x02\x00\x06\x00\x0e7' |
Thanks for getting back! My problem probably is that I wasn't explicitly setting all the values; I wasn't sure whether that was required. I will try fixing that, and if it doesn't work I'll extract a script that duplicates my problems (it's a multi-module with lots of other constellation-setting, etc. stuff but I can pull out a standalone baud test if needed). I will let you know if setting all the params solves the problem; I bet it does. If not I'll upload script and log file. Thanks again!
You may have to reset or power cycle the device first, as setting inUBX
to 0 will effectively block incoming UBX commands on that port.
-- semuadmin SEMU Consulting https://github.com/semuconsulting
From: John Ackermann N8UR @.> Sent: Sunday, January 29, 2023 2:46:02 PM To: semuconsulting/pyubx2 @.> Cc: semuadmin @.>; Assign @.> Subject: Re: [semuconsulting/pyubx2] Getting CFG-PRT to change UART speed (Issue #101)
Thanks for getting back! My problem probably is that I wasn't explicitly setting all the values; I wasn't sure whether that was required. I will try fixing that, and if it doesn't work I'll extract a script that duplicates my problems (it's a multi-module with lots of other constellation-setting, etc. stuff but I can pull out a standalone baud test if needed). I will let you know if setting all the params solves the problem; I bet it does. If not I'll upload script and log file. Thanks again!
— Reply to this email directly, view it on GitHubhttps://github.com/semuconsulting/pyubx2/issues/101#issuecomment-1407682984, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGZ7C33BUNNZK4FGTJHYKMTWUZ7CVANCNFSM6AAAAAAUJ3MD64. You are receiving this because you were assigned.Message ID: @.***>
It looks like it was the lack of setting all the fields explicitly that messed me up. I tried something like that when I tried to copy the fields from polling,parsing with parsebitfields=False, then putting those fields into a SET message but most have messed something up in the process. Setting the parsed bitfields explicitly rather than unparsed fixed whatever I had wrong.
Thanks for the help, and you can close this. Your support of this library is really great!
I haven't encountered that (yet), but thanks for letting me know. I'll make sure that inUBX remains set in the message. I can also do a warm reset if necessary.
On 1/29/23 10:06, SEMU Admin wrote:
You may have to reset or power cycle the device first, as setting
inUBX
to 0 will effectively block incoming UBX commands on that port.-- semuadmin SEMU Consulting https://github.com/semuconsulting
From: John Ackermann N8UR @.> Sent: Sunday, January 29, 2023 2:46:02 PM To: semuconsulting/pyubx2 @.> Cc: semuadmin @.>; Assign @.> Subject: Re: [semuconsulting/pyubx2] Getting CFG-PRT to change UART speed (Issue #101)
Thanks for getting back! My problem probably is that I wasn't explicitly setting all the values; I wasn't sure whether that was required. I will try fixing that, and if it doesn't work I'll extract a script that duplicates my problems (it's a multi-module with lots of other constellation-setting, etc. stuff but I can pull out a standalone baud test if needed). I will let you know if setting all the params solves the problem; I bet it does. If not I'll upload script and log file. Thanks again!
— Reply to this email directly, view it on GitHubhttps://github.com/semuconsulting/pyubx2/issues/101#issuecomment-1407682984, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGZ7C33BUNNZK4FGTJHYKMTWUZ7CVANCNFSM6AAAAAAUJ3MD64. You are receiving this because you were assigned.Message ID: @.***>
— Reply to this email directly, view it on GitHub https://github.com/semuconsulting/pyubx2/issues/101#issuecomment-1407687874, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADNCPP6OJRDJ4TX6LEMZFKDWU2BPPANCNFSM6AAAAAAUJ3MD64. You are receiving this because you were mentioned.Message ID: @.***>
OK glad it's sorted. I'll close this now.
Hi --
I'm trying to change the baud rate of a NEO-6M and finding that no matter what I do the baud rate change doesn't take -- it ACKs the command, but still talks at the old speed, and if I poll CFG-PRT afterwards it still reports the old speed. I've also tried this on a NEO-M8 where I'm communicating by USB but commanded to change the UART1 speed, and had the same result -- an ACK but no speed change reported.
I originally tried creating a CFG-PRT message with only the portID and baudRate fields set: cmd = UBXMessage('CFG','CFG-PRT',SET,portID=1,baudRate=setbaud). When that didn't work, I polled CFG-PRT with parsebitfield=False, then copied the resulting fields into a new SET message with only the baudRate field changed. That did not change the speed, either.
I'd like to avoid cut-pasting a byte object as ultimately I'd like to have flexibility in changing the port params. I'd appreciate any suggestions about what I might be doing wrong.
Thanks!