import LEDIndicator, ElectricPower, ElectricLogic

# Basic LED indicator (active high)
status_led = new LEDIndicator(use_mosfet=False, active_low=False)

# Connect power supply
power_5v = new ElectricPower
assert power_5v.voltage within 5V +/- 5%
status_led.power_in ~ power_5v

# Connect control signal
status_signal = new ElectricLogic
status_signal.reference ~ power_5v
status_led.logic_in ~ status_signal

# Connect to microcontroller
microcontroller.gpio_status ~ status_signal.line

# Configure LED properties
status_led.led.led.color = LED.Color.GREEN
status_led.led.led.current = 20mA +/- 5%
status_led.led.led.forward_voltage = 2.1V +/- 10%

# High-power LED with MOSFET driver
power_led = new LEDIndicator(use_mosfet=True, active_low=False)
power_led.power_in ~ power_5v
power_led.logic_in ~ power_control_signal
power_led.led.led.current = 100mA +/- 10%  # Higher current

# Active-low indicator (ON when signal is LOW)
error_led = new LEDIndicator(use_mosfet=False, active_low=True)
error_led.power_in ~ power_5v
error_led.logic_in ~ error_signal
error_led.led.led.color = LED.Color.RED

# Common applications: status indication, debugging, user feedback

Init Args

use_mosfet
bool
active_low
bool

Interfaces

logic_in
ElectricLogic
power_in
ElectricPower

Global Attributes

These attributes are available to all modules and interfaces in a design.
lcsc_id
str
Assign the LCSC ID of the module.If set, this will tell the picker to select that part from LCSC for this block.
manufacturer
str
This module’s manufacturer name, as a string.Only exact matches on the manufacturer’s name will be found by the picker. It’s recommended to fill this information based on what ato create component provides.
mpn
str
This module’s manufacturer part number, as a string.For the picker to select the correct part from the manufacturer, this must be set.
package
str
The package of the module.This drives which components can be selected, and what footprint is used.Must exactly match a known package name.
exclude_from_bom
bool
override_net_name
str
When set on an interface, this will override the net name of the interface.This is useful for renaming nets which are automatically generated.
required
bool
Only for ModuleInterfaces. If set to True, require that interface is connected to something outside of the module it’s defined in.
import LEDIndicator, ElectricPower, ElectricLogic

# Basic LED indicator (active high)
status_led = new LEDIndicator(use_mosfet=False, active_low=False)

# Connect power supply
power_5v = new ElectricPower
assert power_5v.voltage within 5V +/- 5%
status_led.power_in ~ power_5v

# Connect control signal
status_signal = new ElectricLogic
status_signal.reference ~ power_5v
status_led.logic_in ~ status_signal

# Connect to microcontroller
microcontroller.gpio_status ~ status_signal.line

# Configure LED properties
status_led.led.led.color = LED.Color.GREEN
status_led.led.led.current = 20mA +/- 5%
status_led.led.led.forward_voltage = 2.1V +/- 10%

# High-power LED with MOSFET driver
power_led = new LEDIndicator(use_mosfet=True, active_low=False)
power_led.power_in ~ power_5v
power_led.logic_in ~ power_control_signal
power_led.led.led.current = 100mA +/- 10%  # Higher current

# Active-low indicator (ON when signal is LOW)
error_led = new LEDIndicator(use_mosfet=False, active_low=True)
error_led.power_in ~ power_5v
error_led.logic_in ~ error_signal
error_led.led.led.color = LED.Color.RED

# Common applications: status indication, debugging, user feedback