Skip to content

11. Open Source Hardware: From Fibers to Fabric

Project: Dye-Rotating Machine for Fish Leather Processing

Research, References & Inspiration

This project was born from a desire to improve one of the most labor-intensive steps in fish leather production: the curing and dyeing process. Traditionally, fish leather must be stirred or agitated continuously during curing to ensure that dyes and conditioning agents are absorbed evenly. However, this process is extremely time-consuming, physically demanding, and requires constant attention.

To address this challenge, I conceptualized and built a dye-rotating machine—a device designed to automate the stirring and shaking of fish leather during curing. By automating this repetitive task, the machine aims to:

  • Ensure consistent results
  • Reduce manual labor
  • Improve process efficiency
  • Enhance material quality

This project is a blend of functionality and sustainability, integrating open-source hardware, custom 3D-printed parts, and eco-conscious materials to improve a traditional craft using modern tools.


3D-Printed Components

To construct the machine, I designed and 3D-printed multiple custom components, using Add:North Economy filament for its reduced environmental impact and solid mechanical properties. Most of the parts were created from scratch, tailored specifically to fit the needs of the machine, while a few were adapted from existing designs and modified extensively to fit the system.

This design freedom allowed me to:

  • Achieve precise fits for all moving parts
  • Ensure structural stability
  • Tailor the mechanical design to optimize performance
  • Learn and apply advanced 3D modeling techniques

I designed the majority of the 3D-printed components entirely from scratch, tailoring them specifically to fit the unique requirements of the machine. For two of the parts, however, I started with existing designs and heavily redesigned them to better align with my vision. This redesign process allowed me to modify the shapes, dimensions, and functionalities of the components, ensuring they worked seamlessly with the rest of the system.

The ability to create and customize these parts from the ground up provided me with the flexibility to fully adapt the machine to meet my specific needs. This hands-on approach not only optimized the machine’s performance but also gave me greater control over its final design and functionality. The experience further enhanced my understanding of 3D modeling and printing as tools for problem-solving and innovation.


3D Print Files – Version 1

Qty Part Description Infill Notes
4 608 ball bearing 30%
1 Ardueno_UNO_N_Breadboard-Holder 30%
3 Ball_Bering-Gear_PIN 30%
2 Ball_Bering-PIN 30%
1 Moter-Holder 30% Support
2 Metal_Pipe-Cover 30% Glue Plate
2 Metal_Pipe-Holder-A 30%
2 Metal_Pipe-Holder-B 30%
4 PEG 30%

Thingiverse

notes
  • To adapt the project to my specific requirements, I redesigned the Arduino mounting plate to fit my customized version of the board. This modification ensured that the microcontroller could be securely and efficiently integrated into the machine, aligning perfectly with the overall design.

Additionally, the motor holder underwent a significant transformation. Originally, the motor was secured using a standard PVC pipe holder. However, this setup proved to be inadequate for my needs, so I replaced it with a redesigned holder specifically crafted to keep the motor firmly in place during operation. This new holder not only improved the stability of the motor but also enhanced the durability and precision of the entire setup.

These modifications were essential to achieving a cohesive and functional design, allowing the machine to perform reliably and efficiently. By customizing these components, I was able to optimize the integration of both the electronic and mechanical elements, ensuring that they worked seamlessly together. This process highlighted the importance of adaptability and innovation in tailoring standard components to fit unique project needs.


Electronics & PCB Setup

For this project, I utilized an Arduino Uno Rev3 SMD board as the central control unit to manage the operation of the machine. This board was chosen for its reliability, versatility, and ease of integration into custom projects. Specifically, the Arduino Uno Rev3 SMD board was programmed to regulate the circulation system of the machine while also controlling the motor's speed.

By leveraging the capabilities of this board, I was able to ensure precise and consistent operation, tailoring the machine's functionality to meet the specific requirements of the process. The ability to adjust the motor's speed dynamically allowed for greater flexibility, enabling the machine to handle various tasks efficiently. This setup not only simplified the control system but also contributed to the overall smooth performance and user-friendly design of the machine.

The heart of the system is an Arduino Uno Rev3 SMD, chosen for its reliability, versatility,* and easy integration into DIY systems. The Arduino was programmed to:

  • Control the motor’s rotation
  • Regulate the speed via a potentiometer
  • Provide stable power distribution

