I sometimes sit around and think about ways to solve various problems I run into from time to time. In this particular instance I was looking to build a mobile setup which would allow me to perform original music I have created in Ableton Live. For starters I wanted to utilize 2 separate PC’s running individual instances of Live and have the Ableton Push as the main interface to control each session. So, I ran out and purchased 2 Microsoft Surface Pro 3 tablets each with a doc (to allow for more USB ports) and 2 Ableton Push Controllers. I also ended up with a Numark M6 4 channel DJ style mixer.
The idea with this setup was to have the ability to load on each Surface tablet an instance of Live that essentially was a full project I had completed and mix these together like a DJ would do with 2 records. Think of it like each PC/Push combo as a Deck (or turntable) the left side as Deck A and the right as Deck B. Using some inexpensive soundcards I routed each PC’s audio out to the Numark M6 and tested my idea, low and behold it worked great, technically things worked flawlessly.
The issue I then realized was a height difference between the M6 and the Push controllers. This was a drastic difference, about 2.5” from the top of the Push to the top of the M6. Not only that but the Surface tablets would sit behind the Push controllers and the controllers would then obstruct the bottom portion of the Surface touch screens. This not only looked ugly, but had real impact on my work flow when attempting to perform the tracks.
I thought about how great it would be if there was some kind of platform or tray that would raise the push controllers up to be even with the M6 and also have space behind each controller for the Surfaces to sit just above it’s respective Push. Well, once upon a time I worked in the manufacturing industry so I have a good working knowledge of how to construct and assemble parts. My job back then was in CAD/CAM modeling and programming as well and actually constructing fixturing, setting up and running these CNC mills, lathes and EDM wire machines to bring these parts into the real world. I have not worked in that field for the last 5 years and so I no longer have access to that type of manufacturing equipment, nor the software to even draw the designs I had in my head.
In 2015 I purchased a 3D printer and started thinking about how I could solve these real world issues with this newly available technology. I had been using the printer to make some cool prop parts that I thought were cool, but didn’t really have any practical purpose other than to just look cool on my shelf. In addition, I had not printed anything much larger than the build volume of the printer I own which is roughly 6”W x 9.7”L x 6.1”H. This project would need to be BIG, my initial measurements would put this table at about 20”W x 40”L x 3.5”H. I had seen other people creating larger 3D printed projects on smaller printers by literally taking a 3D model and chopping it up into smaller parts that would then fit on the build plate of a consumer 3D printer and then either connect these parts by conventional screws and nuts or simply super glue them together. I thought about how I could make this massive table and not use a single drop of glue or any conventional hardware to hold it together. I figured if I designed things with tight enough tolerances I could use friction to hold the parts together.
I then looked around on the internet for a 3D CAD program that was either free or very inexpensive. I looked at programs like Blender, Sketch Up, 123D Design and a few others. I ended up using a totally free solution called On Shape. I loved this tool because it’s 100% online so no application to install. Because it is all online and all that is needed is a web browser my projects would be available to me anywhere. Another reason for me choosing OnShape was because it was really easy to use. In OnShape I was able to sketch things in 2D and then extrude into the 3rd dimension. I could also sketch on top of my model and add or remove specific shapes that way as well. OnShape also works with real numbers, specifically inches. A lot of 3D software I have seen works with the Metric system only and some don’t have an inches setting. Others like Blender really don’t use real numbers as it’s not really made for this type of use case. Being in the US with 10 years of actually building things I prefer the Imperial system, so OnShape was the perfect tool for me with this project.
I started by measuring the actual table I have to sit all of my gear on ( an Odyssey CTBC2060 DJ Work Table) it measures 20”W x 60”L. It also has a 2” diameter hole located in the upper middle of the table for cable management. I first drew up the table in OnShape with the hole. Then I modeled the Ableton Push controllers, the Surface docs and the M6 mixer. By doing this I knew how the exact dimensions of each of these components and had rough 3D models of each. I then started modeling what I needed. This process was not quick as there was a slight learning curve with the CAD software and making sure what I was creating would do the job I needed. Specifically, I wanted to be sure there was easy access to all power switches and USB ports on the Push controllers. I also wanted to be able to easily take the controllers out if needed. The M6 needed to sit in between the Push controllers and allow access to the power switch on it as well as not obstruct the IO ports, but still maintain a look nice. The design I came up with is below:
I then created an assembly in OnShape that showed me in virtual space that all my components would fit properly as seen below:
The next task was to cut up the model in a way that would allow this project to be printed on a consumer 3D printer with limited build volume. The idea I had was to use “T” shaped connectors that would be inserted throughout the model at standard distances. This design would allow for rigidity and also keep the separate parts aligned. This design also has the added benefit of allowing things to hold together by friction if the tolerances were tight enough from part to part.
In manufacturing there are some variables to consider when working with any type of material and the method in which things will be made. In this instance I would be building this table out of ABS plastic on a consumer FDM 3D printer. A few things I needed to know were how accurate was my machine and how much separation do I need between each part to allow for the parts to slide together but be held together with friction. The only way I would know on a project of this size how accurate the printer would be was to print out a few full sized parts and measure them. No matter how these test prints came out, large or small, I could compensate for any inaccuracy by adjusting the scale of the part in the X, Y and Z axis in the slicing software. The separation between the parts I started by using a 0.007” gap between each part in the model when I broke it into smaller parts. To test if this was a good number I would need to print out some full size parts and see if they would fit together.
My first test parts were undersized, by a lot! Almost 0.050” (fifty thousandths of an inch) per part. This may not sound like a lot, but trust me that’s a massive difference. If I need 2 parts to fit together and form a pocket for a Push to sit in and each part came off printer being .050” small in the width, then my pocket would be .100” (one hundred thousandths of an inch) too small. This is what happened to me and the Push simply did not fit in the pocket. I found that my printer suffers from something very common in machines called backlash. Backlash basically is something that happens when the machine moves in one direction for some distance and then moves in the opposite direction. In almost every machine made there is some distance in the travel where the machine actually does not move when switching directions. This usually has to do with things like loose belts or distance between gears ect. In a high end machine backlash is usually a very small amount and is a lot of times compensated for in the machine’s internal software. For these consumer 3D printers, they are almost all belt driven using stepper motors. They also tend to use off the shelf Arduino boards and have very basic software driving them. I’m not sure if any of them have any backlash compensation built into them, but I know my machine does not and that’s a shame. The only way for me to correct this issue would be to either redraw the geometry of my model to compensate for the difference I saw after printing some full sized parts or simply add the amount the part was undersized into the scaling feature of the 3D slicer prior to printing. I chose to correct this issue by adjusting the scale of the part in the slicer. Because of this I kept a log for future reference, if I need to go back and print another part on this printer I already have my numbers to get the correct size.
Now with my new numbers I printed off the parts I needed and very very.. very slowly I started to build this table. Each of the larger parts took approx. 20 hours to print. The smaller middle parts took less time, but still averaging roughly 4 – 6 hours per part. In total this build has 16 large bricks and 6 smaller parts. If I estimate how long this project should have taken the larger parts would have been 320 hours of machine time and the smaller parts would have been an additional 36 hours (estimating at 6 hours per part) for a total 356 hours or 14.833 days if the machine ran nonstop. That is a long time! This project actually took much longer.
For anyone who has dared to venture into 3D printing you likely know some of the infamous pitfalls that inevitably cause stressful nights and delays in your projects. With consumer FDM printers (printers that spew out hot plastic one layer at a time) they are prone to things like jamming where the small 1.75mm plastic filament will get stuck in the extruder and cause blockages at the nozzle. This can totally ruin a print and it is very painful to see this occur partway through a very long print. Another thing is adhesion to the print bed. Sometimes you may start a print and the first layer will not stick to the build plate. This is usually a sign of an uneven build plate and can be overcome by releveling the build plate, printing in higher layer thicknesses or by printing a raft first that your part will actually print on top of. On my printer there is a heated build platform with Kapton tape on top. In addition to the Kapton I found that spreading some glue (from a simple glue stick) also helps the adhesion issue. I also ran into some issues with the extruder actually overheating. This happens when the nozzle is too close to the build plate and will usually result in the printer properly printing the first few layers then suddenly jamming. I cannot tell you how many times I had this one happen during this project. The printer I used does not have a particularly flat build plate, it is essentially bowed and the center of the plate is the high point. Out at the corners of the build plate there is a drop off which is quite drastic. This would not affect smaller prints as much but because this project requires the entire build platform for each part when I leveled the bed I made sure the far ends of the table were level and spaced properly to the nozzle. The problem was that the center part of my build plate was then way too close to the nozzle and literally would cause the extruder to overheat and jam. I would start the print, the first few layers would look good so I would go to bed or continue about my day. I would go back several hours later and see that nothing much more than those first few layers printed. To solve this issue, I found that if I printed rafts for each of the large bricks this was no longer an issue.
All in all, this project took me 2 months from conception to reality. The printer did not run nonstop for that amount of time, but it did make something just about every day. This project though at times stressful was a great experience into what is possible with 3D Printing technology. This technology is still young in the consumer space and I would not be surprised to see continued evolutions and innovation in this space over the coming years. I find it very empowering to be able to think something up, design it and then build it within my own home. That to me is absolutely mind blowing. After all the trials and tribulations of this project I finally have what I thought up in my mind and have it in full use today. Below is a list of equipment I used for this build. Also I have found several very helpful 3D printing related channels on YouTube which were quite helpful as well as inspiring. Check these guys out!
Full disclosure, I have not been paid or contacted by any of the manufacturers or YouTube personalities listed below. I’m simply referencing this information for those who may be interested in learning more about 3D Printing.
3D Printer info:
Fully realized Setup:
Recommended 3D Printing related resources: