richard.lin at berkeley.edu
About
Research & Teaching
Boards
These are some of the more interesting boards that I’ve designed as part of my research into a hardware description language for boards. Beyond simple demo boards, many of these are practically useful devices and deployed. All these are fully open-source.
Notable features: discrete synchronous buck-boost converter driven by the ESP32, analog feedback controls for current and voltage (voltage setpoint + current limits), current ranging circuit, local interface with OLED and encoder + 4-way switch
The USB SMU is a portable lab power supply that can both source and sink current. USB-PD enables it to be powered from battery banks and laptop or phone chargers where mains power may be unavailable, while WiFi connectivity enables remote control and logging. A buck-boost converter enables the output voltage to be higher than the PD input (up to 30V out) while its efficiency reduces size from heat management. This could also act as a bench multimeter.
The initial motivation for this design came from my solar car racing days, where it would be common to need a DC power supply but either have the one team had be in use or difficult to access (like buried in the back of the trailer). A device like this could instead be carried on your person and powered from a laptop charger.
The analog stage is based off the PS-Load project, but restructured for the HDL compiler.
This is a collaborative project with Prof. Yang Zhang’s HiLab, with applications to aid in the development of energy harvesting devices.
Notable features: measurement and constant-current driver ranging circuits
This is a multimeter in a compact form factor, able to operate in standalone mode (through integrated display and speaker) or connected to a smartphone as a remote display (and perhaps beyond).
This was similarly motivated by solar car racing - where we would either misplace or break the team multimeters. A compact device like this could instead be carried on your person or stowed in your day pack without eating up too much space. Inspired by the TI BLE multimeter reference design.
This is an e-ink display driver, compatible with many 24-pin e-ink panels, with the reference panel being a 13.3” black/red/white display. Battery power allows this to be standalone (without the expensive facilities work to run mains power or ugly wires), while low sleep current allows long battery life. The device wakes up to fetch image data from WiFi, sends it to the screen, then goes back to sleep. The firmware supports OTA firmware updates and also reports statistics like battery level to the server.
This is a collaborative project with the UCLA ECE department and these are deployed outside the departmental meeting rooms to show the room calendar. Mechanical design by Yusuke Tanaka. If you’re ever around UCLA Engineering IV 5th floor, look for these!
It’s exactly what the name says, it controls two PC case fans from the intertubes or using a local rotary encoder. An RGB LED ring around the encoder can indicate the current speed setting. On the technical side, this has a discrete ESP32-C3 layout with (including discrete RF section, which mostly worked) instead of using an integrated module.
More of a technical testbed than a practical device, this implements a 4-level flying capacitor multilevel (FCML) buck converter controlled by an FPGA. FCML converters enable vastly lower inductances (and reduce the size of one of the largest components) at the cost of more semiconductor switches and capacitors. A few basic tests have been run with this device, and it does process power efficiently.
This is a controller (think power station replacement) for JBC soldering iron cartridges. USB-C PD power enables this to be used as a field tool, while WiFi connectivity allows optional remote control and data logging.
This was one of the first devices in the HDL compiler to have a discrete power converter and paved the way for the later USB SMU design.
This was an educational board for the introduction to embedded systems sections of LACC, an outreach event for local high school students. During the optional in-person day, students used these to get (exciting, we hope) hands-on experience with programming embedded systems with Arduino and experiment with peripherals like the OLED display.
The name came from the original design intent of this being a controller for an animatronic owl, though the mechanical housing did not happen in time, so the lab focused on the RGB puck, light sensor, and OLED display. This had a 30 unit production run.
A CANbus-USB adapter speaking the SLCAN protocol, used for solar car debugging - because debugging with data is always better than debugging-by-guess-and-check. An onboard LCD shows summary statistics like packet rate and error rate.