It’s obviously a lot smaller than some of its competitors for the same price like the Ender 3, but I needed it to fit in a small space and it packs surprisingly high performance software/hardware in it.
This little thing works great! The UI on the physical device looks fine and works well. It even has Wifi! However, I was disappointed to discover how primitive the native web UI was, and it failed to show some basic things like the target temperatures the extruder and bed were set to.
So after using the web UI for a few weeks I decided I needed to make something better looking (more like the local controller) and easier to use. I took a weekend to write up a simple Android app to accomplish this and add a few extra features that are supported by the device’s native web server but not available in that web UI.
UI theming similar to the local UI on the physical device
View print status, including loading bar and percentage complete
View current extruder/bed temperatures
View and set extruder/bed target temperatures
Cancel print button
Automatic querying on app open to allow quickly checking on the status
Automatic retrying connection a few times to account for occasional phone connectivity issues or printer server issues
Unfortunately I’ve had a limited time to continue development, but I hope to continue adding features:
Uploading a file to print (as on web UI)
Start/Pause print button (as on web UI)
Allow selecting from and starting a print from files already on inserted SD card
Adding guidance and tutorials to assist in troubleshooting or initially setting up printer’s Wifi connection
Notifications on print completion
Notifications would be by far the most useful feature that isn’t natively available, but this adds an unfortunate amount of complexity to the app. This would involve either repetitively querying the print server when the app is in the background or keeping a web socket connection open in the background, both of which would result in higher battery consumption which is obviously not ideal. This also means being very careful about ensuring the user is aware of this high power usage and making sure the background querying starts and stops when requested and only when requested.
So that’s the goal! In the meantime, I hope this is useful to others in its current state.
For a couple years during college I got used to having a laser cutter and other fabrication tools available from Techshop. Ever since losing access to all their tools, I’ve dreamed of building my own CNC machine, and hopefully eventually laser cutter and 3D printer.
Still a work-in-progress, but here’s a peek at what I’ve been working on for the last 8 months or so in my free time!
Full bill of materials and current build status here.
Mounted on custom folding table, based on design by The Carmichael Workshop, built to a slightly larger scale, with added wheels and an extra shelf on the bottom for hiding away the water-cooling bucket and cyclone dust collector
Rails: Based on X-Carve rail system, using MakerSlide and X-Carve’s custom X-axis rail and one-piece X-axis carriage
Drive System: Belt
Motors: NEMA 23, with a high torque X-axis motor to balance with the two lower torque Y’s
Motor Drivers: TB6600HG Motor drivers
Controller Board: Arduino Mega with GRBL
Cutting Surface: MDF wasteboard
Spindle: Chinese generic 1.5KW 65mm water-cooled 220v, with 220v VFD
Water-cooling System: Small bucket with waterfall pump, 360mm (3-fan) Aluminum Computer Radiator, running distilled water with “PrimoChill Liquid Utopia” anti alge and corrosion additive
I had two major goals in this build:
Ability cut a wide range of materials in different sizes, so I can use this for everything from wooden sign-making to PCB milling and metal fabrication (aluminum).
To build this as cheap as possible, given that high performance.
Back in January I began researching the costs involved in purchasing a pre-built or kit machine. The existing options seemed either too small, too imprecise, or too expensive, so I decided early on that I would have to piece something together taking design ideas from many others. Here’s the basics of what I’ve learned.
Major Components & Technology Options
Router/Spindle – Two possible routes
Simple to use, same as used by hand.
Cheap, relatively ($100).
Plug straight into a regular 110v (or whatever your locality has) wall socket.
This means you can’t (easily) control the speed or off/on via CNC controller.
These can range more widely in physical size, wattage, and speed.
Generic design allows the spindle size to be scaled up or down to match any necessary application. For example, I went with a 65mm diameter, 1.5KW, ER11 (bit holder size) spindle.
Can be purchased for 220v or 110v power source.
Uses international standard ER type collet, a very refined, quality method of holding routing bits.
QUIET. I needed this since I’ll be running mine out of my garage.
Motors – Stepper motors are pretty much all the same no matter where you get them. You could even pull them out of old scanners or copy machines if you wanted to go real cheap. The only two factors you really need to worry about are size (NEMA number) and torque. The common ones used for this purpose are:
Used for smaller CNC builds and some larger 3D printers.
Most common for a 1000x1000mm build such as mine.
Common Torque ratings:
179oz.in – Basic cube shape. I used two of these for my Y axis.
269oz.in – Taller than the former. I used one of these for my X gantry to compensate for there only being one on this axis but two on the Y.
Motor Drivers – Chosen based on power needed by motors
Requires connection to computer through Parallel port. A very old type of port that modern computers haven’t come with for the last 15 years. Therefore, the common recommendation is to go to Goodwill and pick up an old (crappy) computer. I believe that’s a pretty poor solution.
USB-to-Parallel adapters don’t work reliably because the breakout board relies on the precise timing from the host computer. I looked into getting a PCI-to-Parallel adapter which should theoretically work better, but costs ~$40 and still might not work well enough.
Uses basic serial (USB or otherwise) connection, DOESN’T require parallel port. Handles more processing and event timing itself rather than relying on connected PC, allowing slower methods of communication such as USB and Bluetooth.
Arduino boards are cheap and easily accessible
Since firmware is C code uploaded through Arduino IDE, it’s highly configurable and modifiable to match your needs
Can be used in two possible configurations: 1) similar to rack & pinion with motor mounted on moving carriage or 2) with motors mounted on ends and belting in a loop attached to carriage
Least precise, and not good for very hard materials due to elasticity of belting
Rack and Pinion
Requires motors mounted to carriage, not on ends
Has to be mounted with perfect alignment across whole machine in order for motor with pinion to mesh properly with rack. This can be solved by spring-loading the rack, but this increases cost and complexity.
Fixed size, have to get screw that matches your application precisely
Most expensive (if decent quality)
Most complex assembly
Most susceptible to dust contamination
Can handle being milled if bit is driven too far down on work piece
Mounting holes must be drilled for clamping work piece down
Aluminum extrusion rails
Allows easier clamping along whole length of work area
You have to be more careful not to hit surface when milling
Existing Communities & Stores
An interesting note: The different CNC communities online seem to be growing quickly, but were very disconnected from each other, having very different commonly used build processes and designs. For example:
Seem to be some of the oldest and probably most professional CNC users, those using CNC machines for their day job, or those who have had the hobby for 20 years already. Here most people seem to use high performance water-cooled CNC spindles, and use older more professional CNC software such as LinuxCNC and Mach3.
Most users of this forum do not seem to make much use of newer open-source software/firmware such as GRBL and Universal G-Code Sender as I’ve chosen to use.
Required tools/parts (if buying uncut LED strips):
Soldering iron (and preferably some experience)
Spare wires to use between strips
(Optional) Wire connectors to be able to easily disconnect portions of lighting and wires
People are always posting their car mods online, so it’s very easy to find How-to’s for your specific vehicle. I found one particularly great post on the Camaro5 forums by “AUS10BMX”, here, that was very useful for help with installation.
Here are the basics:
Get some LED strip from eBay for about $10, in whatever color you prefer, or even RGB for around $20. These strips come in long strands that have to be manually cut and soldered to wires and connectors. Pre-cut and wired strips can be found for a little extra cost, but you don’t get nearly as much length of lighting.
Find wiring harness to wire LEDs into, as well as a “ground” connection.
This is the most important part. For newer cars, there will be a wiring harness under the driver’s side dash which will include the dome light power wire, which is the direct power line for the dome light. The details can be found by Googling your vehicle model and “dome light wire” or “dome light wire tap”. By plugging into this power source, we don’t need to worry about turning our LED lighting off and on, as it just does so whenever the dome light does, primarily when the doors open and close. For older cars, this may take more effort, as the dome light wire may be routed somewhere entirely different.
Measure lengths for strips under dashboard and spaces between where wires will have to be routed.
Keep in mind, the space between the driver’s side footwell and passenger’s side sometimes has a hole or just a snap-on cover that can be opened to route wires through. This,obviously, is useful for hiding the wires and making the exact length of the wire cuts less important.
Cut strips to length to fit under dashboard on each side.
For me, this was about 11 inches.
Solder wires (and optionally, connectors) onto cut LED strips.
This is, of course, the most difficult and time-consuming part. Using bulk LED strips, the wires and connectors will have to be hand-soldered and installed. As mentioned, if it’s worthwhile to you, you can get pre-wired LED strip at slightly higher cost. eBay and Amazon have a massive selection of “footwell LED strip” ranging from $10-$30.
Use the adhesive on the back side of the strips and plug the wires into their places. I also reinforced the adhesive with clear packaging tape over it.
For more specific details, consult the Googles! I’m sure someone in the world has done it for your particular car. For my specific build, I wish I had taken more pictures, but the linked post by AUS10BMX has all the necessary info. I’ll try to get an Instructable posted, but until then, there is a very detailed Instructable by “ecellingsworth” that my be useful, here.