Electronics Design
Group assignment: use the test equipment in our lab
Multimeter and Oscilloscope
Fabio and Jonas uses the multimeter and oscilloscope. Their work is documented on Jonas' website
Logic analyzer
Installation
Our fablab has a 8 channels logic analyzer from Sparkfun.

I first followed their tutorial:
I started PulseView (that I had installed during Embedded programming week).

By clicking on
- In Step 1, select "fxlafw (generic driver FX2 based LAs) (fxlafw)"
- In Step 2, select "USB"
- In Step 3, click on the "Scan for devices using driver above"
- In Step 4, "Saleae Logic with 8 channels" should appear. Select it and press "OK"
- if the logic analyzer doesn't appear in Step 4, the tutorial says a driver should be installed, following these instructions.
In my case, it appears immediately.
However, even if the logic analyzer was recognized by PulseView, it was unable to run the device.

As I now know that it is a Saleae logic analyzer, I searched Saleae website.
I found that they have a free software for their logic analyzers: Saleae Logic 2.
I install it and it immediately works!
Now that I managed to use the logic analyzer with Logic 2, I tried again with Pulseview.
It works now. My guess is that it was a driver problem.
Simple test with an UART
I wrote a simple MicroPython code to send a message on a RP2040 UART:
from machine import PWM, Pin, UART
import time
uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
while True:
uart0.write("Hello World!\n")
time.sleep(0.1)
In Saleae Logic 2, you can add a UART analyzer:

- Click on the Add Analyzer button (encircled in red)
- In the drop-down menu, select Async Serial
- Select the channel connected to the UART signal to decode
- Change the other parameters to match the configuration of the RP2040 UART
- The decoded signal appears directly above the raw signal in the main window
- It also appears in the terminal window in the bottom right

PCB design
As an electrical engineer, I have 20 years of experience in electronic circuits design.
I already used Orcad Designer, Altium Designer, Eagle and KiCAD.
KiCAD is the tool I use for several years.
For this week assignment, I designed a acquisition system for a force sensor, based on a Xiao ESP32-C3:

I tried to use components form the Fabacademy library.
However, I needed to use an instrumentation amplifier. As I didn't find one in the library, I took one I already know: the INA818.
I needed to connect the amplifier output to an analog input of th ESP32. I used the Xiao pinout to find that the pin D0 is also the A0 analog input:

I made all the needed connections and associated footprints for the custom components:

I then launch the Electrical Rules Check:

I had 2 errors. They let me know that the 3V3 and 5V pins of the Xiao are not connected to a power source.
Indeed, they are defined as power inputs. In fact, that can be both power inputs or outputs.
I uses the 5V pin as a power output.
These errors could be solved by changing the pin type in the symbol, as bidirectional or power outputs.
Next, I open the PCB editor and imported the components from the schematics:

I then defined the Design Rules to match those of the fab lab:

The minimum clearance is defined by the diameter of the tool we'll use to mill our PCB (0.6 mm).
I chose 0.5 mm as minimum track width,to allow a track to go under a 1206 SMD resistor (distance between the 2 pads are 1.8 mm).
I also define 0.5 mm as the default track width:

I started to place my components, starting with the input connector:

I quickly saw that my signal inputs crossed each other. I decided to switch my connector to solve tis problem.
I mirrored J1 in the schematics and updated the PCB.
I placed the other components and started routing.
The first problem I encounter is the size of the AD8605:

We see the clearance zone around the pads (the red rounded rectangles). They are crossing each other.
Hence, it is impossible to route a track to pin 2.
I decided to change the op-amp for one with a bigger package:

I was then able to route the rest of the PCB.
I launched the Design Rules Check:


Warnings are related to silkscreen layer objects. Hence, they are of no interest for us.
The error indicates that the ground plane is divided in 2 separated area, because of the tracks.
I colored one of these area to highlight it:

to solve this problem, I added a 0 ohm resistor with both pins connected to the ground. I place it across a track to connect both ground areas:

Here is the final schematics:
