Richard Lin


richard.lin at

I'm interested in improving electronics design, by making it more accessible and usable for novices, and more efficient for experts. My primary research focuses on board-level design, emphasizing design re-use and abstraction, and blending techniques from the human-computer interaction (HCI), programming languages (PL), and electrical engineering (EE) domains. I also continue to work on chip- and FPGA-level digital logic design languages, similarly applying a blend of HCI and PL techniques to produce usable tools.

I am a PhD student at UC Berkeley, co-advised by by Björn Hartmann and Elad Alon.

View My GitHub Profile


Board-level Electronics Design

These publications are part of ongoing work on improving the circuit board design process with better tools, towards an open-source and high-level design tool to enable the large-scale community collaboration and libraries seen in software engineering.

Shorter papers

Chip-level Digital Design

These publications are all part of the Chisel project, an open-source and production-tested hardware description language (HDL) that provides principled generators (think metaprogramming Verilog) for digital logic design.

Related projects (without standalone publications)



EE192 (Mechatronics Design Lab), UC Berkeley

Spring 2020, co-Graduate Student Instructor
Spring 2015, Graduate Student Instructor (Outstanding GSI Award)

EE192 is an undergraduate design project class, where students build a line-following ~1:10 scale race car. Students start from a stock chassis with motor and servo, and design and assemble custom circuit boards for power conversion and logic, and write the firmware including controls loops (typically PID). Students work in groups of three, and the semester-long interdisciplinary project involves hands-on, practical mechanical engineering, electrical engineering, and computer science.

In 2015, my focus was on developing a re-usable slide deck for discussion / lab sections and on writing a live telemetry visualization system to encourage students to work with data instead of debugging by trial-and-error 🤦‍.

In 2020 and along with co-GSI Derek Chou, we focused on refactoring the course to get students to a working car as soon as possible by providing the first iteration electronics as a circuit board kit. We hoped a reference circuit board would help demonstrate the implicit knowledge of what makes good circuit boards, while going through the assembly process would provide students design-for-manufacturing (DFM) intuition when they build their own. While we didn’t know it at the beginning of the semester, this turned out to be invaluable for the pandemic: all students had working cars and controls by the time the lockdown hit, and we consider this an extremely lucky success. For the rest of the semester, we shifted focus to controls and learning (track memorization) in simulation in V-REP.




I’ve been part of the UC Berkeley Solar Vehicle Team (we design, build, test, and race solar racing cars) since my first year in undergraduate. Some of our design materials are open source on GitHub, including firmware shared libraries and our hands-on electronics training lab for new members.

There is a good deal of crossover between my research projects and CalSol projects, with the active battery balancing system (on Zephyr) containing RTL written in Chisel and tested with ChiselTest, and with the lights controller and datalogger on Tachyon) having their PCBs designed in Polymorphic Blocks.

Engineering aside, I’ve served as treasurer for many years, automating reimbursements paperwork generation with Python. Unsurprisingly, it turns out that purchasing and reimbursements are kind of important for a physical project as large as CalSol.