Autodesk Eagle PCB Design: Free PCB design software
GIMP: GNU image manipulation sofware.
Roland MDX-40A: CNC Machine.
In order to mill the copper plate, the circuit design of choice must be imported into EAGLE.
1. Within the EAGLE program, you will need to switch the view to the board. This can be achieved by clicking on the switch-schematic button in the tools panel.
2. Go to view/layer_setting in the menu, select only top and pads from the list and click on apply.
3. Go to options/user_interface and change the layout-background to 'Black'.
4. Go to options/set/misc and disable: display pad names, display signal name, display via lengths, display drills.
5. Zoom in to an appropriate size to cover the window and export the file as an image with high resolution and with 'area window' selected.
6. Open the image on GIMP and use the rectangle tool to crop the image. After cropping the image, export it as an image as step 5. This will be the inner engraving path of the file.
7. Now, another file that will be the cut-out path must be created. Use the rectangle selection tool and click on 'rounded rectangle' so the final cut does not have sharp edges.
8. Images below illustrate the finished files.
Cut depth = 0mm Tool diameter = 0.2mm Number of offsets = 4 Offset overlap = 55% Path error = 1.1 pixels Image threshold = 0.5
Click on 'calculate' button to process the job.
cut depth = 1.9mm tool diameter = 1mm number of offsets = 1 offset overlap = 50%
The final piece
The following steps were taken to set up the board using an Arduino Uno as an ISP programmer
1 - connect the arduino uno to the pc 2 - select the right port and the arduino uno board under tools 3 - under file->examples find and open the arduino as isp sketch 4 - upload the sketch to the arduino 5 - disconnect the arduino from the pc 6 - connect the hello board with the arduino (check the connection schema) 7 - triple check the connections 8 - connect the arduino to the pc 9 - select the right board/processor/frequency -> attiny25/45/85, attiny45, internal 8mhz 10 - under tools select the arduino as isp programmer 11 - double check all the paramters 12 - click to tools-> burn bootloader 13 - write your own program 14 - to program the board do sketch->upload using programmer
Connect the pins correctly to the arduino board as follows:
Make sure you connect VCC to the correct pin. In the picture below, I used a white coloured cable for VCC
Once all pins are connected correctly, connect arduino via the USB port to upload a program using the programmer.
Load the example 'blink' program and change LED_BUILTIN value to 2. The following code should work:
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN takes care of use the correct LED pin whatever is the board used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at https://www.arduino.cc/en/Main/Products This example code is in the public domain. modified 8 May 2014 by Scott Fitzgerald modified 2 Sep 2016 by Arturo Guadalupi */ // 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 }
Press upload and if the board is working, it will blink. Image below illustrates my board blinking.
Pins of my board broke when I used a bit too much force connecting the cables to the Arduino uno.
Luckily, the board was saved by soldering the broken joints back to the board.