Definition Printed Circuit Board
A board on which the finalized circuit wiring is recorded in this way is generally called a “printed circuit board” (PCB).A printed circuit board refers to only one plate-shaped board, and you can either make a printed circuit board from a raw board using chemicals yourself, use a dedicated printer, or ask a board manufacturer to make it. Currently, it is the mainstream to ask a trader for mass production, but even if it is a small lot (around 10 pieces), if it is a Chinese trader, it will be available from several thousand yen including shipping fee in about a week It is attractive that it can be made very easily, such as when it arrives.
However, in order to actually establish it as a circuit, it is necessary to check USB Wifi adapter PCBA assembly design guide and mount the components on the printed circuit board.
In this case, it is necessary to solder the parts to the printed circuit board by yourself, or in the case of small parts such as chip parts, solder them all at once by a method using a heating device called reflow, but mass production is required. In that case, it is difficult to do it one by one. Also, even if it is not mass-produced, it is difficult for beginners to introduce equipment for reflow, and it is difficult to get used to soldering chip resistors.
Therefore, I would like to try USB Wifi adapter, which handles everything from printed circuit board manufacturing to component mounting (assembly). Compared to unassembled PCBs, it costs more money and time to obtain, but it is very attractive that you can receive the original circuit that actually works just by creating and sending data on the PC.
The introduction has become long, but let’s makes it now!
Overall Flow of USB Wifi Adapter Assembly Design
- Decide the specifications of the board you want to make.This time I will make a microcomputer board based on ESP32 .
- Create circuit data using board design software.This time we will use the free version of Autodesk Eagle.
- Determine the supplier that handles PCBA, and check the manufacturing regulations according to the service.
- Prepare the data necessary for manufacturing such as Gerber data output, component selection and list creation, and mounting instructions.
- Send the necessary data via email or web form and get a quote.
- We will consult with you about proposals for alternative parts, the number of products to be manufactured, the shipping method, etc.
- The finished product arrives in about a month!
The pattern diagram of the board created this time and the actual finished product will look like this. It’s hard to imagine even if you follow the creation procedure suddenly, so please read it while referring to this finished product.
About Board Design Foftware “Autodesk Eagle”
KiCad is often used in circuit design, and there are many cases of introduction on the net, but here I will try using Autodesk Eagle as my personal preference .
The major features are that you can basically proceed with the circuit design just by operating the mouse, and that you can use a powerful automatic wiring tool called “AutoRouter”.
Since we will explain the overall flow of PCBA here, we will not touch on the detailed operation method of Eagle.
The environment this time is version 9.5.0 of Autodesk Eagle running on macOS.
Please note that some procedures and UI may differ from those running on older versions of Eagle and Windows.
Think About the Rough Composition of USB Wifi Adapter
Let’s make a note of the dream of “I want to make such a board”.This time, we considered the following features as a draft specification.
- I want to use ESP32 for the main chip
- I want to use the USB-C terminal to connect to a PC
- I want to use the Grove terminal
- I wish I could switch the voltage between 3.3V and 5V
- What I want as input / output attached to the board from the beginning:
- Output: White LED, full color LED, infrared LED
- Input: Button switch / brightness sensor
In addition, the following factors are also considered in order to secure the essential functions as a development microcomputer board.
- Reset button
- Small LED indicators for serial transmission and reception and power supply
- Pin socket (to pull out GPIO)
- USB serial conversion IC and automatic writing device
Let’s actually design!
About Preparation of Parts Data (Library): USB Wifi Adapter Assembly Design
Eagle has a “parts library”, from which each part is placed on the circuit diagram, connected, and a circuit is created.
Common parts such as LEDs and resistors are already in Eagle. However, characteristic parts such as “ESP32” and “FT231XS” serial conversion IC are not prepared.Therefore, it is necessary to prepare the data of such parts in advance.You can create the part data yourself, but you can search and download it from the Internet.
This time, we will use the above service called “SnapEDA” to download and use the data of the following parts.
- USB-C terminal
- WS2812B (Full color LED)
- LDL1117S33R (power supply IC)
- NJL7502L (brightness sensor)
Also, the Library Manager in Eagle will show you the libraries that you can download from the official online service. This time, we will download all of the “SparkFun Library” and “Seeed Open Parts Library” from them. These libraries are very useful because they have a lot of general-purpose parts. The data of the following parts is extracted from this library group and used.
- Infrared LED
- Pin socket
- Grove socket
There are many other libraries that you can download directly from the Library Manager, so grab as many as you need.The specific method of importing these libraries will be explained in detail later.
Create a New Project
Let’s touch Eagle now!
The project is roughly divided into two screens, “Schematic” and “Board”. First, the former determines the electrical wiring between the parts and creates a circuit diagram. Next, move on to the latter, determine the actual board size, physically place the parts, and create a concrete board look.
In addition, there is a function to create the parts library mentioned above and load the downloaded one, but this cannot be executed unless the project is created once. As a preliminary preparation, let’s proceed to the creation of a new “Schematic”.
Open Eagle and first go to the menu “File”-> “New”-> “Project” to create a new empty project (Empty Project). Then open File → New → Scematic to create a new empty schematic. Now, before creating the circuit diagram, let’s first load the necessary parts library.
How to Load a New Library for USB Wifi Adapter Assembly Design?
To search with SnapEDA, first register as a user. Please be assured that you will not receive any junk mail. After registration, type “ESP32” as an example from the search screen to display a list of hit libraries. The list will show a lot of similar model numbers and variants, so make sure you’re not mistaken for the part you want to use. In the case of ESP32 this time, many hits due to the difference in memory capacity, etc.
This time, I chose the “ESP32-WROVER-B” module, which has a lot of memory and is well-suited for skill. Eagle’s parts library has several types of data for each part, but it must contain at least two types of data, “Symbol” used in the circuit diagram and “Footprint” used in the pattern diagram. .. The circled area in the image above shows which data is included, so be sure to select data that includes at least these two.
After deciding which library to use, click the download button, select the file for Eagle and download it.
Go back to Eagle and open the Library Manager by selecting “Library”-> “Open Library Manager” from the menu.Select the “In Use” tab in the library manager window and click the “Browse …” button in the middle to open the file selection window. Open the library you downloaded from SnapEDA earlier. Then, it will be read as part data.
You can also select the Available tab to see the libraries that you can download directly from the official online service. This time, as mentioned above, click here to select all the ones with “SparkFun-” at the beginning of the name (SparkFun library) and the ones with “OPL_” (Seeed open parts library), and then right. Click the “Use” button below to download and automatically load into the project.
Let’s return to the “Schematic” screen. In the initial state, a file called “untitled.sch” is generated and opened.
The basic operation is to click “Add Part” on the left menu, select a part from the window that appears, paste it on the circuit diagram, and connect the parts with “Net”. There are many other detailed sites for specific operation methods, so here we will explain the key points in the basic design of the microcomputer board that is often used in the Arduino development environment.
Grid and “mil” Unit Settings
The hole spacing on the board and the terminal spacing of electronic components are often 2.54 mm, except for special ones. This is because it is designed on an inch basis, and 2.54mm is just 0.1 inches.
Therefore, it is often convenient to set the length standard to inches in board design, but inches are not suitable for showing fine values as a unit. Therefore, the unit “mil” is often used in this field.
1mil = 1/1000inch = 0.0254mm
Using this unit, a terminal spacing of 2.54 mm is equivalent to 100 mil.
In order to design in mil units, you can place parts at mil intervals by first setting the “grid” in “mil units”. If you set it as above, the parts will be snapped to the grid just like dots, and you can arrange them neatly. Since the circuit diagram is shown here, the mil unit is not so important, but in the next “pattern diagram creation” (actual board design) of this circuit diagram design, the actual component spacing will be determined by this grid. Therefore, it is very important.
Let’s Place Common VCC and GND first
Some of the parts available by default are marked as “5V” or “GND” as shown. This indicates common VCC (+ of power supply) and GND (-of power supply), and the power supply line from USB or external power supply supplies electricity to the common power supply by connecting the line to this symbol. You will be able to do it. Conversely, elements that require a power source, such as ICs, can be driven by receiving a power source by drawing a line from this symbol.
Actually, all VCC and GND are connected, but if they are connected as they are on the circuit diagram, it will be very difficult to see, so it is regarded as “connected” with a common symbol like this. I will.
These power system symbols are stored in the “supply1” and “supply2” groups in the Add Parts window.
For the same reason, in addition to VCC and GND, by setting the “terminal label” to the same, it is possible to specify that the wires are electrically connected even if they are separated on the circuit diagram. To do this, you can connect by putting a little “Net” from the end of the part, stopping it, clicking the end on the “Label” and specifying the same name.
Pay Attention to the “Package” that Indicates the Component Size and Terminal Spacing
In board manufacturing, unlike when making a prototype circuit on a breadboard, it is almost always possible to reduce the size and cost by using a lot of “surface mount components”. Even if it is a surface mount component, for example, a transistor with the same function, many packages with different sizes are offered. These have equivalent symbols on the circuit diagram edited by “Schematic”, but when the layout diagram (actual component arrangement) edited by “Board” is performed later, the size of the component and the position of the terminal are changed. It will change.
When introducing a library of parts, be aware of the differences between these packages.
The most commonly used components for surface mounting are chip LEDs, resistors and capacitors. These are separate from the package list above and are often indicated by a 4-digit number
Use a Power Supply IC to Split the Voltage into Two Systems
Many microcomputers use 5V or 3.3V as the power supply voltage. The ESP32 of the microcomputer board created this time is driven by 3.3V, but the power supply by USB is 5V, so the power supply cannot be connected as it is. Therefore, we use an IC called a “regulator” that converts the power supply. There are many types of regulators depending on the input voltage, output voltage, output current, etc., but this time I chose the one that converts from 5V to 3.3V according to the chip specifications.
In addition, the ESP32 can handle WiFi and Bluetooth at the same time, so it requires a relatively large amount of current. Therefore, I chose a slightly larger regulator with a maximum output current of 1.2A. Also, if a regulator is used, there are three types of power supply lines (VCC before conversion, VCC after conversion, and GND), and the power supply may become unstable. Therefore, as shown in the figure, construct the entire power supply circuit using diodes and capacitors. is needed.
Although it is different from this time, a 5V microcomputer such as Arduino Uno’s Atmega328P does not require a regulator only when it is driven directly from USB, but it is for when you want to connect a sensor operating at 3.3V later. It may be convenient to have a 3.3V regulator installed in the.
USB –Serial Conversion IC –How to Connect the Microcomputer
Communication with a microcomputer and program writing are basically performed via serial communication, but since USB connection is the mainstream in recent PCs, an IC that converts USB and serial connection is required (built-in conversion function). There is also a microcomputer). USB sends and receives with two signal lines called a differential pair, but serial communication has a dedicated receive line and a dedicated transmission line, as well as terminals that indicate whether data can be accepted on each transmission and reception side.
It may seem difficult, but basically, as shown in the figure, the USB serial conversion IC is placed in the center, and the USB signal lines are connected between plus and minus. For the serial signal line, the RX of the conversion IC is connected to the TX of the microcomputer, and the TX of the conversion IC is connected to the RX of the microcomputer through the current limiting resistor.
In the case of USB Type-C, there are two pairs of USB differential pairs, but only one pair is used depending on the insertion direction. Therefore, you can connect the plus and minus to each other.
Microcomputer Startup Mode Selection Button
Serial communication is basically used between the microcomputer and the PC, but in order to distinguish between program writing and data transmission / reception within the program, the voltage level of a specific pin is read at startup and the mode is switched according to that value. It has a function.
Many microcomputers such as the ESP32 this time are designed on the premise that a specific pin is always HIGH (the same voltage as VCC) in a circuit called “pull-up”, and that pin is “LOW” (GND and GND) when the power is turned on. It is designed to start in program write mode only when the voltage is the same. In addition, there is a “reset pin” that uses the same pull-up circuit to restart the microcomputer in any case when it goes LOW even though it is always in the HIGH state.
By connecting this pull-up circuit to GND via a switch button, it is possible to configure a circuit that shifts to the LOW state only when the button is pressed. By using this, it is possible to realize a circuit with a function that allows you to immediately switch to program write mode by pressing the reset button once while keeping the “specific pin” LOW.
In the ESP32, this “specific pin” corresponds to the pin “IO0”, so on this board, pull-ups and button switches are mounted on each of the “RESET (ENABLE)” pin and the “IO0” pin.
Serial Automatic Writing Device
Most of the microcomputer boards that can be handled in the Arduino development environment are equipped with this “automatic writing device”.
An “automatic writing device” is a circuit that automatically performs all of the above-mentioned “startup mode selection”. Please refer to the link below for detailed behavior of this device.
If you have an automatic writing device, don’t you need a button? It seems that these buttons are very useful because they can be used to simply reset the operation of the microcomputer, or IO0 can be handled by the user program, so the implementation is left as it is. ..
Checking the Function of Individual Pins of the Microcomputer
Some of the ESP32 pins of the microcomputer board designed this time are directly connected to LEDs and sensors on the board, while others are connected to pin sockets as freely available GPIOs.
It is important to note here that the available functions are determined or specific roles such as “supports both input and output”, “input only”, “PWM support”, and “mode changes depending on the pin state at startup” depending on the pin. It is a point that is equipped with. When connecting to sensors or pulling out to GPIO, you must properly select which pin to use.
As an example, the ESP32’s IO35 pin is an input-only pin, so even if it is connected to the built-in LED (output) on the board, it will not be able to illuminate. In addition, the IO0 pin can be used for both input and output, but if it is pulled down for reasons such as the sensor being connected at startup, the program execution mode cannot be entered and the microcomputer cannot be operated at all.
Electrical Error Check
After designing the circuit, perform “ERC (Electrical Rule Check)”. As the name suggests, it checks for electrically incorrect connections, and when you click the icon at the bottom of the left column, a separate window will appear and the check results will be displayed. There are quite a few warnings in the results list, but most are fine, except for dangerous ones such as a direct 5V and GND connection.
Create an Actual Board Layout (Pattern Diagram)
After completing the ERC, let’s place the parts on the actual board!
Personally, this is the process that gives me the most tension.
Click the button labeled “SCH / BRD” at the top to create a new pattern diagram file and open the “Board” screen. Immediately after the pattern diagram is generated, the default size board and the parts on the “Schematic” screen are arranged in a miscellaneous manner. From this state, we will design the entire board by arranging the parts on the board and wiring.
In the free version of Eagle, the size of the board that can be created is up to 80 ㎠, but as an example, the size of Arduino MEGA is about 54 ㎠, so as long as you make a small board individually, you are not so concerned.
Consider the Placement Conditions of Parts
There are various parts, but even if you think “I want to place this part here!”, There are some parts whose placement position is fixed to some extent. The following parts that should be placed on the outside of the board are subject to these conditions.
- USB connector
- Directive infrared LED, light receiving element, etc. (when facing horizontally)
- Surface mount antenna
- GPIO pin socket
In this way, elements that generate physical interaction with the outside are basically placed on the outside.
Based on this, let’s actually arrange the parts.
First, use the “Move” tool to place the parts on the default size board, and then place them in the following order so that they are packed closer to the lower left.
- Place the parts that should be placed on the outside
- Place relatively large parts such as microcomputer chips on the inside
- Place a small object such as a chip resistor in the gap between 1 and 2 above.
When the parts are arranged under the above conditions, it becomes like this.
After the placement is complete, the next step is wiring the parts.
At the end of the above placement, a thin yellow straight line is connected between the terminals of each part, which indicates the electrically connected part of the part edited in the first “Schematic”. By drawing an actual line on the pattern diagram on the “Board” screen to show the actual wiring, this yellow line disappears. The theory is to wire one by one by hand, but this time I will use the “automatic wiring” function, which can be said to be the main feature of Eagle.
Click the “AutoRouter” tool button, which indicates automatic wiring, and a small window will appear. If you set the same as above in this window and press the “Continue” button to go to the next window, you will be taken to the window where the calculation candidates for automatic wiring are listed. If you press the “Start” button here, the wiring according to various rules will be calculated automatically in order.
Basically, selecting the top candidate (TopRouter) in this list and clicking “End Job” will complete the wiring, but if the wiring rate is not 100%, wire somewhere. There is a part that could not be completed. In this microcomputer, the part directly below the USB-C terminal is like that, and the terminals that could not be wired are still connected by the same thin yellow wire as before wiring. In such a case, you have to manually connect the wires well so that the yellow wire disappears.
Also, if multiple wiring candidates are 100%, all candidates are available, but if the number of “Vias” is extremely large, the price will be high when actually making a manufacturing request. It seems that it may go up.
USB Wifi Adapter Design Completed
If you can proceed to this point, the core data for making a microcomputer board is complete! Next time, I will explain how to actually place an order with a board manufacturer and create the auxiliary data necessary for that. In some cases, you may need to redo the “wiring” you did earlier, so be sure to remember it.