Electronics Design

Overview

For this assignment I have to design my own PCB circuit, solder components in it and test it using the Arduino. This is the Schematic I have used in order to create my own circuit.

Group Assigment

Group Assigment Requriments - Use the test equipment in your lab to observe the operation of a microcontroller circuit board (as a minimum, you should demonstrate the use of a multimeter and oscilloscope)
- Document your work on the group work page and reflect what you learned on your individual page

Testing Devices

Testing Devices For the group assigment I have used the following devices for my testing:
- Multimeter: A multimeter, also known as a volt-ohm meter (VOM), is a versatile electronic testing tool used to measure electrical voltage, current, resistance, and continuity.
- Gw INSTEK Oscilloscope: GwINSTEK Oscilloscopes typically feature a high-resolution display, multiple input channels, and a range of measurement and analysis tools, such as waveform averaging, FFT analysis, and automated measurements.
-PicoScope PC Oscilloscope: PicoScope PC Oscilloscopes are designed with intuitive software interfaces that allow users to quickly and easily configure and run measurements. They also offer a range of advanced features, including signal decoding, spectrum analysis, and arbitrary waveform generation, as well as the ability to capture and analyze multiple channels of data simultaneously.

As part of our group assignment, we are required to test multiple devices to obtain various readings. To achieve this, I have opted to employ a multimeter to measure voltage and an oscilloscope to capture DC signals. For the purpose of our testing, I utilized the Adafruit Feather Sense nRF52480 to generate signals and provide voltage. The following code was used to generate the signal:

void setup()
                  {
                    pinMode(13, OUTPUT);
                    pinMode(12, OUTPUT);
                  }
                  
                  void loop()
                  {
                    digitalWrite(12, HIGH);
                    digitalWrite(13, HIGH);
                    delayMicroseconds(100); // Approximately 10% duty cycle @ 1KHz
                    digitalWrite(13, LOW);
                    delayMicroseconds(1000 - 100);
                  }
                  

Multimeter Terminator TMM7201

To measure the voltage, I utilized the Terminator TMM7201 multimeter and configured it to measure up to 20V for reading.The output voltage listed in the datasheet for the Adafruit Feather Sense nRF52480 is likely listed as 3.3V because that is the nominal voltage that the device is designed to output. This nominal voltage is often used to simplify the description of a device's output voltage and to make it easier for users to understand the device's capabilities.

In reality, the output voltage of the device can vary slightly from the nominal voltage due to a number of factors, such as manufacturing tolerances, temperature, and load conditions. Additionally, the accuracy of the multimeter used to measure the voltage can also affect the measured value.

Therefore, a measured output voltage of 3.27V instead of the nominal 3.3V is within the expected range of variation and is unlikely to significantly affect the device's performance.

Gw INSTEK Oscilloscope 1152A-U

To scope the signles, I utilized the Oscilloscope 1152A-U oscilloscope and configured it to scope to 500mv for reading. There are several possible reasons why there may be noise in the output signal scoped in the Gw INSTEK Oscilloscope 1152A-U from the Adafruit Feather Sense nRF52480.

Here are a few potential causes: Grounding issues: Noise can be caused by grounding issues, where there is a difference in ground potential between the Feather Sense and the oscilloscope. This can create a ground loop, which can result in unwanted noise in the signal.
Interference: There may be interference from other electronic devices or equipment in the vicinity, such as motors or power supplies, which can introduce noise into the signal.
Signal quality: The signal being output by the Adafruit Feather Sense nRF52480 may not be of high enough quality, which can result in noise in the output signal. This could be due to issues with the signal source, such as poor shielding or inadequate filtering.
Oscilloscope settings: The oscilloscope settings may not be optimized for the particular signal being measured, which can result in noise. For example, the trigger level or timebase settings may not be set correctly.
To troubleshoot the issue, you can try the following steps: Ensure that the Feather Sense and oscilloscope are properly grounded and there are no ground loops.
Move the Feather Sense and oscilloscope away from other electronic devices or equipment that may be causing interference.
Check the quality of the signal being output by the Feather Sense, and ensure that it is of high enough quality.
Adjust the oscilloscope settings to optimize them for the particular signal being measured.

PicoScope PC Oscilloscope

To scope the signles, I utilized the PicoScope PC Oscilloscope oscilloscope and configured it to scope to 5v for reading. To enable the display of signals on a PC, it is essential to download the PicoScope 7 software for this device.

There are several possible reasons why there may be less noise in the output signal reading on the PicoScope PC Oscilloscope compared to the Gw INSTEK Oscilloscope 1152A-U, even when both are connected to the same output signal from the Adafruit Feather Sense nRF52480.

Here are a few potential causes: Input impedance: The input impedance of the PicoScope PC Oscilloscope may be higher than that of the Gw INSTEK Oscilloscope 1152A-U. A higher input impedance can result in less loading on the signal source, which can reduce noise.
Bandwidth: The bandwidth of the PicoScope PC Oscilloscope may be higher than that of the Gw INSTEK Oscilloscope 1152A-U. A higher bandwidth can allow for more accurate signal measurements, which can reduce noise.
Signal processing: The PicoScope PC Oscilloscope may have more advanced signal processing capabilities than the Gw INSTEK Oscilloscope 1152A-U, such as digital filtering or signal averaging. These capabilities can help to reduce noise in the output signal.
Grounding issues: The Gw INSTEK Oscilloscope 1152A-U may be experiencing grounding issues that are causing noise to be introduced into the output signal. This can be due to a difference in ground potential between the oscilloscope and the signal source, or a ground loop.
To further investigate the issue, it may be helpful to compare the specifications of both oscilloscopes, including their input impedance, bandwidth, and signal processing capabilities. Additionally, it may be useful to check the grounding of the Gw INSTEK Oscilloscope 1152A-U and ensure that there are no ground loops or other grounding issues present. ## Individual Assigment
Individual Assigment Requriments - Design a development board to interact and communicate with an embedded microcontroller

In this individual assigment, I will discuss my experience with downloading and utilizing Eagle software for designing PCBs and schematics, focusing on the development of a board to interact and communicate with an embedded microcontroller, specifically the Seeed Xiao NRF52840. I will outline the process of downloading and setting up Eagle software, as well as the design steps involved in creating the development board.

First, I downloaded Eagle software from the official Autodesk website and quickly set it up on my computer. With its user-friendly interface and extensive component library, Eagle proved to be an excellent choice for PCB and schematic design. I utilized the software's features to design a development board tailored to interact and communicate with the Seeed Xiao nrf52840 microcontroller.

The design process involved creating a PCB layout and schematic diagram using Eagle's intuitive tools. I carefully considered component placement, routing paths, and power distribution to ensure optimal functionality and performance. Additionally, I incorporated GPIO pins, communication interfaces (UART, SPI, I2C), and power supply circuitry to enable seamless interaction and communication with the embedded microcontroller. Overall, Eagle software provided an efficient and reliable platform for designing the development board, allowing for a successful implementation of the Seeed Xiao nrf52840 microcontroller.

Choosing an appropriate track width size, approximately 0.4mm, is crucial when designing a PCB to be milled with a machine capable of handling thinner tracks. This track width offers several advantages, including accurate milling without damaging surrounding areas and providing sufficient spacing for soldering components onto the board. It enables precise milling while accommodating intricate and compact designs. Additionally, the 0.4mm track width allows for reliable soldering, ensuring proper solder flow and strong connections between component leads and tracks. It also helps maintain optimal voltage performance by minimizing voltage drops and facilitating smooth power distribution throughout the development board designed for the Seeed Xiao NRF52840 microcontroller.

Components

Qty Description
3 1002 SMD Resistor
2 0664 SMD Resistor
1 1uf Capacitor
1 20 MHZ Xtal
1 ATtiny 44
1 FIDI (6 Pins)
1 ISP (6 Pins)
2 Buttons
2 LEDs

PCB

A printed circuit board (PCB) is a laminated sandwich structure of conductive and insulating layers. PCBs have two complementary functions. The first is to affix electronic components in designated locations on the outer layers by means of soldering. The second is to provide reliable electrical connections (and also reliable open circuits) between the component's terminals in a controlled manner often referred to as PCB design. Each of the conductive layers is designed with an artwork pattern of conductors (similar to wires on a flat surface) that provides electrical connections on that conductive layer.

Modes Selection

The machine software can read only rml file. So we required different methods to converts the file into rml format. This modes are develop by Fab Academy and it is used for all cutting machine.

  • Going to the modes website

  • Select programs

  • Selecting Open Server Module & Connect the Output file to the Input file

  • Double checking the connections.

  • Uploading the png file, adjusting the dpi to have certain size and then press calculate to check how is the track going to be.

  • Before we start drilling we need to adjust the X, Y & Z. In addition to setting up the cursor step and not to forget the Cutting enabler.

  • Before we start cutting we need to upload the file that we have generate from the website.

Roland SRM-20

The Roland SRM-20 is a next-generation desktop mill that boasts a micro-step motor drive system for clean and precise contours and a great feed rate. We can multiple materials using this machine, but for this assignment I have used copper sheets.

Copper Sheets in PCB

In PCBs, the copper sheet is laminated in the non-conductive substrate. We can say that PCB supports the communication between various parts of electrical components because it helps signals to follow the pathways. PCBs are designed in such a way that they can connect several points in electronic devices. For the signal flowing purpose, solders are used for making the connection between electronic devices and PCB surfaces. Solders are also strong mechanical adhesive because of the metal used in them.

Components

Qty Description
3 1002 SMD Resistor
2 0664 SMD Resistor
1 1uf Capacitor
1 20 MHZ Xtal
1 ATtiny 44
1 FIDI (6 Pins)
1 ISP (6 Pins)
2 Buttons
2 LEDs

After cutting the PCB and prepared the components, its time for soldering. Things need to consider while soldering are:

  • Don't over solder the pins.
  • Making sure the soldering don't merge multiple tacks together. (You can double check it with the multimeter)
  • Some Components have Positive & Negative, making sure its connected in the right way.
  • Example of the LED green line as it showing its the Positive side.
  • For the ATtiny 44, double check you connected it in the right side.

After completing the soldering and making sure all the connection are connected correctly, I have tested my circuit with Arduino using this code. Everything was working fine, but there was delay which causes by the code setup for frequency.

void setup() {
                    //start serial connection
                    Serial.begin(9600);
                    //configure pin 3 as an input:
                    pinMode(PA3, INPUT_PULLUP);
                    pinMode(PA7, OUTPUT);
                  
                  }
                  
                  void loop() {
                    //read the pushbutton value into a variable
                    int sensorVal = digitalRead(PA3);
                  
                  //Contolling the LED from the pushbutton:
                    if (sensorVal == HIGH) {
                      digitalWrite(PA7, HIGH);
                    } else {
                      digitalWrite(PA7, LOW);
                    }
                  }