You are browsing as a guest. Sign up (or log in) to start making projects!

Reality Router MK2

Hardware
  • 8 Devlogs
  • 25 Total hours

The second version of a custom designed CNC router built from 3D printed parts.

Open comments for this post

5h 41m 3s logged

Custom cable ducts and skirts

I scrapped the OpenSCAD cable duct idea mainly because it couldn’t export to STEP (totally not because I didn’t want to learn it for 10 hours). Instead, I just redesigned them from scratch in OnShape and made sure to use its configuration features so I can generate different lengths and bends. The hardest part was figuring out how to mount them to the DIN rails in a customizable way. I realized that it was dependent on the spacing of the rails, and I somehow made mine a perfect multiple of 35mm which is exactly what DIN rails use. So I have a grid of holes space 17.5mm (35/2) apart which lets me screw in DIN clips anywhere along the duct. I’ll publish these at some point because they’re pretty useful. I do want to make them configurable outside of OnShape though, so I’ll port them to build123d soon™. I also printed a small version of them to test the snap fit for the cover (it’s perfect).

After that, I started getting the whole layout setup for the electronics. I then moved on to finishing up the skirts and adding mounts for the power plug, switch, fans, and motor drivers. This was surprisingly hard since I had to make cuts across pieces of the skirt. The under-bed electronics design is mostly done now with the exception of the screen (I need to make a case/mount for it on the front of the machine).

While it’s not in CAD because STEP files aren’t provided, there will be a handful of WAGO connectors to split power among components.

0
0
22
Open comments for this post

3h 51m 30s logged

Making a Voron rip-off pretty much

I started getting the under-bed mounts setup and went down a small rabbit-hole. Turns out all Voron models use “cable ducts”/“wiring ducts”. These are plastic or PVC tubes that have a comb on the sides and are used to route wires. I really liked these for managing cabling. I found a great model some one made for Vorons which I can adapt for my layout. Unfortunatly these mount onto a sheet Vorons have below the bed which my CNC does not. Instead I’m trying to make a version that mounts directly onto the DIN rails. I’m also trying to make it parametric in OpenSCAD but haven’t made much progress.

Aside from that, I found some cheap DIN rails and started assembling things in CAD. There are a ton of models online of DIN rail mounts for different components which is super useful. My original layout didn’t account for how spaced out the rails are and also placed the power port in an inconvenient spot which I’ve reorganized but the wiring is the same.

Researching Voron machines so much did kinda make me want to copy another aspect I really liked. They use 3D printed “skirts” to cover the under-bed electronics which both makes the machine look cleaner and provides a good mounting spot for components and plugs. After looking at a couple designs, I realized I had no idea how to CAD them and went with a basic hex mesh. I also added some plastic feet (will be 100% infill) to provide clearance for the PSU.

0
0
4
Open comments for this post

1h 29m logged

More Electrical Nonsense and Bed

I spent a bit too long worrying about how this machine will look (aesthetically) and decided it would mainly look better, but also use less wire and be easier to assemble, if I mounted all the electronics below the bed.

I was also thinking a lot how my bed should work. While it’s not the most common option, a lot of aluminum cutting mills do use an MDF spoil board, which lets me also cut wood and polycarbonate in addition to metal. Only issue is it makes mounting/clamping the stock harder. I have a few options (tape, toe clamps, T nuts) but the best option would be embedding T slots into the MDF. Honestly though, I should be able to add that later on after I build the machine so I won’t worry about it right now. Mainly, my new idea moves the mounting structure to leave room for the electronics below and also fixes an issue with the Z range I had on MK1.

For the electronics, I spent a lot of time looking at Voron machines (specifically the Trident R2 and the Zero). I spent some time making an new fully detailed wiring diagram which is also how the parts will be arranged physically. Green lines are DIN rails which everything is mounted to. For the cabling ducts, I’ll be using some 3D printed ones used on Voron mods. Fans, ports, and switches will be mounted on 3D printed mesh plates just like a Voron.

0
0
5
Open comments for this post

