10. Open Source Hardware - From Fibers to Fabric¶
Project overview¶
Unfortunately, I missed out on this week due to seasonal illness, this is the documentation I can add for this week.
Video by Ray Formilli
A CNC (Computer Numerical Control) milling machine is designed for precision machining of solid materials, typically metal, wood, or plastic. It utilizes computer-controlled movements and rotary cutting tools to shape and cut the material into precise shapes and patterns. The primary function of a CNC milling machine is to remove material from a workpiece to achieve a desired shape, size, or finish. The machine follows programmed instructions, in the form of a G-code, to control the movements of the cutting tool in three or more axes. CNC milling machines are widely used in manufacturing and prototyping for their accuracy, repeatability, and efficiency in producing complex parts.
During Open Source Hardweek, the Amsterdam node repurposed a CNC milling machine into an avant-garde plotter for painting - an idea by Michelle Vossen. Through a clever hack, we transformed the machine's functionality by replacing the milling bit with a custom brush holder powered by Arduino. We experimented with diverse Rhino designs encoded in G-code. This transformation allowed for the exploration of a variety of brushes, varying in size and type, alongside an array of inks. The result is quite a cool experiment in art and innovation.
References & Inspiration¶
check out for Jiawen's documentaiton
Fabric Prep
Materials Needed:
- Cotton canvas
- H2O
- Acrylic white paint
- Gesso (or chalk or calcium carbonate)
- Paintbrushes
- Palette or mixing tray
Procedure:
1: Clean the Canvas
2: Dilute Acrylic White Paint
3: Apply White Paint
4: Apply Gesso/Chalk/Calcium Carbonate Mixture
5: Let it Dry
**canvases used with primer**
Tools and Materials¶
Electronics:
- Arduino Uno (1)
- Attiny85 (1)
- Attiny85 dip socket (1)
- Battery pack (1)
- Breadboard (1)
- Jumper wires (plenty)
- AA battery (3)
- Solder
Ink/Pigment: - Ecoline ink (various colors, plenty) - Sicotex screenprinting ink (various colors, plenty) - Acrylic paint (various colors, plenty)
Brushes and Tools:
- Various brushes
- Various sponges
- Various molotovs
- Pipets
- Marker pens
- Scraper
- Squeegee
Surface Materials: - Paper (A2 size) - Cotton fabric with acrylic gesso primer - 120 gr copy paper (A3 size)
Software: - Arduino IDE (for programming Attiny45 for servo motor) - Rhinoceros (to prepare design files) - Grasshopper (to create custom shopbot code) - VCarve Pro (to prepare toolpath for the shopbot) - Shopbot Console (to communicate with the CNC machine)
Project Outcome:¶
The project aimed to push the boundaries of the CNC ShopBot machine, turning it into a tool for artistic expression. By combining precise CNC technology with creative design, the team expected the machine to draw, paint, and surprise them with unique and unexpected results.
Credit: Stephanie Johnson
Bill of Materials¶
- Things to think about when designing the hardware:
- Size (of brush / shape / thickness)
- Secure (tightly held in place)
- Pressure (does it need a gentle brush or a heavy sweep)
- Angle (straight down or adjustable angle)
- Movement (incorporated into hardware)
- Reservoir (included for ink etc built in)
- Weight (will weight be an issue?)
<div class="sketchfab-embed-wrapper"> <iframe title="Plotter_Attachment_Servo _i3" frameborder="0" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true" allow="autoplay; fullscreen; xr-spatial-tracking" xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src="https://sketchfab.com/models/cae6f3ea8e8e4b49a05c0958ab128219/embed"> </iframe> <p style="font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;"> <a href="https://sketchfab.com/3d-models/plotter-attachment-servo--i3-cae6f3ea8e8e4b49a05c0958ab128219?utm_medium=embed&utm_campaign=share-popup&utm_content=cae6f3ea8e8e4b49a05c0958ab128219" target="_blank" rel="nofollow" style="font-weight: bold; color: #1CAAD9;"> Plotter_Attachment_Servo _i3 </a> by <a href="https://sketchfab.com/szjohnson?utm_medium=embed&utm_campaign=share-popup&utm_content=cae6f3ea8e8e4b49a05c0958ab128219" target="_blank" rel="nofollow" style="font-weight: bold; color: #1CAAD9;"> szjohnson </a> on <a href="https://sketchfab.com?utm_medium=embed&utm_campaign=share-popup&utm_content=cae6f3ea8e8e4b49a05c0958ab128219" target="_blank" rel="nofollow" style="font-weight: bold; color: #1CAAD9;">Sketchfab</a></p></div>
<div class="sketchfab-embed-wrapper"> <iframe title="Servo Brush Module V6" frameborder="0" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true" allow="autoplay; fullscreen; xr-spatial-tracking" xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src="https://sketchfab.com/models/73ae238f19904dacbcf74f852686a3cd/embed"> </iframe> <p style="font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;"> <a href="https://sketchfab.com/3d-models/servo-brush-module-v6-73ae238f19904dacbcf74f852686a3cd?utm_medium=embed&utm_campaign=share-popup&utm_content=73ae238f19904dacbcf74f852686a3cd" target="_blank" rel="nofollow" style="font-weight: bold; color: #1CAAD9;"> Servo Brush Module V6 </a> by <a href="https://sketchfab.com/szjohnson?utm_medium=embed&utm_campaign=share-popup&utm_content=73ae238f19904dacbcf74f852686a3cd" target="_blank" rel="nofollow" style="font-weight: bold; color: #1CAAD9;"> szjohnson </a> on <a href="https://sketchfab.com?utm_medium=embed&utm_campaign=share-popup&utm_content=73ae238f19904dacbcf74f852686a3cd" target="_blank" rel="nofollow" style="font-weight: bold; color: #1CAAD9;">Sketchfab</a></p></div>
Process¶
A CNC (Computer Numerical Control) milling machine is crafted for accurate milling of solid materials, commonly metal, wood, or plastic. Rather than employing a drill bit, our concept involved affixing a painting device to the CNC.
The plan was to generate Rhino and G-code designs that the CNC would use to create drawings, paintings, or delightful surprises.
About the CNC
In Henk's tutorial on CNC milling machines, he emphasizes the importance of understanding and mitigating potential risks associated with their operation. These risks include the possibility of fire, such as when the milling bit encounters metal on the sacrificial layer, leading to sparks that can be directed into the ventilation system. Additionally, caution is advised to prevent accidents like hair getting caught in the milling bit or ensuring that hands and fingers are kept at a safe distance.
Before starting work, Henk recommends wearing safety glasses and ensuring the cleanliness of the machine's bed (sacrificial layer), with the removal of any nails or screws. Given that the CNC milling machine operates based on precise instructions, users are reminded to think through each step carefully and never leave the machine unattended during operation. Monitoring the machine's sounds is crucial as unusual noises may signal potential issues.
Henk provides practical safety measures, including the use of a space bar to pause milling, and a 'panic button' to shut down the machine in emergencies. Considering the high-speed rotation of the milling bit at 18,000 times per minute, users are urged to exercise caution and choose the appropriate milling bit for specific effects and limitations.
The tutorial covers the homing process for the machine in the x, y, and z axes, distinguishing between machine home and job home. Adjusting the milling bit's height (Z-axis) is highlighted, either using page up or page down commands or by entering values directly into the properties. Henk advises conducting a test run in the air before actual milling, saving the instructions as G-code, and subsequently loading the relevant part file for precise and controlled machining.
We divided the work into into various tasks and teamed up as such:
- Hardware = Stephanie Johnson & Aslı Aydın Aksan
- Electronics = Riley Cox & Michelle Vossen
- Brush Design = Jiawen Gong & Ray Formilli
- Ink / Surface = Ray Formilli & Jiawen Gong
- Working with the CNC machine / shopbot code generation / design files = Aslı Aydın Aksan & Jiawen Gong
- Documentary = Ray Formilli & Machteld Zee
- Project Management = Machteld Zee & Michelle Vossen
HACKING THE SHOPBOT presentation by Michelle
**Safety**
Brave hacker, whatever you do..
1. Don't start without Henk, Michelle or Asli
2. Always first z-level the machine
3. Don't turn on the spindle
4. Never leave the machine running
5. Clean up ink spills immediately (pause the machine)
6. If unsure, do a test run in the air
7. No material near the rails/gears of the machine
8. Keep it simple stupid (kiss)
M
Code Example¶
Use the three backticks to separate code.
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}