After over 5 months of working with my OP3 like-setup, I am getting an error right after the dynamixels flash.

Hi there, I originally posted back in December and Will Son helped me get up and running.
Here: https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/105
I have built my own biped but have a Raspberry Pi4 (instead of the NUC) and an OpenCR.
I have 26 DOF instead of 20.  The first 20 are defined exactly like OP3 and I have downloaded and catkin_make all of OP3's packages.
Over the last 5 months things have been fine and working.
I have successfully run op3_bringup, as well as, self_test and was working on the action_editor when I ran into a full stop.
Right after the INFO message:
Torque on DXLs!  (and the dynamixels flash)
I'm getting:
[ERROR] [nnnn.nnnn]: Fail to control LED [[RxPacketError] Unknown error code!]
Then each error message for each joint gets displayed as well.
[ERROR] [nnnn.nnnn]: JOINT[head_pan] does NOT respond!!
I was literally working on it over the last few days and suddenly, its dead in the water.
I opened the biped up and physically checked all the wires and they are indeed attached.
The U2D2 does some blinking and flashing, but is not blinking correctly.
Of the 3 LEDs, the TxD and PWR are blinking but not the RxD.
Does this sound familiar to anyone?
Could this be a hardware issue, like the U2D2 not working properly after this amount of time?
Is there any type of debugging that I could try to isolate where the problem really is?
Could it have something to do with the FET not being actually turned on?
Its very strange, I did not change any code, was just adjusting offsets during the week as I tweaked the standup page, and was about to go through adding values for the extra 6 DXLs to some of the other pages when this occurred.
Any help or steering me in the correct direction would be very much appreciated.
Thank you in advance,
Smitty

Hi @Smitty-44
Glad to hear the progress you made during the last 5 months, and can't wait to see it working.
The described problem looks unusual as Torque on packet works fine but LED doesn't.
Checking whether U2D2 is alive with DYNAMIXEL Wizard 2.0 might help.
If the FET on the OpenCR doesn't work, the LED on DYNAMIXEL would not be turned on so the OpenCR looks good.

Hi Will Son,
Thanks for replying.  Yes, I thought the same thing, but wondered if it could be something else.
I went ahead and ordered another U2D2.
And over the last 5 months, I did a rebuild of the structure of the biped to add a usb_cam and to better house the internal electronics.  It is coming along pretty well.
I do have another question if I may.
I know I talked about it some time ago, but I think I just simply didn't understand back then.
On the subject of the wifi hotspot, on the OP3, the wifi hotspot is the NUC, correct?
That's what has an address of <IP_ADDRESS>, the NUC, correct?
I hope I am understanding this correctly.
Before I even started designing and building the parts for my biped, I had SSHed to my raspberry Pi using my desktop.  And I was able to start processes like roscore, and the lidar, etc.
So, to setup the hotspot I would just have to work on the Pi for that.
And then alter accordingly on my desktop to be able to SSH in again.
I have instructions how to setup a Pi hotspot.
That is the last thing I haven't really setup yet.
My hope is to have this guy up and moving around later this year.
And when I do, I will give you an update.
He is kinda heavy though.  Near the limits of the dynamixels.
So, I am trying to be careful of that.
I want to thank you again for all your help.
I really appreciate it.
Cheers,
Smitty

@Smitty-44
It is my pleasure to be able to give you a little help to resolve your issue on building OP3.
As you correctly understood, the NUC is configured as a wifi hotspot so that external PC can connect to a specific IP address(<IP_ADDRESS>) assigned for the OP3 NUC.
However, the hotspot is not necessary if you are going to ssh into the Raspberry Pi through the external router.
Web tools are providing features from a web browser that are already available from the ROS GUI so I'd say it is not a critical feature of running OP3.
I can't wait to see your project is completed!
Will

Will Son,
Thanks again for the quick responses and the info concerning the hotspot.
I received a new U2D2 and tried it connected to the upper 12 motors and
using Wizard was able to see them all.
So, I installed the new U2D2 but I got the same messages as before.
I am afraid it might be the OpenCR board or something else, somehow.
I was launching the action_editor as before, the LEDs on the motors flash,
but then 5 messages:
[ERROR] [nnnn.nnnn]: Torque on DXLs! [[RxPacketError] Unknown error code!]
are displayed and then,
[ERROR] [nnnn.nnnn]: Fail to control LED [[RxPacketError] Unknown error
code!]
Do you know what I can check to see if the OpenCR board is the problem?
Is it possible something on the OpenCR board is burnt out or damaged?
I do own a turtlebot3 burger.  It does have an OpenCR in it, but of course,
it has the turtlebot code loaded.
Cheers,
Smitty
On Sun, Jul 11, 2021 at 10:13 PM Will Son @.***> wrote:

@Smitty-44 https://github.com/Smitty-44
It is my pleasure to be able to give you a little help to resolve your
issue on building OP3.
As you correctly understood, the NUC is configured as a wifi hotspot so
that external PC can connect to a specific IP address(<IP_ADDRESS>) assigned
for the OP3 NUC.
However, the hotspot is not necessary if you are going to ssh into the
Raspberry Pi through the external router.
Web tools are providing features from a web browser that are already
available from the ROS GUI so I'd say it is not a critical feature of
running OP3.
I can't wait to see your project is completed!
Will
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/114#issuecomment-877919054,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANVLKUYPY4B5BYECX5KBKS3TXJFVHANCNFSM477HT62Q
.

@Smitty-44
If the OpenCR cannot provide sufficient power to all connected DYNAMIXEL, I think some of them may fail to respond.
Supplying power directly from the battery to DYNAMIXEL could help reducing a burden of OpenCR as a power supply, but still it is weird that OpenCR cannot supply power to DYNAMIXEL under resting condition without a motion.
Can you identify the DYNAMIXEL ID that do not respond?

Hi Will Son,
I have both a battery and the power cord plugged into the OpenCR and it has
worked fine for months.
One day it was all working and the next, no movement from any of the 26
dynamixels at all.
None of them respond at all.
Is it possible something could have happened to the OpenCR, a burn out or
something?
How can I test the OpenCR to see if everything is working properly?
Short of buying another OpenCR board, I was hoping there was something I
could do before spending that kind of cash if the board is fine.
Cheers,
Smitty
On Thu, Jul 15, 2021 at 3:40 AM Will Son @.***> wrote:

@Smitty-44 https://github.com/Smitty-44
If the OpenCR cannot provide sufficient power to all connected DYNAMIXEL,
I think some of them may fail to respond.
Supplying power directly from the battery to DYNAMIXEL could help reducing
a burden of OpenCR as a power supply, but still it is weird that OpenCR
cannot supply power to DYNAMIXEL under resting condition without a motion.
Can you identify the DYNAMIXEL ID that do not respond?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/114#issuecomment-880470905,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANVLKU3AJRGSHHPWNN3ANFTTX2GH3ANCNFSM477HT62Q
.

Hi Smitty,
Oh, if all DYNAMIXEL isn't responding, it could be the fuse(10A, replaceable) on the back of the OpenCR.
If the fuse gets blown up, none of SMPS or battery power is delivered to DYNAMIXEL.
A simple OpenCR test that can separate other possible factors would be connecting DYNAMIXEL to OpenCR and upload the DYNAMIXEL2Arduino > scan_dynamixel example.
If you see DYNAMIXEL blinking and detected in the Arduino terminal, you will be able to find out whether your OpenCR is good or not.

Hi Will Son,
Yes, that's it.  And I believe you are talking about this:
Input Power Fuse 125V 10A LittleFuse 0453010
http://www.littelfuse.com/products/fuses/surface-mount-fuses/nano-2-fuses/453/453010.aspx
That makes perfect sense to me.  Thank you again for your help!
I will get on that and let you know how that pans out.
Take care and Cheers,
Smitty
On Fri, Jul 16, 2021 at 12:06 AM Will Son @.***> wrote:

Hi Smitty,
Oh, if all DYNAMIXEL isn't responding, it could be the fuse(10A,
replaceable) on the back of the OpenCR.
If the fuse gets blown up, none of SMPS or battery power is delivered to
DYNAMIXEL.
A simple OpenCR test that can separate other possible factors would be
connecting DYNAMIXEL to OpenCR and upload the DYNAMIXEL2Arduino >
scan_dynamixel
https://github.com/ROBOTIS-GIT/Dynamixel2Arduino/blob/master/examples/basic/scan_dynamixel/scan_dynamixel.ino
example.
If you see DYNAMIXEL blinking and detected in the Arduino terminal, you
will be able to find out whether your OpenCR is good or not.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/114#issuecomment-881160304,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANVLKU7G4SQY5LYG7BFWRWDTX6V2XANCNFSM477HT62Q
.

Hi Will Son,
Ok, here's what I did.
I remembered, I have a turtlebot3 sitting in the corner.
So, I took the fuse out of there and placed it in my biped.
Still the same issue.
So, I took out the entire turtlebot3 OpenCR board and compiled the op3 code
using the Arduino IDE.
And I switched the OpenCR boards, and still the same issue.
So, if it isn't the U2D2 and it isn't the OpenCR board or its fuse, then
the big question remains, why the sudden failure to power the dynamixels
after working for months.
I had previously, successfully, run the op3_bringup, many times over many
weeks.
I also had the gui run and moved the head.
And I had successfully launched the self_test which also played the mp3
file, "self ready test mode".
I have a speaker attached to the raspberry pi4 jack.
The problem occurred after I had successfully adjusted the offset file
associated with the action_editor.
I successfully played the standup page.
It was ready to go.
The next day, I was going to play other pages from the standup position
when this occurred.
And the only thing I noticed which I know is not correct, is the U2D2 RxD
led is not flashing at all.
I changed out the TTL cable from the U2D2 and also the USB
which is connected to the Pi4.
Sorry for this problem, but I am really stumped.
Cheers,
Smitty
On Fri, Jul 16, 2021 at 8:35 AM Jacob Smith @.***> wrote:

