# Peripherals

![](/files/6xylCSOmYwNPXKnAOYQT)

[PDF FORMAT](https://github.com/airvolute/DroneCore.Suite/blob/main/DroneCore.Suite/Docs/DroneCore.Power-block_diagram.pdf)

### LED CHANNELS

* supports WS2812 pwm communication protocol ( WS2812 is used as reference, but there are more types of PWM LEDs with similar communication protocol. Compare datasheets for communication protocol compatibility )
* possible to connect up to 50 leds in sum of all channels
* FRONT L, FRONT R, BACK L and BACK R are set to support maximum of 10 LEDs per channel
* FRONT L, FRONT R, BACK L and BACK R channels can be controlled with predefined effects
* LED ADD is set to support maximum of 40 connected LEDs
* LED ADD can be controlled from Jetson only
* LED effects can be controlled from Jetson driver through I2C
* 3-pin JST connector [(pinout)](/autopilots/dronecore-1/power-pdb-boards/dcs1.power/dronecore.power-connector-description-and-pins-assignment.md#led-front-l-led-front-r-led-back-l-led-back-r-led-add)

{% hint style="info" %}
PWM LEDs can be controlled in two ways: as "predefined effect" or as "custom effect". **Predefined effects** are controlled directly from DroneCore.Power board. There are, at present, two predefined effects: toggling and circle. These effects can be set from Jetson, while user only needs to set color for channel and timing, and .Power board will handle them itself. User can also modify basic LEDs effect after board power-up.

LED control functions are implemented in **Python LED control example** or in **ROS package**. **Custom effects** are controlled from Jetson.

**Python example**

Python example can be found here: <https://gitlab.com/airvolute_oss/dronecore.os/dronecore.samples/av-led-control-example>

**ROS package**

ROS package with example codes can be found here: <https://github.com/airvolute/ae-powerboard-control>

When using ROS package, user can create own effects by filling arrays of RGB colors and triggering LEDs update. ROS package is located in `/catkin_ws/src/`ae-powerboard-control`/`.

If `"/catkin_ws/src/`ae-powerboard-control`/"` does not exists, clone it with:

`git clone https://github.com/airvolute/ae-powerboard-control.git`
{% endhint %}

### CAN

* connecting DroneCore.Pilot board creates direct CAN connection between flight controller and Power board
* active messages:
  * uavcan.equipment.esc
  * uavcan.equipment.esc.Status
  * uavcan.equipment.power.BatteryInfo
  *

### **I2C to B2B connector**

* connecting DroneCore.Pilot board creates direct I2C connection between Jetson and .Power board
* .Power board acts like a slave device
* I2C address 0x20 (0x10 from jetson driver without R/W bit)
* clock speed up to 1MHz

{% hint style="info" %}
Provided ROS package contains also functions to get information and control DroneCore.Power board. It\`s possible, for example, to read errors from ESCs, read firmware number or set drone-arm state which disables some functions of the board for safety. There is also application in the provided image to control ESCs configuration flow.
{% endhint %}

### **UART to B2B connector**

* connecting DroneCore.Pilot board creates direct UART connection between flight controller and Power board

{% hint style="warning" %}
this connection is reserved for future use (not implemented yet)
{% endhint %}

### **BMS I2C**

{% hint style="warning" %}
BMS I2C connector is reserved for future use (not implemented yet)
{% endhint %}

### **BAT CELLS**

{% hint style="warning" %}
BAT CELLS connector is reserved for future use (not implemented yet). Info about voltage on battery cells will be available through CAN bus.
{% endhint %}

### **CONFIG**

* used for DroneCore.Power main CPU firmware update, ESC's firmware update and ESC's configuration

### **EXT. BUTTON**

* active-low button expansion, connect BUTTON pin to GND to make button pressed event
* connector also includes still-alive 3V3 supply


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.airvolute.com/autopilots/dronecore-1/power-pdb-boards/dcs1.power/dronecore.power-peripherals.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
