As digital fabrication is replacing almost all of traditional
manufacturing process. CNC machines and their importance are all on an all time rise.
Earlier mass production was done by cnc machines but now a days even the early stage
prototyping are done with the help of CNC machines. The FAB Labs as a global institution is
also contributing to the fast absorption of these kinds of machines in the society.
I know atleast a dozen of people who bought CNC machines after vising our fab lab.
It opened up a new way to improve and improvise what they have been doing in a better and
smart way. These machines provide quick prototyping
functionality with very good finish comparable to Industrial products and some machines even go
beyond just prototyping. So i like to believe
that CNC machines are the key to personal fabrication and beyond. I believe who ever unlocks and masters
the secrets of CNC machines will hold the key to the next generation of personal fabrication.
Some might believe that in the future we will make all the products which you want by yourself,
but i would like to take it a little differently, i believe in the future if we want a product we will
make
the machine which will make that product for you. Its personal machine making rather than fabrication.
Inspired from all those wonderful CNC's in our lab i am making a CNC machine as
part of my final project. With this experiment and experience i want to explore the possibilities of
cnc machines in making great products. I want to make a complete stand alone CNC
machine completely from scratch but in the time frame allotted for completing the project, i wont be
able to do it entirely therefor
my plan is to go ahead with a helical development pattern. I have made a road map on how i will make a
full
fledged CNC machine which starts off as my final project in the fab academy.
I have three weeks down the line and i have decided to make a machine and i am building it from scratch; No commercial boards, no opensource firmwares, building everything from ground zero with the knowledge i gathered in my six months of fab academy. Its time to look around and find the right kind of CNC machine which is useful enough and simple to make in this short period of time. After quite a bit of googling i decided to make a hot wire foam cutting cnc as its end effector is as simple as a hot wire. Also foam is easy and cheap to handle. This will let me focus on the machine building aspects rather than the issues with the end effector. If i choose making a 3d printer or a pcb milling machine, i have to spend atleast a couple of weeks fixing the end effector. So the choice is obvious. Its the CNC foam cutting machine.
I know i want to make a simple foam cutter first but i just dont want it to be as ordinary
as it can be.
I want it to do more that a normal foam cutter does. I simply started making a drawing of the foam
cutter and during the process i was thinking
what all additional innovation can be brought on it. This is the initial drawing i made.
Initial drawing of SHAPEY
The following is the model which inspired me with the drawing.
Foam cutter inspiration
My design has 4 steppers ; 2 inside the box and two on the sides of the frame. I have the hot wire
running in between the two arms.
This is good to get started but i wanted more. I brain stormed on it and identified a couple of other
uses of the same machine.
Also initially i was planning to make the machine controlled by the computer, but later i identified
that it
is much better to avoid that as,
the computer often serves as the medium to file sending only and by putting an sd card reader in my
machine
can make it stand alone.
Another point i identified is that, in machines like shopbot and in ultimaker, i always wanted a remote
control, rather than just go near the machine
for every small operation like turning off the light and choosing the model to print or to set zero(in
shopbot), i wanted a remote control which does all that.
But the problem is that it needs to be a part of the system plus it should be mobile. We wont be able to
put
two lcd displays for the main housing and one
for the remote control. So a better solution is to make then separate and the main housing will act like
a
holder for the remote control.
You can refer to the diagram below.
Final design
You can see that the main control circuits all go into the box attached to the machine and the remote
can in
fact be place on this box. Thus they
are part of the same system but gives mobility as i wanted. This remote will further comes handy when
you
are using the machine as a lathe.
At this stage i had an idea of how my remote controller is gonna look. I make a drawing of that.
Controller design drawing
After all that research and brain storming. These are the final feature set of Shapey; Oh i have found a
name also :)
Thats a lot of feature set. Doing all that in 2 weeks time is not quite possible specially when you are making everything from scratch, boards, code everything. So what is possible is to adapt a helical development pattern, cut the development into stages and complete as much as possible before the presentation date. The following are the Stages of development.
I am using fussion 360 for my cad designing. Its an wonderful tool and i have been using it
throughout the course.
As always with fussion, you make the sketches first, push/pull extrude then and get your shapes. One
major constrain i had was the dimensions of the
spaces and steppers. I am using the steppers, alluminium rods and the spaces within the MTM kit. I could
not find the CAD models of these parts online
so i had to measure each on them with the vernior and make sketches and adjustment in the designs to
include them in the frame properly.
First the sketches were made
Sketches where extruded and moved around to make the body and frame
The rods where added
Steppers where added
The base of the machine is make in plywood with shopbot and the moving parts where cut in acrylic.
I created the dxf files from the above design and opened them in rhino. I then tried a couple of test cuts to
make sure that the spaces will fit
into the slots properly. With the data gathered with experimentation i could find the exact size needed
for the spacers to fit in.
Even though you compensate for the kerf while cutting the acrylic parts for making the machine, there are chances
that the spaces will either be loose of too tight that they can be inserted. Thus its important that you find the the right sizes by trail
and error before making the actual cut. Else you will waste a lot of material. In my experience kerf can get you close to that value but not exact.
This is beacause of the material properties, some materials will be hard and others can take little bit of compression
I am attaching the rhino file which has all the cut shapes used in my machine. I cut these shapes in 6
mm acrylic.
The profiles for cutting the acrylic
Full Acrylic cut
files in rhino format
Full Acrylic cut
files in dxf format
The designs where made in such a way that they can be sicked with a solvent like chloroform. Chloroform actually melts the acrylic and thereby fuses them together creating a very strong bond. All the acrylic parts where joined using chloroform
I used fussions inbuilt CAM facility to generate the stp file which can be used directly with the
shopbot interface.
I had provided enough allowances and dogbone fillets for proper fit. I make the base and put on the side
supports by press fit.
I have made few changes from the initial cad design to include the rotating platform in the version 2.
The new cad files are given below.
Shapey platform 3d view
Fussion file
Lastly i assembled all the parts togather.
Assembling acrylic parts
Final Assembly
These are some photographs of finally assembled mechanical parts. I have not cut the extra length of rods yet.
Assembling acrylic parts
Final Assembly
I am making all my necessary circuits my myself. I am reusing the micro controller board from the ouptut week . The boards i will need are a sheild board for putting the stepper control circuits and a stepper control board for each stepper. I am having 5 stepper including the stepper for the rotary axis so i need 5 stepper control boards. Also i need to make a power control board to control the heating coil and for turing on and off the power into the steppers.
As mentioned i am using the same board from my output week. The details are given below.
schematic diagram
board
Trace file of the MC board
Cut file of the MC board
Schematic design file
Board design file
Milling boards at once
The following are the photographs of finished board.
Finished board
As the micro controller board is a generic one, i had to make a sheild board to put all my stepper boards and other controls.
The design files are given below. You can see that i am putting the resonator on this board.
schematic diagram
board
Trace file of the sheild board
Cut file of the sheild board
Schematic design file
Board design file
Finally i am making the stepper control boards. These boards basicaly have two H-bridge A4953 ic with necessory filtering
capacitors. The datasheet asks for 50+ volt ceramic capacitor but i could'nt find them locally so i had to substitute with 25v capacitors.
schematic diagram
board
Trace file of the stepper control board
Cut file of the stepper control board
Schematic design file
Board design file
The following are the photographs of finished board.
Finished board
Finally i am making the board to control the heater current and the stepper power. I am using N channel mosets
for this purpose. In my design i missed the requirement for the .1uF filtering to be used with the
voltage regulator, So later i had to use through hole components to compensate. This modification is not made in
the board layout file.
schematic diagram
Trace file of the power board
Cut file of the power board
Schematic design file
Board design file
The following are the photographs of finished board.
Finished board
As i have followed a modular design approach, connecting the boards is as easy as pluggin them togather, just make sure that
the pins are in the right order.
Boards wired up
Boards wired up
For limiting the motion of the steppers beyond a limit i added four limit switches. I scraped these switches from
old computer mouse. I removed the case of the mouse and found the pcb with the switch.
Finding the switch in old mouse
Later i desoldered and removed the switches using the de-soldering ribbon and by applying enough flux. The method is that you put enough
soldering flux on the ribbon and put it on the region to be desoldered. Now heat the ribbon with the soldering iron. The lead melts and gets
absorbed in the ribbon and we can easily pull out the component.
Switches removed from the pcb
Finally i started attaching wires to the switches and putting female header on the other end so that they can be pinned to my main board. I put
enough heat shrinks so that the wires don't short circuit.
Attaching wires to switches
Now i have the switches all wired up with the headers on the other end.
All wired up
These limit switches will inform the micro controller when each axis of the machine has reached its zero position. This info
will allow the microcontroller to limit the axix from moving beyond the allowed limit. I have already kept make headers on my
sheild board to connect limit switches.
Controlling a single stepper is easy and is well documented, but controlling two of them simultaniously and in sync to generate 2d shapes
is not well documented. I had to develop my own logic for this purpose. After quite a lot of trail and errors i decided to go with using timers.
I vary the stepper step speed relative to one another by setting the OCRA value. This approach has a limitation that we can control only as many
stepper as there are timers on the micro controller. In atmega328p there are 2 8 bit and 1 16 bit timer, so total of 3 stepper can be controlled.
Please view my code for more details on the implementation.
Initially my machine wont read gcode, instead i manually find the points on the shape i want my machine to draw and convert them in terms of
stepper steps and save that information in an icode file. Later when i want the machine to make the moves i send this instruction one my one.
On completing the move as per the instruction the microcontroller requests next sequence. This continues till all the movement are being executed.
The code is documented within to help you better understand it. I am reusing the USART library i make in communication week for this week.
Source code
Library code
- // Stepper Motor Demo with Accelerated Moves
- #include <avr/io.h>
- #include <util/delay.h>
- #include <avr/interrupt.h>
- #include <avr/power.h>
- #include <stdlib.h>
- #include <math.h>
- #include "../lib/USART.h"
- // set these to +/- 1 for half-stepping, +/- 2 for full-stepping
- #define FORWARD 2
- #define BACKWARD -2
- #define STEPS_PER_TURN 192
- // pin definitions; change this if you are changing the pins for output
- //stepper 1
- #define A (1 << PB0)
- #define A1 (1 << PB1)
- #define B (1 << PB2)
- #define B1 (1 << PB3)
- //stepper 2
- #define C (1 << PC0)
- #define C1 (1 << PC1)
- #define D (1 << PC2)
- #define D1 (1 << PC3)
- //stepper power
- #define POWER_PIN (1 << PD3)
- #define UNINITIALIZED 0
- #define RECEIVE 1
- #define OPERATE 2
- // global Variables
- const uint8_t motorPhasesX[] = {
- A | B, // full
- A, // hall
- A | B1, // full
- B1, // half
- A1 | B1, // etc.
- A1,
- A1 | B,
- B
- };
- const uint8_t motorPhasesY[] = {
- C | D, // full
- C, // half
- C | D1, // full
- D1, // half
- C1 | D1, // etc.
- C1,
- C1 | D,
- D
- };
- // determines freequency; this is the value set in the OCR0A
- volatile static uint8_t MAX_DELAY_X;
- //volatile static uint8_t MAX_DELAY_Y;
- volatile uint8_t stepPhaseX = 0;
- volatile int8_t directionX = FORWARD;
- volatile uint16_t stepCounterX = 0;
- volatile static int stepsToMoveX;
- volatile uint8_t stepPhaseY = 0;
- volatile int8_t directionY = FORWARD;
- volatile uint16_t stepCounterY = 0;
- volatile static int stepsToMoveY;
- static volatile unsigned char data;
- volatile char command[100];
- volatile unsigned char commandLength = 0;
- volatile unsigned char state = UNINITIALIZED;
- void initTimer(void) {
- //timer0 init
- TCCR0A |= (1 << WGM01); // CTC mode
- TCCR0B |= (1 << CS00) | (1 << CS01); // 64 prascaling
- //timer2 init
- TCCR2A |= (1 << WGM21); // CTC mode
- //CS bits are different for timer0 and timer2
- TCCR2B |= (1 << CS22); // 64 prascaling
- sei(); // enable global interrupts
- }
- //enable pin change interrupt on PD5;
- void initPinChangeInterrupt() {
- //pull up enable
- PORTD |= 0b00100000;
- PCICR |= 1 << PCIE2;
- PCMSK2 |= 1 << PCINT21;
- }
- //enable pin change interrupt for limit switches PB4 an PB5
- void initLimitSwitchPinChangeInterrupts() {
- //pull up enable
- PORTB |= 0b00110000;
- PCICR |= 1 << PCIE0;
- PCMSK0 |= 1 << PCINT4;
- PCMSK0 |= 1 << PCINT5;
- }
- // emergency stop on hitting limit switch
- void stop() {
- TIMSK0 &= ~(1 << OCIE0A);
- TIMSK2 &= ~(1 << OCIE2A);
- //disable stpper power
- PORTD &= ~(POWER_PIN);
- printString("Stop!!!! \n");
- }
- // interrupt handling for the button to print the current command
- ISR(PCINT2_vect){
- if(bit_is_clear(PIND, PD5)){
- printString("command :");
- // TransmitByte('\r');
- printString(command);
- }
- }
- //interrupt handling for the limit switch
- ISR(PCINT0_vect){
- if(bit_is_clear(PINB, PB4)){
- printString("LS 1 pressed \n");
- stop();
- }
- if(bit_is_clear(PINB, PB5)){
- printString("LS 2 pressed \n");
- stop();
- }
- }
- ISR(TIMER0_COMPA_vect) {
- stepPhaseX += directionX; // take step in right directionX
- stepPhaseX &= 0b00000111; // keep phase in range 0-7
- PORTB = motorPhasesX[stepPhaseX]; // write phase out to motor
- stepCounterX++; // count step taken
- }
- ISR(TIMER2_COMPA_vect) {
- stepPhaseY += directionY; // take step in right directionX
- stepPhaseY &= 0b00000111; // keep phase in range 0-7
- PORTC = motorPhasesY[stepPhaseY]; // write phase out to motor
- stepCounterY++; // count step taken
- }
- //not used
- unsigned int round_closest(unsigned int dividend, unsigned int divisor)
- {
- return (dividend + (divisor / 2)) / divisor;
- }
- void takeSteps(int stepsX, int8_t dirX, int stepsY, int8_t dirY) {
- //18-100
- MAX_DELAY_X = 80;
- //init counter to 0
- TCNT0= 0;
- TCNT2 = 0;
- directionX = dirX;
- directionY = dirY;
- stepCounterX = 0; // initialize to zero steps taken so far
- stepCounterY = 0; // initialize to zero steps taken so far
- //find the delay value for Y assuming x is 100
- float fraction = (float)stepsX / (float)stepsY;
- uint8_t yDelay = round((float )MAX_DELAY_X * fraction);
- //float to string
- // char buffer[6];
- // dtostrf(fraction, 6, 4, buffer);
- //
- // TransmitByte('\r');
- // printByte(stepsX);
- // TransmitByte('\r');
- // printByte(stepsY);
- // TransmitByte('\r');
- // printString(buffer);
- // TransmitByte('\r');
- // printByte(yDelay);
- // printString((char*)"----------\n");
- OCR0A = MAX_DELAY_X; // compare match at MAX_DELAY_X value
- OCR2A = yDelay; // compare match at MAX_DELAY_Y value
- TIMSK0 |= (1 << OCIE0A); // turn on interrupts, stepping
- TIMSK2 |= (1 << OCIE2A); // turn on interrupts, stepping
- //enable stpper power
- PORTD |= POWER_PIN;
- while (!((stepCounterX == stepsX) )) { ;
- } // wait
- TIMSK0 &= ~(1 << OCIE0A); // turn back off
- TIMSK2 &= ~(1 << OCIE2A); // turn back off
- //disable stepper power
- PORTD &= ~(POWER_PIN);
- }
- //not used
- void takeStepsInt(uint16_t howManySteps, int8_t dir) {
- directionX = dir;
- stepCounterX = 0;
- TIMSK0 |= (1 << OCIE0A);
- }
- ISR(USART_RX_vect){
- data = UDR0;
- //echo
- TransmitByte(data);
- if(data == '#'){
- state = RECEIVE;
- }
- if(data == ';' && state == RECEIVE){
- //command will be stored in the form xf00100yf00200, x for stepper, f for directionX(f, b) and number of steps
- char steps_x[6];
- char steps_y[6];
- int i;
- for(i = 0; i< 5; i++){
- steps_x[i] = command[i + 2];
- steps_y[i] = command[i + 9];
- }
- steps_x[5] = '\0';
- steps_y[5] = '\0';
- // printString(command);
- // printString((char*)"\n--> \n");
- // printString(steps_x);
- // printString((char*)"\n--> \n");
- // printString(steps_y);
- // printString((char*)"\n--> \n");
- //array to integer conversion
- stepsToMoveX = atoi(steps_x);
- stepsToMoveY = atoi(steps_y);
- if(command[1] == 'f'){
- directionX = FORWARD;
- }else{
- directionX = BACKWARD;
- }
- if(command[8] == 'f'){
- directionY = FORWARD;
- }else{
- directionY = BACKWARD;
- }
- state = OPERATE;
- }
- if(state == RECEIVE && data != '#'){
- command[commandLength] = data;
- commandLength++;
- }
- }
- void reset(void){
- state = UNINITIALIZED;
- uint8_t i;
- for(i=0; i< commandLength; i++){
- command[i] = 0;
- }
- commandLength = 0;
- //de-energize all steppers
- // PORTB = 0x00;
- // PORTC = 0x00;
- }
- int main(void) {
- //clock_prescale_set(clock_div_1); // CPU clock 8 MHz
- _delay_ms(1000);
- InitUART(4800, 0, 8, NONE, 1, TRUE);
- initTimer();
- initPinChangeInterrupt();
- initLimitSwitchPinChangeInterrupts();
- DDRB = A | A1 | B | B1 ;
- DDRC = C | C1 | D | D1 ;
- DDRD = POWER_PIN;
- takeSteps(100, FORWARD, 200, BACKWARD);
- // takeSteps(300, BACKWARD, 400, FORWARD);
- // takeSteps(100, FORWARD, 100, BACKWARD);
- // takeSteps(200, BACKWARD, 400, FORWARD);
- while (1) {
- if(state == OPERATE){
- takeSteps(stepsToMoveX, directionX, stepsToMoveY, directionY);
- reset();
- TransmitByte('n');
- }
- // TransmitByte('m');
- // _delay_ms(500);
- }
- return 0;
- }
- #xf00500yb00500;
- #xf00500yf00500;
- #xf00500yb00500;
- #xf00500yf00500;
- #xf00500yb00500;
- #xf00500yf00500;
- #xb01500yf01500;
- #xb01500yb01500;
This is how i encode the movement. Each line represents a specific move operation. Lets learn this by taking line 1 as an example.Each line starts with a hash and ends with a ';'. The x represents the x-axis stepper, f - forward, the next 5 digits represent the number of steps to take. Again y for the ystepper f for forward and then the number of steps.
- import serial
- import sys
- def sendString(string, serialPort):
- for letter in string:
- # print letter
- serialPort.write(letter)
- returnValue = serialPort.read(1)
- print returnValue
- def sendChar(char, serialPort):
- serialPort.write(char)
- returnValue = serialPort.read(1)
- print returnValue
- # commands = ['#xb00100;', '#xf00200;', '#xb00300;', '#xf00100;', '#xb00150;', '#xf00100;', '#xb00200;', '#xf00100;',
- # '#xb00250;']
- commands = open('move_xy_shape.icode').read().split("\n")
- if __name__ == "__main__":
- import time, urllib2
- ## Need to consider alternatives for Mac / Windows
- PORT = "/dev/ttyUSB0"
- BAUD = 4800
- command_count = 0
- s = serial.Serial(PORT, BAUD)
- s.flush()
- ## flush clears the buffer so that we're starting fresh
- sendString('#xf00001yb00001;', s)
- while (True):
- if (s.read(1) is 'n'):
- if(command_count == (len(commands)-1) ):
- print "ending ..."
- break
- sendString(commands[command_count], s)
- command_count += 1
This file basically reads the icode file and sends the data line by line over the serial to the microcontroller. It waits till its gets a signal back from the microcontroller saying its is done executing the previous operation to send the next line
After all that hectic building and coding, its time to test the machine. First i gave the following shape to be drawn. I drew this image on a
graph paper and found the respective co ordinates, which was used to find the icode(the code listed above is for this shape). This code is send over to the
microcontroller through serial communication.
shape inpu to machine
and here goes the machine.
That is version 1 of my machine. Mission accomplished
Now i have make and tested the basic functionality of my foam cutter, its time to move ahead and add more functionalities as per the helical development plan. In this version i am adding the rotating platform. It is a simple platform which can be rotated by a stepper. I use a stepper from the fab inventory for this rotary axis.
I made the design files in fussion. First i made the drawings
Making the drawings
Extruding to create the shapes
making the box
final design
The design is embedded below.
Fussion file
I used the cam tools in fussion to generate the stp files which can directly be used with the
shopbot control software. I then cut out the parts and finally assembled them. The following images show the assembly.
rotating platform assembly
Later i mounted this shape on the middle of my foam cutter and now i have the rotary axis.
This also i did with fussion starting from the diagrams and latter extruding them.
starting with drawings
final models
Finally i cut them out and fitted to the machine.
hot wire holder for lathing models
Fussion file
Now i wanted a good looks for my machine and decided to cover it entirely in vinyl. The vinyl shapes i needed where too
bit and they could be easily hand made without using the vinyl cutter so i opted to do it manually.
Covering the rotating platform with vinyl
Covering other parts
After all those hardwork here is my completed machine.
Final machine
I have developed a method to digitally make the shapes for lathe cutting.
The following are the videos of my machine in action.
Foam cutting
Lathe
That is version 2 of my machine. Mission accomplished
Now this is the third loop in the helix and i plan to make the remote controller for my machine. It is just a day left and i am not sure on how much i will be able to complete
This is the step be step process of me making the controller body
Step1 : I created a drawing from the handdrawn
image presented above.
Step2: Extruded the sketches to make necessory shape
Step3: Added fillet fo make smooth edges
Step4: Created the profiles for the lcd and button regions
Step5: Done many iterations of push and pulls to get
the proper shape
Step 6: Make the slot for acrylic parts by cutting inwards
Step 7: make the screw holders and button support structures
Step 8: Finally added the logo engraved
Step 9: Made a battery case in the bask part and added
the make connectors to fit the from part
Step 10: make the holes for the battery case cover
Step 11: Finally made the battery case cover
Step 12: Visual inspection for mistakes
Step 13: added button and acrylic parts to get a better visualization.
Final model of the shapey control casing.
The full fussion and stl file can be downloaded from the links below
Full Fussion file
Top part STL
Bottom part STL
Battery case STL
I generated the gcode for my models using cura and later printed the models.
Printing the top half
Parallely i made the acrylic parts for the display part and for the place where the buttons come. Buttons where also cut out
from acrylic. I used the profiles from the fussion file i already shared to make the laser cut parts. The dxf file for the acrylic
cutting is linked below.
Acrylic cut dxf file
Fitting the acrylic cuts parts to the 3d printed parts
Now you have the assembled front part and the back parts.
Once i have the case ready, i started fitting the lcd display in the slow provided. The following video shows how i
fitted the LCD. Later i used screws to tighten the display in its position.
Fitting the LCD display
Similarly i fitted the SD card reader to the back casing.
Fitting the SD card reader
The other boards which go into the controller where not made due to lack of time. I used the code and board from my output week to display
text on the LCD display placed inside the casing.
Sl.No | Components | Qty(Nos) |
---|---|---|
1 | Atmega328P-AU | 1 |
2 | IC A4953 h-bridge smd | 10 |
3 | N channel mosfet AE51AA | 2 |
4 | Voltage regulator 5 v | 1 |
5 | Diode schottky 1A 100V | 2 |
6 | Capacitor- .1uF, 1206SMD | 10 |
7 | Capacitor- 10uF, 1206SMD | 2 |
8 | Capacitor-100uF, 1206SMD | 2 |
9 | Capacitor-100uF, through hole electrolytic | 10 |
10 | Crystal-20MHz SMD | 1 |
11 | Resistor- 1 Kohm SMD1206 | 8 |
12 | Resistor- 10 Kohm SMD1206 | 8 |
13 | Resistor- 0 ohm SMD1206 | 30 |
14 | LED SMD1206 | 12 |
15 | LED through hole | 3 |
16 | Push button switch SMD | 1 |
17 | ISP Header | 1 |
18 | Male -Female Header 1X20 | 3 |
19 | Push button switch 6mm | 1 |
20 | 9V Battery snap | 1 |
21 | 16x2 LCD Display | 1 |
22 | 9V Battery | 1 |
23 | 12v bipolar Stepper with threaded rod | 4 |
24 | 12V bipolar Stepper 1 | 1 |
25 | Anodized smoothe aluminium rods | 12 |
26 | Spacers | 12 |
27 | Nichrome wire 32 AWG | 5 m |
28 | Chloroform solvent for sticking acrylic | 5 m |
29 | Bus wires 10 wire | 5 m |
30 | m8 screws | 20 |
I have made a working foam cutter and lathe machine in a stage by stage process. In the third stage i was planning to make a remote controller for my machine which will have a sd-card reader and an LCD display. The controller would be able to remotely monitor and give instructions to my machine. Due to constrain in time i was only able to make the casing of the controller and fit the LCD display to it. I am continuing the project beyond the academy to make a complete product.
Testing the battery case; working perfectly :)
Within the limited time i have made till the second version of my cnc machine and i am currently on the third version. It was great learning experiance so far. I was a great experiance making a machine from scrach. I like to continue developing on the machine and also make other cnc with the knowledge i have gained out of this project.