Weekly Summary - Kenny Na
Introduction
Brief documentation of what Kenny Na’s been up to each week to help in synthesis of final report and so @Daniel Puratich can visualize where the time is going and help resolve roadblocks. Formatting is expected to be similar to Weekly Summary - Meghan Dang .
Table of Contents
Related Resources
Weeks
Week 1
Started and finished WARG Electrical Bootcamp
Selected an IC and connectors from DigiKey and incorporated Bootcamp library
Created footprint for the regulator IC from scratch and imported 3D model
Created a schematic and PCB layout for the LDO regulator device
Beginning to build a conceptual and more scientific understanding of electronics and power through lectures from Daniel and Kevin, as well as online resources in Confluence, etc.
Parallel & series, resistors, (decoupling) capacitors, inductors, DC and AC, operational amplifiers
Received new material in advance for the next project: developing a buck converter for the fixed-wing aircraft
Week 2
Started next project: 12V to 5V at 4A buck converter + ELRS system
Spent some time conceptualizing how a buck converter works
Understanding switching regulators, duty cycle, feedback/control system, the role of the inductor in the buck converter schematic (reversing its polarity), the diode in an asynchronous buck converter, the difference with synchronous buck converters
Spent a bit of time understanding the ExpressLRS TX
Understanding what a backpack is, simplex/half-duplex/full-duplex transceivers, crystal oscillators in microcontroller designs
Began schematic design for project
Completed basic buck converter design, trying to understand what a feedforward capacitor really does for the output voltage (still working on that)
Created an LDO regulator to step from 5V down to 3.3V at 500mA to power the microcontroller
Began work on laying out the RF IC (SX1281), creating the IC, a crystal, and a U.FL connector in WARG’s library
Working towards the rest of the design by viewing example schematics online, such as:
Found out a little more about capacitors and inductors by viewing the Input Filters presentation with Daniel
Gain vs. frequency for inductors and capacitors, adding multiple capacitors in parallel, resonance frequencies
Week 3
Finished the schematic capture for the 12V-5V @ 4A Buck + ELRS TX project
Connected data lines between MCU and RF IC
refined resistor and capacitor selections, added a bulk capacitor
Added net labels to each of the nets in order to make future PCB layout easier
Finished adding the connectors, with 2x XT60-PW-F @ 12V for the motors and 6x GND, 5V, and PWM for servos
Needs some final edits to the styling and a schematic review from EFS team to make sure the pinout is correct/possible
Working on simulating the input filter (decoupling capacitor network) for the buck converter in LTspice
Beginning PCB layout for the project.
Defining physical board requirements - 30.5x61mm, 4 layer, single-sided (for ease of design? mounting? I mean you could use standoffs)
Week 4
Final edits to the schematic made, started adding notes to the page so design decisions are easily explained, reviewed specs one more time
sorted out the connectors through GPIO 0/2/15 and U0R for EFS team
Finished work on the input filter simulation - frequency domain and time domain
Thinking about system level simulation, all of the factors of impedance throughout the circuit
Found the 22uF cap was (1) not enough for the current power requirements and (2) didn’t even have any ESR/ESL numbers in the datasheet, so we switched to 47uF bulk cap
Finished 4 tries of buck converter component layout
30.5x60.5mm initially, and then 30.5x30.5mm worked so we switched to that
system-level thinking: placing 1x3 connectors next to the XT60-F since they will go across the sides of the fixed wing plane
Week 5
Have done a total of 9 tries at layout now, landed on a final working design
This one has an efficient placement of the buck converter, good placements of header pins, connectors were moved to the back of the board (as well as the feedback loop for the buck), the ESP antenna at a board edge, RF antenna placed nice and close to the SX1281 RF IC, nice large polygon pours for the 12V/5V/3V3 power runs
Minor schematic changes for readability
Participated in board bring-up and used solder paste + stencil for SMT soldering
Rewrote the WARG EE onboarding from memory for fun
Week 6
Utilized SaturnPCB software to find appropriate trace width for impedance matching at 50 ohms
Finished the final revision of the PCB layout. Made many edits and simplifications to schematic
Reviewed datasheet for buck, increased FB resistor values (doubled), ended up leaving calculated Vout value at 5.1V.
Watching TI layout recommendations.
Fully finished 12V -> 5V @ 4A Buck Converter + ELRS Board!
Started learning about USB-C PD protocol and new project: USB-C Sink
Week 7
Just kidding on completing 12V -> 5V @ 4A Buck Converter + ELRS Board
Review on ExpressLRS Discord prompted an MCU change to the ESP32-C3
Stronger PWM signalling than 8285 and active support for new ELRS hardware targets
Added new parts and read through Expressif’s Hardware Design Guidelines for ESP32-C3
Decoupling capacitor selection for external crystal, inductors in series, matching network
Redid the entire microcontroller schematic and layout…
Researched 4 USB-C PD IC options for USB-C Sink project.
Created a decision matrix to narrow down what chip to use.
Week 8
Started and finished schematic for USB-C Sink project.
Researched general USB-PD controller behaviour, gate/FET behaviour, PD arbitration
Read the TPS25730 datasheet and found a >100uF bulk capacitance on the VBUS/PPHV line can cause inrush current spikes during initial connection of power to the sink device
Went down a rabbit hole of USB-PD specification and USB 3.2 inrush current requirements
Found out the TPS25730x handles inrush current limiting by itself by employing a Slow Start (SS) behaviour of slew rate limiting and external gate control (and trying to confirm this with TI rep)
Learned about the concept of open drain output from a FET.
Drain pin and pads on the PMIC.
Began to understand I2C protocol from an electrical level
I2C has data line and clock line, where the data is synchronized with the clock.
I2C bus is a form of an “open drain output”, where the bus is either left floating (High-Z, or High Impedance), or pulled to ground using a FET internal to the IC.
Open drain outputs must be pulled high externally to enable use of the line (floating potential is too low for a a slave/master to switch to ground and have that pull down be readable by anything on the bus)
The value of the pull-up resistor used to enable communications on the I2C bus is variable, and depends on the total capacitance of the bus and the frequency the bus needs to operate at.
This is because naturally, a lower resistance will charge/discharge the capacitance of the cable/connector quicker, giving a cleaner, steeper edge during pull-down sequences.
It makes sense that lower-frequency I2C transmission would have more relaxed resistor value requirements, allowing slower rising edges and (therefore) higher resistor values.
Master and slave are connected on the bus, generally only one master (more is complicated)
Only the master can initiate and end data transmission using a start/stop sequence
The slave will send its address with 7 bytes (127 addresses), one read or write bit, and then an acknowledge (ACK) bit to confirm viability of the data transfer
Week 9
Started and finished PCB design for USB-C Sink project.
A few layout passes, some changes to stackup (4-layer due to controlling impedance)
Schematic changes to adjust LED behaviour/brightness, and input/output capacitors
Good to check the IC EVM and see what kind of capacitance you can get away with
2 passes at routing to get it right, CC pins impedance matched to 50 ohms and avoiding plane splits (more justification in the project documentation)
Very nice silkscreen this time, improving the PCB aesthetics (meaningless lol)
Adding labelling for ease of use, as well as I2C programming pads, being aware of how the device is going to be used while implementing features
Generally thinking/watching more content about how to route high-speed signals in PCBs
Improving the conciseness and clarity in my project documentation
ValidatedSingle Servo Driver buck functionality using the Single Servo Driver Test Plan
Daniel explained how to effectively use the benchtop DMM and power supply
with DMM, ground and test for shorts on data pins or for low resistance on power rails.
power rails will have high resistance to ground as the return path varies.
powering the buck on Single Servo Driver with power supply, pretty straightforward stuff I guess I was afraid of blowing shit up before
slowing cranking it to 30V at 0.1A then testing output for 5.7V, beautiful when it works
Nothing with oscilloscope or eload yet, neither did I do any efficiency testing (sad, gg)
Attending the big 2024-11-02 Competition Flight Test, observing comp prep happening in the bay throughout the week
Created 4-pin CAN harness for the LEDs connecting to the Pixhawk on Peggy
Cool standardization documentation for Pixhawk standard
Created 5-pin JST/CAN to 2.54mm pitch receptacle headers
Holy shit I suck at soldering
Attended Jerry Tian’s Validation Presentation
Was barely awake for this one unfortunately, however a lot of interesting concepts were discussed
4 wire testing
concept of e load
step-based efficiency validation and linear efficiency validation
Briefly revisited buck converter/switching mode power supply fundamentals, component features
Daniel showed discontinuous conduction mode on a synchronous buck converter on whiteboard
Forced PWM mode: switching is “continuous”(???) but is specified as a type of discontinuous conduction mode formally, lets the inductor output current go negative (???) (reverses current flow?)
Diode emulation mode: stops current from flowing negative (backwards), IC will turn output off when current hits 0 (near 0), and stays off until next cycle to maintain its average target output current (???)
Got intrigued, went back online to find some resources on buck
GreatScott video on buck converters, uses Arduino + large breadboard-able parts to demonstrate switching converter solution, good review also cool Arduino demo
Most basic form of switching regulation: pure PWM; modulate the Arduino pin at a high frequency with 50% duty cycle to drop the voltage down to half (5V → 2.5V in this case)
To do a higher voltage, bring in a FET to be able to handle external source voltage and faster switching frequency
Bring in an inductor to resist changes in current - switch ON, source conducts
switch OFF, inductor changes polarity and continues current output, flowing through load and diode back to the inductor
This diode useful so as to not conduct when buck is switched ON
When the inductor is appropriately sized (H) and the PWM frequency is high enough, the inductor is not allowed to fully collapse its magnetic field before the next switch ON cycle… giving a nice rough output at a specified voltage and current
clean this output up with a good capacitor
lastly, feedback voltage divider is used to send back to the arduino and create a function to continuously check and adjust output duty cycle to hit the appropriate target V or I
TI applications notes on calculating buck efficiency
Power in a buck converter is primarily lost in the following manners
Inductor conduction losses due to Equivalent Series Resistance (DC Resistance)
MOSFET conduction losses due to RDS_ON (R value of the FET when conductive) (essentially it’s parasitic resistance)
MOSFET switching losses
Differences in inductor cores (talking to Ian and Meghan and got curious)
Air core (or ceramic core)
higher Q value - more precise, better at higher frequencies (RF circuits!)
not very good at storing electromagnetic field (EMF).
Ferrite and iron core (lumping these together…)
very small metal oxide pieces pressed (“sintered”) into a solid block
lower Q value - effects optimized for lower on the frequency spectrum (less precise)
very good at storing electromagnetic field (EMF)
when fully saturated, inductance falls off sharply
Powder core
Metallic particles suspended and separated by insulating binder material, is a hybrid of features between air core and iron core
lower Q value
more losses at higher frequencies
better DC bias performance than ferrite core
Can have low losses in energy at low frequencies
soft saturation, where inductance reduces progressively
preferred for SMPS and non RF-circuits
Differences in capacitor DC bias ratings
Class II MLCCs have cheaper dielectrics than Class I (COG/NP0)
Lends them to thermally derate as well as derate when significant DC voltage applied (DC bias in capacitors!)
COG/NP0 built different, no derating but quickly becomes very expensive at higher F values
Electrolytic capacitors don’t derate much at all
Attended Flight Test on Nov. 2, 2024
Great to see the team’s work come spinning to life
Week 10
Finished bringing up and validated Single Servo Driver boards 3x
Work outlined in Single Servo Driver Test Plan
Basic continuity tests with DMM
LDO testing 5V to 3.3V rail
Efficiency testing with e-load and DMM
Input transient testing with 6S batteries
soldering XT connectors
Reviewed 12V -> 5V @ 4A Buck Converter + ELRS Board and USB-C Sink
Minor changes to the ELRS board in layout, 3D body fixes and silkscreen improvements
Finished variants for USB-C Sink to cover all voltage values
exporting gerbers for both boards, WARG JLCPCB
examining pricing for PCB + assembly at JLC, via sizing requirements
Redid via layout for both boards to accommodate free JLC via sizing
Re-validated flashing viability of the ESP32-C3 on the ELRS board
GPIO9
Produced End User Manuals for both ELRS and Sink boards
Assisted with design on other boards (new buck design for 6S Servo & M3 Tracking Antenna, LED current limiting resistor selection)
Researched on ESC functionality, basic design, AM32 firmware
More understanding on the system level functionality of drones