AllYarnsAreBeautiful / ayab-firmware

Contains the Arduino Firmware for the AYAB Shield
GNU General Public License v3.0
23 stars 19 forks source link

Extra needles selected when knitting lace #40

Open Adrienne200 opened 3 years ago

Adrienne200 commented 3 years ago

Users have reported mispatterning in lace quite often; I've seen it myself from the beginning. I originally thought that because the symptom is similar to the issue I logged in #161 of the Desktop software, its report should go there too. But it's quite likely that the lace issue is different, so while I'm moving #161 to the firmware section where it belongs, I'm splitting it into two separate reports. The lace one might even be easier to diagnose.

Here's the report from #161 about the lace carriage, edited slightly. Still reproducible in v0.95: For this you need a lace carriage; typically the problem happens within 30-50 rows, (or fewer, I've see under 20) no need to knit hundred of rows. Tips for using the lace carriage: never let it select two needles forwards side by side, it MUST be only single needle patterns. The carriage will jam on the next row if 2 needles are selected together. Only use patterns designed for lace. to actually knit from the sample lace pattern, you need to Mirror the image. That is, put it back to the way Brother designed it; for lace the automatic mirroring is not what you want. Not needed if you are just air-knitting to see this issue.

Use the pattern “910 lace 10-35 60x30.png” (attached) basic settings as usual, 2-color, start from row 0, start/stop=30, Infinite Repeat, Single, center. Knit as usual, except using the lace carriage instead of the K carriage. If air-knitting, no need to use the K-carriage at all. Keep knitting, waiting for the beep every row as usual. it’s OK to cross a turn mark sometimes, it will still fail anyway. Notice that the pattern is regular, every row has only one needle selected per repeat, 10 needles apart. Watch the selection, the every-10th pattern is consistent, until after 30 - 50 rows suddenly one row it’s different. It has selected some extra needles. They are regular, usually 4 needles offset from the actual pattern.

The rest of #161 is discussion that may not apply to the lace-carriage issue. Except there's this statement from Chris: "The decision which pixel has to be taken for setting the needle is slightly different for the L carriage (https://github.com/AllYarnsAreBeautiful/ayab-firmware/blob/master/knitter.cpp#L315 and https://github.com/AllYarnsAreBeautiful/ayab-firmware/blob/master/knitter.cpp#L340, depending on the direction of the carriage) because it has a different mechanical length than the K carriage. These values were found empirically and therefore might be not perfect. But in terms of timing for recognition of the current carriage position, it's the same as for the K carriage."

Lace.zip

dl1com commented 1 year ago

Probably same as #41?

Adrienne200 commented 1 year ago

When I moved #161 out of the Desktop section, I intentionally created two separate firmware issues #40 and #41, as the symptom with the Lace carriage was sufficiently different that it could be a separate bug from the K-carriage one. And in both cases, the symptom is different from what I see described in #48 and #50, so I'm reserving judgment until I have a working build and can retest these. I hope I'm wrong and both #40 and #41 are indeed fixed by PR #50, but I won't be surprised if they're not. I see both #40 and #41 as belonging in the "Needs Testing" category for now.

erikbent commented 1 year ago

I have knit 9 different patterns with the L-carriage (KH910 with Shield V1 version 0.95). I used the full bed (192 needles because the left 8 are not selected if the L-carriage comes from the left). Only with the last pattern I saw 1 wrong needle selection (pattern 105 with 27 repeats).

Sorry, I see now that it is alreadt known that knitting past the turnmarks is working correctly.

SamB commented 1 year ago

@Adrienne200 ... So are you saying someone needs to add the https://github.com/AllYarnsAreBeautiful/ayab-firmware/labels/ready%20-%20please%20test label to #40 and #41 ? I guess @dl1com has the power to do that ...

t0mpr1c3 commented 1 year ago

@Adrienne200 ... So are you saying someone needs to add the ready - please test label to #40 and #41 ?

thanks for the prompt!

Adrienne200 commented 1 year ago

I have knitted many rows with the lace carriage and 1.0 build test230626, without any mispatterning. I think this long-standing issue is finally fixed, thanks everyone.

Tuuleh commented 1 year ago

I've tested this with v1.0 and while it no longer selects adjacent extra needles for me, there are other selection problems. Namely, after knitting some rows (around 10), needle selection when pushing to the left gets broken (selects no needles in my test pattern). The patterning seems to work OK with K carriage, other than that there are some blank rows where some needle selection happens with both K and L carriage, but that was a problem for me before already. So in short - after about 10 rows of knitting on my test pattern, the L carriage stops selecting needles when pushing to the left.