Hi Will Son,
Yes, that's it.  And I believe you are talking about this:
Input Power Fuse 125V 10A LittleFuse 0453010
http://www.littelfuse.com/products/fuses/surface-mount-fuses/nano-2-fuses/453/453010.aspx
That makes perfect sense to me.  Thank you again for your help!
I will get on that and let you know how that pans out.
Take care and Cheers,
Smitty
On Fri, Jul 16, 2021 at 12:06 AM Will Son @.***>
wrote:

Hi Smitty,
Oh, if all DYNAMIXEL isn't responding, it could be the fuse(10A,
replaceable) on the back of the OpenCR.
If the fuse gets blown up, none of SMPS or battery power is delivered to
DYNAMIXEL.
A simple OpenCR test that can separate other possible factors would be
connecting DYNAMIXEL to OpenCR and upload the DYNAMIXEL2Arduino >
scan_dynamixel
https://github.com/ROBOTIS-GIT/Dynamixel2Arduino/blob/master/examples/basic/scan_dynamixel/scan_dynamixel.ino
example.
If you see DYNAMIXEL blinking and detected in the Arduino terminal, you
will be able to find out whether your OpenCR is good or not.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/114#issuecomment-881160304,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANVLKU7G4SQY5LYG7BFWRWDTX6V2XANCNFSM477HT62Q
.

@Smitty-44
Whoa, this is one of the most wicked issues that I had this year...
Ok, let's go back to the very basic and see what we've missed.

Do you see the led blink on every DYNAMIXEL when the op3_manager node is up and running?
Since you have two working U2D2, can you connect on of them to your PC and detect all connected DYNAMIXEL from DYNAMIXEL Wizard 2.0? If they are detected, can you turn on the torque and update the Goal Position manually?
ID 200 is assigned to the OpenCR and Wizard 2.0 will detect it as an unknown device like below.

And should be able to read from the Control table using the Packet feature. The 1 byte Torque On flag is saved in the Address 24 and can be read as below.

If Torque is turned on, the Parameter in the Status packet should be 0x01 instead of 0x00 as below.

Hi Will Son,
For:

During the bringup process, all the LEDs blink, but that is it.
So, I just launched the op3_manager by itself.
Same thing.
So, this was really frustrating.  I tried every way I could think of
using the PC with the U2D2 and Wizard 2.0.  Dynamixels never seen.
I connected the PC to the U2D2, directly to a dynamixel powerhub (for
the legs), while plugging the SMPS directly into the powerhub.  The LEDs
flash, but the Dynamixels were not detected with Wizard 2.0.
I connected the PC to the U2D2 and a U2D2 power hub board directly to the
motors, LEDs flashed when I turned on the powerboard switch, but that's
it.  Wizard 2.- doesn't see them.
I even just connected the PC to the U2D2 to the OpenCR which had all the
dynamixels connected to it.  The SMPS was plugged into the OpenCR, I
turned on the switch, LEDs flash, but the dynamixels not seen by Wizard
2.0.
Everytime, I checked to make sure the PC and Wizard were looking at the
same/correct COM port, usually COM3.  Once it popped up as COM5.  But I
changed the settings in Wizard to correspond.  It never saw the
dynamixels.  The connect button never lit up as well during all these
attempts.
this was a no go.  Nothing was ever detected.
I am completely dumbfounded now.
The LEDs flashed, which I would take as a sign they are indeed getting
power the moment they were plugged in or the appropriate switch was turned
on, depending on each of the above setups.
I tried various USB cables from the PC to the U2D2, nothing.

Is there a possibility that something is wrong with the SMPS?
So, I have another one, and tried that one.  No difference.
So, one last attempt...I started up* Dynamixel Wizard from RoboPlus*.
And it found just the OpenCR board as id 200.
I don't know what to make of all of this.
Cheers,
Smitty
On Sun, Jul 18, 2021 at 10:10 PM Will Son @.***> wrote:

@Smitty-44 https://github.com/Smitty-44
Whoa, this is one of the most wicked issues that I had this year...
Ok, let's go back to the very basic and see what we've missed.

Do you see the led blink on every DYNAMIXEL when the op3_manager
node is up and running?
Since you have two working U2D2, can you connect on of them to your
PC and detect all connected DYNAMIXEL from DYNAMIXEL Wizard 2.0? If they
are detected, can you turn on the torque and update the Goal Position
manually?
ID 200 is assigned to the OpenCR and Wizard 2.0 will detect it as
an unknown device like below.
[image: image]
https://user-images.githubusercontent.com/26239359/126092090-221fb752-733b-446d-902e-8eb6eb7b3242.png
And should be able to read from the Control table using the Packet
feature. The 1 byte Torque On flag is saved in the Address 24 and can be
read as below.
[image: image]
https://user-images.githubusercontent.com/26239359/126092615-af7d67fa-da10-4c4c-8c7b-9a110b1ba440.png
If Torque is turned on, the Parameter in the Status packet should be
0x01 instead of 0x00 as below.
[image: image]
https://user-images.githubusercontent.com/26239359/126092729-8e52c932-d4b1-423a-93be-3c7d3d5781b8.png

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/114#issuecomment-882177556,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANVLKU23B2ZQ7UQUWMIE5SDTYOCRRANCNFSM477HT62Q
.

Will Son,
I want you to know I found the source of the problem and fixed it.
I am back up and running.
I will explain the process in a reply tomorrow.
It was not the U2D2 or the OpenCR.
It was a damaged wire at the knee joint.
Talk to you tomorrow.
Cheers,
Smitty
On Mon, Jul 19, 2021 at 12:46 PM Jacob Smith @.***> wrote:

Hi Will Son,
For:

During the bringup process, all the LEDs blink, but that is it.
So, I just launched the op3_manager by itself.
Same thing.
So, this was really frustrating.  I tried every way I could think of
using the PC with the U2D2 and Wizard 2.0.  Dynamixels never seen.
I connected the PC to the U2D2, directly to a dynamixel powerhub (for
the legs), while plugging the SMPS directly into the powerhub.  The LEDs
flash, but the Dynamixels were not detected with Wizard 2.0.
I connected the PC to the U2D2 and a U2D2 power hub board directly to
the motors, LEDs flashed when I turned on the powerboard switch, but
that's it.  Wizard 2.- doesn't see them.
I even just connected the PC to the U2D2 to the OpenCR which had all the
dynamixels connected to it.  The SMPS was plugged into the OpenCR, I
turned on the switch, LEDs flash, but the dynamixels not seen by Wizard
2.0.
Everytime, I checked to make sure the PC and Wizard were looking at the
same/correct COM port, usually COM3.  Once it popped up as COM5.  But I
changed the settings in Wizard to correspond.  It never saw the
dynamixels.  The connect button never lit up as well during all these
attempts.
this was a no go.  Nothing was ever detected.
I am completely dumbfounded now.
The LEDs flashed, which I would take as a sign they are indeed getting
power the moment they were plugged in or the appropriate switch was turned
on, depending on each of the above setups.
I tried various USB cables from the PC to the U2D2, nothing.

Is there a possibility that something is wrong with the SMPS?
So, I have another one, and tried that one.  No difference.
So, one last attempt...I started up* Dynamixel Wizard from RoboPlus*.
And it found just the OpenCR board as id 200.
I don't know what to make of all of this.
Cheers,
Smitty
On Sun, Jul 18, 2021 at 10:10 PM Will Son @.***>
wrote:

@Smitty-44 https://github.com/Smitty-44
Whoa, this is one of the most wicked issues that I had this year...
Ok, let's go back to the very basic and see what we've missed.

Do you see the led blink on every DYNAMIXEL when the op3_manager
node is up and running?
Since you have two working U2D2, can you connect on of them to
your PC and detect all connected DYNAMIXEL from DYNAMIXEL Wizard 2.0? If
they are detected, can you turn on the torque and update the Goal Position
manually?
ID 200 is assigned to the OpenCR and Wizard 2.0 will detect it as
an unknown device like below.
[image: image]
https://user-images.githubusercontent.com/26239359/126092090-221fb752-733b-446d-902e-8eb6eb7b3242.png
And should be able to read from the Control table using the Packet
feature. The 1 byte Torque On flag is saved in the Address 24 and can be
read as below.
[image: image]
https://user-images.githubusercontent.com/26239359/126092615-af7d67fa-da10-4c4c-8c7b-9a110b1ba440.png
If Torque is turned on, the Parameter in the Status packet should be
0x01 instead of 0x00 as below.
[image: image]
https://user-images.githubusercontent.com/26239359/126092729-8e52c932-d4b1-423a-93be-3c7d3d5781b8.png

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/114#issuecomment-882177556,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANVLKU23B2ZQ7UQUWMIE5SDTYOCRRANCNFSM477HT62Q
.

@Smitty-44
Sweet!! Glad to hear that you finally found what the problem is.
That is weird though. Even if the cable is damaged, other DYNAMIXEL with good connection should be responding to Wizard 2.0.
Thanks for the good news!

Hi Will Son,
I decided to start at the beginning, like you inferred.
I hooked up the U2D2 to the left elbow, l_el, and tried that with Dynamixel
Wizard 2.0.
It found it fine.   So, I continued by adding the entire left arm, and Dyn
Wiz 2.0 found all 5 dynamixels.
Then I did the same for the right arm, which worked fine and then both arms
and the 2 for the neck.
Dyn Wiz 2.0 found all 12.
I then connected the left leg and the 2 at the torso for my biped version
and it found all 8.
It came down to the right leg.  I connected just the right leg and it did
not find anything.
So, I tried again with just the 2 left ankle dynamixels and it found both.
Then, I connected it to the right knee and it didn't find anything.
That isolated the problem to the right knee.
When I disconnected the wires to the knee, I discovered one of the 3
individual wires had ripped out of the connector, showing bare wire.
I replaced it with a new, longer wire and it worked.
I connected all 26 to the U2D2 and Dyn Wiz 2.0 found all 26.
I then reconnected everything back up and successfully launched
action_editor.
I am including a pic.
[image: IMG_20210721_081326953.jpg]
So, after finding this link:
https://emanual.robotis.com/docs/en/dxl/x/xl430-w250/#connector-information
I am concluding it is the #1 wire in the pinout in the housing which is the
GND line.
Please correct me if I am wrong.
And that apparently makes all dynamixels appear to be not found.
Does this make sense, Will Son?
I hope I explained it correctly.
If anyone runs into this same type of problem in the future, I hope this
helps.
Thanks again for all your help and patience.
Cheers, Smitty
On Tue, Jul 20, 2021 at 9:30 PM Jacob Smith @.***> wrote:

Will Son,
I want you to know I found the source of the problem and fixed it.
I am back up and running.
I will explain the process in a reply tomorrow.
It was not the U2D2 or the OpenCR.
It was a damaged wire at the knee joint.
Talk to you tomorrow.
Cheers,
Smitty
On Mon, Jul 19, 2021 at 12:46 PM Jacob Smith @.***>
wrote:

Hi Will Son,
For:

During the bringup process, all the LEDs blink, but that is it.
So, I just launched the op3_manager by itself.
Same thing.
So, this was really frustrating.  I tried every way I could think of
using the PC with the U2D2 and Wizard 2.0.  Dynamixels never seen.
I connected the PC to the U2D2, directly to a dynamixel powerhub
(for the legs), while plugging the SMPS directly into the powerhub.
The LEDs flash, but the Dynamixels were not detected with Wizard 2.0.
I connected the PC to the U2D2 and a U2D2 power hub board directly to
the motors, LEDs flashed when I turned on the powerboard switch, but
that's it.  Wizard 2.- doesn't see them.
I even just connected the PC to the U2D2 to the OpenCR which had all
the dynamixels connected to it.  The SMPS was plugged into the OpenCR,
I turned on the switch, LEDs flash, but the dynamixels not seen by
Wizard 2.0.
Everytime, I checked to make sure the PC and Wizard were looking at the
same/correct COM port, usually COM3.  Once it popped up as COM5.  But I
changed the settings in Wizard to correspond.  It never saw the
dynamixels.  The connect button never lit up as well during all these
attempts.
this was a no go.  Nothing was ever detected.
I am completely dumbfounded now.
The LEDs flashed, which I would take as a sign they are indeed getting
power the moment they were plugged in or the appropriate switch was turned
on, depending on each of the above setups.
I tried various USB cables from the PC to the U2D2, nothing.

Is there a possibility that something is wrong with the SMPS?
So, I have another one, and tried that one.  No difference.
So, one last attempt...I started up* Dynamixel Wizard from RoboPlus*.
And it found just the OpenCR board as id 200.
I don't know what to make of all of this.
Cheers,
Smitty
On Sun, Jul 18, 2021 at 10:10 PM Will Son @.***>
wrote:

@Smitty-44 https://github.com/Smitty-44
Whoa, this is one of the most wicked issues that I had this year...
Ok, let's go back to the very basic and see what we've missed.

Do you see the led blink on every DYNAMIXEL when the op3_manager
node is up and running?
Since you have two working U2D2, can you connect on of them to
your PC and detect all connected DYNAMIXEL from DYNAMIXEL Wizard 2.0? If
they are detected, can you turn on the torque and update the Goal Position
manually?
ID 200 is assigned to the OpenCR and Wizard 2.0 will detect it as
an unknown device like below.
[image: image]
https://user-images.githubusercontent.com/26239359/126092090-221fb752-733b-446d-902e-8eb6eb7b3242.png
And should be able to read from the Control table using the Packet
feature. The 1 byte Torque On flag is saved in the Address 24 and can be
read as below.
[image: image]
https://user-images.githubusercontent.com/26239359/126092615-af7d67fa-da10-4c4c-8c7b-9a110b1ba440.png
If Torque is turned on, the Parameter in the Status packet should be
0x01 instead of 0x00 as below.
[image: image]
https://user-images.githubusercontent.com/26239359/126092729-8e52c932-d4b1-423a-93be-3c7d3d5781b8.png

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/114#issuecomment-882177556,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANVLKU23B2ZQ7UQUWMIE5SDTYOCRRANCNFSM477HT62Q
.

@Smitty-44
Thank you very much for the detailed description about the way you identified the problem.
The GND is a very important wire because it works as a reference voltage(0 V) for communication as well as providing current circulation for connected modules.
I wish the rest of development goes well without any hick ups!
Will

