Help... Maslow disconnected. Broken PCB?

As a follow up yesterday’s post: Unable to jog after calibration
I tried to run calibration again today.

  1. Powered up the Maslow
  2. Waited for it to connect to the dedicated Wifi, which it did (just like previous times):
  3. Tried to open the website, but that timed out. So I tried ping’ing the IP address: no response.
  4. Checked the LEDs on the maslow board. These blinked the correct IP address. The yellow LEDs next to the UTP connectors blink at a regular interval. Made a video: https://youtube.com/shorts/kndKVO-MUQo
  5. Did another powercycle. Same situation (Maslow again connected, and I could not ping it).
  6. Waited for a few minutes. The blue LED that blinks the IP address stopped blinking, and it lost connection to the Wifi router. The yellow LEDs next to the UTP connectors blink irregularly (sometimes on for a few seconds, then off for half a second etc, seemed random).
  7. Tried another power cycle. Now it is not even connecting to the router anymore. Blue LEDs stay off.Yellow LEDs blink irregularly.
  8. Tried yet another power cycle, to no avail. I am unable to connect to the Maslow, and the Maslow is not connecting to my router anymore.
  9. Tried more power cycles (incl. the router) to no avail.

Taking this and the strange issues mentioned in the earlier post into account, could it be that this PCB is broken/bricked?

1 Like

After reading more posts about connection issues, decided to power off the dedicated router. Powered on the Maslow and yay! got connected to its local maslow wifi.

But it seems that everytime I try to use the maslow, something else comes up… Steps:

  1. power on maslow
  2. turn off alarm
  3. retract belts
  4. extend belts: only BL and BR extend fully, TL extends 10mm or so, TR not at all. Tried pulling (really) hard, but no movement.
  5. power cycle, repeated steps 2 to 4. Exactly the same situation, end of test…

Complete list of issues thusfar:

  1. unable to extend belts
  2. unable to connect to dedicated router (connection drops or ESP crashes after a while); worked 24 hours earlier
  3. unable to finish calibration (see earlier post)
  4. unable to jog after succesfully finishing calibration

Logs:
Maslow-serial top not extending try 2.log (1.9 KB)
Maslow-serial - extend issue try 1.log (2.5 KB)

I tried using the maslow a few months earlier, but ran into another issue not mentioned above: calibration went fine, but when trying a first cut, in the middle of the cut the Z axis dropped down all the way and just kept on trying to get lower (damaging my bit and possibly overheating the motordrivers) until I pulled the plug. This is when I decided to clean the UTP connectors & glue then in place, and wait for new software updates.

I’d love to use the maslow but I am finding it hard to keep being motivated when every time I try to use it, new issues come up. Many people are using the maslow with success, so it should be possible unless the PCB (or memory card) is somehow messed up, maybe in combination with software that makes it hard to troubleshoot and therefore find the root cause of problems. IMHO, coming from >20yrs experience in industrial automation, I feel there are some serious quality issues with both the board (UTP connectors, ESD/EMC design) and software.

@bar If there is anything I can check/test please let me know, I am happy to help but am in dire need of some guidance.

1 Like

It for sure sounds like there is something going on. I also 100% agree that we need to work to make things smoother, it’s still very much a project to build the robot before it works as a tool and we want to be just making a tool. That is 100% the direction that we want to move in and we love feedback on how we can do that better.

The first thing that I think we should try is to run Setup → Test. Does it find any system errors there?

This sounds like the place to start to me, because that seems like a fundamental issue. That sounds like it could be an encoder connection thing. Do you see any error messages related to the encoder connections?

Thanks, Bar, for the constructive feedback! It’s really encouraging to see how you and the community are dedicated to improving the Maslow (amazing work building this community! :smiley:).

The log for the “unable to extend” issue is quite short and doesn’t show any warnings or errors:

Serial Messages
Index.html Version: 0.87
[MSG:INFO: Channel auto report interval set to 50 ms]
[MSG:INFO: FluidNC v0.87 (Maslow-Main-ec171155-dirty)]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:maslow.yaml]
[MSG:INFO: Machine Maslow S3 Board]
[MSG:INFO: Board Maslow]
[MSG:INFO: UART1 Tx:gpio.1 Rx:gpio.2 RTS:NO_PIN Baud:115200]
[MSG:INFO: SPI SCK:gpio.12 MOSI:gpio.11 MISO:gpio.13]
[MSG:INFO: SD Card cs_pin:gpio.10 detect:NO_PIN freq:8000000]
[MSG:INFO: Stepping:Timed Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:240ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (-2438.400,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Y (-1219.200,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Z (-100.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_2209 UART1 Addr:0 Step:gpio.15 Dir:gpio.16 Disable:NO_PIN R:0.110]
[MSG:INFO:   Motor1]
[MSG:INFO:     tmc_2209 UART1 Addr:1 Step:gpio.46 Dir:gpio.38 Disable:NO_PIN R:0.110]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:Maslow4_Belkin]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: No SSID]
[MSG:INFO: AP SSID maslow IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
[MSG:INFO: Caution: Unlocked]
[MSG:INFO: Extending all belts]
[MSG:ERR: Please press Retract All before using Extend All]
[MSG:INFO: Retracting all belts]
[MSG:INFO: Top Left pulled tight with offset -8.836]
[MSG:INFO: Top Right pulled tight with offset -6.044]
[MSG:INFO: Bottom Right pulled tight with offset -0.011]
[MSG:INFO: Bottom Left pulled tight with offset 0.000]
[MSG:INFO: Extending all belts]

The encoder connectors (UTP cables) have all been cleaned with compressed air and glued into place.

In response to your reply in my original thread (Unable to jog after calibration - #2 by bar), my next step was to perform a new calibration, but that led to this post (connection troubles, unable to extend).

There are multiple issues (see the list in the previous post) that might be related or caused by the same underlying problem. Let’s tackle them one by one, starting with the “extend all” issue, since it’s currently blocking further tests.

I’ll focus on the Setup → Test and repeat the retract/extend steps a few times. I’ll get back to you with any findings.

1 Like

This is the log of the Setup → Test action:

Serial Messages
Index.html Version: 0.87
[MSG:INFO: Channel auto report interval set to 50 ms]
[MSG:INFO: FluidNC v0.87 (Maslow-Main-ec171155-dirty)]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:maslow.yaml]
[MSG:INFO: Machine Maslow S3 Board]
[MSG:INFO: Board Maslow]
[MSG:INFO: UART1 Tx:gpio.1 Rx:gpio.2 RTS:NO_PIN Baud:115200]
[MSG:INFO: SPI SCK:gpio.12 MOSI:gpio.11 MISO:gpio.13]
[MSG:INFO: SD Card cs_pin:gpio.10 detect:NO_PIN freq:8000000]
[MSG:INFO: Stepping:Timed Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:240ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (-2438.400,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Y (-1219.200,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Z (-100.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_2209 UART1 Addr:0 Step:gpio.15 Dir:gpio.16 Disable:NO_PIN R:0.110]
[MSG:INFO:   Motor1]
[MSG:INFO:     tmc_2209 UART1 Addr:1 Step:gpio.46 Dir:gpio.38 Disable:NO_PIN R:0.110]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:Maslow4_Belkin]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: No SSID]
[MSG:INFO: AP SSID maslow IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
ssed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:Maslow4_Belkin]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: No SSID]
[MSG:INFO: AP SSID maslow IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
Index.html Version: 0.87
[MSG:INFO: Firmware Version: 0.87]
[MSG:INFO: I2C Timeout: ]
[MSG:INFO: 10]
[MSG:INFO: All tests passed on Top Left]
[MSG:INFO: All tests passed on Top Right]
[MSG:INFO: All tests passed on Bottom Left]
[MSG:INFO: All tests passed on Bottom Right]

Do these lines point to an issue?

[MSG:INFO: I2C Timeout: ]
[MSG:INFO: 10]

Other thing that I noticed is that there seem to be multiple agents writing to the log simultaneously, for instance in this part (ssed]). Don’t know if that is expected behavior.

[MSG:INFO: Telnet started on port 23]
ssed]
[MSG:INFO: Z2 Axis driver test passed]
1 Like

While writing the previous post I switched to my normal Wifi. Switched back to the maslow wifi, reset the alarm and clicked “retract all”. This time there was no response at all (fan did not start).

The log seems garbled, previous test output is partly overwritten:

Serial Messages
Index.html Version: 0.87
[MSG:INFO: FluidNC v0.87 (Maslow-Main-ec171155-dirty)]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:maslow.yaml]
[MSG:INFO: Machine Maslow S3 Board]
[MSG:INFO: Board Maslow]
[MSG:INFO: UART1 Tx:gpio.1 Rx:gpio.2 RTS:NO_PIN Baud:115200]
[MSG:INFO: SPI SCK:gpio.12 MOSI:gpio.11 MISO:gpio.13]
[MSG:INFO: SD Card cs_pin:gpio.10 detect:NO_PIN freq:8000000]
[MSG:INFO: Stepping:Timed Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:240ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (-2438.400,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Y (-1219.200,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Z (-100.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_2209 UART1 Addr:0 Step:gpio.15 Dir:gpio.16 Disable:NO_PIN R:0.110]
[MSG:INFO:   Motor1]
[MSG:INFO:     tmc_2209 UART1 Addr:1 Step:gpio.46 Dir:gpio.38 Disable:NO_PIN R:0.110]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:Maslow4_Belkin]
[<Alarm|MPos:0.000,0.000,-10.000|FS:0,0>
[MSG:INFO: FluidNC v0.87 (Maslow-Main-ec171155-dirty)]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:maslow.yaml]
[MSG:INFO: Machine Maslow S3 Board]
[MSG:INFO: Board Maslow]
[MSG:INFO: UART1 Tx:gpio.1 Rx:gpio.2 RTS:NO_PIN Baud:115200]
[MSG:INFO: SPI SCK:gpio.12 MOSI:gpio.11 MISO:gpio.13]
[MSG:INFO: SD Card cs_pin:gpio.10 detect:NO_PIN freq:8000000]
[MSG:INFO: Stepping:Timed Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:240ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (-2438.400,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Y (-1219.200,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Z (-100.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     tmc_2209 UART1 Addr:0 Step:gpio.15 Dir:gpio.16 Disable:NO_PIN R:0.110]
[MSG:INFO:   Motor1]
[MSG:INFO:     tmc_2209 UART1 Addr:1 Step:gpio.46 Dir:gpio.38 Disable:NO_PIN R:0.110]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:Maslow4_Belkin]
[[MSG:INFO: AP SSID maslow IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
[MSG:INFO: Caution: Unlocked]

Weird!

1 Like

After a power cycle, I performed retract/extend/calibrate steps. A popup appeared indicating calibration was successful, but it was immediately followed by a “connection lost” message.

After reconnecting, I noticed that each reconnect triggers a log reset. The new log contains some test-related results, which might explain the behavior I described in my previous post, which might have put me on the wrong foot.

Interestingly, I was able to jog the Maslow this time, which is a positive development. However, I’m hesitant to attempt cutting, as the test results so far have been inconsistent. Despite keeping my testing process “clean” (consistent steps, detailed notes, and minimal environmental changes), the outcomes remain random—ranging from calibration failures to jogging issues, inability to extend belts, connection drops, and more. It’s starting to feel like if a butterfly flaps its wings in Australia, my Maslow in Holland might plunge the bit into the workpiece. :sweat_smile:

Next Steps: Troubleshooting Stability

The key question is: what would be the next logical step to stabilize this Maslow and identify the root cause of these erratic issues?

In my experience, unpredictable behavior in control systems like this often points to EMC/ESD/grounding problems, floating pins or software issues(e.g., race conditions or non-defensive programming). Because of the multithreaded nature of the ESP32 (multiple cores, combined with FreeRTOS), race conditions are bound to occur. AFAIK there is no automated testing (ideally a CI/CD pipeline, with hardware in the loop) for the Maslow software, which makes it hard to deliver consistent quality and avoid regression (re-introducing bugs fixed in earlier firmware releases).

Tackling these things can be challenging (especially when unable to reproduce the issue) but not impossible. A common troubleshooting approach is to simplify the system by removing as many variables as possible. For example:

  1. Start with a minimal version of the firmware—just the ESP32 with the bare minimum code required for a Wi-Fi connection.
  • Is the connection stable? Great.
  1. Add components incrementally.
  • Test the connection to the dedicated router.
  • Try driving a single motor.
  • Continue building up functionality step-by-step.

This systematic approach would help isolate the problem. As someone with a software development background, I’m getting the itch to dive into this process myself.

However, this would be a significant effort, so I’m open to alternative suggestions before I head down this rabbit hole. Any ideas?

1 Like

No, this is just telling us that the timeout is set to 10ms, not that there was a timeout :confused:

God I want that to exist so badly. I haven’t thought of a way to make it work, but if it did it would be spectacular.

The most likely candidate is still the UTP connectors in my mind. I was running into weird behavior like this before making the change over to the JST-XH ones and since switching I haven’t seen it. That’s not an immediate fix though :expressionless:

We have to get rid of gulp to be able to get there. This has been my primary motivation in trying to get everything working with bun, which will enable jest-like testing.

@md8n I’ve haven’t looked into the WebUI part but did take a look at the ESP32 part of the Maslow code (specifically Maslow.cpp), I’m a bit more comfortable with C in embedded systems and python, not so much with javascript.

About how to make it more testable: this is definately doable. In previous projects, the first step was separating business logic from the hardware layer. Separating code like the maslow state machine, calibration calculations etc. from the hardware (and FluidNC framework) would allow mocking external dependencies for testing. For instance encoder values or current feedback; instead of directly calling hardware functions:

void updateEncoder() {
    int value = readEncoder(); // Direct hardware call
    processEncoderValue(value);
}

We could abstract the hardware layer:

class EncoderInterface {
public:
    virtual int read() = 0;
};

class HardwareEncoder : public EncoderInterface {
public:
    int read() override {
        return readEncoder();
    }
};

void updateEncoder(EncoderInterface &encoder) {
    int value = encoder.read();
    processEncoderValue(value);
}

This allows us to use a mock during testing:

class MockEncoder : public EncoderInterface {
public:
    int read() override {
        return 42; // Simulated test value
    }
};

MockEncoder mock;
updateEncoder(mock);

Maybe the excisting FluidNC test framework can be leveraged (they have a CI pipeline using Github Actions). For WebUI, a similar idea could be used—splitting business logic from UX code.

There are drawbacks, including extra abstraction layers consuming ESP32 memory, might make the code harder for new contributors to learn. Adding tetst cases effectively doubles the codebase, increasing maintenance. Questions is if the benefits (more robust software, easier debugging, and easier maintenance on the long term) compensate for the significant effort involved.

Always fun to do is asking ChatGPT to take a look at the code :sweat_smile: It came up with the following:

  • Modularization: Break large functions like update and home into smaller, focused ones. Also, split the large Maslow.cpp file into smaller, logically grouped files to make collaboration and version control easier. In line with @dlang efforts in this Github issue
  • Error Handling: Add systematic retry mechanisms or fallbacks.
  • Constants: Replace hardcoded values with named constants or parameters.
  • Synchronization: Use thread-safe mechanisms for shared resources.
  • Naming Conventions: Ensure consistent naming across the codebase.
  • Redundancy: Refactor duplicated code (e.g., computeBL, computeBR) into reusable functions.
  • Encapsulation: Use accessors/mutators for public class members like axis_homed.
  • Testability: Abstract hardware dependencies with interfaces or mocks to decouple logic from hardware.
  • Remove Dead Code: Identify and clean up unused or outdated sections of the code to improve clarity and maintainability.

Sounds like good suggestions to me, especially curious about why it came up with the synchronization part. I have spent time in mutex/semaphore hell, it was a nasty burning sensation.

I’m just scratching the surface of the software and haven’t looked to deeply into the GitHub issues and forum posts so I’m likely bringing up points already discussed.
That said, I’d love to contribute (disclaimer: have to find the time :neutral_face:).

I’ll start a GitHub discussion to avoid cluttering the forum. In the mean time, I’m trying to reproduce the Wifi connection issues (no luck yet).

1 Like

Browsing through the forums I found posts about the floating DIR pin on the encoder boards. So I tested a bit more with this in the back of my mind, specifically the situation where sometimes not all belts would extend. After a few reboots TR did not extend, but when pushing the belt a bit towards the motor, the motor would extend the belt.

That matches with the behavior expected when the DIR signal is inverted (as can happen with a floating pin).

I was under the assumption that this was an issue with earlier test versions of the board, because on Github, Maslow schematic v4.0 shows the pin tied down to ground. To be sure, I have to dismantle the Maslow so I can measure the pins. But maybe @bar can already tell me: I am backer #1375, could it be I have encoder boards with floating DIR pins? Because that would explain a lot.

1 Like

all of the boards that have the ethernet jack on them had the flaw, the new jst
based boards are the first ones to have the fix.

David Lang

1 Like

Ouch, that could be the source of many problems mentioned on the forum, assuming this is the root cause of the multitude of issues I am experiencing.

A product I ship myself had the same issue with the first batch, which lead to problems with approx. 10% of the sold products. Not my finest hour :sweat_smile: but it felt very good when I found the problem.

I am working on a pull request to implement a check for unexpected direction changes every DCMotor.update(), by comparing the position change with the motor direction. Should be able to test this with my Maslow (which will take some time because the floating pin behavior is random).
This might also work for detecting loose magnets.

1 Like

Yeah - there’s a powerful sense of whomever did a lot of this not understanding the various choices for handling sync.

On the webui side there’s some interesting clunkiness in the http handler. And from that my gut instinct is to rip-n-replace anything that requires timing with Rx - considering that there’s idiomatic libraries for most languages I think the extra code is a small price to pay for something that’s “done right”. plus there’s some code that can be removed once that’s done.

After getting my hands well and truly filthy inside the WebUI code I can say that we really need to make a decision about whether to even attempt backward ‘mergability’ with the original code base. The fact is, it is fairly poorly written (plainly lots of effort, but not done by a professional programmer). And trying to jam good code back into bad is a merge-hell exercise I don’t think we need

1 Like

I 100% agree with all of these :joy:

Oooo yes!! Excellent find! That sounds like exactly the issue!

Yes, all of the first batch of boards (original kickstarter) has that issue, but it seems to manafest randomly for some folks and not for everyone. It is fixed in all the boards after that like the JST-XH boards that should be headed your way. You can solder fix it by hand if you want, but I’d just wait for the updated ones. Great catch! That issue hasn’t come up in a bit so it slipped my mind :man_facepalming:

I fully support not being backwards mergeable. I think we’re already passed that point anyway. I think that our interface is different enough from the default ESP3D interface that it’s really a hard fork at this point

1 Like

I’ll have another walk through my ‘de-gulping’ code (switching to bun), everything is ‘working’ but I really want to double check. And with that we can jump everything a long way forward.

For reference, the gulp setup is focussed around supporting IE, ie. (pun intended) pre-ecmascript 6 (ES2015). This is NOT a choice we should be perpetuating at all. It was bad back whenever that decision was made, it is much worse now.

And I’d recommend that we hunt down the libraries that were ‘brain-damaged’ to fit this ‘ideal’ and imported into the code base as ‘less than they should have been’. and replace them with whatever their latest version is, with proper installs. Less code to maintain.

1 Like

Lee H wrote:

I’ll have another walk through my ‘de-gulping’ code (switching to bun), everything is ‘working’ but I really want to double check. And with that we can jump everything a long way forward.

For reference, the gulp setup is focussed around supporting IE, ie. (pun intended) pre-ecmascript 6 (ES2015). This is NOT a choice we should be perpetuating at all. It was bad back whenever that decision was made, it is much worse now.

And I’d recommend that we hunt down the libraries that were ‘brain-damaged’ to fit this ‘ideal’ and imported into the code base as ‘less than they should have been’. and replace them with whatever their latest version is, with proper installs. Less code to maintain.

as I understand it, your changes affect the original fluidnc tab as well as the
maslow tab. As such, I think any “merge back” would basically just be “here’s a
version that works with bun instead of gulp” that just deletes the maslow tab.

David Lang

1 Like

I had to go over the entire codebase to get rid of the gulp-isms. It was well entrenched.

There were lots of different ways in which things were down to fit in with gulp’s approach that are simply not done anymore, and which haven’t been done that way for several years.

1 Like

How decoupled is the WebUI from FluidNC + the custom Maslow code? Can someone work on the WebUI without needing to dive into the core code (and visa versa), or is there significant overlap?

If they aren’t decoupled, I’m curious how you’ve been managing this in terms of development workflow. Contributing to an open source project like this is new to me (I’m used to working in teams with dedicated roles like product owner, SW architect/lead engineer, etc.), so I’m interested in how things are coordinated thusfar.

1 Like

justusrijke@gmail.com wrote:

How decoupled is the WebUI from FluidNC + the custom Maslow code? Can someone work on the WebUI without needing to dive into the core code (and visa versa), or is there significant overlap?

fairly well decoupled, I’ve done a fair amount of digging into the firmware
without looking (much) at the UI code and Lee has done a lot of work on the UI
code without digging in to the firmware.

If they aren¢t decoupled, I¢m curious how you¢ve been managing this in terms
of development workflow. Contributing to an open source project like this is
new to me (I¢m used to working in teams with dedicated roles like product
owner, SW architect/lead engineer, etc.), so I¢m interested in how things are
coordinated thusfar.

frankly, there is not a lot of good coordination so far. Bar and Roman did
almost all the work before the first announcement and submitting PRs on github
has been hit-n-miss

David Lang

1 Like