The Final Project requires us to come up with an idea and work towards making a physical copy of it, using the various techniques we have learned such as:
Documentation to record the documentation and record the progression of:
Ideas - The ideas on what can be made and what purposes the design will serve
Construction - The construction of the actual project should be documented as it progresses, showing the production of the various components and the assembly of all parts.
How-do (?)
Instruction Manual - A user's manual on how to operate the various functions of the project's design.
CAD and/or Digital Graphic Components
2D Cutting and Engraving
3D Printed Parts
Embedded control with a microcontroller with inputs and outputs
Tasklist
Research possible ideas
Research more details and look for existing designs that are similar or the same as my ideas.
Status: Completed
Produce Preliminary Sketches
Preliminary Sketches should be produced for a more visual representation of the project idea.
Status: Completed
Produce Bill of Materials (BOM)
A bill of materials is used to help identify a total list of items and components that are needed in the prodiction and construction of the project
Status: Completed
Check with lecturers on project scope
Check with lecturers on the feasability and safety of the scoped project
Status: Completed
Designing CAD model and make any changes if needed.
Start making or modifying any existing designs to make the needed changes to plan out the production of the final project.
Status: Completed
Cutting and Engraving of parts
Laser cutting parts that are needed to be used for the final project, and the subsequent results and adjustments made to fix any issues.
Status: Completed
3D Printed Parts
3D Print any parts that are needed, and make any changes neccessary to fix them.
Status: Completed
Embedded Control with the Microcontroller
Code the functions of the circuit to recieve inputs, and the following outputs.
Status: Completed
Bill of Materials
Final Bill of Materials Collected
This final list is created after simplifying the circuit as much as possible, removing unneccessary components, and changing the board to a Digispark ATTiny85 by choice of the lecturer. In this case, no other power aside from
the board's USB connection to a host computer is needed as there are no physical output devices, cutting down on the components needed.
1x Digispark ATTiny85 Board
The Digispark board will serve to collect input from the Rotary Encoder and adjust the volume on the connected computer respectively, and is powered by the USB connection to the computer.
1x Rotary Encoder
The Rotary Encoder is used here as the primary input device.
10x Short Dupont Female to Female Jumper Wires
The cables are used to make the needed connections in the circuit between the board and the rotary encoder.
Data Transfer Micro USB Cable
Used to transfer data and input between the board and the computer
Additional Materials that are not electrical components:
3mm thickness plywood, used for lasercutting pieces to form the main housing of the circuit.
3d Printed Knob made for Rotary Encoder
Bill of Materials V2
This list is slightly edited after consulting with the lecturer about ways to go about assembly of the project.
1x Arduino UNO Board
The Arduino UNO board is used in place of the Arduino Nano as it is functionally similar to the Nano and the UNO is given to us by default in our kit. This was later replaced by the Digispark.
1x Rotary Encoder
The Rotary Encoder is used here as the primary input device.
This is a power bus that is meant to provide power to the OLED Display. However, it is later removed as the OLED Display is made redundant by the computer screen showing the sound changes in the form of visual feedback.
1x 128X64 I2C SSD1306 OLED display
An OLED Display that was changed from the original due to availability of Fablab. This is later removed as it is made redundant by the computer's visual feedback of volume changes.
11x 10cm Male to female jumper wires
Wires used to make connections between the Power Bus, UNO board, display, and rotary encoder. Later changed to Female Female cables due to the change to the use of a Digispark and the removal of the power bus and OLED Display.
Additional Materials that are not electrical components:
3mm thickness plywood, used for lasercutting pieces to form the main housing of the circuit.
3d Printed Knob made for Rotary Encoder
Bill of Materials V1
This list is slightly edited after consulting with the lecturer about ways to go about assembly of the project.
1x Arduino UNO Board
The Arduino UNO board is used in place of the Arduino Nano as it is functionally similar to the Nano and the UNO is given to us by default in our kit. This was later replaced by the Digispark.
1x Rotary Encoder
The Rotary Encoder is used here as the primary input device.
This is a power bus that is meant to provide power to the OLED Display. However, it is later removed as the OLED Display is made redundant by the computer screen showing the sound changes in the form of visual feedback.
1x 128x32 I2C OLED display
The original OLED display intended for use, but changed due to availability of Fablab. This is later removed as it is made redundant by the computer's visual feedback of volume changes.
WS2812 5050 LED Ring 8-bit
Used to show visual feedback of change in volume, but removed due to lack of availability and redunduncy.
11x 10cm Male to female jumper wires
Wires used to make connections between the Power Bus, UNO board, display, and rotary encoder. Later changed to Female Female cables due to the change to the use of a Digispark and the removal of the power bus and OLED Display.
Additional Materials that are not electrical components:
3mm thickness plywood, used for lasercutting pieces to form the main housing of the circuit.
1x 3d Printed Knob made for Rotary Encoder
4x M2 10mm Countersink screws for fastening components in place.
6x M2 5mm Screws for fastening components in place.
4x Silicon bumper 2x8mm for fastening components in place.
Research, Ideas, and Preliminary Sketches
In preparation for this project, I've done some preliminary research on the ideas I had shortlisted, listed below, along with an evaluation on the feasability of each choice:
Mood Lamp
The first idea I had was to make a mood lamp / light based clock, with the light changing based on the time, as shown below.
I had also found a similar project to the idea I had in theory, and it can be found here.
However, I rejected the idea for two reasons. The first was that I did not know how to program some of the functions, and I felt that it would be fairly redundant and not serve a practical purpose for most people,
as their functions can be replaced by other appliances such as mobile phones.
Useless Machine
I had intended to make a useless machine, but I could not find any interesting designs that could accomplish or serve a practical use, hence I scrapped the idea and moved onto looking at interesting parts
that I wanted to try working with. However, an example of what I had intended to do can be found here.
USB Audio Control device
I found an interesting design that I wanted to try, and found a design that mainly made use of a rotary encoder for all its inputs, managed by an Arduino Nano. It allows the user to switch and cycle through various programs to adjust their audio,
with a visual indicator to the audio level using an OLED display. Below is a sketch.
The idea was heavily inspired by this project by Ruben Henares that uses a program called Maxmix, made for use with Arduino. The official website for its development can be found
here.
Due to my personal interest in the use of the rotary encoder, this is the first selection of projects I would like to do, followed by the mood lamp, and then the useless machine.
Consultation with Lecturer and Revisions made to project
Upon consultation with the lecturer about the idea, he gave the green light for this, on the condition that improvements and changes were made to the design's circuit's housing, and improvements were made to the design
to serve purposes, and that a few of the materials/electrical components I had wanted could not be used. With this in mind I decided make revisions to the design. All the following changes can be summarised in this section:
1st Revision
I decided to remove small parts such as the screws and silicon bumpers, as I felt that they were unneccessary and the other parts could be secured in much better ways that used lesser materials, or materials that could be recycled for this purpose.
I decided to remove the OLED ring as I felt that the visual feedback would not be needed as you would have the screen display for visual feedback, and the sound volume being changed as audial feedback.
The OLED Display had to be changed due to a lack of availability of the original desired OLED.
To make changes from the original design by Ruben Henares, I had wanted to make the microboard controller be the Arduino UNO, and make the design have a slot that accomodated both boards.
I decided to add indicators on the knob for the user to have an easier time using it, so they would know which direction of turning the knob would give them what result.
I decided to make holes in the base of the box to drain water and provide more air ventilation on the off chance that the parts could overheat if put in a closed box.
I decided to remove the tray as it was unneccessary.
2nd Revision
I decided to add grooves on the knob to make it easier to hold as I realised that it might be hard to hold since it would be 3D Printed.
I decided to make the main box laser cut, and parametric, so any of the sides could be removed and reassembled back easily.
I realised that visual feedback would not be needed, as later versions of most operating systems show up with the audio information on screen if it is changed, and hence decided to remove the OLED display and power bus.
The UNO was changed to a Digispark ATTiny85.
I could no longer use the code from the original website I had wanted, and had to change the code.
At this point, I had not yet gotten the measurements of my components, and at this point, I was at the second revision and was putting designing the model off until I had collected the components and could get the physical components as I was worried about the parts that I would receive varying slightly from the actual components,
but at that point I was running out of time to work on the project, and other modules required a lot of my time, and hence decided to start working on the parts and some room for error and physical adjustment for when I received the parts, taking reference for measurements from the original design by Ruben Henares.
3D Printed Parts and CAD.
First, I started with the knob, as I felt that would be the part that would be the easiest to scale up and down, and used the basic knob made by Ruben Henares, adding the indents on the top of the knob.
The original design can be found on Thingiverse here.
As intended, I started with the knob, which looked like this:
This was just plain flat plastic, which can be hard to grip for some people. Additionally, it is unclear of which direction of turning the knob does what, and any other additional features the project might have.
Hence, I decided to add some markings on top of the knob.
I started out with making a sketch of the indentations on the top, gauging them to be half the size of my finger, but decided that was too big. Hence, I shrunk the width of the indentations from 8mm to 2.5mm,
as I felt that if it was too big, it would be hard to tell what the indentation was with a touch of a finger. In hindsight, it should have been large, something like 5mm, as 2.5mm turned out to be too small.
But that is too late to change, so if anyone reads this website and decides to do something similar, do take note to make it large enough that your finger should cover it nicely. As for the actual creation of the indentation,
I started with a sketch on one side, creating the following sketch, creating the indentations on one side first with a line down the middle.
With this done, I simply copied the indentations over and modified the plus to a minus symbol.
Subsequently, I cut the sketch to a depth of 0.2mm, thinking it would be pretty thick, but not enough that it would get water or any grime stuck inside. But in hindsight, it should have been made deeper.
After that, I filleted the edges to remove the sharp edges.
After the filleting of this, the indentation was done, and I moved onto the groove. I started mainly with drawing two circles to count outwards, before creating circles on the outer lines slightly overlapping with the edges of the knob.
With this done, I cut the circles downward for the grooves.
This resuts in the following knob, which was 3D Printed out.
Some problems with this was that the indentations are too smooth, and the plus and minus is too small and smooth. However, the grooves was fine and worked as intended.
To fix this, I used a marker meant for panel lining plastic model kits to mark out the indentations, which worked, but the downside is that it left a few undesirable marks in the small seams that came from 3D Printing the knob.
The indentations aside, another problem I later discovered after receiving the actual rotary encoder, was that that the rotary encoder's head was barely bigger than the slot on the bottom of the knob.
Due to not wanting to 3D print a whole new knob just for this and waste materials, I decided to use an exacto knife to slowly scratch material off inside the slot to make it bigger until it would finally fit onto
the rotary encoder's head, which looks like this:
If you wish to do this project as well, the files can be downloaded below:
Final Project CAD File.
Final Project Knob STL.
UM2_Final Project Knob STL.
Laser Cutting and CAD
After finishing the knob, the only other part that needs to be made is the box itself,
which is parametric and made from 3mm plywood on all sides, on the logic thatby making it parametric, it should fit together perfectly,
but not be too tight that each side cannot be removed should something need to be added to the circuit inside or replaced.
Again, I followed the dimensions specified by the original design, creating an internal storage space that measured 70mm on both sides of the box, both length and width wise, and measured 18.50mm tall.
With this in mind, I started out by creating a square on a sketch that measured 70mm, and added teeth that measured 10mm in 10 mm intervals.
Next, I removed the square that I used as a base, adding in the bottom holes. After much deliberation I decided to make the holes extend out on all sides, like this.
I did this by drawing lines from corner to the other, drawing lines between them in intervals before removing the original diagonal lines to make each hole its own.
Now that I had completed the base, I had originally intended to make it a proper box, but as mentioned earlier, did not want to risk dealing with the hairline burning too much material,
and hence decided to simply move onto the drawings, drawing the sides in a mirror fashion to fit into the base's teeth, but extended the sides' teeth to be 0.5mm longer on both sides, like this:
By doing this, my intention was that after cutting out the pieces, I could simply sand down the larger teeth to fit perfectly and tightly, as I had sandpaper at home from my own hobbies. Subsequently,
I made the top piece, which was done by using the same bottom piece sketch, removing the center holes and adding a large hole in the center for the knob which measured about 42mm in diameter, and added
the last two sides which only needed changing of the corner teeth to fit into the other sides, and I added in a hole for the wire and board's micro USB port.
And with this, I could export this as a .dxf file, and send it for laser cutting. However, during laser cutting, i found that there were some double lines, which serves as a reminder that when doing this,
you need to be observant, and the best way to avoid double lines is to draw the entire shape in one single smooth line. While I had forgotten to take pictures of the set up for laser cutting, I managed to
get a picture of the pieces after they were done laser cutting, which worked out as intended.
After pushing them out, I then had to sand them down, and after making everything fit nicely, I was left with this:
Here is a video of the assembly, which was fairly fun due to how everything snapped together:
Shown below is a video of the result.
(By this point I had recieved my components, but I wanted to continue and finish up my parts before worrying about the components.)
Assembly BoxClick this if your video does not appear to download.
Final Project CAD File.
Final Project Box DXF.
Final Assembly
At this stage, I had finished both 3D Printing, Laser Cutting, and received my components(and soldered pins onto the Digispark but I forgot to take pictures.. However, I had not yet assembled everything,
and the first thing I did was mess with the wiring. While it did take a few tries to get right, I finally got it done. In case the picture below is unclear, my connections were:
Digispark:Rotary Encoder
5V:GND
GND:+
P0:CLK
P1:DT
P2:SW
Now came the problem of attaching the components to stay in the box. I discovered that the micro USB port fit perfectly so as long as it was never unplugged the Digispark would not be a problem,
and even then it could be easily reattached by opening up the top of the box to do the connection again. In the case of the Rotary Encoder, I decided to tie it down with some string.
With this, the physical assembly is done.
After that, I needed to add in the code, but due to conflicting deadlines with another upcoming assignment from other modules, I was unable to find the time to create a new sketch from the start,
\and found one that did roughly what I wanted. If I had more time, I would have wanted to script a function to pause and play. The files can be found here, with the original creator's page being below as well.
Final Project CAD File.
Volume Control Sketch.
Original Source
Instructions Manual
A simple volume control device that you can use to control the volume of the audio.
To set it up:
Plug it into your laptop through USB.
Wait a few seconds, and that's it. It's ready for use.
Functions:
Turn clockwise to increase volume
Turn anti-clockwise to decrease volume
Press once to mute.
The mentioned functions can be seen in this following video:
FunctionsClick this if your video does not appear to download.
My Learning Experience
Protoyping a project can be fun, but when it comes down to it, there is no denial that you need to expand your skillset in order to be able to create larger and more interesting projects.
The past semester of taking DFAB has reminded me of this, in the form of the final project, which pushes you to combine and use all the skills you have learnt over the past semester in a single project,
integrating all of the skills together to create something that serves a good purpose. It's also taught me the importance of time and task management. While taking multiple tasks that are not hard may be easier to
manage than complex projects, they each still take time, and I have learned that in order to ensure quality in everything that is presented or compeleted by me, I have to lower the complexity of somethings to fit
with the amount of time I have, rather than trying to extend the amount of time I have to allow for projects of higher complexity.