This setup allows real-time control over the curing process, enabling adjustments based on the leather’s thickness, dye concentration, or process duration.

Electronic Components

Qty Part Price
1 330 ohm Resistor $ 5.99
1 Arduino uno rev3 smd 23,20 €
1 Breadboard $ 5.59
1 Diode (1N4148) $ 5.99
9 jumper wires $ 6.98
1 Motor Fond
1 Potentiometer $ 7.99
1 Transistor (P2N2222AG) $ 6.99

Code Development

To develop the functionality of the machine, I started with a sample code from an SKI Guide designed for a SparkFun kit. This code served as the foundation for the control system, providing a solid framework to build upon. I then customized the original code, making several modifications to suit the specific needs of my project.

One of the key alterations I implemented was the addition of a speed dial feature. This enhancement allowed for precise manual control over the motor's speed, providing flexibility to adjust the machine's operation as needed. By integrating this feature, I ensured that the system could be fine-tuned for optimal performance, making it adaptable for different tasks and materials.

The process of modifying and expanding the code not only improved the functionality of the machine but also deepened my understanding of Arduino programming. It was a valuable exercise in problem-solving and innovation, as I worked to tailor the existing framework to create a system that met my unique requirements.

To program the Arduino, I used a sample code originally from an SKI Guide for a SparkFun kit. I modified it to suit this project’s specific needs—most notably by adding a manual speed dial via the potentiometer, allowing the user to fine-tune the motor’s rotation speed.

This modification ensured:

  • Greater adaptability
  • Precise material processing
  • A user-friendly interface

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
}

Assembly Process

The machine was carefully assembled following a detailed diagram that I had created during the planning phase of the project. This diagram served as a comprehensive guide, outlining the precise placement and connection of each component to ensure the system functioned as intended.

By adhering closely to this plan, I was able to streamline the assembly process and avoid potential errors. The diagram included the arrangement of the motor, circuit board, and other key parts, as well as the pathways for wiring and connections. This level of preparation proved invaluable, as it allowed me to visualize the final design and troubleshoot any potential issues before they arose during assembly.

Following my own custom-designed schematic not only reinforced the structural integrity of the machine but also ensured that the components were aligned and integrated seamlessly. This step was crucial in transforming the theoretical design into a functional and reliable system, bringing the project closer to completion.

Assembly followed a detailed custom diagram created during the planning phase. The schematic outlined:

  • Component layout
  • Electrical wiring paths
  • Placement of mechanical parts (motor, pulleys, bearings)

By following this layout, I was able to minimize errors and streamline the build. The modular design made troubleshooting easier and ensured long-term durability and serviceability.

Tools Used

  • Plastic Box: Width: 30 cm × Height: 12 cm × Length: 40 cm
  • Metal Pipe: Ø 20.0 mm
  • Platform Plate: 29,5 cm × Length: 39,5 cm

Video

-Test on Gear – Machine in Action.

Version 2 – Redesign with Pulley System

Reflection & Improvement Goals

The first version of the project did not perform as well as I had hoped, prompting me to revisit the design and address the issues that arose. Rather than scrapping the idea entirely, I chose to work around the existing problems to see if they could be resolved effectively. My primary goal for this second iteration was to simplify the overall design, ensuring that it would function more reliably and efficiently.

By streamlining the structure and reducing unnecessary complexity, I aimed to improve both the usability and performance of the machine. This approach allowed me to focus on refining the core features while eliminating elements that may have caused complications in the initial version. Through this iterative process, I sought to create a more practical and dependable solution that better aligned with the project’s goals

After building and testing the first version, I identified several areas for improvement. While the original gear-based mechanism worked, it lacked smoothness and introduced unnecessary complexity. Instead of abandoning the concept, I chose to redesign the machine using a pulley system, which offered:

  • Simplified mechanical design
  • Smoother operation
  • Easier maintenance
  • Greater reliability

This second version focused on refining core functionality while removing friction points from the original design.


3D-Printed Components – Version 2

For the updated version of the project, I designed a new set of 3D-printed components to replace the original gears with pulleys. This adjustment was made to enhance the functionality and efficiency of the system, as pulleys offered a smoother and more reliable motion compared to the gears used in the previous version.

