About Me • EE 4th year at the Cooper Union • Focus on signals and materials, minors: CS & philosophy • Research in Autonomy Lab & Engineering Ethics • Involvement in SWE, cycling, climate
About the Project • 2020 & 2021: Hardware Intern on GPU Products Team at NVIDIA • Jetson Nano Developer Kit: small, low-power computer for AI applications • Challenges: • Designing custom hardware • Using Linux for Tegra (L4T) features module baseboard
About the Project • Design a development board to: • Provide open-source hardware design example • Design sample projects to teach L4T features • All accessible to average makers
Requirements Gathering • Read forums (NVIDIA forum, Reddit, internal Slack), talk to engineers • Main concerns: • Difficult to find simple hardware projects • No example boards for hardware design • Open source files are inaccessible
Interfaces Interface My Jetson Nano Baseboard Original Jetson Nano Power 5V—4A 5V—4A or 5V USB Display HDMI HDMI and DisplayPort Internet No Ethernet Camera No CSI User-interactive buttons Power, Reset, ForceRecovery No Debug USB Yes No Attached Display I2C No Servo Header Yes No
Schematic Design: On/Off Logic Function: after 10 seconds, turns module off Design choices: • Values of R and C (co- layout for footprint flexibility) • Simulation in LTSpice of RC tolerances • Used instead of timing element because of cost and complexity
Schematic Design: On/Off Logic Design choices: • NAND gives us control over individual signals and less expensive vs D FF • Simulated in LTSpice, added test points for design for test
Layout Design: Level Shifters • Straight lines for layout looks nice – shows thought and care put into designing product (good UX) • Helps organize an otherwise chaotic 40 pin header
Manufacturing • Choose a manufacturer makers have access to • JLCPCB chosen: inexpensive, quick turnaround • Parts in library vs parts bought separately: NVIDIA technicians did some soldering • Final cost: $440/10 boards (vs $99 for 1 dev kit) • PCB assembly, parts, stencils, shipping
Validation • Bringup: prior to power-on, checking shorts and ensure diode/transistor characteristics • Functional: testing all interfaces for functionality • Electrical: IO meets specifications • Power: test efficiency, noise, characteristics of power sources & test power sequencing * Electrical and power validation not performed due to time and equipment constraints working from home
Validation: Power LEDs • Problem: • LEDs did not light on 1/8 boards • Behavior: • LED correct direction • Power on sequence as expected – rails are at correct levels • GPIO04 remains low (0.6V), should be high (1.8V) • No voltage drop across R32 • Insufficient voltage drop across D6
Validation: Power LEDs • Steps: • Removed R31 to ensure no loading effects from transistor • Checked electrical connections to ensure transistor was not misaligned • Cause: • Transistor threshold is variable • Fixes: • Add external 10k pullup to 1.8V • Change transistor package to avoid misalign * Issue on one board betrayed larger issue for broader design!
Validation: HDMI Bug • Problem: HDMI resolution (720, top) is half the expected (1440, bottom) • Behavior: • Present on all boards • Using same module for both baseboards – likely a HW issue • Theories: • Tune resistor values? • Software issue? • EEPROM read to confirm HDMI resolution?
Validation: HDMI Bug • Procedure: • Talked to HDMI signal integrity lead • Talked to my manager • Check EDIDs – diff resolutions, otherwise same • Check HDMI power rails at load switch – aha! • Root cause: • HDMI_5V was 2.2V when plugged in, 5V when unplugged • Clamping voltage beyond capabilities = clamping current MT9700 Chip Maximum Rset: 11k My R91 value: 120k
Interfacing with Other Teams • GPU Products Team (my team) • Advice from Design, Layout, Software Engineers • Legal • Developed appropriate license for open-source project • Marketing & Developer Relations • Filmed series of videos for Instagram and YouTube • Advised sample projects • Signal Integrity • Advised differential pair design and layout
Sample Projects • Wrote code in Python & bash for sample projects: • Toggling a GPIO • Controlling a servo motor • Using an I2C display • Designed support for OLED display in OnShape
Marketing • Worked with marketing to storyboard, script, and film educational videos about the design process • Videos for TikTok & YouTube on the NVIDIA Embedded channel • Participated in intern panel talking about project
Learnings • Asking the right questions to the right people • Managing lead time (especially with parts shortages) • Applying learnings from school (e.g. transmission lines & differential pair routing)