4h 35m 19s logged

Wiring and Klipper Setup

Now that I have Klipper setup with the screen, I need to connect it to my motherboard. This was as simple as compiling the Klipper firmware for the STM32 and using the correct configuration for the board. This was my first time using Klipper, and I was concerned I would need to reflash the firmware every time I made a configuration change. Luckily, Klipper abstracts that away to the RPi, meaning all definitions like GPIO pins and speeds can be changed easily. After flashing the firmware, I had to make a few modifications to the config. First, my Z and Y axes are swapped to take advantage of the two Z ports on my board. I also needed to set my mm/rev for each motor and set the speeds. Initially, my speeds were way to fast and the motors started overheating like crazy.

When I tried moving the axes, I ran into an issue. Klipper doesn’t let me move axes until the “printer” is homed which is an issue since I don’t have any way to home the axes. Instead, I enabled force movement, and had to manually send a command to zero the machine. In the future, I will make this a macro and maybe even a button on the screen.

I want to upgrade this machine to use NEMA23s which comes with a problem. I’ve been reusing a BTT SKR Mini E3 V2 which uses TMC2209 drivers to control NEMA17s. Unfortunately, the high power (important to note NEMA17/23 is just the mounting size, but usually is more powerful) NEMA23s I want to use will draw too much current. I’ll instead switch to a custom control system. I’ll use TB6600 drivers (subject to change) with an RP2040 XIAO which is connected via UART to the RPi running Klipper. I also want to have automatic spindle control which will use another RP2040, but I’ll talk more about that in another devlog.

I went over a few iterations of how everything is organized but this is what I settled for. Things in a white box are together in a container physically.

0
0
4
Open comments for this post

2h 15m logged

Finished Z Axis

Finished up the Z axis fixes and ended up switching back to 4040 extrusions. To bring the weight closer, the main difference is that I removed the X carriage. I also tucked the lead screw in between the linear rails which also saves space. Hopefully this will all result in a much more sturdy Z axis.

I’m considering adding some sort of material inside the clamp to grip the router better but except for grip tape, all options I can think of would add slop and make the router less rigid.

I also forgot to add images of this previously, but I have new models for the ballscrew mounts.

2
0
8
Open comments for this post

2h 40m 31s logged

Klipper Setup w/ KlipperScreen

I reflashed my RPi Zero 2 W with a stock Debian install and started installing Klipper-for-CNC with Kiauh. That was simple enough but I also wanted to get KlipperScreen working with a 3.5” capacitive touchscreen I had lying around.

KlipperScreen outputs video to the Linux framebuffer with X11 but without HDMI this wasn’t visible. I’m using an ST7796 display over SPI. After connecting the screen to GPIO, I thought an easy to use driver would already exist for this display. There was this one which I tried setting up. Unfortunately this a) didn’t support the RPi Zero 2 W, but that was easy to fix and b) relied on the old VideoCore framework which Raspberry Pi OS doesn’t ship with anymore.
After that, I went digging for another solution. I found this repo and this forum post which showed that the kernel already had support for generic displays like these, so I just had to add the init sequence of bytes for my display. After hours of tweaking with boot settings I finally got it working!
Now I needed touch to work, which used an FT6336U driver. At the bottom of some forum post I was able to find a repo which had drivers for the OrangePi for my exact screen. This probably would’ve been helpful getting the screen working but I anyways like my solution better. I compiled the driver in the repo and remade the DTS file for an RPi Zero 2 W rather than an Orange Pi. Surprisingly, this just worked! The touch coordinate orientation was correct, and even gestures like scrolling worked perfectly!

Now I have Klipper fully setup with my display and need to connect it to my motherboard.

4
0
78
Open comments for this post

2h 11m 1s logged

I updated the Z axis to use 2020 extrusions (smaller and lighter) and 2 linear rails to support the Z carriage.

The previous version of the X carriage got ripped up because there was too much strain on it over time. This updated version distributes the weight on two rails and brings the mass (heavy router) closer (smaller cantilever).

0
0
5

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…