CraigMattson.net

Building a new 3D Printer Workbench

27 July 2021

Several years ago, I purchased a 3D Printer due to a growing number of projects I wanted to start building. Given the prices had dropped considerably, I opted to purchase a Da Vinci Pro 3D Printer - a fully enclosed one that is somewhat suitable for ABS and PLA printing such that I could design and print a few cases and models for some electronics projects I was planning. Suffice to say, I got as far as 3D Printing a goose that lived on top of a Christmas Tree in 2019 before the preparations of having a baby began (read: lots of painting, house maintenance and other things during lockdown that were an incredible time suck).

Figure 1 - Da Vinci Pro 3D Printer
Figure 2 - Printed and Painted Goose
Figure 3 - Goose at the top of the 2019 Christmas Tree

By the way, if you don't get the reference - I strongly recommend you check out a game coded and published by a local developer here in Melbourne - Untitled Goose Game. While short, it's a barrel of laughs.

With the garage walls painted, floor epoxied and my shelving in place, it was time to set up my workspace for 3D Printing and other projects. I had a table space of approximately 120cm x 60xm of which the printer itself took up around half of that. Somehow I managed to cram a soldering station and storage on the table in the remaining 60cm x 60cm. I've recently purchased a Resin printer and UV curing station in the hopes of printing miniature models with detail and of course there's no room to place these items in the current setup. This got me thinking about building a new workbench.

Earlier, I had some success building a couple of computer tables with an Alex shelf from Ikea and a Kitchen Bench Top from Bunnings. The end result is aesthetically pleasing and quite practical without costing the world to build so I figured something in a smaller scale might fit the bill.

Figure 4 - Desk setup from earlier 2020 feat. Alex Book Case and Bench Top.

If I were to replicate the same kind of thing as above with a couple of Alex Drawers, some thinner bench tops and some thick heavy duty castor wheels - it would be a super useful bench to move my growing 3D Printer collection and associated spools as well as store my ever-growing collection of electronics and microcontrollers. There's not much wrong with the dimensions of the existing table - 120cm x 60cm should be sufficient for these two printers and the curing tank. This will leave a little bit of space to work on as well, with plenty of storage for the growing electronics collection. And of course, the remaining 120cm x 60cm table can be used for the full soldering station with plenty of elbow room.

The order goes something like this:

The total cost comes to around $380 if you have some screws lying around otherwise add a few extra dollars for some wood screws.

Having purchased much of this before lockdown no. 5 and a spare weekend to get it all done in, I set out to build the two Alex drawer shells and had a production line going for the drawers themselves. No photos of this stage, but having built them before the best thing I can suggest, like any Ikea product, is sort the screws into piles before beginning and have easy access to each of the parts.

The next step was to build a platform for the drawers to live on. At this stage, I found some wood screws and was about ready to start drilling away until I realised I had no washers to hold the castor wheels in place! Not to worry - I've got a 3D Printer. So I pulled out my trusty copy of SketchUp 2017 and drew a countersunk washer. Having put 24 of these on the 3D Printing platform, it's now time to get them printed while assembling the remaining drawers.

Figure 5 - Washers in XYZPrinting
Figure 6 - First castor wheel screwed to the first panel. Only 5 more to go!
Figure 7 - All six castor wheels attached to the bottom platform.

With all six castors installed, the next step is to mount the Alex Drawer shells to this panel. When assembling the shell, make sure you've got the right panel with the holes in it facing downwards as the top panel in this instance is solid. They are interchangeable - just be mindful about placement.

Figure 8 - Alex Drawer Shell on each side of the bottom platform.

Now these drawers aren't perfect fits - there's about a 2cm overhang but for my use, this isn't a problem as the power board will mount at the back some time in the future.

Figure 9 - Panel overhang by 2cm.

Once complete, the next step is to cut VELCRO strips to length in four places to mount the top panel to the top of the drawers. I like the Velcro strips as it stops table movement on the top, but it's also removable if you need to adjust it or to disassemble it later. It also helps offset any minor table warping so it sits somewhat flush on top. I find it easiest to bind both sides of the VELCRO strip together before cutting into lengths. Remove the sticker from one side and place it on the wood panel but leave the sticker on the side that will attach to the top of the drawers until ready to assemble.

Figure 10 - VELCRO Strips in place.

The final step is to remove the protective sticker and carefully flip over before mounting. By slowly letting the front down, I was able to make minor adjustments until both sides were square with each chassis. Once in place, push down where the strips are attached to ensure a good seal with the cupboards underneath.

Figure 11 - Mounting the top panel to the top of the drawers.

Having then assembled the smaller drawers, it's time to insert them into the chassis and screw them in.

Figure 12 - Assembled Drawers awaiting mounting
Figure 13 - Completed drawer installation.