Hi Will,
Fantastic!  I'm glad my wire problem and fix helped someone.
So, I am at the stage where I have modified the actions with the action_editor and now want to run them with sound.
Of course, I saw that requires using the 4 buttons...which I do not have yet.
I saw the pdf schematic drawings of the small boards like OP3_GPIO Board.
I already have a speaker added to the Pi which can default through the jack connection.
And I have played the "self test ready mode" already, through that speaker.
I know I need to create those boards/wiring on my own since those are not sold separately, and I have an "idea" on how to do it, just not the expertise.
I am new to wiring from a schematic (I've done numerous easy ones), but I gave it a try.
I have a couple of questions.
Can I test any of these just connecting them to the OpenCR or do I need to power up everything?
I ask this because I am a little anxious I may short something out due to any incorrect wiring of mine.
Is there any other guidance you can give to aid me in not fudging this all up?
I have the appropriate 12 wires connected out from the OpenCR GPIO pins to a large breadboard for prototyping.
I have probably over wired the 4 buttons.  Hopefully you can track the wiring in the included snapshot and point out any obvious mistakes.
You can see the power (red) and GND (black) wires on the left coming in.
Then the RGB LED, and the 3 LEDs, then the 4 buttons, with the first blue button being the SW_MODE, then SW_START, SW_USER, and DXL_PWR_RESET in order.

I tried to follow 7.3.3. Boards from the emanual:
https://github.com/ROBOTIS-GIT/ROBOTIS-OP-Series-Data/blob/master/ROBOTIS-OP3/Hardware/Electronics/Boards/OP3_GPIO_Board_170213.pdf
As always, thank you for your help.
And if I should contact someone else at Robotis, please let me know that as well.
Cheers,
Smitty

Hi @Smitty-44
Glad that you are getting one step closer to the final touch.
Though it is difficult to review your design, as long as you have correctly implemented the circuit based on the provided PCB schematics, the OP3 buttons will be powered by the OpenCR GPIO Pin 7~10 (MODE, START, USER, RESET respectively).
The RGB LED for the front and other three R / G / B LEDs for the back near the buttons are also connected to the OpenCR GPIO, and powered by the VCC_3.3V from the GPIO pin 1 of the OpenCR.
I'd recommend separately check the input and output with an external power source (if you have 3.3V power supply) before connecting to OpenCR.
Just make sure that the Button outputs are not directly connected to the power source (such as 3.3V or 5V) because the other side of the button is fixed to the ground and as soon as you press the button, the circuit will be shorted between input(ground) and output.
LEDs are relatively safer than buttons as they are protected with diodes and resistors, but pay attention when connecting to the correct GPIO pins.
Thanks!

Hi Will Son,
That's my problem.  I can look at simple PCB schematics, but these two pdfs
confuse me.
I see those two molex connectors, plus whatever is being used for the
speaker.
I have a speaker connected to the Pi jack, and is the default.  Will that
work for the modes?
Must I have the Speaker Amp board and another speaker?
Right now, when I bring up self ready test, the mp3 file plays thru my Pi
speaker.
I also see a number of capacitors out there.  Are there any other hints you
can throw my way?
I usually can figure things out with actual pics.
I wired the 12 GPIO pins, (1 and 2 and the other 10) as in the "OP3_GPIO
Board" pdf, but right now I do not have the 3 capacitors wired.
Should the 3 separate LEDs be connected to GND?  I'm not sure I see that.
And I'm confused how it all links together.
Maybe I have it wired correctly, but I am hesitant to connect to my OpenCR
and my biped.
Is there a way for me, from the command line, to just run whatever Mode, or
Start, or Reset?
The only other information I found out there (through google translate) was
someone else inquiring about the boards and connections and I think someone
sent them an email and they instantly understood.
Thank you for answering all my questions, all the time.
I really appreciate it.
Cheers,
Smitty
I added a photo for whatever it's worth.  When I turn on the OpenCR, all
the LEDs light up.
[image: IMG_20210816_141658295_HDR.jpg]
On Tue, Aug 10, 2021 at 10:11 PM Will Son @.***> wrote:

Hi @Smitty-44 https://github.com/Smitty-44
Glad that you are getting one step closer to the final touch.
Though it is difficult to review your design, as long as you have
correctly implemented the circuit based on the provided PCB schematics, the
OP3 buttons will be powered by the OpenCR GPIO Pin 7~10 (MODE, START, USER,
RESET respectively).
The RGB LED for the front and other three R / G / B LEDs for the back near
the buttons are also connected to the OpenCR GPIO, and powered by the
VCC_3.3V from the GPIO pin 1 of the OpenCR.
I'd recommend separately check the input and output with an external power
source (if you have 3.3V power supply) before connecting to OpenCR.
Just make sure that the Button outputs are not directly connected to the
power source (such as 3.3V or 5V) because the other side of the button is
fixed to the ground and as soon as you press the button, the circuit will
be shorted between input(ground) and output.
LEDs are relatively safer than buttons as they are protected with diodes
and resistors, but pay attention when connecting to the correct GPIO pins.
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3/issues/114#issuecomment-896444984,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANVLKU7RIZYWBITNJNAYEQDT4HL57ANCNFSM477HT62Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

As long as the pi speaker works, you don't need additional speaker amp to amplify the sound.
The LED should be carefully connected. The longer pin is Anode(+), and the other is Cathode(-) as below.

image source: http://www.zpag.net/Electroniques/Diode/led_find__anode_and_cathode.html

The Anode pins should be connected to the 3.3V pin of the OpenCR while Cathodes should be connected to GPIO Pin 4(Red), Pin 5(Green), Pin 6(Blue) respectively.
In this way, the MCU can drop the LED_Signal_IN_# pins to LOW(0V) to turn the LED on while turning them off with HIGH(3.3V) output.
330ohm resistors are important because they limit the amount of current flows through the LED.
I haven't tried it before, but there are subscribers for getting demo mode and button status
https://github.com/ROBOTIS-GIT/ROBOTIS-OP3-Demo/blob/master/op3_demo/src/demo_node.cpp#L77-L78
You may publish necessary string such as "soccer", "vision", "action" and then "start" to begin the demo.
I'm sorry but I can't see the picture.
When attaching pictures in the email reply, it doesn't seem to be included in the reply on Github.

Hi Will Son,
Thank you very much for the response.  Definitely answers most of questions.
Yes, I can just use my speaker and yes, I can send commands for the modes, etc., from the command line.
I understand about the anode and cathode for the LEDs, but I checked my wiring again.
Also, I have resistors for them as well and they are 330ohm.
I am replying through github this time, so hopefully you will see my 2 pics even though they maybe hard to see.  If you see anything glaringly wrong, please shout out.  I know it is hard to see.
First one, is the current breadboard wiring which will need replaced by a PCB or two.
It is a U2D2 connected to an OpenCR which has the OP3 firmware loaded.
It shows the 12 wires coming out of the OpenCR GPIOs, and running out to breadboards.
The small yellow breadboard has the 1 (+), and 2 (-) wires from the OpenCR, included with the 3 capacitors as indicated by the schematics, and then connects to the large breadboard's + and - .
The other 10 GPIO wires, 3 for the LED RGB, 3 more for the separate LEDs, and 4 for the buttons.

Second one, is the U2D2 plugged into the desktop, and the OpenCR with power applied.
The LED RGB lights up, the others do not, the U2D2 does not have data being sent at that moment, I took the pic, and then I quickly turn the power off and disconnect the U2D2 from the desktop.

These pictures are just in case you see something terribly wrong.
At this point I will continue working on going from here to creating PCBs.
And I will experiment with trying to execute from a terminal.
Thank you so much for your patience, understanding and straight forward explanations.
As always, Cheers,
Smitty

Hi @Smitty-44
Sorry I didn't have enough time to take a closer look this week.
I'll review on this next week and get back to you if it is okay with you.
Thanks!


Tuple type

The Tuple type
We want to create a type called Strings50 that is a tuple with 50 strings.
type Strings50 = [
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string,
    string
];

Welp, that's one way of doing it. Or, you could use this utility type I'm proposing:
type Tuple<T, N, R extends T[] = []> = R['length'] extends N ? R : Tuple<T, N, [...R, T]>;

With this recursive type, the abomination above can be refactored to this:
type Strings50 = Tuple<string, 50>;

Use case example
We have a function that takes in an array and a chunk size, then returns that same array chunked out:
const chunkArray = <T extends unknown>(arr: T[], size: number) => {
    const copy = [...arr];
    return [...Array(Math.ceil(arr.length / size))].map(() => copy.splice(0, size));
};

// x looks like -> [['hello', 'world'], ['foo', 'bar'], ['fizz', 'buzz']];
const x = chunkArray(['hello', 'world', 'foo', 'bar', 'fizz', 'buzz'], 2);

This is fine. The function returns T[][], and x is a string[][]. But, since for our use case, we intend to use non-dynamic chunk sizes when calling this function, we can make the return type more accurate:
const chunkArray = <T extends unknown, N extends number>(arr: T[], size: N) => {
    const copy = [...arr];
    return [...Array(Math.ceil(arr.length / size))].map(() => copy.splice(0, size)) as Tuple<T, N>[];
};

const x = chunkArray(['hello', 'world', 'foo', 'bar', 'fizz', 'buzz'], 2);
const y = chunkArray(['hello', 'world', 'foo', 'bar', 'fizz', 'buzz'], 3);

Instead of having the type string[][], x now has a type of [string, string][], and y of course has a type of [string, string, string][].

See https://github.com/microsoft/TypeScript/issues/39522#issuecomment-656201388:

We've opted to not include utility type aliases in the lib unless they're required for declaration emit purposes.


fixed rollback behavior with TransactionManager, fixed RuntimeException handling

fixed RuntimeException handling in SqlClosure::execute
fixed rollback not rolling back anything when using TxTransactionManager

Codecov Report

Merging #20 into master will increase coverage by 2.45%.
The diff coverage is 75%.

@@             Coverage Diff              @@
##             master      #20      +/-   ##
============================================
+ Coverage     56.68%   59.13%   +2.45%
- Complexity      168      179      +11
============================================
  Files            15       15
  Lines           875      881       +6
  Branches        152      153       +1
============================================
+ Hits            496      521      +25
+ Misses          290      268      -22
- Partials         89       92       +3

Impacted Files
Coverage Δ
Complexity Δ

...om/zaxxer/sansorm/transaction/TxThreadContext.java
100% <100%> (ø)
6 <2> (ø)
:arrow_down:

.../com/zaxxer/sansorm/transaction/TxTransaction.java
51.92% <66.66%> (+7.92%)
9 <1> (+1)
:arrow_up:

src/main/java/com/zaxxer/sansorm/SqlClosure.java
30% <71.42%> (+7.64%)
10 <0> (+4)
:arrow_up:

...rc/main/java/com/zaxxer/sansorm/SqlClosureElf.java
84% <0%> (+4%)
16% <0%> (+1%)
:arrow_up:

...a/com/zaxxer/sansorm/transaction/TxDataSource.java
74.07% <0%> (+7.4%)
4% <0%> (+1%)
:arrow_up:

...com/zaxxer/sansorm/transaction/TransactionElf.java
42.85% <0%> (+11.9%)
10% <0%> (+3%)
:arrow_up:

...xxer/sansorm/transaction/TxTransactionManager.java
65.62% <0%> (+15.62%)
7% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4e91ac7...6296606. Read the comment docs.


Line-highlight corrupt print

Information:

Prism version: latest from the download page
Plugins: toolbar, copy-to-clipboard, line-highlight
Environment: Browser (chrome)

Description
I'm using line-highlight, and when printing the page, the code is partially hidden.
This is caused because the transparent background of the line-highlight class is printed as opaque white.
Workaround
Set the style of the line-highlight class like this:
.line-highlight {
    -webkit-print-color-adjust: exact;
}

This works in Chrome. I didn't test with other browsers.
Example

{

  "channelDat`": {
    "foo": {
      "bar": "bar"
    }
  }
}

Produces the following when printing the page:

Cannot reproduce.
Here is a minimal example project with your configuration and code. I tested it on Chrome 86 and everything works.
This seems like a problem with the specific CSS used on your site.

Hi @RunDevelopment.
Thanks for the quick reply.
I forgot to mention on my original post that it only happens when de-selecting the "Background graphics" checkbox on the Print options.
I just tried it with your project and it reproduced (using Chrome 86):

Sorry. I thought you meant "printed as opaque white" as rendered and literally printed. My bad.
I'll make a PR with your fix.


food can be emptied into chemmaster

drop food near a chemmaster
drag the food onto the chemmaster
all food chems now inside of the chemmaster

https://www.youtube.com/watch?v=tRWHrX4aIDk

just saw the video, incredable bug

Can we all pinky promise to not fix it :godo:

But do not fix draining food into drains so I can keep on living as alchemist, alright? :trollface:

drain brain into chemmaster for free genetic damage :trollface:

oh no that works doesn't

But do not fix draining food into drains so I can keep on living as alchemist, alright? :trollface:

Stop abusing exploits and play the game as intended. This went unreported for a year at absolute minimum because of people like you.

I mean, I did report it for about as long. If you want something fixed, abuse it till it get noticed. :trollface:


Quick fix remote bug

Remote TrainingService, passwd is not required when users set sshKeyPath.

@SparkSnail  Hi, as you said that remote TrainingService, passwd is not required when users set sshKeyPath ,but when I unset passwd in config_remote.yml .
ERROR: Failed! Error is: {"statusCode":400,"error":"Bad Request","message":"child "body" fails because [child "machine_list" fails because ["machine_list" at position 0 fails because [child "passwd" fails because ["passwd" is not allowed to be empty]]]]"}

@husimple thanks for reporting this issue, could you also create a github issue for this problem?

@QuanluZhang Do you know how to  set sshKeyPath?


add Hancock predictor-corrector integrator

This implements the Hancock predictor-corrector time integrator [1][2]. When used with PLM reconstruction (hydro.reconstruction_order = 2), we obtain the MUSCL-Hancock method (which itself is a simplification of the MUSCL method first presented in [3]).
This method is equivalent to the VL2 integrator implemented in Athena.
[1] van Albada et al. (1982)
[2] Falle (1991)
[3] van Leer (1979)

/azp run

This doesn't seem to improve stability over RK2, so there's not much use for it. Closing for now.


Dalamud plugin repository URL?

Could you please provide Dalamud plugin repository URL? ></

Unfortunately, I cannot find your addon in Dalamud even after adding your repo ></

Me either. Your addon is not there.

This still does not appear.


Operators should be reconciled on any CatalogSources change

Background:
When reconciling operator CRs, the operator-controller builds a list of constraints based on operator CRs and attempts to solve those constraints by considering content available in catalogSources. If the content within a catalogSource changes, a new solution may be available for a set of constraints that had failed earlier.
The operator controller should be updated to watch catalogSources. On changes that affect the catalogContent, the operator controller should queue all operator CRs to be reconciled. For the purposes of this ticket, we will queue all operator CRs for any catalog event, even if content might not have changed.
Demo Script:
install OLM V1
Remove the default catalogSource
Create an Operator CR that exists in the catalog
Check that it fails
Recreate the default catalogSource
Check that the package defined in the operator CR is deployed

Demoed in the June 13th, 2023 Working Group and Issue Triage Meeting, viewable here.


SSH keychain widget does not recognize pattern matching declarations

Dev Home version
<IP_ADDRESS>
Windows build number
10.0.22621.0
Other software

OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3

Steps to reproduce the bug

Add a new host to your ~/.ssh/config file with pattern matching in the configuration

Here was mine:

Host ??.logonoff
  HostName %h.co
  IdentityFile ~/.ssh/id_ed25519

Add the SSH keychain widget and try to connect to the host

Notice that it errors out when trying to connect as you cannot fill in the pattern

Expected result
Prompt me to fill in the pattern, perhaps via a dialog box
Actual result
Dev Home will try to SSH to the address with the question marks which is not a valid address
Included System Information
No response
Included Extensions Information
No response

I am attempting to fix this issue in this PR - https://github.com/microsoft/devhome/pull/1081.
Let me know what you think!


Upgrade win32 package constraint to "<6.0.0"

I am getting this error when I run pub get. Please update win32 dependency so it is compatible with other packages that also uses win32 package.
Because rich_clipboard_windows <1.0.2 depends on win32 ^2.5.1 and no versions of rich_clipboard_windows match >1.0.2 <2.0.0, rich_clipboard_windows <1.0.2-∞ or >1.0.2 <2.0.0 requires win32 ^2.5.1.
And because rich_clipboard_windows 1.0.2 depends on win32 >=2.5.1 <5.0.0, rich_clipboard_windows <2.0.0 requires win32 >=2.5.1 <5.0.0.
Because no versions of rich_clipboard match >1.0.1 <2.0.0 and rich_clipboard 1.0.1 depends on rich_clipboard_windows ^1.0.0, rich_clipboard ^1.0.1 requires rich_clipboard_windows ^1.0.0.
Thus, rich_clipboard ^1.0.1 requires win32 >=2.5.1 <5.0.0.
And because file_picker >=5.3.2 depends on win32 ^5.0.2, rich_clipboard ^1.0.1 is incompatible with file_picker >=5.3.2.
So, because codelessly depends on both file_picker ^5.3.2 and rich_clipboard ^1.0.1, version solving failed.

Any update on this? This is really a blocker for me!

Unfortunately the new version of win32 depends on Dart 3, which in turn introduced changes to some FFI signatures which are proving hard to debug.
For conflicting version constraints in the dependency graph, you can always try to work around it with using dependency_overrides.

@jmatth Are you planning to upgrade this to latest version of win32 package any time soon?

Hi, I have the fix implemented and will push an update later today. Full disclosure: this project is probably going to be deprecated in favor of super_clipboard sometime in the future. That package already has more features and the team at Superlist has more resources to maintain it.

@jmatth Thank you for the update! May. Reasons I don't wanna use super_clipboard.

External dependency: It depends on Rust. I have install it separately.
NDK requirement for Android.

These are serious red flag for me. Besides rich_clipboard almost has all the functionality I need. I wish this package won't get deprecated but I guess it can't be helped!
Will be waiting for the new release! Thank you!

@jmatth Did you push the update?

The change is up now as version 1.0.3 of rich_clipboard_windows

Thanks @jmatth. Kudos!


Installation - Lombok

https://stackoverflow.com/questions/11803948/lombok-is-not-generating-getter-and-setter

cmd run as administrator
cd C:\Users\Valentina.Cupac.m2\repository\org\projectlombok\lombok\1.18.12
java -jar lombok-1.18.12.jar
Project Lombok Installer appears -> it scans the IDE installations.
After installations are selected, click on "Install / Update"


Zemismart ZN-L02E and ZM-PZ2  2 gang with neutral wire switch

Device description
Zemismart ZN-L02E and ZM-PZ2  2 gang with neutral wire switch.
Don`t create swichs in Domoticz. 1 gang ZN-L01E - all ok, create, work in Domoticz
MQTT message with device information
ZN-L02E
2020-03-21 18:06:57.601 (Zigbee) Device TS0001 0xec1bbdfffe66eae6 (0xec1bbdfffe66eae6)
2020-03-21 18:06:57.601 (Zigbee) Device 0xec1bbdfffed0fac9 (0xec1bbdfffed0fac9) doesn't have "model" attribute, skipped
2020-03-21 18:06:57.652 (Zigbee) MQTT message: zigbee2mqtt/bridge/log {'message': 'announce', 'meta': {'friendly_name': '0xec1bbdfffed0fac9'}, 'type': 'device_announced'}
2020-03-21 18:06:58.854 (Zigbee) MQTT message: zigbee2mqtt/bridge/log {'message': 'interview_successful', 'meta': {'friendly_name': '0xec1bbdfffed0fac9', 'description': '2 gang switch', 'supported': True, 'model': 'TS0002', 'vendor': 'TuYa'}, 'type': 'pairing'}
ZM-PZ2
2020-03-21 20:18:12.565 (Zigbee) Device TS0002 0xec1bbdfffed0fac9 (0xec1bbdfffed0fac9)
2020-03-21 20:18:12.565 (Zigbee) Device 0xec1bbdfffe66e7cd (0xec1bbdfffe66e7cd) doesn't have "model" attribute, skipped
2020-03-21 20:18:12.616 (Zigbee) MQTT message: zigbee2mqtt/bridge/log {'message': 'announce', 'meta': {'friendly_name': '0xec1bbdfffe66e7cd'}, 'type': 'device_announced'}
2020-03-21 20:18:13.969 (Zigbee) MQTT message: zigbee2mqtt/bridge/log {'message': 'interview_successful', 'meta': {'friendly_name': '0xec1bbdfffe66e7cd', 'description': '2 gang switch', 'supported': True, 'model': 'TS0002', 'vendor': 'TuYa'}, 'type': 'pairing'}
MQTT state change commands
2020-03-21 18:08:42.566 (Zigbee) MQTT message: zigbee2mqtt/0xec1bbdfffed0fac9 {'linkquality': 2, 'state_l2': 'OFF', 'state_l1': 'OFF'}
2020-03-21 18:08:42.566 (Zigbee) Unhandled message from zigbee2mqtt: zigbee2mqtt/0xec1bbdfffed0fac9 {'linkquality': 2, 'state_l2': 'OFF', 'state_l1': 'OFF'}
2020-03-21 20:18:36.398 (Zigbee) MQTT message: zigbee2mqtt/0xec1bbdfffe66e7cd {'linkquality': 0, 'state_l2': 'ON', 'state_l1': 'OFF'}
2020-03-21 20:18:36.398 (Zigbee) Unhandled message from zigbee2mqtt: zigbee2mqtt/0xec1bbdfffe66e7cd {'linkquality': 0, 'state_l2': 'ON', 'state_l1': 'OFF'}
2020-03-21 20:18:38.373 (Zigbee) MQTT message: zigbee2mqtt/0xec1bbdfffe66e7cd {'linkquality': 13, 'state_l2': 'OFF', 'state_l1': 'OFF'}
2020-03-21 20:18:38.373 (Zigbee) Unhandled message from zigbee2mqtt: zigbee2mqtt/0xec1bbdfffe66e7cd {'linkquality': 13, 'state_l2': 'OFF', 'state_l1': 'OFF'}

Device 0xec1bbdfffed0fac9 (0xec1bbdfffed0fac9) doesn't have "model" attribute
Device 0xec1bbdfffe66e7cd (0xec1bbdfffe66e7cd) doesn't have "model" attribute

Please get rid of these errors first. It is not possible to identify device because of them

Write to zigbee2mqtt issue

Zigbee2mqtt log.
0xec1bbdfffe66e7cd have "model" attribute - "model":"TS0002"
info  2020-03-21 23:18:59: Starting interview of '0xec1bbdfffe66e7cd'
info  2020-03-21 23:18:59: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_started","meta":{"friendly_name":"0xec1bbdfffe66e7cd"}}'
info  2020-03-21 23:18:59: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"devices","message":[{"ieeeAddr":"0x00124b00194ada1e","type":"Coordinator","networkAddress":0,"friendly_name":"Coordinator","softwareBuildID":"zStack12","dateCode":"20190608","lastSeen":1584821939932},{"ieeeAddr":"0xec1bbdfffe66eae6","type":"Router","networkAddress":42007,"model":"TS0001","vendor":"CR Smart Home","description":"Valve control","friendly_name":"0xec1bbdfffe66eae6","manufacturerID":0,"manufacturerName":"_TYZB01_3xe7wzpw","powerSource":"Mains (single phase)","modelID":"TS0001","lastSeen":1584801269308},{"ieeeAddr":"0xec1bbdfffed0fac9","type":"Router","networkAddress":1880,"model":"TS0002","vendor":"TuYa","description":"2 gang switch","friendly_name":"0xec1bbdfffed0fac9","manufacturerID":0,"manufacturerName":"_TYZB01_f97aljaj","powerSource":"Mains (single phase)","modelID":"TS0002","lastSeen":1584803610567},{"ieeeAddr":"0xec1bbdfffe66e7cd","networkAddress":44894,"vendor":"-","description":"-","friendly_name":"0xec1bbdfffe66e7cd","lastSeen":1584821939888}]}'
info  2020-03-21 23:18:59: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"device_announced","message":"announce","meta":{"friendly_name":"0xec1bbdfffe66e7cd"}}'
info  2020-03-21 23:19:00: Successfully interviewed '0xec1bbdfffe66e7cd', device has successfully been paired
info  2020-03-21 23:19:00: Device '0xec1bbdfffe66e7cd' is supported, identified as: TuYa 2 gang switch (TS0002)
info  2020-03-21 23:19:01: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_successful","meta":{"friendly_name":"0xec1bbdfffe66e7cd","model":"TS0002","vendor":"TuYa","description":"2 gang switch","supported":true}}'
info  2020-03-21 23:19:01: Configuring '0xec1bbdfffe66e7cd'
info  2020-03-21 23:19:01: Successfully configured '0xec1bbdfffe66e7cd'
info  2020-03-21 23:19:06: MQTT publish: topic 'zigbee2mqtt/0xec1bbdfffe66e7cd', payload '{"state_l1":"OFF","linkquality":5,"state_l2":"OFF"}'
info  2020-03-21 23:19:09: MQTT publish: topic 'zigbee2mqtt/0xec1bbdfffe66e7cd', payload '{"state_l1":"OFF","linkquality":18,"state_l2":"ON"}'
info  2020-03-21 23:19:10: MQTT publish: topic 'zigbee2mqtt/0xec1bbdfffe66e7cd', payload '{"state_l1":"OFF","linkquality":5,"state_l2":"OFF"}'

Mart, have you tried to add manufacturer (sub-)folder _TYZB01_f97aljaj in adapters folder and to create a new TS0002.py file, including two class init.pi files. You could check simular devices to find out the code structure. For example the LLKZMK11LM.py device contains reusable code for your device. Almost the complete class could be re-used as template. You could give it a try. @Stanislav please correct me if I'm wrong

By the way, I have no understanding that ZN-L01E with model TS0001 is supported by the plugin.

Your device seams to be equal to manufactor: Zemismart model ZMCSW002D.py  You could easy re-use this code.
https://community.hubitat.com/t/zemismart-zigbee-2-gang-light-switches/21124/20

Sorry. I create (sub-)folder _TYZB01_f97aljaj in adapters folder, copy ZMCSW002D.py and rename to  TS0002.py. I don't understand next steps... :( Need help.
Domoticz
2020-03-22 09:09:24.149 (Zigbee) MQTT message: zigbee2mqtt/bridge/log {'message': 'interview_successful', 'meta': {'model': 'TS0002', 'vendor': 'TuYa', 'supported': True, 'description': '2 gang switch', 'friendly_name': '0xec1bbdfffe66e7cd'}, 'type': 'pairing'}
2020-03-22 09:09:28.912 (Zigbee) MQTT message: zigbee2mqtt/0xec1bbdfffe66e7cd {'state_l2': 'OFF', 'state_l1': 'ON', 'linkquality': 7}
2020-03-22 09:09:28.912 (Zigbee) This plugin does not support zigbee device with model "TS0002" yet
z2mqtt log
log.txt

Could you please update plugin and check

The solution is a bit different but the approach is the same. @Stanislav, It is correct that the model (TS0002) is the “key” for finding the corresponding adapter ?

Yes, correct, plugin is looking for adapter by device model

Thanks. Could you please take a look to my request (Heiman /M420). Would be great if you could leave a response. Thanks in advance.

Could you please update plugin and check

Error after update plugin...
2020-03-22 15:41:09.898 Error: (Zigbee2MQTT) failed to load 'plugin.py', Python Path used was '/home/pi/domoticz/plugins/zigbee2mqtt/:/usr/lib/python35.zip:/usr/lib/python3.5:/usr/lib/python3.5/plat-arm-linux-gnueabihf:/usr/lib/python3.5/lib-dynload:/usr/local/lib/python3.5/dist-packages:/usr/lib/python3/dist-packages:/usr/lib/python3.5/dist-packages'.
2020-03-22 15:41:09.898 Error: (Zigbee) Module Import failed, exception: 'TypeError'
2020-03-22 15:41:09.898 Error: (Zigbee) Error Line details not available.
Domoticz
Version: 4.11665
Build Hash: ec3292db7
Compile Date: 2020-01-28 10:45:51
dzVents Version: 2.5.7
Python Version: 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516]

Updated

Thanks! Swich added, works.


fix: update error handling for restore

From my testing, farraday is raising Faraday::ResourceNotFound errors when a get by ID request can't find a resource. The current rescue RuntimeError => e block is not rescuing these errors, which leads to the failure in #148. I'm guessing faraday updated their error raising at some point which caused the existing rescue block to no longer work?
Resolves #148:

Update the error handling of the restore method to use Faraday::ResourceNotFound
Override get_by_id for dashboards to add error handling for when a dashboard ID can't be found

Fantastic, thank you for the contribution!


Update techCompanies.json

Closed the 'verifyMe' object properly and added another object in the 'v' array.

LGTM


[docs-infra] Fine-tune the OG card image design

[X] I have followed (at least) the PR section of the contributing guide.

Really just tiny tweaks. This is how it is supposed to be now: https://stackblitz.com/edit/vitejs-vite-ukeejd?file=src/App.tsx

Before:

After:
https://deploy-preview-41862--material-ui.netlify.app/edge-functions/og-image?product=Material UI&title=Overview&description=Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.


[Priority: Medium] Wallet Recovery: Optional Creation Date

Why is the creation date optional? What happens if it's not provided?

It used to have a default value, but it seems something has changed.
I've added a bug on trello, a user was getting the offset error after not entering a date.

Then it's a UI job. Please make it mandatory. Maybe you can change the label to: "Earliest Possible Creation Date" or "Syncronize From". That would be more descriptive for the user, it would not worry about if "Do I remember the date correctly? What country was I when I created? How does the wallet even handle that?" Etc...

 [Wallet-GUI] Make recovery date mandatory

Done in #248


vizInterface Build Fail

Description
When the conanfile.py is run for the first time, it doesn't seem to properly build/install the vizInterface. However, if run a second time, even if deleting the repository and re-cloning (or running the conanfile.py with the --clean flag), it works properly. It seems like basilisk runs fine, but with a warning. However, bsk_rl fails with a malformed symbol.
To Reproduce
# Ubuntu install first
apt-get update
apt-get install -y swig git-lfs libzmq3-dev

# basilisk
#  something is broken, will log separate issue, resetting to working commit
git clone -q https://github.com/AVSLab/basilisk.git
cd ./basilisk
git reset --hard d2978e3d6535df80e2cd20dbb94dddfcd60b64fe

# virtual env
mamba create -n basilisk -y wheel conan==1.59.0 cmake pandas scipy matplotlib \
pytest parse=1.18.0

# Activate env
mamba activate basilisk

# compile and build
#  shouldn't need extra args
python3 ./conanfile.py

# test install
cd ./examples
python ./scenarioBasicOrbit.py

basilisk output is:

bsk_rl output is:

Details

OS: Ubuntu 22.04.3 LTS
Python: 3.11.6

Additional Context
If you run the conanfile.py twice, either twice at the beginning or deleting everything and starting fresh, it works fine. I can only reproduce this on a fresh Ubuntu install (or in a new Docker instance).

It seems like the conanfile sets C++11 ABI, but it doesn't fully take on the first try. If you want it to succeed on the first try, you must run the following before running the conanfile.
conan profile new default --detect
conan profile update settings.compiler.libcxx=libstdc++11 default

GCC throws some warnings, but it works like a charm.
Thank you!


Modeled Autoscaling EBS parameters

I'm using this in the Vault VPC to specify an additional volume for the vault data so I can snapshot it without an outage.  Looks to work fine.

Reducing our test coverage, tsk, tsk.

For BlockDeviceMapping, since you can specify either Ebs, VirtualName, or neither but not both, it seems we should have three constructors rather than just the one that would allow you to create an invalid template.

Regarding "For BlockDeviceMapping, since you can specify either Ebs, VirtualName, or neither but not both."  I'm actually wondering in what scenario you would want neither.  Would that just be a device name and a "NoDevice" case?  What would that even be used for?  Suppressing a default mapping from the AMI or something like that?

I don't know what it would be used for, it just seems CloudFormation allows it. If you don't think it useful, feel free to just have two constructors.

Cool, I'm going to stick with the two then.  I've pushed that.  I think I've covered all your comments.  Thanks for the great feedback!  And yeah, I did drop our test coverage by 0.6% from 29.62% to 29.02%.  Sorry.  :)


[FEATURE]-Add Phone Call support for Zoom Rooms

Is your feature request related to a problem? Please describe.
Zoom Room supports making standard phone calls. The current implementation doesn't support this.

This appears to have been already completed.


Accessing Meteor.settings on client side

In order to access the Meteor.settings that would be available to the client, do the variables need to be wrapped in public in the settings file that would be used when building using meteor ?
or is there another step that is required to get them to be accessed via MCB
how does MCB get told which settings file to use when it bundles ?

OK, on reading through the bundler i worked out that to make settings accessible through this bundler they need to be added to the bundler config file
{
"runtime": {
"DDP_DEFAULT_CONNECTION_URL": "https://your.url.com",
"PUBLIC_SETTINGS": {
"aSetting":123
}
}
}
it might be worth adding this to the doc just for some clarification.


Concerns Regarding Growing Centralization in Spacemesh

Dear Spacemesh Team,
I am writing to express my concerns regarding the increasing centralization among users in the Spacemesh network. It has become apparent that mining pools hold a significant advantage over the official program. For instance, I've observed that mining pools have set up their own post servers allowing for posts within 24 hours without missing the subsequent epochs. I am curious about the underlying principles enabling this functionality. This disparity between the capabilities of the official program and those of mining pools has created an unfair environment for users employing the official software. I fear this could lead to further concentration of mining power. Additionally, the ability of mining pools to shut down their servers after post completion to save on electricity costs is another considerable advantage.
I am interested to know if there are plans in the near future to introduce a system where one official node corresponds to multiple post services. This could potentially address the unfairness experienced by users and mitigate the centralization of mining power. Furthermore, I believe efforts should be made to curb further centralization. Failing to address these concerns might lead the project down a path resembling another Chia-like scenario, which I'm sure is not aligned with the project's goals and vision.
As a supporter of the project, I genuinely hope to see Spacemesh continue its development both technically and within the community while upholding its core principles of decentralization. I would greatly appreciate hearing your thoughts on these matters and any plans for improvements in the future.
Thank you for your dedication and hard work that you and the entire team have put into the project.
Sincerely,

Hello,
Answering one after another.

Post-service is still a work in progress. It will debut at 1.3.x with a single service per node, but most sub-protocols already support multiple, so we're working hard to add that functionality to the core. Please expect test releases "soon".  That's assuming the same poet speed. Everything is described https://github.com/spacemeshos/poet/blob/develop/docs/poet_operator_manual.md
So that you know, the node can use only ONE poet.

Does that answer your concerns @bugxzhu ?

I am writing to explore the idea of allowing anyone to run a PoET service and its implications, particularly in balancing rewards while using large-capacity drives with the official Spacemesh program.
The concept of enabling anyone to run a PoET service seems promising. However, I am concerned about how to achieve a balance in earnings and third-party services while using the official program. Specifically, when employing large-capacity drives, how does the revenue compare between utilizing the official program and opting for third-party services?
As I understand it, with the official program, a large-capacity hard drive might lose an epoch, whereas using a third-party service may result in missing some reward points but allow for continuous earning over two epochs. In practical terms, would the difference in actual rewards be significantly substantial between these two scenarios, assuming the use of a 16TB hard drive?
I am keen to gain insights into the potential earnings and trade-offs associated with these options. Understanding the comparative advantage or disadvantage in rewards between running the official program and utilizing third-party services will be valuable information for users contemplating their mining strategies.
Your input on this matter would be greatly appreciated as it could help users make informed decisions about their mining setups.
Thank you for your time and consideration.
@pigmej

Hey,
Running your own poet is possible since day0 and is considered to be feature.
Poet is kinda like a more sophisticated clock, which, (super big oversimplification warning) instead of counting seconds, counts how big a tree it builds. The bigger the tree, the more weight can be added, let's say. For example:

poet A 1000 ticks
poet B 1100 ticks
that means that ATX built with proof from poet B will have 10% more rewards for the same size. But that also means that poet B has to run 10% faster, and that's not easy and cheap.

Going to your example with 12 vs 24h
Our public poets are running for 13.5 days in a 14-day period, so 324 out of 336 hours. If someone runs a poet with 24h gap, that means that they can run 312 out of 336 hours.
So now, a given person would need a 4% faster poet to minimize the loss.
So, to answer your question: if both poets are equally as fast, then the 24-hour cycle gap will yield you 4% less rewards.
To compare the revenues, you basically need to do the math based on the above assumptions.
And again anyone can use any poet, anyone can run their own poet, it's feature.

Thank you for providing insights into the functionality of PoET and the considerations regarding mining practices in the Spacemesh network. Your explanation regarding the differences in rewards and the impact of running PoET cycles within a 24-hour period has been informative.
As far as my understanding goes, some significant miners have started using larger capacity hard drives and have connected to mining pools that allow 24-hour post cycles. Apart from the differences in earnings, the advantages of larger hard drives are evident in terms of space-saving and the avoidance of additional equipment. These are key considerations among miners.
In light of these observations, I would like to emphasize that encouraging more solo miners compared to pool miners would contribute significantly to decentralization. Therefore, it is crucial for the official Spacemesh program to maintain its advantages.
My suggestion is to further enhance the features and capabilities of the official Spacemesh program to incentivize and cater to solo miners, ensuring that their experience remains competitive in terms of rewards and efficiency.
I appreciate your attention to these matters and eagerly await any plans or developments in the official program that align with these suggestions.
Thank you for your time and consideration.
Best regards
@pigmej


Minor refactor to fit update to cost function updates

Motivation
Fit to updated API in: https://github.com/AleoHQ/snarkVM/pull/2271

Closing this as people are having different opinions on the right API. The minor change will be easy to fix once a release is made.


502: BAD_GATEWAY

Hello,
I am trying to deploy a php file.
and it builds fine (I think). But whenever I try to access it, the website gives me a 502 error with the following text : 502: BAD_GATEWAY Code: NO_STATUS_CODE_FROM_FUNCTION
I've checked the logs and it seems to be an error when it tries to load a shared library (error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory)
but I'm at a complete loss as to why this has only started to happen today. as it worked fine yesterday. :/
any help would be greatly appreciated.

It looks like Node 8 has reached EOL.
https://docs.aws.amazon.com/lambda/latest/dg/runtime-support-policy.html
I'm working on new version #37. It will be released today.

PHP 7.4 and Amazon Linux 2. Done. #37


The parameter 'build_arrow' in pom.xml is invalid.

PR #130 remove the parameter '$BUILD_ARROW' and lead to build arrow automatically when exec maven command.

cc @zhouyuan

yes, we are adding github actions for basic builds/tests, this feature was accidently removed - will add back


ex52 how to fix "*" that can't catch all?

Love love the book and I have no other teacher but this book to teach me python.
I reached ex52 with a lot of efforts and frankly speaking, I've been struggling since ex50.
It seems the pace suddenly quickens in the book when it comes to the web things.
And I got stuck in ex52 for a long time now, especially on the '*' thing, that doesn't catch all other cases. (for the 5 escape pods I can always list them all, but for the 3-digit password, how to catch all wrong guesses?)
searched and searched the web and found no answer,
"try: except:" and failed; pls help pls

never mind.
I will figure it out.
thanks for the book


[Easy-CI] Looking for wrong template path when running check-twig-render

Hi,
When you use the command easy-ci check-twig-render in a standard Symfony App, the script throws a EasyCI202208\Symplify\SymplifyKernel\Exception\ShouldNotHappenException exception. I've tracked it down to the TEMPLATE_PATH_REGEX being wrong in the Symplify\EasyCI\Template\TemplatePathResolver class as it's looking for a views or template directory and Symfony uses a templateS directory
Not sure if it's a typo or intentional
Thanks for your help :)

Hi,
I'm not sure this package very actively right now, so not sure how it works exactly.
I believe your know-how. How would you fix it? :)

I could make a PR changing the path analyzing regex from #(views|template)\\/(?<template_relative_path>.*?)$# to #(views|templates)\\/(?<template_relative_path>.*?)$#.
Not sure if it should be Symfony specific and how backwards compatible it should be. The templates directory has been a standard since Symfony 4.0


Tag the source

Could you please tag the source again? Otherwise all distributions which were shipping this Python module and were using the GitHub releases need to change their description to build the packages.
Thanks

https://github.com/happyleavesaoc/python-orvibo/releases/tag/1.1.2


Moneropedia transaction mixin cleanup

While reading moneropedia articles, i found that the Transaction article was still refering to a 'mixin_count' parameter.
I suggest to replace it with a link to @ring-size article, and adding the faxtfact that it is not only the count of foreign transaction, but also yours.

Wait, some inconsistency here. I'll commit & squash.

Corrected. The Moneropedia article on the site was containing both "mixin_count" and a "see @ring-size", along with a "double offline" typo.
I presume "offline, offline" is not twice more secure than "offline"


vue router doesn't scroll to top

Hi,
If I am correct, the following code should make the router to scroll to the top on every component change - right?
const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes,
  scrollBehavior: (to, from, savedPosition) => {
    return { x: 0, y: 0 }
  }
})

But unfortunately it still keeps the same scroll position if I change the component. It's not scrolling to 0,0.
Thanks!

Can I just say that I was having this issue with regards to the Vue router not scrolling to the top. I managed to solve this by using window.scrollTo(0, 0); instead of return { x: 0, y: 0 };
Weird behavior but this comment might help someone else in the future (since the first link I got on Google).
My final function was:
scrollBehavior: function (to, _, savedPosition) {
    if (savedPosition) {
      return savedPosition;
    }
    if (to.hash) {
      return { el: to.hash, behavior: "smooth" };
    } else {
      console.log("moving to top of the page");
      window.scrollTo(0, 0);
    }
 }

After spending a few hours to find a solution I realize, that I have an inner layout, so scrolling to top by #app - didn't work for me. I add id for my layout, and in scrollBehavior section add that code and it works well.
const layoutId = document.getElementById('layout-scroll-container');

if (layoutId) {
    layoutId.scrollTop = 0;
}

Hope it could be useful for someone. (maybe, for @nolros too)

This work for me (based on the solution given by @megasanjay):
	scrollBehavior: function (to, _from, savedPosition) {
            if (savedPosition) {
                return savedPosition;
            }
            if (to.hash) {
	        return { el: to.hash, behavior: 'smooth' };
            } else {
	        setTimeout(() => {
		    window.scrollTo(0, 0);
	        }, 500);
            }
	},

The 'setTimeout' because you could see how it went to the top of the page before going to the clicked page. I'm using transitions between one page and another, and it was very obvious.

This work for me (based on the solution given by @megasanjay):
	scrollBehavior: function (to, _from, savedPosition) {
            if (savedPosition) {
                return savedPosition;
            }
            if (to.hash) {
	        return { el: to.hash, behavior: 'smooth' };
            } else {
	        setTimeout(() => {
		    window.scrollTo(0, 0);
	        }, 500);
            }
	},

The 'setTimeout' because you could see how it went to the top of the page before going to the clicked page. I'm using transitions between one page and another, and it was very obvious.


fix: map exports to dist folder

Summary
Update exports map to refer to files from dist folder
Reference taken for this exports map:

https://github.com/nodejs/node/pull/54648 (first code snippet)

Related resources:

https://github.com/jessealama/decimal128/pull/93#discussion_r1593960032 (thanks @ryzokuken to for pointing this out)
https://github.com/nodejs/node/issues/52174#issuecomment-2323354310

Related issue
Resolve #119
Previously, exports reference to the non-transpiled typescript files in src.
This is generally undesirable as consumer may not be using Typescript.
In certain case (i.e. #119 in vite) it causes the bundler to transpile the code instead of using the already transpiled mjs, cjs files.
How is this tested?
Attempted with the reproduce steps from #119.
Manually changing the export map in ./decimal128-tsc-issue/node_modules/decimal128/package.json shows successful build.

(1)
npm create vite@latest decimal128-tsc-issue -- --template react-ts
cd decimal128-tsc-issue
npm install
npm install --save decimal128
echo "import { Decimal128 } from 'decimal128'" > .\src\App.tsx
echo "export default () => new Decimal128(123).toString()" >> .\src\App.tsx

(2)
Apply this change inside ./decimal128-tsc-issue/node_modules/decimal128/package.json
(3)
npm run build

lgtm, thanks!


Cannot decode [Date] from Codable model

Describe the bug
Cannot decode [Date] from Codable model. In my case the query is done through an aggregate pipeline.
To Reproduce
struct SomeModel: Codable {
  let dates: [Date]
}

let aggregate = req.mongoDB["somecollection"].buildAggregate { ... }

let results = try await aggregate.decode(SomeModel.self).drain()

What happens
Error is thrown: [ WARNING ] BSONTypeConversionError<Primitive>(from: 2022-08-24 18:09:46 +0000, to: Swift.Double).
Server-side Swift:

OS: macOS
Swift Version: 5.7
MongoKitten Version: 7.2.1

@grahamburgsma what's your BSON version?

what's your BSON version?

@Joannis It is 8.0.1.

Can you update that to 8.0.2? There's a known bug in BSON when using Dates within a property wrapper on 8.0.1

It might also affect other specific generics

8.0.2 has fixed it, thanks for the quick support!


Safari not working in shared session

I opened a shared session with Chrome and joined it with Safari on macOS. The collaboration icon in Safari turn green, but with no number. Chrome shows, that 1 client is in the session. Same result, when Safari opens the session and Chrom joins.

This should have been fixed for some time, let us know if it still persists.


Do both the .glb and .usdz files get loaded each time the model is rendered?

Currently I am setting both the src and iosSc  assets for each model, so that it can be viewed on all compatible devices.
I'm trying gauge storage costs at scale and was wondering how these assets get loaded. Does model-viewer always load both? Does it conditionally load based on device/browser? Guess the overarching question is : what constitutes the load event and does this differ for iOS/Android.

The glb is always loaded as this is what is used to render within model-viewer itself. The ios-src URI is passed to QuickLook when AR is activated on an iOS device and QuickLook then downloads it, which explains the lag in getting the AR experience open, and why WebXR is so much faster (no re-download). Unfortunately we don't have a choice until webKit implements WebXR.

Thank you for the quick response. Just to confirm, in terms of network usage, at the point in time where the AR experience is activated, the overall size of the assets required for the experience is 2x the size of the .glb file for Android, and .glb + .usdz sizes on iOS. And as a followup, in the case of Android, would the glb get re-downloaded even if the browser cached the initial glb file?

The key is to remember that when activating the quick-look or scene-viewer AR modes, you are leaving the browser entirely for a native app, so they aren't even in the same process and there is definitely no shared memory. When activating the webxr version of AR (currently Android-only), you stay in the browser and nothing is re-downloaded, in fact it keeps using the same GL context so there is no extra setup at all.


#237 | hp77 | Make registers arch independent

Description
Issue was during docker build, frida tests were failing because of registers being used were only for x86

Fixes #237
Type of change
Changed explicit register access to macro definition

[x ] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Ran the whole suite by running make release during docker build
Test Configuration:

Firmware version: MacOS Sonoma 14.2
Hardware: Macbook Air M2
Toolchain:
SDK:

Checklist

[x] My code follows the style guidelines of this project
[x ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[x] I have checked my code and corrected any misspellings

Thank you for your work!


SGID on the /layers directory.

The images created with the kpack all have the SGID set on the /layers directory:
drwxrwsrwx 1 root cnb 4096 Jan  1  1980 /layers/
However there's no need to do that because executables inside of the image are running as the cnb user anyway:
cnb          1  0.3  0.5 1335836 44612 ?       Ssl  Aug17   9:45 /layers/tanzu-buildpacks_go-build/targets/bin/bob --health-probe-bind-address=:8081 --metrics-bind-address=<IP_ADDRESS>:8080 --leader-elect

Is there any specific reason for the SGID? If not can it be dropped?

The current issue is that k8s will set the SGID on volumes when the fsGroup field is set on a container - which is set at the pod securityContext level in build pods. The lifecycle will not modify the permissions and will publish the SGID bit to the registry.
Possible mitigations include updating the cnb lifecycle to remove this permission.

posed the question in lifecycle: https://github.com/buildpacks/lifecycle/issues/934


feat: :arrow_up: bump tesseract-plumbing to 0.11

tesseract-plumbing got an optional feature that can be turned off to allow older installations of the tessearct lib. By default, everything only works with libtesseract 5.2 or higher.
The changes that lead to tesseract-plumbing can be seen here: https://github.com/ccouzens/tesseract-plumbing/commit/5c8b3df68d1b6343effa48cfbe4321256f0fafb1
No breaking changes are introduced here as per default, the new feature is enabled and the API of tesseract-plumbing is identical to the 0.10 version.

Wait. Now I am in doubt a little. Can I specify a feature of tesseact-plumbing without introducing any features here?
What if my Cargo.toml contained this:
[dependencies]
tesseract = {version = "0.15", default-features=false}

would that work even though the feature is in the dependency of tesseract?

But then cargo build --no-default-features produces an error:

Try putting #[cfg(feature = "tesseract_5_2")] around this method https://github.com/antimatter15/tesseract-rs/blob/master/src/lib.rs#L134C1-L145 🙂

Sorry to bother you in the meantime. I apologize.

It's absolutely no problem. Don't worry about it 🙂


Out of order elements

When parsing an xml file to a table, the elements are put into a table and lose their order.
I find this a bit puzzling because most xmls need to maintain their element ordering.
Is this intended? Is there a config somewhere Im missing?

This is not an issue with the library, but a characteristic of Lua Tables having named keys (that works like structs in C), instead of numerical keys (for arrays). Since the generated table will have some named keys, the iteration over them using the pairs function have an arbitrary order.

This is kind of true. But if you use ipairs you can order data. Thats exactly what most lua xml like tools do - they have an ordered index with other attached data.
I was wondering why you made the keys a string, because this stops the xml from being very useful with ordering.
Have moved to another xml parser for this.
Not sure how this lib can be used without this simple important part of the xml structure.

Hello @dlannan, xml2lua creates a Lua table with the same exact structure of the XML. In this case, key names will be string, as it's for most of the XML files, for instance, this one.
Since the lua table will be a mirror of the XML, having string keys, we can't use ipairs.
That function just works for arrays (tables with numbered indexes).
What you are proposing is to create an auxiliary structure to store key order.
That may require some structural changes and I'm afraid I don't have the time to do that in the short term.

In fact, I don't think that may work out for this library, since its goal is to have a data table generated a mirror of the XML file. This way, I can't store metadata as an internal key inside the data table, because current users aren't expecting this structural change on such a table.
Considering that, creating an auxiliary table will require a new function to be used to iterate over the data table, that uses the auxiliary table for imposing order. It means the developer cannot use pairs or ipairs to iterate over the data table.
Using a custom function for that seems odd for me.

Yeah. I understand the complexities of using normal hash tables. Its problematic when the data is structured. We usually either use a C array with ffi or use table indexed arrays (numerical indexes are consistent in lua) for our network packet data.
For us, if we have a streaming xml data input and we are processing in order, then obviously there are problems ensuring the stream is correctly maintained. Its a use case that isnt suited to this library Im afraid.

I'm trying to do some svg parsing, and just stumbled on the ordering problem.
@manoelcampos Maybe it would be fair to highlight in the readme that the order for xml elements is lost?

That may be great. I'm accepting Pull Requests.


Create state.md

great ty !
I'm not convinced of doing it that way. I think there's two possibility, either a wiki which is probably the best, or comments in the code but they should be short and not that beginner friendly


CXXCBC-448: Expose hooks for fork() scenarious

In order to gracefully survive fork() syscall, the library should be able to move itself into stable and predictable state. In particular ASIO should not have any pending work, and all IO thread should be stopped. After the fork() the parent process retains control over all file descriptors, but the child have to reconnect them (ASIO does it in its hooks), and also the SDK should restart all the IO workers.
At the moment, the only worker thread that the library controls is the one that in charge of the transactions cleanup, but later once the public API will hide ASIO context, it will become in charge of the restarting IO threads.
In case of the wrappers, that use core API directly, they must be able to stop all IO threads before fork(), wait for work completion, then perform the syscall and restart IO threads and contexts in both child and parent later. See example in test/test_integration_examples.cxx

jenkins, test this please


Fix to styling of NME and NGE

Trying to separate the class names more so one doesn't contaminate the other
Fix #14347
Fix #14348

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/14349/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14349/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14349/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/14349/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/14349/merge
https://gui.babylonjs.com/?snapshot=refs/pull/14349/merge
https://nme.babylonjs.com/?snapshot=refs/pull/14349/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/14349/merge#BCU1XR#0

Visualization tests for webgl2 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14349/merge/testResults/webgl2/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for webgl1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14349/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.

Visualization tests for webgl1 have failed. If some tests failed because the snapshots do not match, the report can be found at
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14349/merge/testResults/webgl1/index.html
If tests were successful afterwards, this report might not be available anymore.


Show open orders in the account overview and in the account orders sections

Thoughts? Incorporate the filter too...

@svk31 Has this been on your radar at all? I really like the idea of this.

Closing this since we have a good open orders area.


Let's make awesome-ipfs more awesome!

We have a ton of new demos, tutorials, apps and posts to share.

Seems that @hacdias beat me to it

Is this page deployed somewhere?

@diasdavid let us finish the page, then we deploy it :) It's coming there.
Can you add a list or something of the things you'd like to add? Right now this issue is not very actionable as it is

Yeah, @hacdias had a foresight and built what I wanted <3

Yeah, @hacdias had a foresight and built what I wanted even before I knew it! ❤