ELECTRONICS PRODUCTION


Home About me

SOFTWARE

Autodesk Eagle PCB Design: Free PCB design software

GIMP: GNU image manipulation sofware.

TOOLS

Roland MDX-40A: CNC Machine.

PCB MILLING: Getting File ready

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.

PCB Milling: Roland MDX-40A Settings:

  1. Use the FabModules portal to convert the .png image to .rml format
  2. Click on 'PCB traces' to trace the path for milling and set speed to 4mm/s.
  3. Select machine as MDX-40 and carefully move the machine tip by changing the values of 'x0, y0 and z0'. Make sure that 'zjog' stays at 0.
  4. Use a multimeter in 'Diode' mode to check that the tip of the CNC machine is touching the copper plate.
  5. Set parameters as follows:
    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.

  6. Once the machine has finished cutting the internal traces of the PCB. Locate the .png file for the 'cut path' and convert it to .rml format.
  7. Note that for cutting the copper plate, the speed must be set to 0.1
  8. As for the parameters for cutting use:
    cut depth = 1.9mm
    tool diameter = 1mm
    number of offsets = 1
    offset overlap = 50%
          

  9. Click on 'calculate' and process the job. Image below illustrates the milling process.
  10. The final piece

SOLDERING

  1. Prepare soldering station and set temperature.
  2. Solder components carefully.
  3. Check that there are not any bridges with a multimeter.
  4. The finished soldered piece:
  5. PROGRAMMING OF PCB BOARD

    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.

    PROBLEMS

    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.

    FILES

    Internal Path

    Cut Path

    Hello board Eagle file

    Hello board schematic Eagle file