It's finally done - end to end it took around two hours with most of that time in assembling the drawers themselves... and probably another two hours moving all of my electronics and microcontrollers to the drawers. With a bit of cleaning and unboxing the Resin printers, I can see how they'll look including turning the printer on for a quick run.

Figure 14 - Future 3D Printer Home

For $380, this looks and functions fantastic. It really is just a platform with a few drawers attached, but now it's home to most of my project work ready to wheel around the garage as necessary. Given how well this came out, there might be another one made in the coming months to move the soldering station among other things to.


Umbraco 9 Released! My Blog Returns.

23 July 2021

And... hurray! This particular release is notable for being the first version of Umbraco to be cross-platform with it's upgraded .NET 5 framework. A significant amount of work has gone into upgrading libraries to be compliant with .NET Core and so now seems an appropriate to dust off my Umbraco skills and code up a bit of a website.

Why Umbraco and not <insert your favourite, non-Umbraco CMS here> I hear you ask? There's no technical reason why I couldn't have started something with a Wordpress website. There's certainly plenty of other CMSes I've looked at over the years as potential alternatives to Umbraco - Grav comes to mind.

To understand why Umbraco, we need to go back to 2013 when I was first introduced to Sitecore. Sitecore is an incredibly complex and feature rich CMS framework built for digital marketers. As a framework, you're not getting a 'website in a box' - rather all of the tools and a rich environment to manage the creation of content and assembling web pages from a number of components. As a software developer, this concept is incredibly flexible - I have total control of the front-end output just as I would in ASP.Net Razor, without having to code the content administration side of things. Besides some models you generate and controllers to inherit from, it's not too dissimilar to coding something from the ground up.

Sitecore's best selling feature is it's "experience platform". With the level of granularity you can give your users, those teams with a heavy digital marketing presence can create esoteric goals, points and workflows to change literally any "component" on a given webpage. Using music as an example, imagine you're browsing a certain genre of music. Perhaps you like your classical music. A digital marketer could attribute an arbitrary 5 points for viewing a product in the 'classical' category, and 10 points for adding music to your cart. If you get a certain amount of points, perhaps there's a special offer in that category you might want your banners and call to actions to suggest. Perhaps you have categorised that customer with a particular persona - a Classical Music listener. Perhaps completing a purchase could add 50 points for each category changing your persona. All of these 'attributes' are built-in to Sitecore. How you manage those, and when to add those points can be a complicated task. Including handling scenarios such as that same listener purchasing a one-of gift for their son or daughter with an entirely different category.

Figure 1 - A typical Content Management Screen in Sitecore

At the heart of the CMS is the Content Tree. After all, for Sitecore to produce all of these fragments some data structures need to be set up and bound to layouts. This to me was the most exciting part of Sitecore. Making rich templates with some logical hierarchy of data, and having a website generate data based on some kind of guided taxonomy can produce consistently good results. It means you don't have to think in context of HTML and web page structure - rather think "type" and apply a template.

When I (re)discovered Umbraco after using Sitecore CMS professionally, I thought I struck gold. That same concept of building Document Templates to represent data bound to a series of 'Partial Views' complete with a less distracting interface creates a unique proposition for customers who don't have large teams to operate websites. With a few fields in place, pages can be automatically generated with a consistent look and feel. Because it's all data, additional things like tagging can help relate content together and selecting other content can help facilitate building out some uniqueness in a page without having to resort to HTML.

Figure 2 - A similar implementation to this current website.

I've been able to build some interesting Social Media and Search Engine Optimised websites in Umbraco with relative ease. Being able to generate multiple entry points to a website and visibly see within tools like Google Analytics how customers find your website can be an interesting and sometimes addictive hobby. For one group, a website I had built could enable Special Interest Groups to build out mini-sites without knowing how to code HTML. For those groups that would contribute to the website, locked down to their own mini-site, could have their content reused around other areas of the website - such as an automatically generated newsletter or as some 'spotlight' function without having to carry over several bespoke HTML layouts to go with it. When going 'live' on Monthly Meetings, the home page could indicate this - with an embedded meeting on the home page for the duration.

Those sorts of flags and techniques can be done in other CMSes, but usually with the burden of the user having to copy HTML between the two pages - or someone maintaining a database of 'dynamic content' to reuse around other pages. The latter requiring bespoke code in the CMS to allow for CRUD operations to take place.

With a bit of effort, the transition from Umbraco 7 to Umbraco 9 has been pretty easy. A few hours in, and the results are pretty good. The Dockerfile used to build the application was also pretty much identical to the standard Microsoft template. I can recommend the following volumes be persisted outside of the container when you go to deploy:-

/wwwroot/media
/umbraco/config
/umbraco/Data
/umbraco/Logs
/umbraco/mediacache

In addition, building the HTML template and getting this first post published has been a pretty straightforward affair. So, here's to some future blog posts and the future of Umbraco 9!


« < 1 2 3 4 5 6 7 8 9 > »