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âŚ