One more note about the wood frame size that I am using:
The thickness of the back board and the way it is mounted on the wall come into play if you want to mount the wood frame so it is flush against the wall. I used a French Cleat to mount the 1/2" back board to the wall. The cleat creates a 1/4" gap between the wall and the back of the back board. With that arrangement, and my wood frame mounted flush against the wall, there is barely 1/4" clearance between the end of the Y-Axis motor shaft and the back of the frameās face. Something to factor in.
It looks like the ones you can buy from Misumi are THK branded made in Japan. Four of those plus shipping is about $50. You can also order the rods from there cut to length and even add the slot for about $10/each.
I hear your warning loud and clear but Iām really tempted to try the cheap route first. On Amazon, the best rated ones are 4 for about $16 shipped.
From what Iāve seen, the brass rods are probably actually 5/32" which is just slightly under 4mm. I can get a 12" long 5/32" brass rod for $2.49 from my local hardware store. Iām wondering if using the slightly smaller rod on cheaper bearings helps. If they suck, I suppose I can return the bearings and buy known good ones.
These are almost $40. Iām tempted to try and make something similar out of cheap 608 skateboard bearings or some other 600 series size.
Just trying to find some cost savings if it can be found. Things like extrusion, steppers, and linear rails are pretty non-negotiable. I need to go scope out the hardware store to see if itās cheaper to buy some of the hardware needing smaller quantities there instead of larger quantities on Amazon. My dad has a collection of hardwood lumber cut from the woods around his house so Iām covered on the wood for the frame.
I think Iāve talked my wife into letting me build one of these. Itās just a fairly expensive project that touches our home decor of which I hold the secondary opinion. It looks like Iāll just additionally need to stain the frame dark and put an outlet behind it so there arenāt any cords hanging down.
For what its worth I bought 20 R4-2RS 1/4"x5/8"x9/32" bearings off of Amazon back in the summer for my 8āx20ā laser table. I test ran it for about 100 hours over a week at shaft speeds of 75 to 625 RPM and then used it for a few dozen hours after that. So far no signs of bearing issues. Perhaps theyāve got a size that will work for you.
You can probably get away with the LM4UU bearings from Amazon with the 5/32" brass rods. Just clean the factory gunk off and put a little synthetic or your favorite bearing lube in there for sure. Those bearings definitely wonāt work with the 4mm rods youāll find on Amazon though. The lifter assembly (part T) that the bearings slide into are a big part of the equation, so if you print that part at the highest possible quality, that will go a long way.
The pinch rollers donāt turn that often and they donāt turn that fast, so you really donāt even need a bearing there. Just something to help keep the paper flat against the back board. You might even try printing your own. I did originally just to test the functionality of the design and I think they worked fine.
You may need to ream out the bore with a 3mm drill bit so they spin better. The axle is 2.8mm and the bore is 3mm, but depending on print quality, that might be a little tight.
If you can control the paper roll feed with a stepper, you could use the devicemotion event to make this effectively happen. Although, it looks like it only works with HTTPS so thatās a hurdle. This is silly and a bit impractical but I love the idea.
Absolutely. Iām on the road and didnāt bring my laptop so it will be a day or two. In the meantime, if you can tell me specifics about your plotter, like
xMax
yMax
Origin (0,0) location, i.e. lower left
Single pen?
Z position at Pen down (drawing)
Z position for Pen up repositioning
then I can customize the code and add some comments so it will be easy for you to figure out and modify as necessary.
The drawing tool Is a web page that works on any touch sensitive device. Do you have an iPad or Android tablet? Is there a web server on the same network as your plotter that you can put the file on?
The above zip contains the ādrawtest.htmlā file with all the CSS and scripting needed to demonstrate real time drawing on a fluidNC plotter. The code is documented, so you should be able to customize to meet your needs. This is just the basics to demonstrate the capability. There is a lot more that can be added. Here are the big things you need to know to get started:
Look for the section called PLOTTER SETTINGS and set the variables according to your plotter setup. I set it up based on the info you gave me, so all you should need to do is change the āplotterAddrā to the IP address of your plotter (fluidNC).
The āHomeā button will send a ā$Hā command to your plotter. The other two buttons run macros that I have on my machine to select and replace a pen. You wonāt have those macros and donāt need them with a fixed pen setup, but even if you did, they wouldnāt work unless you change the fluidNC firmware. However, everything else should work on any standard fluidNC install. I only included those two buttons as an example if you want to take things further down the road, like run macros, upload files to the SD card and run them, etc. For the modified firmware (not required for this demo) refer to this thread:
(see Custom UI for FluidNC - Things Youāve Made - V1 Engineering Forum)
Depending on the touch device you want to load the page on, you might not need a web server. For instance, a laptop with a touchscreen will run the page on most browsers and the page can be loaded from the local hard drive. On mobile devices like tablets and phones, that is not so easy to do, so you will want a local web server to host the file. You will want to make sure the web server does NOT force a secure connection (https). The address in the browser must be something like http://serveraddress.com/drawtest.html or file:///localpathtofile/drawtest.html .
To try it out, turn on the plotter and refresh the drawtest.html page in your browser. If everything is set correctly, the status light on the upper right of the page will turn green. If it doesnāt, double check the ip address you entered in the settings.
As an initial test, tap the center of the canvas. The pen should move there, lower the pen to the paper, then lift it again. If that works, then start scribbling.
To clear the canvas, refresh the page. NOTE: I have found that if you refresh the page when the pen is drawing, it will cause an Alarm on the plotter and change the Machine coords (0,0,0) to the current position. If that happens, you will need to reboot fluidNC, then refresh the page, then Home the machine again. I havenāt looked into why that is happening, but Iām sure there is a something that can done to prevent it.
I should have mentioned that the area to the right of the buttons will display the current status of the plotter (Homing, Alarm, etc). During normal operation, you should see the current machine coordinates (mPos: X, Y, Z). They should update around every 5 seconds or so.
Wow - this is just amazing! Iāll try to get it running tonight. Just have to put the kids to bedā¦
Just had a quick look at the code. Itās not very complicated! Fascinating if this can be plugged right into fluidNC. Looking forward to trying it out.
Edit: amazing - it works! Haha, canāt believe it was so easy. The websocket tool is just neat.
I lose the connection quite soon, but there are many possibilites. I have an mks DLC v3.2 board, which is not super duper friendly with fluidNC. I guess I should order a few jackpots from Ryan! (I need another board for my eggplotter as well) Seems like the fluidNC server freezes. But the mks board has little memory, I only have 79.60 KB free.
I will add a few more comments that might help with troubleshooting if you have problems:
Many browsers these days enforce secure comms (https). Most allow you to turn that off. Each browser is a little different, but if your browser complains about security, that is most likely the cause.
It may help to be able to see what error messages are being thrown if things arenāt working. You can open the drawtest.html file on any desktop/laptop browser (even if it does not have a touch screen) and look at the Developer Tools console in the browser. Typical way to open that console is ā¦ > More Tools > Developer Tools.
If you want to experiment on a non-touchscreen device, like a desktop, you can add the following 3 functions to the āCANVAS RELATED SCRIPTā section of the page and draw with the mouse. Be advised, it will get a little screwy if you leave the boundaries of the canvas with the mouse button held down.
//Mouse down on canvas
canvas.addEventListener('mousedown', (e) => {
drawing = true;
var x = e.clientX - canvas.offsetLeft;
var y = e.clientY - canvas.offsetTop;
//STAY WITHIN THE CANVAS
if (x < 0) x = 0;
if (x > maxX) x = maxX;
if (y < 0) y = 0;
if (y > maxY) y = maxY;
// Set pen to safe travel height.
sendCommand("G01 Z" + zSafeTravelHeight + " F" + zSpeed);
// reposition to x, maxY-y
// Y correction is needed to adjust origin from
// canvas coords (top left) to machine coords(lower left))
sendCommand("G00 X" + x + " Y" + (maxY-y));
//pen down
sendCommand("G01 Z" + zDrawHeight + " F" + zSpeed);
sendCommand("G01 F" + drawSpeed);
ctx.beginPath();
ctx.moveTo(x, y);
});
//Mouse moved on canvas (with button down)
canvas.addEventListener('mousemove', (e) => {
if (drawing) {
var x = e.clientX - canvas.offsetLeft;
var y = e.clientY - canvas.offsetTop;
//STAY WITHIN THE CANVAS
if (x < 0) x = 0;
if (x > maxX) x = maxX;
if (y < 0) y = 0;
if (y > maxY) y = maxY;
//pen is down, move to x, maxY-y
// Y correction is needed to adjust origin from
// canvas coords (top left) to machine coords(lower left))
sendCommand("X" + x + " Y" + (maxY-y));
ctx.lineTo(x, y);
ctx.stroke();
}
});
//MouseUp on canvas
canvas.addEventListener('mouseup', (e) => {
//pen up
sendCommand("G01 Z" + zSafeTravelHeight + " F" + zSpeed);
drawing = false;
});
Okay, now it has my attention. I do have my old MPCNC with a Jackpot and that would be brilliant for the open door day at my school. Have to reread the thread nowā¦