Console #83 -- Go+, Elfshaker, and The DIY CNC Machine Project
An Interview With Max of The DIY CNC Machine Project
Sponsorship
CrowdSec
Despite billions invested in cybersecurity over the last decades, cyberattacks are more common today than ever. That's why at CrowdSec, we reinvented the approach to cybersecurity. With our global cybersecurity threat intelligence community, we're outnumbering attackers instead of outsmarting them.
CrowdSec is a free, open-source, and collaborative IDPS that analyzes your visitor's behavior and deals with malicious traffic. Once an aggressive IP is blocked & verified, it is shared across the community to ensure everyone's protection.
Harness the power of the crowd and benefit from the largest CTI network, for free.
If you want to take that community to the next level, register for our first Community Webinar on Dec 14th and learn how you can contribute to it!
Not subscribed to Console? Subscribe now to get a list of new open-source projects curated by an Amazon engineer in your email every week.
Already subscribed? Why not spread the word by forwarding Console to the best engineer you know?
The Console Career Service
Want to make more money for your work? Let us find you a new, higher-paying job for free! Sign up for The Console Career Service today! The benefits of signing up include:
Automatic first-round interviews
One application, many jobs (1:N matching)
Free candidate preparation service
New opportunities updated regularly
All roles, from PM to SWE to BizOps
High potential, venture-backed, and open-source opportunities
Even if you’re not actively looking, why not let us see what’s out there for you?
Sign up for free in less than 5 minutes👇
Projects
gop
Go+ is a Go language extension for engineering, STEM education, and data science.
language: Go, stars: 7796, watchers: 195, forks: 509, issues: 48
last commit: December 11, 2021, first commit: December 12, 2015
social: https://twitter.com/qiniu
repo: https://github.com/goplus/gop
elfshaker
elfshaker is a low-footprint, high-performance version control system fine-tuned for binaries.
language: Rust, stars: 1908, watchers: 17, forks: 30, issues: 17
last commit: November 26, 2021, first commit: June 21, 2021
repo: https://github.com/elfshaker/elfshaker
DIY-CNC-machine
DIY-CNC-machine is a guide that goes through all the steps to build your own CNC machine from scratch.
stars: 1053, watchers: 36, forks: 49, issues: 5
last commit: December 04, 2021, first commit: June 12, 2021
repo: https://github.com/maxvfischer/DIY-CNC-machine
Patreon
Console is powered by donations. We use your donations to grow the newsletter readership via advertisement. If you’d like to see the newsletter reach more people, or would just like to show your appreciation for the projects featured in the newsletter, please consider a donation 😊
An Interview With Max of The DIY CNC Machine Project
Hey Max! Thanks for joining us! Let’s start with your background. Where have you worked in the past, where are you from, how did you learn how to program, what languages or frameworks do you like?
I actually started out studying Industrial Engineering and Management, which is kind of a mix between business and engineering. But during my second year at uni, I took a course in Ada95 (yeah I know, weird language to learn today..) and found out that it was waaayy more fun to write code and solve technical problems, than the business side. So after that, I shifted my education and did my bachelor in computer science and my master in computer science/machine learning.
Currently, I’m working as a Data Scientist in Stockholm, Sweden, where I’ve also lived my whole life. As there is a large ML ecosystem around Python, that’s what I’ve primarily been coding in for the last 3 years.
Who or what are your biggest influences as an engineer?
A big part of why I enjoy engineering so much is the learning, and the ability to overcome technical problems that you had no idea of how to solve when you started. Therefore, a lot of my biggest influences as an engineer are people that spend their time working on engineering tasks that they then share in the open, for others to learn from.
Jeremy Fielding is an amazing engineer that is more heavy on the mechanical engineering side. He builds stuff like industrial robots from scratch, explaining his design choices etc.
Frank Howarth builds incredible things from wood.
I also draw a lot of inspiration from engineers working at the intersection between technology and art. Pindar Van Arman is a guy that builds painting robots, where he utilizes machine learning techniques and traditional robotics to create really interesting art pieces.
What's an opinion you have that most people don't agree with?
That money shouldn’t be the sole purpose of building and working on things.
Each time I’m working on a technical hobby project and people are asking about it, common follow-up questions are “But can you earn money from it? Can you sell it? If not, why are you working on it?” I think it’s really sad that those questions usually are the first thing that pops up in peoples’ heads. To me, the journey, learning and being able to share my mistakes with others is the reward.
If you could dictate that everyone in the world should read one book, what would it be?
As I’m from Sweden, I feel obligated to pick a Swedish book :)
“I May Be Wrong” is a very touching (and non-technical) book written by Björn Natthiko Lindeblad. Björn lived as a forest monk for 16 years and in the book, he talks about his life as a monk, the challenges and mental struggles of integrating back into society, his view on life and his fight against ALS. It gives you a different view of what life can be about.
What have you been listening to lately?
I’ve been listening a lot to Adele’s new album, 30. I guess COVID19 has had a positive effect on the writing productivity of artists, as they haven’t been able to do any live performances.
Podcast-wise I’m a loyal subscriber to Darknet Diaries, listening to all the new episodes that he drops.
Why did you start the DIY CNC Machine project?
After owning a 3d-printer for about a year, the idea of building a CNC-router machine from scratch started to grow on me. After doing some research, I found a couple of promising DIY projects, like the MPCNC and RootCNC. But it wasn’t until I found Ivan Miranda’s build that I decided to build my own machine. Included with his blue-prints, there was a link to a very active Discord channel with a lot of people that either had built one or are currently building their own machine. After getting some initial questions answered in the Discord channel, I decided to build my own machine.
As with all the DIY hobby projects I’m working on, building the actual thing is half of the project. To me, an equally important part of the project is to document the whole process in extreme detail to share my learnings and mistakes with others. In that way, I can leverage and “scale” the time I’m put into it, by reducing the amount of time other people have to spend on building something similar.
I also think a lot of people want to build something like this, but don’t really know where to start. And a lot of the guides out there leave out things that are obvious to the writer, but not to the reader. After going through some available DIY CNC-router guides (including Ivan Miranda’s blue-prints), I felt that there was a need for a highly detailed, end-to-end guide of how to build your own CNC-router machine. A guide that not only includes the main parts of the build, but also goes through all the small intermediate steps like tapping holes in aluminium and soldering stepper cables. That’s one of the main reasons why I created the “DIY CNC Machine” project.
Who, or what was the biggest inspiration for the DIY CNC machine project?
The main inspiration was of course Ivan Miranda, the guy who designed and created the original blue-prints of the machine I built. He’s doing an incredible job building DIY projects.
What was the most challenging part of building the CNC machine?
As this was the first time I’ve been working with mechanical engineering at this level, there was a lot of head-scratching before I figured out how to do stuff. But I would say that the most time consuming and challenging part was to design the two electronic boxes and come up with a smart way of how everything should come together (stepper wires, Arduino, fans, power, emergency stops etc). I also have a tendency to design everything way too small, which meant that I had to re-print the electronic boxes 3-4 times :)
Are there any projects similar to your DIY CNC machine project?
Yes, there are plenty of DIY CNC-router projects out there, like MPCNC, RootCNC and Lowrider CNC. The reason why I decided to put a lot of effort into writing this guide was because I feel like a lot of the guides/tutorials out there are only going through the main steps of the build, while leaving out the smaller intermediate steps (how to drill and tap holes, how to use crimp sleeves and connect contact houses). I think there are plenty of people without any experience at all that want to build something like this. And it is definitely possible to do so, it’s a linear process that is easy to follow, as long as you get all the steps lined out in front of you. But as most of the guides are leaving out things that are obvious to the writer, but not to an inexperienced reader, it can be intimidating for some people to start the project.
Is the DIY CNC machine project intended to eventually be monetized if it isn’t monetized already?
No, even though the original license allows me to monetize it, I haven’t had any thoughts of doing so. I feel like these DIY guides should be open for anyone that wants to learn.
How do you balance your work on open-source with your day job and other responsibilities?
Haha, I have a very patient girlfriend ¯\_(ツ)_/¯
No, but one of my main ways of finding time to work on my hobby projects is to have a good and repetitive sleep-cycle. There’s no secrets to it, I try to go to bed at 10PM and I need 7 hours of sleep. That means that I get up at around 5:30AM, drink some coffee and work on my projects for about 2 hours in the morning before I go to my day job. That adds up quite quickly over time. I also try to set aside at least an evening (or a full day if possible) during the weekends.
But this only works as I don’t have any kids yet.
Do you think any of your projects do more harm than good?
I’ve been working on 4 large technical hobby projects so far:
As all of the projects are very specific builds and not e.g. an open-source code package, I don’t see how they could do any harm. Maybe, if someone would use the CNC-router to build things that could hurt other people, but the probability of that happening is probably very low.
What is the best way for an engineer to contribute to the DIY CNC machine project?
If anyone is following the guide and building a machine for themself, I would be more than happy to get feedback on parts/sections that are unclear or difficult to follow! I’ve intentionally uploaded the complete guide to GitHub so people can open issues. Also, if you’ve redesigned and improved some parts, feel free to open a Pull Request to add it to the repo!
If you plan to continue developing the DIY CNC machine project, where do you see the project heading next?
The project is almost done from my end. The last thing I’m planning to do is to design and build a custom waste board using T-nuts or T-tracks.
Are there any other projects besides the DIY CNC machine project that you’re working on?
As I wrote before, I’m really inspired and interested by the intersection between technology and art. I love art pieces that use technology to raise questions in peoples’ minds. I’m currently working on an open-source circular sand-table, similar to the Sisyphus table.
The core concept is to use a SCARA robot underneath the “table” with a magnet mounted at the end of the second arm. Sand is then poured on top of the table and a magnetic ball is attached to the magnet. When the SCARA robot moves, it drags the magnetic ball in the sand on top of the table, creating infinitely overlapping patterns.
My end-goal is to have a completely open-source sand table, where most of the parts can be 3d-printed or bought off-the-shelf. The logic will be executed on a RPi Zero and the RPi will also act as a web-server, where the user can start/stop the robot, change patterns etc on a localhost website.
You can see the current state of the sand-table here: https://imgur.com/a/2GaNmdk
Have you considered a Kickstarter for this project?
Hmm, I haven't really thought about it. I'm actually happy with the balance between my day job and this project as it is right now. Doing a Kickstarter would require me to deliver the project in a shorter time-frame, which would force me to trade-off time spent on my day job or with my family, which I'm currently not interested in doing.
But who knows, when I've come a little bit further with the project, maybe that's something I will do ;)