The design included two larger pulleys, which were specifically crafted to fit onto the rollers. These pulleys are crucial for driving the rotation of the rollers and ensuring consistent performance during operation. In addition, a smaller pulley was designed to attach to the drill head, which is directly connected to the motor. This smaller pulley plays a vital role in transferring power from the motor to the larger pulleys, facilitating the rotation of the rollers.

By switching to a pulley-based system, I was able to simplify the mechanics while maintaining the desired functionality. Each component was carefully modeled to ensure a precise fit and optimal performance. This change not only improved the reliability of the system but also provided a more efficient way to achieve the desired motion, making the machine easier to operate and maintain.

In this version, I designed two large pulleys to fit the rollers and a smaller pulley for the drill head, which connects to the motor. These changes improved the rotation stability and consistency.


3D Print files

Qty Part Description Infill Notes
4 608 ball bearing 30%
2 Ball_Bering-PIN 30%
1 Moter-Holder 30% Support
1 Moder-Pulley 30% New
2 Metal_Pipe-Cover 30% Glue Plate
2 Metal_Pipe-Holder-A 30%
2 Metal_Pipe-Holder-B 30%
4 PEG 30%
2 Pulley 30% New

Thingiverse

notes
  • In this updated version of the project, the primary changes involved the addition of two newly designed components: the motor pulley and the secondary pulley. These new parts were specifically created to enhance the system's functionality and improve overall performance.

The motor pulley was designed to attach directly to the motor's shaft, serving as the driving force behind the machine's movement. The secondary pulley was crafted to interface with the rollers, ensuring smooth and efficient power transfer throughout the system. Both pulleys were carefully modeled and 3D-printed to match the specific requirements of the project, including precise dimensions and compatibility with the existing components.

Aside from these new additions, the rest of the parts remained unchanged from the previous version. By keeping the original components intact and only introducing modifications where necessary, I was able to simplify the upgrade process while maintaining the machine's core design. These targeted adjustments helped optimize performance without overcomplicating the assembly, making the system more reliable and efficient in operation.


Custom Screws and Assembly Solutions

During the second build, I faced a hardware sourcing issue: I couldn’t find screws with the exact 3 mm diameter and 60 mm length required for the structure.

To solve this, I fabricated custom screws using threaded rods:

  • Cut rods to the exact length
  • Secured one end with a nut + wing nut combo for adjustable fastening
  • Inserted the other end into a custom-designed peg for firm mounting

This workaround highlighted the importance of adaptability and creative problem-solving in prototyping.

During the assembly process, I encountered an issue with sourcing screws that met the exact dimensions required for my project. I needed screws with a 3 mm diameter and a 60 mm length, but such screws were not readily available. To overcome this challenge, I decided to fabricate custom screws using threaded rods.

I began by cutting the threaded rods to the precise length needed, ensuring they matched the specifications for the design. On one end of the rod, I added a combination of a wing nut and a standard nut. This setup allowed for easy adjustment and tightening while providing stability and flexibility during assembly. The opposite end of the threaded rod was securely screwed into a pre-designed peg, creating a firm and reliable connection.

This custom solution enabled me to work around the hardware limitation while maintaining the integrity and functionality of the project. Crafting my own screws not only ensured the components fit perfectly but also underscored the value of creativity and resourcefulness when dealing with unique project requirements. It was a practical and effective way to achieve the desired outcome while adapting to unforeseen challenges.

Tools

  • Metal pipe - Width: 20.0 mm

Video

-​Test on Pulley.

-​Test on Pulley 2.

-Put-Together.

Reflection

This open-source machine embodies the interdisciplinary spirit of Fab Academy, blending digital fabrication, electronics, coding, and sustainable design. What started as a simple idea to automate a traditional process became a fully functioning tool, enhancing the production of eco-friendly fish leather.

From developing custom 3D models to building and refining the electronics, this project taught me:

  • The power of iteration
  • The importance of sustainable thinking
  • The value of open-source sharing for community growth

Future improvements may include:

  • A digital timer for automated curing cycles
  • Integration with sensors for temperature and humidity monitoring
  • Uploading the full project as an open-source kit for others to replicate

---