I have a new DLC32. When I use the web installer for FluidNC, connecting to it I get a warning: “Controller is in a reset loop”. Installing does not work. I have tried resetting the DLC32 by shorting the two pins (reset) in the corner, no change.
If I’m posting in the wrong place, please let me know a better forum.
I doubt Windows is required, I’ll look for a Linux installation method.
That warning msg you got might have just been because the web browser couldn’t see your board.
running “dmesg” on the command line then plugging in the board and running “dmesg” again should show you if the board is being recognized and a device file created(/dev/ttyUSB0 or /dev/ttyACM0 for example).
Reasons could be things like another device like brltty process has grabbed it when it was plugged in. Often it is required to uninstall the brltty software since brail readers aren’t being used.
You can tell if the brltty process is running with:
ps -fe | grep brltty
Stopping the process with:
sudo systemctl stop brltty.service
sudo systemctl disable brltty.service
And then you might need to make sure your userID has access to the device created when you plug in your DLC32 and there’s a system “group” used for this called the “dialout” group. To add yourself to that group run this:
sudo usermod -a -G dialout $USER
It’s usually rather simple to run it from root and see if it works. That would indicate a protection issues.
I run that firmware on my MKS DLC32 and I think I did it from the website, don’t really recall.
I would think the software must be talking to some degree to generated that error message, doubt the pc software has the smarts to say that, but who knows.
dmesg produces quite a bit of output. I tried searching for ch340 and dlc32 (also capitalized), with no result when the board is connected to usb.
My user is part of the dialout group. I tried changing permissions on the ports that I think (?) are assigned to the DLC32 so they are r/w for everyone. Same problem with the web installer. Britty is not running.
lsusb gives me this:
Bus 001 Device 008: ID 1a86:7523 QinHeng Electronics CH340 serial converter
So it looks like the board is successfully connecting, but this doesn’t tell me which /dev path.
I generally just look for a device being created and showing up at the end of the dmesg output.
That’s why I run it once, look at what the last entries were, plug in the board and then run it again and see if there’s no output. If there is, I look for what device is created.
lsusb will also show you things and it seems there’s a recognition of the device, as long as you don’t have any other CH340 devices connected.
I have a Makerbase MKS DLC32 V2.1 around here somewhere but can’t seem to locate it.
I wouldn’t go running the browser as root but if you don’t see any new /dev/ttyXXXX entries at the end of your dmesg output then maybe there’s a udev rule we can add so one gets created.
Let me see if I have a rule for the DevID and ProdID you posted but also can you post what new output lines are created when you plug in your DLC32 and run dmesg? A search showed
idVendor=1a86 and idProduct=7523 for a DLC32
You also have to make darn sure your USB cable is not one of those Power-only cables which are showing up all over the place now.
Thanks, dmesg makes a little more sense now. Comparing before and after plugging the board in, dmesg does show it connecting, 1a86 and 7523. So step 1 accomplished.
I followed the video on my Windows 10 laptop. It works if I pick the wifi version, bluetooth and fs (which I assume is hardware connect, what I will use) do not install. The video (at 3:00) says to load config.yaml from Make Magazine; instead I loaded config.yaml from the Dune Weaver sand table project I’m working on. I was able to connect via wifi and saw the FluidNC control page. Unfortunately a popup appeared “Config File Error” “Cannot open configuration file:config.yaml”.
Maybe there is an error in the config file, especially since I’m installing wifi and Dune Weaver uses USB. But that’s not what the error says.
Your help has been excellent, thanks. I hope you can advise me on this last (?) bit.
Sounds like you’re making some progress. Was there any line number or something which would indicate what/where in the config.yaml file the error was detected?
MSG:ERR: “cannot open configuration file: config.yaml”
So the error says it doesn’t find the file at all, despite my having loaded it. I guess the thing to do is go through the loop again, erase and re-load.
Did you put the config.yaml file on the uSD card using Linux or Windows? If it was Windows then the file is probably named config.yaml.txt but they are hiding the ‘.txt’ from you and FluidNC can’t find the file. You will also have to pay attention to the format of the uSD card where the config.yaml file resides. Check the docs and make sure it’s named correctly and is on the correct filesystem type.
config.yaml was downloaded from the Dune Weaver git. I confirmed that Windows was not helpfully adding .txt, it’s just config.yaml.
There are some differences in this project. There is no SD card in the DLC32. In use, it will be run from a dedicated Rpi via USB. When installing FluidNC, the project instructions are “Choose non radio option for less interference”. I have the choice of wifi, bt (bluetooth I assume), and install-fs. When I try fs, something is clearly wrong. After it installs I get an endless page of “flash read err, 1000”. I can successfully install the bt version. Well, it doesn’t report any problems.
If you have any other ideas, I’d love to try them. If not, I’ll see if the bluetooth version will do anything when hooked up to the Rpi and the steppers.
Without a uSD card how and where do you install the config.yaml file?
The next thing of interest is that the fs, filesystem, creation is failing so the firmware can’t store any information and likely can’t copy the config.yaml file into they system to run from. It’s almost like having a computer PC and not having a hard disk.
You’ll need to focus on why the setup is failing to create the filesystem.
I thought PlatformIO had the ESP32 filesystem figured out. For some time I had to use 1.8.x of the Arduino IDE just to build filesystems on ESP32s but disassembled how things were being made so I could run the Arduino IDE v2 and had a default makefile I could run when I needed to rebuild the filesystem.
I asked about no SD card at the Dune Weaver discord. The developer said that it wasn’t needed, the config.yaml is very small and fits in the small amount of flash memory on the DLC32. When I tried installing the fs version of FluidNC per the discussion here, I got a flash read error. Maybe my DLC32 is broken.
If you are making a Dune Weaver drawing table then aren’t you using his HowTo video for configuring and flashing FluidNC along with copying his config.yaml onto the board? It looks like this web interface does the copying.
The web installer is where I started. I got a warning “controller is in reset loop”, and install did not work. The project also shows a manual method for when the FluidNC web installer doesn’t work, using platformio, which when I tried it, doesn’t work on my Mint 22 system.
I do seem to have gotten somewhere though. The bdring/FluidNC you pointed me to got me to a working wifi FluidNC installation that complained of not finding config.yaml. What I was doing was using the fluidNC terminal that I ended up in after the wifi install (via bdring) to upload config.yaml. That was not successful.
Just now I went to the FluidNC web installer and instead of trying to install, I opened the FluidNC file browser. There I uploaded the config.yaml file. I now no longer have the complaint of the config file missing.
A small step perhaps, but from my view major. I really appreciate your persistence and assistance on this Doug. Microcontrollers are a black box to me.
Fantastic! It’s odd that both the web installer and Platformio didn’t work but it’s likely due to the same device recognition or creation problem. I run Kubuntu 24.04 on all my systems and use ESPHome web installer for ESP32 devices and PlatformIO( commandline ) without issue. But I have had to create udev rules so devices, when seen on the USB port, have a device file created and user privileges setup.
Since you are into making stuff, there’s lots of fun things you can make with micro controllers.
Please post a pic of your build when ready.