I can't exclude there isn't something funky in my test pattern, so will also try with ones supplied under this issue. You can find my test pattern below.

Panna_Chart_1_resized

Adrienne200 commented 1 year ago

My 910 machine has been working perfectly, but as soon as I moved to my 930, it's right back to frequent mispatterning with the lace carriage. (No sightings so far of the similar issue with the K carriage (#41) so maybe that's fixed across the board, to be determined as more testing happens.) It's the same "shadowing" behavior that I reported previously, where a selected (D- position, solenoid unpowered) is repeated 16 needles later, where that spot should have been unselected (B, solenoid powered.) This time it seems to be triggered by crossing the turn mark - if the errant behavior is not seen for a few rows, crossing the turn mark can often cause it to happen. (Which is the exact opposite of #41, where crossing the turn mark caused it to start behaving correctly. Weird.) And it often happens right away in row 1, rarely any need to knit 30+ rows to see it fail. I've shot some video, posting it in the Discord.

Adrienne200 commented 1 year ago

AYAB software version: test230626 Computer/OS: Intel Mac/Big Sur. Same behavior on Windows 7. Knitting machine: KH930 AYAB hardware: interface

Steps:

  1. Install AYAB hardware on a 930/940 (which are identical from an AYAB perspective)
  2. Go into Set Preferences and check that you have told AYAB that you're on a 930.
  3. Flash the firmware.
  4. Open the attached test file. It's a simple repeat of 1-black 9-white on every row.
  5. Needles L30 - R30
  6. Leave all the settings at default, except check Infinite Repeat. Normally for lace you'd also check Knit Side Image, not critical for this test.
  7. No yarn, we're just going to "air knit" So no need to do any K carriage rows.
  8. Start AYAB as usual. Lace carriage on left, cross the left turn and hesitate for the multiple beep.
  9. Knit back and forth as usual, watching the needle selection.
  10. If yours doesn't fail immediately, try crossing the left turn mark. Expected: every row should be 1 needle to D followed by 9 at B, repeating. Actual: Right to left always works, left to right almost always fails. After the first set of 10, the 6th needle of each group of 9 has been selected to D when it should have remained at B. It appears to be a copy or shadow where it has failed to forget its previous data and is repeating it one cycle later. Video in the Discord's Testing channel. Every 10th column 60 x 6
dl1com commented 1 year ago

AYAB software version: test230626 Computer/OS: Intel Mac/Big Sur. Same behavior on Windows 7. Knitting machine: KH930 AYAB hardware: interface

Steps:

1. Install AYAB hardware on a 930/940 (which are identical from an AYAB perspective)

2. Go into Set Preferences and check that you have told AYAB that you're on a 930.

3. Flash the firmware.

4. Open the attached test file. It's a simple repeat of 1-black 9-white on every row.

5. Needles L30 - R30

6. Leave all the settings at default, except check Infinite Repeat. Normally for lace you'd also check Knit Side Image, not critical for this test.

7. No yarn, we're just going to "air knit" So no need to do any K carriage rows.

8. Start AYAB as usual. Lace carriage on left, cross the left turn and hesitate for the multiple beep.

9. Knit back and forth as usual, watching the needle selection.

10. If yours doesn't fail immediately, try crossing the left turn mark.
    Expected: every row should be 1 needle to D followed by 9 at B, repeating.
    Actual: Right to left always works, left to right almost always fails. After the first set of 10, the 6th needle of each group of 9 has been selected to D when it should have remained at B. It appears to be a copy or shadow where it has failed to forget its previous data and is repeating it one cycle later. Video in the Discord's Testing channel.
    ![Every 10th column 60 x 6](https://user-images.githubusercontent.com/24358225/251931212-bb0d9b1d-7885-4f14-8175-41751920f9ce.png)

@AllYarnsAreBeautiful/ayab-contributors anybody who can take a look into this?

clholgat commented 8 months ago

I can repro on @Adrienne200's 930.

It is much more common when the carriage is moving quickly. I'm guessing it's old state stuck in the solenoid buffer. Need to do more digging.

clholgat commented 6 months ago

This also reproduces on my 910 so it's not machine specific.

jonathanperret commented 1 month ago

@Adrienne200 I just followed your latest instructions on my 910 (I know you said to test on a 930 but since @clholgat reproduced it on a 910 I figured I should be able to see it as well) and found no mispatterning, even when moving the carriage very fast, crossing the turn marks any number of times, etc. I suspect @clholgat 's recent changes in #196 may have fixed this, would you mind giving it another go when you get a chance? 🙏