Skip to content

Latest commit

 

History

History
106 lines (54 loc) · 4.78 KB

File metadata and controls

106 lines (54 loc) · 4.78 KB

Example boards

This is a small, curated list of example boards built with this HDL framework.

Mechanical Macropad

macropad.webp

test_keyboard.py, Keyboard.kicad_pcb

Minimal Rust firmware (note, RMK crashes on this device, possibly an issue with mutex implementation on the CH32V203 HAL).

A 3x4 mechanical macropad with per-key RGB lighting, using a discrete CH32V203 microcontroller and USB-C. Also includes a rotary encoder and a small OLED display. Example of a full device built with minimal HDL, demonstrating the power of subcircuit generator libraries.

A variation of the design in the getting started tutorial.

BLE Joystick

This is a new board, bring-up is a work in progress.

blejoystick_combined.webp

test_ble_joystick.py, BleJoystick.kicad_pcb (main board), BleJoystick_btns.kicad_pcb (buttons sub-board), BleJoystick_stick.kicad_pcb (joystick FPC)

Rust firmware

An nRF52840 based air-mouse with an XBox joystick and d-pad.

Example of a three board assembly with connector-pairs managed by the system: the buttons daughterboard connects to the main board via a FFC, and the joystick itself is on a FPC "board".

USB Source-Measure

usb_smu.webp

test_usb_source_measure.py, UsbSourceMeasure.kicad_pcb

ESPHome firmware

A portable 2-quadrant (positive voltage only, sourcing or sinking current) DC power supply, powered from USB-PD. Design target of 0 - 30V output, -3 - +3A current (electrical limits, thermal limits lower), three current ranges (30mA, 300mA, 3A). Buck-boost (four-switch) pre-regulator and linear analog feedback stage.

Example of a fairly complex device with dual-pack opamps and significant analog circuitry. The analog feedback circuitry is a high-level KiCad-schematic-defined-block:

UsbSmuControl.png

This device functions fine as a basic DC lab supply but frequency response and measurement noise needs more tuning and iteration.

E-ink Display

eink_assembly.webp

test_iot_display.py, IotDisplay.kicad_pcb

Arduino firmware

A battery-powered WiFi e-ink display controller with low sleep current and expected 1 year life on 4xAA batteries. Designed for simple deployment: no power wires to run, piggybacks off existing WiFi network infrastructure.

A few of these are deployed outside the UCLA ECE departmental meeting rooms as room calendars.

SWD and ESP Programmers

debuggers.webp

test_swd_debugger.py, SwdDebugger.kicad_pcb, PicoProbe.kicad_pcb,

test_esp_programmer.py, EspProgrammer.kicad_pcb

Tiny SWD and ESP programmers with USB-C and a 6-pin Tag-Connect interface to the target.

The STM32 SWD programmer run a variation of DAPLink, the RP2040 SWD programmer runs the Picoprobe firmware.

The ESP programmer is a CP2102 USB-UART bridge with no microcontroller.

LoRa and NFC Demonstrator

esp_lora.webp

test_lora.py, EspLora.kicad_pcb

ESPHome firmware for NFC; also runs Meshtastic

A demonstrator / test board for RF subcircuit generators, generating the analog frontend for the SX1262 LoRa transceiver and PN7160 NFC controller. Both of these subcircuits work, though RF performance hasn't been characterized in any detail.

Multilevel Converter Demonstrator

fcml.webp

test_fcml.py, Fcml.kicad_pcb

Minimal Chisel RTL / gateware

A design using an iCE40 FPGA that drives a 4-level flying capacitor multilevel buck converter, a converter topology that trades inductor size for more switches. A few basic tests have been run with this device, and it appears to be able to process power efficiently.