mirror of
https://github.com/NathanReeves/BlueCubeMod
synced 2024-11-24 01:52:20 -05:00
Added v2 firmware w/ switch support
see updated readme for new build instructions
This commit is contained in:
parent
614d39f3dd
commit
4ed68f630b
8
Firmware/BlueCubeModv2/Makefile
Executable file
8
Firmware/BlueCubeModv2/Makefile
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#
|
||||||
|
# This is a project Makefile. It is assumed the directory this Makefile resides in is a
|
||||||
|
# project subdirectory.
|
||||||
|
#
|
||||||
|
|
||||||
|
PROJECT_NAME := BlueCubeModv2
|
||||||
|
|
||||||
|
include $(IDF_PATH)/make/project.mk
|
4
Firmware/BlueCubeModv2/main/component.mk
Executable file
4
Firmware/BlueCubeModv2/main/component.mk
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#
|
||||||
|
# "main" pseudo-component makefile.
|
||||||
|
#
|
||||||
|
# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)
|
880
Firmware/BlueCubeModv2/main/main.c
Executable file
880
Firmware/BlueCubeModv2/main/main.c
Executable file
@ -0,0 +1,880 @@
|
|||||||
|
//
|
||||||
|
// BlueCubeMod Firmware
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Created by Nathan Reeves 2019
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "esp_log.h"
|
||||||
|
#include "esp_hidd_api.h"
|
||||||
|
#include "esp_bt_main.h"
|
||||||
|
#include "esp_bt_device.h"
|
||||||
|
#include "esp_bt.h"
|
||||||
|
#include "esp_err.h"
|
||||||
|
#include "nvs.h"
|
||||||
|
#include "nvs_flash.h"
|
||||||
|
#include "esp_gap_bt_api.h"
|
||||||
|
#include <string.h>
|
||||||
|
#include <inttypes.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include "esp_timer.h"
|
||||||
|
|
||||||
|
#include "freertos/FreeRTOS.h"
|
||||||
|
#include "freertos/task.h"
|
||||||
|
#include "freertos/semphr.h"
|
||||||
|
|
||||||
|
#include "driver/gpio.h"
|
||||||
|
#include "driver/rmt.h"
|
||||||
|
#include "driver/periph_ctrl.h"
|
||||||
|
#include "soc/rmt_reg.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#define LED_GPIO 25
|
||||||
|
#define PIN_SEL (1ULL<<LED_GPIO)
|
||||||
|
|
||||||
|
//for reading GameCube controller values
|
||||||
|
#define RMT_TX_GPIO_NUM 23 // GameCube TX GPIO ----
|
||||||
|
#define RMT_RX_GPIO_NUM 18 // GameCube RX GPIO ----
|
||||||
|
#define RMT_TX_CHANNEL 2 /*!< RMT channel for transmitter */
|
||||||
|
#define RMT_RX_CHANNEL 3 /*!< RMT channel for receiver */
|
||||||
|
#define RMT_CLK_DIV 80 /*!< RMT counter clock divider */
|
||||||
|
#define RMT_TICK_10_US (80000000/RMT_CLK_DIV/100000) /*!< RMT counter value for 10 us.(Source clock is APB clock) */
|
||||||
|
#define rmt_item32_tIMEOUT_US 9500 /*!< RMT receiver timeout value(us) */
|
||||||
|
|
||||||
|
//Calibration
|
||||||
|
static int lxcalib = 0;
|
||||||
|
static int lycalib = 0;
|
||||||
|
static int cxcalib = 0;
|
||||||
|
static int cycalib = 0;
|
||||||
|
static int lcalib = 0;
|
||||||
|
static int rcalib = 0;
|
||||||
|
//Buttons and sticks
|
||||||
|
static uint8_t but1_send = 0;
|
||||||
|
static uint8_t but2_send = 0;
|
||||||
|
static uint8_t but3_send = 0;
|
||||||
|
static uint8_t lx_send = 0;
|
||||||
|
static uint8_t ly_send = 0;
|
||||||
|
static uint8_t cx_send = 0;
|
||||||
|
static uint8_t cy_send = 0;
|
||||||
|
static uint8_t lt_send = 0;
|
||||||
|
static uint8_t rt_send = 0;
|
||||||
|
|
||||||
|
//RMT Transmitter Init - for reading GameCube controller
|
||||||
|
rmt_item32_t items[25];
|
||||||
|
rmt_config_t rmt_tx;
|
||||||
|
static void rmt_tx_init()
|
||||||
|
{
|
||||||
|
|
||||||
|
rmt_tx.channel = RMT_TX_CHANNEL;
|
||||||
|
rmt_tx.gpio_num = RMT_TX_GPIO_NUM;
|
||||||
|
rmt_tx.mem_block_num = 1;
|
||||||
|
rmt_tx.clk_div = RMT_CLK_DIV;
|
||||||
|
rmt_tx.tx_config.loop_en = false;
|
||||||
|
rmt_tx.tx_config.carrier_freq_hz = 24000000;
|
||||||
|
rmt_tx.tx_config.carrier_level = 1;
|
||||||
|
rmt_tx.tx_config.carrier_en = 0;
|
||||||
|
rmt_tx.tx_config.idle_level = 1;
|
||||||
|
rmt_tx.tx_config.idle_output_en = true;
|
||||||
|
rmt_tx.rmt_mode = 0;
|
||||||
|
rmt_config(&rmt_tx);
|
||||||
|
rmt_driver_install(rmt_tx.channel, 0, 0);
|
||||||
|
|
||||||
|
//Fill items[] with console->controller command: 0100 0000 0000 0011 0000 0010
|
||||||
|
|
||||||
|
items[0].duration0 = 3;
|
||||||
|
items[0].level0 = 0;
|
||||||
|
items[0].duration1 = 1;
|
||||||
|
items[0].level1 = 1;
|
||||||
|
items[1].duration0 = 1;
|
||||||
|
items[1].level0 = 0;
|
||||||
|
items[1].duration1 = 3;
|
||||||
|
items[1].level1 = 1;
|
||||||
|
int j;
|
||||||
|
for(j = 0; j < 12; j++) {
|
||||||
|
items[j+2].duration0 = 3;
|
||||||
|
items[j+2].level0 = 0;
|
||||||
|
items[j+2].duration1 = 1;
|
||||||
|
items[j+2].level1 = 1;
|
||||||
|
}
|
||||||
|
items[14].duration0 = 1;
|
||||||
|
items[14].level0 = 0;
|
||||||
|
items[14].duration1 = 3;
|
||||||
|
items[14].level1 = 1;
|
||||||
|
items[15].duration0 = 1;
|
||||||
|
items[15].level0 = 0;
|
||||||
|
items[15].duration1 = 3;
|
||||||
|
items[15].level1 = 1;
|
||||||
|
for(j = 0; j < 8; j++) {
|
||||||
|
items[j+16].duration0 = 3;
|
||||||
|
items[j+16].level0 = 0;
|
||||||
|
items[j+16].duration1 = 1;
|
||||||
|
items[j+16].level1 = 1;
|
||||||
|
}
|
||||||
|
items[24].duration0 = 1;
|
||||||
|
items[24].level0 = 0;
|
||||||
|
items[24].duration1 = 3;
|
||||||
|
items[24].level1 = 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//RMT Receiver Init
|
||||||
|
rmt_config_t rmt_rx;
|
||||||
|
static void rmt_rx_init()
|
||||||
|
{
|
||||||
|
rmt_rx.channel = RMT_RX_CHANNEL;
|
||||||
|
rmt_rx.gpio_num = RMT_RX_GPIO_NUM;
|
||||||
|
rmt_rx.clk_div = RMT_CLK_DIV;
|
||||||
|
rmt_rx.mem_block_num = 4;
|
||||||
|
rmt_rx.rmt_mode = RMT_MODE_RX;
|
||||||
|
rmt_rx.rx_config.idle_threshold = rmt_item32_tIMEOUT_US / 10 * (RMT_TICK_10_US);
|
||||||
|
rmt_config(&rmt_rx);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Polls controller and formats response
|
||||||
|
//GameCube Controller Protocol: http://www.int03.co.uk/crema/hardware/gamecube/gc-control.html
|
||||||
|
static void get_buttons()
|
||||||
|
{
|
||||||
|
ESP_LOGI("hi", "Hello world from core %d!\n", xPortGetCoreID() );
|
||||||
|
//button init values
|
||||||
|
uint8_t but1 = 0;
|
||||||
|
uint8_t but2 = 0;
|
||||||
|
uint8_t but3 = 0;
|
||||||
|
uint8_t dpad = 0x08;//Released
|
||||||
|
uint8_t lx = 0;
|
||||||
|
uint8_t ly = 0;
|
||||||
|
uint8_t cx = 0;
|
||||||
|
uint8_t cy = 0;
|
||||||
|
uint8_t lt = 0;
|
||||||
|
uint8_t rt = 0;
|
||||||
|
|
||||||
|
//Sample and find calibration value for sticks
|
||||||
|
int calib_loop = 0;
|
||||||
|
int xsum = 0;
|
||||||
|
int ysum = 0;
|
||||||
|
int cxsum = 0;
|
||||||
|
int cysum = 0;
|
||||||
|
int lsum = 0;
|
||||||
|
int rsum = 0;
|
||||||
|
while(calib_loop < 5)
|
||||||
|
{
|
||||||
|
lx = 0;
|
||||||
|
ly = 0;
|
||||||
|
cx = 0;
|
||||||
|
cy = 0;
|
||||||
|
lt = 0;
|
||||||
|
rt = 0;
|
||||||
|
rmt_write_items(rmt_tx.channel, items, 25, 0);
|
||||||
|
rmt_rx_start(rmt_rx.channel, 1);
|
||||||
|
|
||||||
|
vTaskDelay(10);
|
||||||
|
|
||||||
|
rmt_item32_t* item = (rmt_item32_t*) (RMT_CHANNEL_MEM(rmt_rx.channel));
|
||||||
|
if(item[33].duration0 == 1 && item[27].duration0 == 1 && item[26].duration0 == 3 && item[25].duration0 == 3)
|
||||||
|
{
|
||||||
|
|
||||||
|
//LEFT STICK X
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if((item[x+41].duration0 == 1))
|
||||||
|
{
|
||||||
|
lx += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//LEFT STICK Y
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if((item[x+49].duration0 == 1))
|
||||||
|
{
|
||||||
|
ly += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//C STICK X
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if((item[x+57].duration0 == 1))
|
||||||
|
{
|
||||||
|
cx += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//C STICK Y
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if((item[x+65].duration0 == 1))
|
||||||
|
{
|
||||||
|
cy += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//R AN
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if((item[x+73].duration0 == 1))
|
||||||
|
{
|
||||||
|
rt += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//L AN
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if((item[x+81].duration0 == 1))
|
||||||
|
{
|
||||||
|
lt += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
xsum += lx;
|
||||||
|
ysum += ly;
|
||||||
|
cxsum += cx;
|
||||||
|
cysum += cy;
|
||||||
|
lsum += lt;
|
||||||
|
rsum += rt;
|
||||||
|
calib_loop++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set Stick Calibration
|
||||||
|
lxcalib = 127-(xsum/5);
|
||||||
|
lycalib = 127-(ysum/5);
|
||||||
|
cxcalib = 127-(cxsum/5);
|
||||||
|
cycalib = 127-(cysum/5);
|
||||||
|
lcalib = 127-(lsum/5);
|
||||||
|
rcalib = 127-(rsum/5);
|
||||||
|
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
but1 = 0;
|
||||||
|
but2 = 0;
|
||||||
|
but3 = 0;
|
||||||
|
dpad = 0x08;
|
||||||
|
lx = 0;
|
||||||
|
ly = 0;
|
||||||
|
cx = 0;
|
||||||
|
cy = 0;
|
||||||
|
lt = 0;
|
||||||
|
rt = 0;
|
||||||
|
|
||||||
|
//Write command to controller
|
||||||
|
rmt_write_items(rmt_tx.channel, items, 25, 0);
|
||||||
|
rmt_rx_start(rmt_rx.channel, 1);
|
||||||
|
|
||||||
|
vTaskDelay(6); //6ms between sample
|
||||||
|
|
||||||
|
rmt_item32_t* item = (rmt_item32_t*) (RMT_CHANNEL_MEM(rmt_rx.channel));
|
||||||
|
|
||||||
|
//Check first 3 bits and high bit at index 33
|
||||||
|
if(item[33].duration0 == 1 && item[27].duration0 == 1 && item[26].duration0 == 3 && item[25].duration0 == 3)
|
||||||
|
{
|
||||||
|
|
||||||
|
//Button report: first item is item[25]
|
||||||
|
//0 0 1 S Y X B A
|
||||||
|
//1 L R Z U D R L
|
||||||
|
//Joystick X (8bit)
|
||||||
|
//Joystick Y (8bit)
|
||||||
|
//C-Stick X (8bit)
|
||||||
|
//C-Stick Y (8bit)
|
||||||
|
//L Trigger Analog (8/4bit)
|
||||||
|
//R Trigger Analog (8/4bit)
|
||||||
|
|
||||||
|
if(item[32].duration0 == 1) but1 += 0x08;// A
|
||||||
|
if(item[31].duration0 == 1) but1 += 0x04;// B
|
||||||
|
if(item[30].duration0 == 1) but1 += 0x02;// X
|
||||||
|
if(item[29].duration0 == 1) but1 += 0x01;// Y
|
||||||
|
|
||||||
|
if(item[28].duration0 == 1) but2 += 0x02;// START/PLUS
|
||||||
|
|
||||||
|
//DPAD
|
||||||
|
if(item[40].duration0 == 1) but3 += 0x08;// L
|
||||||
|
if(item[39].duration0 == 1) but3 += 0x04;// R
|
||||||
|
if(item[38].duration0 == 1) but3 += 0x01;// D
|
||||||
|
if(item[37].duration0 == 1) but3 += 0x02;// U
|
||||||
|
|
||||||
|
if(item[35].duration0 == 1) but1 += 0x80;// ZR
|
||||||
|
if(item[34].duration0 == 1) but3 += 0x80;// ZL
|
||||||
|
//Buttons
|
||||||
|
if(item[36].duration0 == 1)
|
||||||
|
{
|
||||||
|
but1 += 0x40;// Z
|
||||||
|
// if(but3 == 0x80) { but3 += 0x40;}
|
||||||
|
if(but2 == 0x02) { but2 = 0x01; } // Minus = Z + Start
|
||||||
|
if(but3 == 0x02) { but2 = 0x10; } // Home = Z + Up
|
||||||
|
}
|
||||||
|
|
||||||
|
//LEFT STICK X
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if(item[x+41].duration0 == 1)
|
||||||
|
{
|
||||||
|
lx += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//LEFT STICK Y
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if(item[x+49].duration0 == 1)
|
||||||
|
{
|
||||||
|
ly += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//C STICK X
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if(item[x+57].duration0 == 1)
|
||||||
|
{
|
||||||
|
cx += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//C STICK Y
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if(item[x+65].duration0 == 1)
|
||||||
|
{
|
||||||
|
cy += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Analog triggers here -- Ignore for Switch :/
|
||||||
|
/*
|
||||||
|
//R AN
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if(item[x+73].duration0 == 1)
|
||||||
|
{
|
||||||
|
rt += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//L AN
|
||||||
|
for(int x = 8; x > -1; x--)
|
||||||
|
{
|
||||||
|
if(item[x+81].duration0 == 1)
|
||||||
|
{
|
||||||
|
lt += pow(2, 8-x-1);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
/////
|
||||||
|
xSemaphoreTake(xSemaphore, portMAX_DELAY);
|
||||||
|
but1_send = but1;
|
||||||
|
but2_send = but2;
|
||||||
|
but3_send = but3;
|
||||||
|
lx_send = lx + lxcalib;
|
||||||
|
ly_send = ly + lycalib;
|
||||||
|
cx_send = cx + cxcalib;
|
||||||
|
cy_send = cy + cycalib;
|
||||||
|
lt_send = 0;//lt;//left trigger analog
|
||||||
|
rt_send = 0;//rt;//right trigger analog
|
||||||
|
xSemaphoreGive(xSemaphore);
|
||||||
|
}else{
|
||||||
|
//log_info("GameCube controller read fail");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SemaphoreHandle_t xSemaphore;
|
||||||
|
bool connected = false;
|
||||||
|
int paired = 0;
|
||||||
|
TaskHandle_t SendingHandle = NULL;
|
||||||
|
TaskHandle_t BlinkHandle = NULL;
|
||||||
|
//Switch button report example // batlvl Buttons Lstick Rstick
|
||||||
|
//static uint8_t report30[] = {0x30, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
uint8_t timer = 0;
|
||||||
|
static uint8_t report30[] = {
|
||||||
|
0x30,
|
||||||
|
0x0,
|
||||||
|
0x80,
|
||||||
|
0,//but1
|
||||||
|
0,//but2
|
||||||
|
0,//but3
|
||||||
|
0,//Ls
|
||||||
|
0,//Ls
|
||||||
|
0,//Ls
|
||||||
|
0,//Rs
|
||||||
|
0,//Rs
|
||||||
|
0,//Rs
|
||||||
|
0x08
|
||||||
|
};
|
||||||
|
|
||||||
|
void send_buttons()
|
||||||
|
{
|
||||||
|
xSemaphoreTake(xSemaphore, portMAX_DELAY);
|
||||||
|
report30[1] = timer;
|
||||||
|
//buttons
|
||||||
|
report30[3] = but1_send;
|
||||||
|
report30[4] = but2_send;
|
||||||
|
report30[5] = but3_send;
|
||||||
|
//encode left stick
|
||||||
|
report30[6] = (lx_send << 4) & 0xF0;
|
||||||
|
report30[7] = (lx_send & 0xF0) >> 4;
|
||||||
|
report30[8] = ly_send;
|
||||||
|
//encode right stick
|
||||||
|
report30[9] = (cx_send << 4) & 0xF0;
|
||||||
|
report30[10] = (cx_send & 0xF0) >> 4;
|
||||||
|
report30[11] = cy_send;
|
||||||
|
xSemaphoreGive(xSemaphore);
|
||||||
|
timer+=1;
|
||||||
|
if(timer == 255)
|
||||||
|
timer = 0;
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(report30), report30);
|
||||||
|
|
||||||
|
if(!paired)
|
||||||
|
vTaskDelay(100);
|
||||||
|
else
|
||||||
|
vTaskDelay(15);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
const uint8_t hid_descriptor_gamecube[] = {
|
||||||
|
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||||
|
0x09, 0x05, // Usage (Game Pad)
|
||||||
|
0xA1, 0x01, // Collection (Application)
|
||||||
|
//Padding
|
||||||
|
0x95, 0x03, // REPORT_COUNT = 3
|
||||||
|
0x75, 0x08, // REPORT_SIZE = 8
|
||||||
|
0x81, 0x03, // INPUT = Cnst,Var,Abs
|
||||||
|
//Sticks
|
||||||
|
0x09, 0x30, // Usage (X)
|
||||||
|
0x09, 0x31, // Usage (Y)
|
||||||
|
0x09, 0x32, // Usage (Z)
|
||||||
|
0x09, 0x35, // Usage (Rz)
|
||||||
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
|
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||||||
|
0x75, 0x08, // Report Size (8)
|
||||||
|
0x95, 0x04, // Report Count (4)
|
||||||
|
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||||
|
//DPAD
|
||||||
|
0x09, 0x39, // Usage (Hat switch)
|
||||||
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
|
0x25, 0x07, // Logical Maximum (7)
|
||||||
|
0x35, 0x00, // Physical Minimum (0)
|
||||||
|
0x46, 0x3B, 0x01, // Physical Maximum (315)
|
||||||
|
0x65, 0x14, // Unit (System: English Rotation, Length: Centimeter)
|
||||||
|
0x75, 0x04, // Report Size (4)
|
||||||
|
0x95, 0x01, // Report Count (1)
|
||||||
|
0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State)
|
||||||
|
//Buttons
|
||||||
|
0x65, 0x00, // Unit (None)
|
||||||
|
0x05, 0x09, // Usage Page (Button)
|
||||||
|
0x19, 0x01, // Usage Minimum (0x01)
|
||||||
|
0x29, 0x0E, // Usage Maximum (0x0E)
|
||||||
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
|
0x25, 0x01, // Logical Maximum (1)
|
||||||
|
0x75, 0x01, // Report Size (1)
|
||||||
|
0x95, 0x0E, // Report Count (14)
|
||||||
|
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||||
|
//Padding
|
||||||
|
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
|
||||||
|
0x09, 0x20, // Usage (0x20)
|
||||||
|
0x75, 0x06, // Report Size (6)
|
||||||
|
0x95, 0x01, // Report Count (1)
|
||||||
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
|
0x25, 0x7F, // Logical Maximum (127)
|
||||||
|
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||||
|
//Triggers
|
||||||
|
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||||
|
0x09, 0x33, // Usage (Rx)
|
||||||
|
0x09, 0x34, // Usage (Ry)
|
||||||
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
|
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||||||
|
0x75, 0x08, // Report Size (8)
|
||||||
|
0x95, 0x02, // Report Count (2)
|
||||||
|
0x81, 0x02,
|
||||||
|
0xc0
|
||||||
|
};
|
||||||
|
int hid_descriptor_gc_len = sizeof(hid_descriptor_gamecube);
|
||||||
|
///Switch Replies
|
||||||
|
static uint8_t reply02[] = {0x21, 0x01, 0x40, 0x00, 0x00, 0x00, 0xe6, 0x27, 0x78, 0xab, 0xd7, 0x76, 0x00, 0x82, 0x02, 0x03, 0x48, 0x03, 0x02, 0xD8, 0xA0, 0x1D, 0x40, 0x15, 0x66, 0x03, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
|
||||||
|
, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
|
||||||
|
static uint8_t reply08[] = {0x21, 0x02, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
|
||||||
|
, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
|
||||||
|
static uint8_t reply03[] = {0x21, 0x05, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
|
||||||
|
, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
|
||||||
|
static uint8_t reply04[] = {0x21, 0x06, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x83, 0x04, 0x00, 0x6a, 0x01, 0xbb, 0x01, 0x93, 0x01, 0x95, 0x01, 0x00, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
|
||||||
|
, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00};
|
||||||
|
static uint8_t reply1060[] = {0x21, 0x03, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x90, 0x10, 0x00, 0x60, 0x00, 0x00, 0x10, 0x00, 0x00 , 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
|
||||||
|
, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
|
||||||
|
static uint8_t reply1050[] = { 0x21, 0x04, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x90, 0x10, 0x50, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
|
||||||
|
, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
|
||||||
|
static uint8_t reply1080[] = {0x21, 0x04, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x90, 0x10, 0x80, 0x60, 0x00, 0x00, 0x18, 0x5e, 0x01, 0x00, 0x00, 0xf1, 0x0f,
|
||||||
|
0x19, 0xd0, 0x4c, 0xae, 0x40, 0xe1,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x00, 0x00};
|
||||||
|
static uint8_t reply1098[] = {0x21, 0x04, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x90, 0x10, 0x98, 0x60, 0x00, 0x00, 0x12, 0x19, 0xd0, 0x4c, 0xae, 0x40, 0xe1,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x00, 0x00};
|
||||||
|
//User analog stick calib
|
||||||
|
static uint8_t reply1010[] = {0x21, 0x04, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x90, 0x10, 0x10, 0x80, 0x00, 0x00, 0x18, 0x00, 0x00};
|
||||||
|
static uint8_t reply103D[] = {0x21, 0x05, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x90, 0x10, 0x3D, 0x60, 0x00, 0x00, 0x19, 0xF0, 0x07, 0x7f, 0xF0, 0x07, 0x7f, 0xF0, 0x07, 0x7f, 0xF0, 0x07, 0x7f, 0xF0, 0x07, 0x7f, 0xF0, 0x07, 0x7f, 0xF0, 0x07, 0x7f, 0xF0, 0x07, 0x7f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
static uint8_t reply1020[] = {0x21, 0x04, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x90, 0x10, 0x20, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00};
|
||||||
|
static uint8_t reply4001[] = {0x21, 0x04, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
static uint8_t reply4801[] = {0x21, 0x04, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x80, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
static uint8_t reply3001[] = {0x21, 0x04, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
static uint8_t reply3333[] = {0x21, 0x03, 0x8E, 0x84, 0x00, 0x12, 0x01, 0x18, 0x80, 0x01, 0x18, 0x80, 0x80, 0x80, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
|
||||||
|
, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00, 0x00 };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// sending bluetooth values every 15ms
|
||||||
|
void send_task(void* pvParameters) {
|
||||||
|
const char* TAG = "send_task";
|
||||||
|
ESP_LOGI(TAG, "Sending hid reports on core %d\n", xPortGetCoreID() );
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
send_buttons();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// callback for notifying when hidd application is registered or not registered
|
||||||
|
void application_cb(esp_bd_addr_t bd_addr, esp_hidd_application_state_t state) {
|
||||||
|
const char* TAG = "application_cb";
|
||||||
|
|
||||||
|
switch(state) {
|
||||||
|
case ESP_HIDD_APP_STATE_NOT_REGISTERED:
|
||||||
|
ESP_LOGI(TAG, "app not registered");
|
||||||
|
break;
|
||||||
|
case ESP_HIDD_APP_STATE_REGISTERED:
|
||||||
|
ESP_LOGI(TAG, "app is now registered!");
|
||||||
|
if(bd_addr == NULL) {
|
||||||
|
ESP_LOGI(TAG, "bd_addr is null...");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ESP_LOGW(TAG, "unknown app state %i", state);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//LED blink
|
||||||
|
void startBlink()
|
||||||
|
{
|
||||||
|
while(1) {
|
||||||
|
gpio_set_level(LED_GPIO, 0);
|
||||||
|
vTaskDelay(150);
|
||||||
|
gpio_set_level(LED_GPIO, 1);
|
||||||
|
vTaskDelay(150);
|
||||||
|
gpio_set_level(LED_GPIO, 0);
|
||||||
|
vTaskDelay(150);
|
||||||
|
gpio_set_level(LED_GPIO, 1);
|
||||||
|
vTaskDelay(1000);
|
||||||
|
}
|
||||||
|
vTaskDelete(NULL);
|
||||||
|
}
|
||||||
|
// callback for hidd connection changes
|
||||||
|
void connection_cb(esp_bd_addr_t bd_addr, esp_hidd_connection_state_t state) {
|
||||||
|
const char* TAG = "connection_cb";
|
||||||
|
|
||||||
|
switch(state) {
|
||||||
|
case ESP_HIDD_CONN_STATE_CONNECTED:
|
||||||
|
ESP_LOGI(TAG, "connected to %02x:%02x:%02x:%02x:%02x:%02x",
|
||||||
|
bd_addr[0], bd_addr[1], bd_addr[2], bd_addr[3], bd_addr[4], bd_addr[5]);
|
||||||
|
ESP_LOGI(TAG, "setting bluetooth non connectable");
|
||||||
|
esp_bt_gap_set_scan_mode(ESP_BT_NON_CONNECTABLE, ESP_BT_NON_DISCOVERABLE);
|
||||||
|
|
||||||
|
//clear blinking LED - solid
|
||||||
|
vTaskDelete(BlinkHandle);
|
||||||
|
BlinkHandle = NULL;
|
||||||
|
gpio_set_level(LED_GPIO, 1);
|
||||||
|
//start solid
|
||||||
|
xSemaphoreTake(xSemaphore, portMAX_DELAY);
|
||||||
|
connected = true;
|
||||||
|
xSemaphoreGive(xSemaphore);
|
||||||
|
//restart send_task
|
||||||
|
if(SendingHandle != NULL)
|
||||||
|
{
|
||||||
|
vTaskDelete(SendingHandle);
|
||||||
|
SendingHandle = NULL;
|
||||||
|
}
|
||||||
|
xTaskCreatePinnedToCore(send_task, "send_task", 2048, NULL, 2, &SendingHandle, 0);
|
||||||
|
break;
|
||||||
|
case ESP_HIDD_CONN_STATE_CONNECTING:
|
||||||
|
ESP_LOGI(TAG, "connecting");
|
||||||
|
break;
|
||||||
|
case ESP_HIDD_CONN_STATE_DISCONNECTED:
|
||||||
|
xTaskCreate(startBlink, "blink_task", 1024, NULL, 1, &BlinkHandle);
|
||||||
|
//start blink
|
||||||
|
ESP_LOGI(TAG, "disconnected from %02x:%02x:%02x:%02x:%02x:%02x",
|
||||||
|
bd_addr[0], bd_addr[1], bd_addr[2], bd_addr[3], bd_addr[4], bd_addr[5]);
|
||||||
|
ESP_LOGI(TAG, "making self discoverable");
|
||||||
|
paired = 0;
|
||||||
|
esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE);
|
||||||
|
xSemaphoreTake(xSemaphore, portMAX_DELAY);
|
||||||
|
connected = false;
|
||||||
|
xSemaphoreGive(xSemaphore);
|
||||||
|
break;
|
||||||
|
case ESP_HIDD_CONN_STATE_DISCONNECTING:
|
||||||
|
ESP_LOGI(TAG, "disconnecting");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ESP_LOGI(TAG, "unknown connection status");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//callback for discovering
|
||||||
|
void get_device_cb()
|
||||||
|
{
|
||||||
|
ESP_LOGI("hi", "found a device");
|
||||||
|
}
|
||||||
|
|
||||||
|
// callback for when hid host requests a report
|
||||||
|
void get_report_cb(uint8_t type, uint8_t id, uint16_t buffer_size) {
|
||||||
|
const char* TAG = "get_report_cb";
|
||||||
|
ESP_LOGI(TAG, "got a get_report request from host");
|
||||||
|
}
|
||||||
|
|
||||||
|
// callback for when hid host sends a report
|
||||||
|
void set_report_cb(uint8_t type, uint8_t id, uint16_t len, uint8_t* p_data) {
|
||||||
|
const char* TAG = "set_report_cb";
|
||||||
|
ESP_LOGI(TAG, "got a report from host");
|
||||||
|
}
|
||||||
|
|
||||||
|
// callback for when hid host requests a protocol change
|
||||||
|
void set_protocol_cb(uint8_t protocol) {
|
||||||
|
const char* TAG = "set_protocol_cb";
|
||||||
|
ESP_LOGI(TAG, "got a set_protocol request from host");
|
||||||
|
}
|
||||||
|
|
||||||
|
// callback for when hid host sends interrupt data
|
||||||
|
void intr_data_cb(uint8_t report_id, uint16_t len, uint8_t* p_data) {
|
||||||
|
const char* TAG = "intr_data_cb";
|
||||||
|
//switch pairing sequence
|
||||||
|
if(len == 49)
|
||||||
|
{
|
||||||
|
if(p_data[10] == 2)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply02), reply02);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 8)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply08), reply08);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 16 && p_data[11] == 0 && p_data[12] == 96)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply1060), reply1060);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 16 && p_data[11] == 80 && p_data[12] == 96)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply1050), reply1050);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 3)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply03), reply03);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 4)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply04), reply04);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 16 && p_data[11] == 128 && p_data[12] == 96)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply1080), reply1080);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 16 && p_data[11] == 152 && p_data[12] == 96)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply1098), reply1098);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 16 && p_data[11] == 16 && p_data[12] == 128)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply1010), reply1010);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 16 && p_data[11] == 61 && p_data[12] == 96)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply103D), reply103D);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 16 && p_data[11] == 32 && p_data[12] == 96)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply1020), reply1020);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 64 && p_data[11] == 1)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply4001), reply4001);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 72 && p_data[11] == 1)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply4801), reply4801);
|
||||||
|
}
|
||||||
|
if(p_data[10] == 48 && p_data[11] == 1)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply3001), reply3001);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(p_data[10] == 33 && p_data[11] == 33)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply3333), reply3333);
|
||||||
|
paired = 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
if(p_data[10] == 64 && p_data[11] == 2)
|
||||||
|
{
|
||||||
|
esp_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, 0xa1, sizeof(reply4001), reply4001);
|
||||||
|
}
|
||||||
|
//ESP_LOGI(TAG, "got an interrupt report from host, subcommand: %d %d %d Length: %d", p_data[10], p_data[11], p_data[12], len);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
//ESP_LOGI("heap size:", "%d", xPortGetFreeHeapSize());
|
||||||
|
//ESP_LOGI(TAG, "pairing packet size != 49, subcommand: %d %d %d Length: %d", p_data[10], p_data[11], p_data[12], len);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// callback for when hid host does a virtual cable unplug
|
||||||
|
void vc_unplug_cb(void) {
|
||||||
|
const char* TAG = "vc_unplug_cb";
|
||||||
|
ESP_LOGI(TAG, "host did a virtual cable unplug");
|
||||||
|
}
|
||||||
|
|
||||||
|
void print_bt_address() {
|
||||||
|
const char* TAG = "bt_address";
|
||||||
|
const uint8_t* bd_addr;
|
||||||
|
|
||||||
|
bd_addr = esp_bt_dev_get_address();
|
||||||
|
ESP_LOGI(TAG, "my bluetooth address is %02X:%02X:%02X:%02X:%02X:%02X",
|
||||||
|
bd_addr[0], bd_addr[1], bd_addr[2], bd_addr[3], bd_addr[4], bd_addr[5]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define SPP_TAG "tag"
|
||||||
|
static void esp_bt_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param)
|
||||||
|
{
|
||||||
|
switch(event){
|
||||||
|
case ESP_BT_GAP_DISC_RES_EVT:
|
||||||
|
ESP_LOGI(SPP_TAG, "ESP_BT_GAP_DISC_RES_EVT");
|
||||||
|
esp_log_buffer_hex(SPP_TAG, param->disc_res.bda, ESP_BD_ADDR_LEN);
|
||||||
|
break;
|
||||||
|
case ESP_BT_GAP_DISC_STATE_CHANGED_EVT:
|
||||||
|
ESP_LOGI(SPP_TAG, "ESP_BT_GAP_DISC_STATE_CHANGED_EVT");
|
||||||
|
break;
|
||||||
|
case ESP_BT_GAP_RMT_SRVCS_EVT:
|
||||||
|
ESP_LOGI(SPP_TAG, "ESP_BT_GAP_RMT_SRVCS_EVT");
|
||||||
|
ESP_LOGI(SPP_TAG, "%d", param->rmt_srvcs.num_uuids);
|
||||||
|
break;
|
||||||
|
case ESP_BT_GAP_RMT_SRVC_REC_EVT:
|
||||||
|
ESP_LOGI(SPP_TAG, "ESP_BT_GAP_RMT_SRVC_REC_EVT");
|
||||||
|
break;
|
||||||
|
case ESP_BT_GAP_AUTH_CMPL_EVT:{
|
||||||
|
if (param->auth_cmpl.stat == ESP_BT_STATUS_SUCCESS) {
|
||||||
|
ESP_LOGI(SPP_TAG, "authentication success: %s", param->auth_cmpl.device_name);
|
||||||
|
esp_log_buffer_hex(SPP_TAG, param->auth_cmpl.bda, ESP_BD_ADDR_LEN);
|
||||||
|
} else {
|
||||||
|
ESP_LOGE(SPP_TAG, "authentication failed, status:%d", param->auth_cmpl.stat);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void app_main() {
|
||||||
|
//GameCube Contoller reading init
|
||||||
|
rmt_tx_init();
|
||||||
|
rmt_rx_init();
|
||||||
|
xTaskCreatePinnedToCore(get_buttons, "gbuttons", 2048, NULL, 1, NULL, 1);
|
||||||
|
//flash LED
|
||||||
|
vTaskDelay(100);
|
||||||
|
gpio_set_level(LED_GPIO, 0);
|
||||||
|
vTaskDelay(100);
|
||||||
|
gpio_set_level(LED_GPIO, 1);
|
||||||
|
vTaskDelay(100);
|
||||||
|
gpio_set_level(LED_GPIO, 0);
|
||||||
|
vTaskDelay(100);
|
||||||
|
gpio_set_level(LED_GPIO, 1);
|
||||||
|
vTaskDelay(100);
|
||||||
|
gpio_set_level(LED_GPIO, 0);
|
||||||
|
const char* TAG = "app_main";
|
||||||
|
esp_err_t ret;
|
||||||
|
static esp_hidd_callbacks_t callbacks;
|
||||||
|
static esp_hidd_app_param_t app_param;
|
||||||
|
static esp_hidd_qos_param_t both_qos;
|
||||||
|
|
||||||
|
xSemaphore = xSemaphoreCreateMutex();
|
||||||
|
|
||||||
|
gpio_config_t io_conf;
|
||||||
|
//disable interrupt
|
||||||
|
io_conf.intr_type = GPIO_PIN_INTR_DISABLE;
|
||||||
|
//set as output mode
|
||||||
|
io_conf.mode = GPIO_MODE_OUTPUT;
|
||||||
|
//bit mask of the pins that you want to set,e.g.GPIO18/19
|
||||||
|
io_conf.pin_bit_mask = PIN_SEL;
|
||||||
|
//disable pull-down mode
|
||||||
|
io_conf.pull_down_en = 0;
|
||||||
|
//disable pull-up mode
|
||||||
|
io_conf.pull_up_en = 0;
|
||||||
|
//configure GPIO with the given settings
|
||||||
|
gpio_config(&io_conf);
|
||||||
|
//gap_callbacks = get_device_cb;
|
||||||
|
|
||||||
|
|
||||||
|
app_param.name = "BlueCubeMod";
|
||||||
|
app_param.description = "BlueCubeMod Example";
|
||||||
|
app_param.provider = "ESP32";
|
||||||
|
app_param.subclass = 0x8;
|
||||||
|
app_param.desc_list = hid_descriptor_gamecube;
|
||||||
|
app_param.desc_list_len = hid_descriptor_gc_len;
|
||||||
|
memset(&both_qos, 0, sizeof(esp_hidd_qos_param_t));
|
||||||
|
|
||||||
|
callbacks.application_state_cb = application_cb;
|
||||||
|
callbacks.connection_state_cb = connection_cb;
|
||||||
|
callbacks.get_report_cb = get_report_cb;
|
||||||
|
callbacks.set_report_cb = set_report_cb;
|
||||||
|
callbacks.set_protocol_cb = set_protocol_cb;
|
||||||
|
callbacks.intr_data_cb = intr_data_cb;
|
||||||
|
callbacks.vc_unplug_cb = vc_unplug_cb;
|
||||||
|
|
||||||
|
ret = nvs_flash_init();
|
||||||
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||||
|
ESP_ERROR_CHECK(nvs_flash_erase());
|
||||||
|
ret = nvs_flash_init();
|
||||||
|
}
|
||||||
|
ESP_ERROR_CHECK( ret );
|
||||||
|
|
||||||
|
ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_BLE));
|
||||||
|
|
||||||
|
esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();
|
||||||
|
esp_bt_mem_release(ESP_BT_MODE_BLE);
|
||||||
|
if ((ret = esp_bt_controller_init(&bt_cfg)) != ESP_OK) {
|
||||||
|
ESP_LOGE(TAG, "initialize controller failed: %s\n", esp_err_to_name(ret));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ret = esp_bt_controller_enable(ESP_BT_MODE_CLASSIC_BT)) != ESP_OK) {
|
||||||
|
ESP_LOGE(TAG, "enable controller failed: %s\n", esp_err_to_name(ret));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ret = esp_bluedroid_init()) != ESP_OK) {
|
||||||
|
ESP_LOGE(TAG, "initialize bluedroid failed: %s\n", esp_err_to_name(ret));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ret = esp_bluedroid_enable()) != ESP_OK) {
|
||||||
|
ESP_LOGE(TAG, "enable bluedroid failed: %s\n", esp_err_to_name(ret));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
esp_bt_gap_register_callback(esp_bt_gap_cb);
|
||||||
|
ESP_LOGI(TAG, "setting hid parameters");
|
||||||
|
esp_hid_device_register_app(&app_param, &both_qos, &both_qos);
|
||||||
|
|
||||||
|
ESP_LOGI(TAG, "starting hid device");
|
||||||
|
esp_hid_device_init(&callbacks);
|
||||||
|
|
||||||
|
ESP_LOGI(TAG, "setting device name");
|
||||||
|
esp_bt_dev_set_device_name("Pro Controller");
|
||||||
|
|
||||||
|
ESP_LOGI(TAG, "setting to connectable, discoverable");
|
||||||
|
esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE);
|
||||||
|
//start blinking
|
||||||
|
xTaskCreate(startBlink, "blink_task", 1024, NULL, 1, &BlinkHandle);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
705
Firmware/BlueCubeModv2/sdkconfig
Normal file
705
Firmware/BlueCubeModv2/sdkconfig
Normal file
@ -0,0 +1,705 @@
|
|||||||
|
#
|
||||||
|
# Automatically generated file. DO NOT EDIT.
|
||||||
|
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
|
||||||
|
#
|
||||||
|
CONFIG_IDF_TARGET="esp32"
|
||||||
|
|
||||||
|
#
|
||||||
|
# SDK tool configuration
|
||||||
|
#
|
||||||
|
CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-"
|
||||||
|
CONFIG_SDK_PYTHON="python"
|
||||||
|
CONFIG_SDK_MAKE_WARN_UNDEFINED_VARIABLES=y
|
||||||
|
CONFIG_APP_COMPILE_TIME_DATE=y
|
||||||
|
# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
|
||||||
|
# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_LOG_BOOTLOADER_LEVEL=3
|
||||||
|
# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set
|
||||||
|
CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y
|
||||||
|
# CONFIG_BOOTLOADER_FACTORY_RESET is not set
|
||||||
|
# CONFIG_BOOTLOADER_APP_TEST is not set
|
||||||
|
CONFIG_BOOTLOADER_WDT_ENABLE=y
|
||||||
|
# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
|
||||||
|
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
|
||||||
|
# CONFIG_APP_ROLLBACK_ENABLE is not set
|
||||||
|
# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set
|
||||||
|
# CONFIG_SECURE_BOOT_ENABLED is not set
|
||||||
|
# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
|
||||||
|
CONFIG_ESPTOOLPY_PORT="/dev/cu.SLAB_USBtoUART"
|
||||||
|
# CONFIG_ESPTOOLPY_BAUD_115200B is not set
|
||||||
|
# CONFIG_ESPTOOLPY_BAUD_230400B is not set
|
||||||
|
CONFIG_ESPTOOLPY_BAUD_921600B=y
|
||||||
|
# CONFIG_ESPTOOLPY_BAUD_2MB is not set
|
||||||
|
# CONFIG_ESPTOOLPY_BAUD_OTHER is not set
|
||||||
|
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
|
||||||
|
CONFIG_ESPTOOLPY_BAUD=921600
|
||||||
|
CONFIG_ESPTOOLPY_COMPRESSED=y
|
||||||
|
# CONFIG_FLASHMODE_QIO is not set
|
||||||
|
# CONFIG_FLASHMODE_QOUT is not set
|
||||||
|
CONFIG_FLASHMODE_DIO=y
|
||||||
|
# CONFIG_FLASHMODE_DOUT is not set
|
||||||
|
CONFIG_ESPTOOLPY_FLASHMODE="dio"
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set
|
||||||
|
CONFIG_ESPTOOLPY_FLASHFREQ_40M=y
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set
|
||||||
|
CONFIG_ESPTOOLPY_FLASHFREQ="40m"
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
|
||||||
|
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
|
||||||
|
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
|
||||||
|
CONFIG_ESPTOOLPY_BEFORE_RESET=y
|
||||||
|
# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set
|
||||||
|
CONFIG_ESPTOOLPY_BEFORE="default_reset"
|
||||||
|
CONFIG_ESPTOOLPY_AFTER_RESET=y
|
||||||
|
# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
|
||||||
|
CONFIG_ESPTOOLPY_AFTER="hard_reset"
|
||||||
|
# CONFIG_MONITOR_BAUD_9600B is not set
|
||||||
|
# CONFIG_MONITOR_BAUD_57600B is not set
|
||||||
|
CONFIG_MONITOR_BAUD_115200B=y
|
||||||
|
# CONFIG_MONITOR_BAUD_230400B is not set
|
||||||
|
# CONFIG_MONITOR_BAUD_921600B is not set
|
||||||
|
# CONFIG_MONITOR_BAUD_2MB is not set
|
||||||
|
# CONFIG_MONITOR_BAUD_OTHER is not set
|
||||||
|
CONFIG_MONITOR_BAUD_OTHER_VAL=115200
|
||||||
|
CONFIG_MONITOR_BAUD=115200
|
||||||
|
CONFIG_PARTITION_TABLE_SINGLE_APP=y
|
||||||
|
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
|
||||||
|
# CONFIG_PARTITION_TABLE_CUSTOM is not set
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv"
|
||||||
|
CONFIG_PARTITION_TABLE_OFFSET=0x8000
|
||||||
|
CONFIG_PARTITION_TABLE_MD5=y
|
||||||
|
CONFIG_OPTIMIZATION_LEVEL_DEBUG=y
|
||||||
|
# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set
|
||||||
|
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
|
||||||
|
# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
|
||||||
|
# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
|
||||||
|
# CONFIG_CXX_EXCEPTIONS is not set
|
||||||
|
CONFIG_STACK_CHECK_NONE=y
|
||||||
|
# CONFIG_STACK_CHECK_NORM is not set
|
||||||
|
# CONFIG_STACK_CHECK_STRONG is not set
|
||||||
|
# CONFIG_STACK_CHECK_ALL is not set
|
||||||
|
# CONFIG_STACK_CHECK is not set
|
||||||
|
# CONFIG_WARN_WRITE_STRINGS is not set
|
||||||
|
# CONFIG_DISABLE_GCC8_WARNINGS is not set
|
||||||
|
# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set
|
||||||
|
CONFIG_ESP32_APPTRACE_DEST_NONE=y
|
||||||
|
# CONFIG_ESP32_APPTRACE_ENABLE is not set
|
||||||
|
CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
|
||||||
|
CONFIG_BT_ENABLED=y
|
||||||
|
# CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY is not set
|
||||||
|
CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY=y
|
||||||
|
# CONFIG_BTDM_CONTROLLER_MODE_BTDM is not set
|
||||||
|
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN=4
|
||||||
|
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN=2
|
||||||
|
CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=0
|
||||||
|
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=4
|
||||||
|
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=2
|
||||||
|
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_0=y
|
||||||
|
# CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE_1 is not set
|
||||||
|
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
|
||||||
|
CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI=y
|
||||||
|
# CONFIG_BTDM_CONTROLLER_HCI_MODE_UART_H4 is not set
|
||||||
|
CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=y
|
||||||
|
CONFIG_BTDM_MODEM_SLEEP_MODE_ORIG=y
|
||||||
|
# CONFIG_BTDM_MODEM_SLEEP_MODE_EVED is not set
|
||||||
|
CONFIG_BTDM_LPCLK_SEL_MAIN_XTAL=y
|
||||||
|
CONFIG_BLUEDROID_ENABLED=y
|
||||||
|
CONFIG_BLUEDROID_PINNED_TO_CORE_0=y
|
||||||
|
# CONFIG_BLUEDROID_PINNED_TO_CORE_1 is not set
|
||||||
|
CONFIG_BLUEDROID_PINNED_TO_CORE=0
|
||||||
|
CONFIG_BTC_TASK_STACK_SIZE=4096
|
||||||
|
CONFIG_BTU_TASK_STACK_SIZE=4096
|
||||||
|
# CONFIG_BLUEDROID_MEM_DEBUG is not set
|
||||||
|
CONFIG_CLASSIC_BT_ENABLED=y
|
||||||
|
# CONFIG_A2DP_ENABLE is not set
|
||||||
|
# CONFIG_BT_SPP_ENABLED is not set
|
||||||
|
# CONFIG_HFP_ENABLE is not set
|
||||||
|
CONFIG_BT_SSP_ENABLED=y
|
||||||
|
CONFIG_BT_HID_DEV_ENABLED=y
|
||||||
|
# CONFIG_BT_STACK_NO_LOG is not set
|
||||||
|
# CONFIG_HCI_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_HCI_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_HCI_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_HCI_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_HCI_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_HCI_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_HCI_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_HCI_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_BTM_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_BTM_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_BTM_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_BTM_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_BTM_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_BTM_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_BTM_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_BTM_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_L2CAP_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_L2CAP_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_L2CAP_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_L2CAP_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_L2CAP_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_L2CAP_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_L2CAP_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_L2CAP_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_RFCOMM_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_RFCOMM_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_RFCOMM_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_RFCOMM_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_RFCOMM_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_RFCOMM_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_RFCOMM_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_RFCOMM_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_SDP_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_SDP_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_SDP_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_SDP_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_SDP_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_SDP_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_SDP_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_SDP_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_GAP_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_GAP_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_GAP_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_GAP_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_GAP_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_GAP_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_GAP_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_GAP_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_BNEP_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_BNEP_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_BNEP_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_BNEP_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_BNEP_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_BNEP_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_BNEP_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_BNEP_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_PAN_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_PAN_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_PAN_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_PAN_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_PAN_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_PAN_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_PAN_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_PAN_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_A2D_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_A2D_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_A2D_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_A2D_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_A2D_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_A2D_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_A2D_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_A2D_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_AVDT_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_AVDT_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_AVDT_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_AVDT_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_AVDT_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_AVDT_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_AVDT_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_AVDT_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_AVCT_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_AVCT_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_AVCT_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_AVCT_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_AVCT_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_AVCT_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_AVCT_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_AVCT_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_AVRC_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_AVRC_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_AVRC_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_AVRC_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_AVRC_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_AVRC_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_AVRC_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_AVRC_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_MCA_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_MCA_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_MCA_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_MCA_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_MCA_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_MCA_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_MCA_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_MCA_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_HID_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_HID_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_HID_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_HID_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_HID_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_HID_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_HID_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_HID_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_HIDD_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_HIDD_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_HIDD_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_HIDD_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_HIDD_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_HIDD_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_HIDD_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_HIDD_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_APPL_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_APPL_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_APPL_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_APPL_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_APPL_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_APPL_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_APPL_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_APPL_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_GATT_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_GATT_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_GATT_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_GATT_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_GATT_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_GATT_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_GATT_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_GATT_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_SMP_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_SMP_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_SMP_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_SMP_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_SMP_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_SMP_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_SMP_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_SMP_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_BTIF_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_BTIF_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_BTIF_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_BTIF_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_BTIF_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_BTIF_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_BTIF_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_BTIF_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_BTC_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_BTC_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_BTC_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_BTC_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_BTC_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_BTC_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_BTC_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_BTC_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_OSI_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_OSI_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_OSI_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_OSI_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_OSI_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_OSI_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_OSI_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_OSI_INITIAL_TRACE_LEVEL=2
|
||||||
|
# CONFIG_BLUFI_TRACE_LEVEL_NONE is not set
|
||||||
|
# CONFIG_BLUFI_TRACE_LEVEL_ERROR is not set
|
||||||
|
CONFIG_BLUFI_TRACE_LEVEL_WARNING=y
|
||||||
|
# CONFIG_BLUFI_TRACE_LEVEL_API is not set
|
||||||
|
# CONFIG_BLUFI_TRACE_LEVEL_EVENT is not set
|
||||||
|
# CONFIG_BLUFI_TRACE_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_BLUFI_TRACE_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_BLUFI_INITIAL_TRACE_LEVEL=2
|
||||||
|
CONFIG_BT_ACL_CONNECTIONS=4
|
||||||
|
# CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST is not set
|
||||||
|
# CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY is not set
|
||||||
|
# CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK is not set
|
||||||
|
CONFIG_SMP_ENABLE=y
|
||||||
|
CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30
|
||||||
|
CONFIG_BT_RESERVE_DRAM=0xdb5c
|
||||||
|
# CONFIG_ADC_FORCE_XPD_FSM is not set
|
||||||
|
CONFIG_ADC2_DISABLE_DAC=y
|
||||||
|
# CONFIG_SPI_MASTER_IN_IRAM is not set
|
||||||
|
CONFIG_SPI_MASTER_ISR_IN_IRAM=y
|
||||||
|
# CONFIG_SPI_SLAVE_IN_IRAM is not set
|
||||||
|
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
|
||||||
|
# CONFIG_EFUSE_CUSTOM_TABLE is not set
|
||||||
|
# CONFIG_EFUSE_VIRTUAL is not set
|
||||||
|
# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set
|
||||||
|
CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y
|
||||||
|
# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set
|
||||||
|
CONFIG_EFUSE_MAX_BLK_LEN=192
|
||||||
|
CONFIG_IDF_TARGET_ESP32=y
|
||||||
|
# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set
|
||||||
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y
|
||||||
|
# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set
|
||||||
|
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160
|
||||||
|
# CONFIG_SPIRAM_SUPPORT is not set
|
||||||
|
# CONFIG_MEMMAP_TRACEMEM is not set
|
||||||
|
# CONFIG_MEMMAP_TRACEMEM_TWOBANKS is not set
|
||||||
|
# CONFIG_ESP32_TRAX is not set
|
||||||
|
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
|
||||||
|
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
|
||||||
|
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
|
||||||
|
CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
|
||||||
|
CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
|
||||||
|
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=4096
|
||||||
|
CONFIG_MAIN_TASK_STACK_SIZE=4096
|
||||||
|
CONFIG_IPC_TASK_STACK_SIZE=1024
|
||||||
|
CONFIG_TIMER_TASK_STACK_SIZE=3584
|
||||||
|
CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
|
||||||
|
# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set
|
||||||
|
# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set
|
||||||
|
# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set
|
||||||
|
# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set
|
||||||
|
CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
|
||||||
|
# CONFIG_NEWLIB_NANO_FORMAT is not set
|
||||||
|
CONFIG_CONSOLE_UART_DEFAULT=y
|
||||||
|
# CONFIG_CONSOLE_UART_CUSTOM is not set
|
||||||
|
# CONFIG_CONSOLE_UART_NONE is not set
|
||||||
|
CONFIG_CONSOLE_UART_NUM=0
|
||||||
|
CONFIG_CONSOLE_UART_BAUDRATE=115200
|
||||||
|
# CONFIG_ULP_COPROC_ENABLED is not set
|
||||||
|
CONFIG_ULP_COPROC_RESERVE_MEM=0
|
||||||
|
# CONFIG_ESP32_PANIC_PRINT_HALT is not set
|
||||||
|
CONFIG_ESP32_PANIC_PRINT_REBOOT=y
|
||||||
|
# CONFIG_ESP32_PANIC_SILENT_REBOOT is not set
|
||||||
|
# CONFIG_ESP32_PANIC_GDBSTUB is not set
|
||||||
|
CONFIG_ESP32_DEBUG_OCDAWARE=y
|
||||||
|
CONFIG_ESP32_DEBUG_STUBS_ENABLE=y
|
||||||
|
# CONFIG_INT_WDT is not set
|
||||||
|
# CONFIG_TASK_WDT is not set
|
||||||
|
CONFIG_BROWNOUT_DET=y
|
||||||
|
CONFIG_BROWNOUT_DET_LVL_SEL_0=y
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
|
||||||
|
# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set
|
||||||
|
CONFIG_BROWNOUT_DET_LVL=0
|
||||||
|
CONFIG_REDUCE_PHY_TX_POWER=y
|
||||||
|
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y
|
||||||
|
# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set
|
||||||
|
# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set
|
||||||
|
# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set
|
||||||
|
CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
|
||||||
|
# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set
|
||||||
|
# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set
|
||||||
|
# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set
|
||||||
|
CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024
|
||||||
|
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000
|
||||||
|
CONFIG_ESP32_XTAL_FREQ_40=y
|
||||||
|
# CONFIG_ESP32_XTAL_FREQ_26 is not set
|
||||||
|
# CONFIG_ESP32_XTAL_FREQ_AUTO is not set
|
||||||
|
CONFIG_ESP32_XTAL_FREQ=40
|
||||||
|
# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set
|
||||||
|
# CONFIG_ESP_TIMER_PROFILING is not set
|
||||||
|
# CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
|
||||||
|
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
|
||||||
|
# CONFIG_PM_ENABLE is not set
|
||||||
|
CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y
|
||||||
|
CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y
|
||||||
|
CONFIG_ADC_CAL_LUT_ENABLE=y
|
||||||
|
# CONFIG_EVENT_LOOP_PROFILING is not set
|
||||||
|
CONFIG_POST_EVENTS_FROM_ISR=y
|
||||||
|
CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
|
||||||
|
CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
|
||||||
|
CONFIG_HTTPD_MAX_REQ_HDR_LEN=512
|
||||||
|
CONFIG_HTTPD_MAX_URI_LEN=512
|
||||||
|
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
|
||||||
|
# CONFIG_OTA_ALLOW_HTTP is not set
|
||||||
|
CONFIG_SW_COEXIST_ENABLE=y
|
||||||
|
# CONFIG_SW_COEXIST_PREFERENCE_WIFI is not set
|
||||||
|
# CONFIG_SW_COEXIST_PREFERENCE_BT is not set
|
||||||
|
CONFIG_SW_COEXIST_PREFERENCE_BALANCE=y
|
||||||
|
CONFIG_SW_COEXIST_PREFERENCE_VALUE=2
|
||||||
|
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
||||||
|
# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
|
||||||
|
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
|
||||||
|
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
||||||
|
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||||
|
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||||
|
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||||
|
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
||||||
|
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||||
|
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
||||||
|
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
||||||
|
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
||||||
|
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
||||||
|
# CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE is not set
|
||||||
|
CONFIG_ESP32_WIFI_IRAM_OPT=y
|
||||||
|
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
|
||||||
|
# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set
|
||||||
|
CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
|
||||||
|
CONFIG_ESP32_PHY_MAX_TX_POWER=20
|
||||||
|
# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
|
||||||
|
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
|
||||||
|
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
|
||||||
|
# CONFIG_ESP32_ENABLE_COREDUMP is not set
|
||||||
|
CONFIG_DMA_RX_BUF_NUM=10
|
||||||
|
CONFIG_DMA_TX_BUF_NUM=10
|
||||||
|
CONFIG_EMAC_L2_TO_L3_RX_BUF_MODE=y
|
||||||
|
CONFIG_EMAC_CHECK_LINK_PERIOD_MS=2000
|
||||||
|
CONFIG_EMAC_TASK_PRIORITY=20
|
||||||
|
CONFIG_EMAC_TASK_STACK_SIZE=3072
|
||||||
|
# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set
|
||||||
|
CONFIG_FATFS_CODEPAGE_437=y
|
||||||
|
# CONFIG_FATFS_CODEPAGE_720 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_737 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_771 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_775 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_850 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_852 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_855 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_857 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_860 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_861 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_862 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_863 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_864 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_865 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_866 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_869 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_932 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_936 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_949 is not set
|
||||||
|
# CONFIG_FATFS_CODEPAGE_950 is not set
|
||||||
|
CONFIG_FATFS_CODEPAGE=437
|
||||||
|
CONFIG_FATFS_LFN_NONE=y
|
||||||
|
# CONFIG_FATFS_LFN_HEAP is not set
|
||||||
|
# CONFIG_FATFS_LFN_STACK is not set
|
||||||
|
CONFIG_FATFS_FS_LOCK=0
|
||||||
|
CONFIG_FATFS_TIMEOUT_MS=10000
|
||||||
|
CONFIG_FATFS_PER_FILE_CACHE=y
|
||||||
|
CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150
|
||||||
|
CONFIG_MB_MASTER_DELAY_MS_CONVERT=200
|
||||||
|
CONFIG_MB_QUEUE_LENGTH=20
|
||||||
|
CONFIG_MB_SERIAL_TASK_STACK_SIZE=2048
|
||||||
|
CONFIG_MB_SERIAL_BUF_SIZE=256
|
||||||
|
CONFIG_MB_SERIAL_TASK_PRIO=10
|
||||||
|
# CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT is not set
|
||||||
|
CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20
|
||||||
|
CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
|
||||||
|
CONFIG_MB_CONTROLLER_STACK_SIZE=4096
|
||||||
|
CONFIG_MB_EVENT_QUEUE_TIMEOUT=20
|
||||||
|
CONFIG_MB_TIMER_PORT_ENABLED=y
|
||||||
|
CONFIG_MB_TIMER_GROUP=0
|
||||||
|
CONFIG_MB_TIMER_INDEX=0
|
||||||
|
# CONFIG_FREERTOS_UNICORE is not set
|
||||||
|
CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
|
||||||
|
CONFIG_FREERTOS_CORETIMER_0=y
|
||||||
|
# CONFIG_FREERTOS_CORETIMER_1 is not set
|
||||||
|
CONFIG_FREERTOS_HZ=1000
|
||||||
|
CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y
|
||||||
|
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set
|
||||||
|
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
|
||||||
|
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y
|
||||||
|
# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set
|
||||||
|
CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
|
||||||
|
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
|
||||||
|
CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y
|
||||||
|
# CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set
|
||||||
|
# CONFIG_FREERTOS_ASSERT_DISABLE is not set
|
||||||
|
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
|
||||||
|
CONFIG_FREERTOS_ISR_STACKSIZE=1536
|
||||||
|
# CONFIG_FREERTOS_LEGACY_HOOKS is not set
|
||||||
|
CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
|
||||||
|
# CONFIG_SUPPORT_STATIC_ALLOCATION is not set
|
||||||
|
CONFIG_TIMER_TASK_PRIORITY=1
|
||||||
|
CONFIG_TIMER_TASK_STACK_DEPTH=2048
|
||||||
|
CONFIG_TIMER_QUEUE_LENGTH=10
|
||||||
|
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
||||||
|
# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
|
||||||
|
# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
|
||||||
|
# CONFIG_FREERTOS_DEBUG_INTERNALS is not set
|
||||||
|
CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y
|
||||||
|
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
|
||||||
|
CONFIG_HEAP_POISONING_DISABLED=y
|
||||||
|
# CONFIG_HEAP_POISONING_LIGHT is not set
|
||||||
|
# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set
|
||||||
|
CONFIG_HEAP_TRACING_OFF=y
|
||||||
|
# CONFIG_HEAP_TRACING_STANDALONE is not set
|
||||||
|
# CONFIG_HEAP_TRACING_TOHOST is not set
|
||||||
|
# CONFIG_HEAP_TRACING is not set
|
||||||
|
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
|
||||||
|
# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set
|
||||||
|
# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set
|
||||||
|
# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set
|
||||||
|
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
|
||||||
|
# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set
|
||||||
|
# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set
|
||||||
|
CONFIG_LOG_DEFAULT_LEVEL=3
|
||||||
|
CONFIG_LOG_COLORS=y
|
||||||
|
# CONFIG_L2_TO_L3_COPY is not set
|
||||||
|
# CONFIG_LWIP_IRAM_OPTIMIZATION is not set
|
||||||
|
CONFIG_LWIP_MAX_SOCKETS=10
|
||||||
|
# CONFIG_USE_ONLY_LWIP_SELECT is not set
|
||||||
|
CONFIG_LWIP_SO_REUSE=y
|
||||||
|
CONFIG_LWIP_SO_REUSE_RXTOALL=y
|
||||||
|
# CONFIG_LWIP_SO_RCVBUF is not set
|
||||||
|
CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1
|
||||||
|
# CONFIG_LWIP_IP_FRAG is not set
|
||||||
|
# CONFIG_LWIP_IP_REASSEMBLY is not set
|
||||||
|
# CONFIG_LWIP_STATS is not set
|
||||||
|
# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
|
||||||
|
CONFIG_ESP_GRATUITOUS_ARP=y
|
||||||
|
CONFIG_GARP_TMR_INTERVAL=60
|
||||||
|
CONFIG_TCPIP_RECVMBOX_SIZE=32
|
||||||
|
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
||||||
|
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
||||||
|
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
|
||||||
|
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
|
||||||
|
# CONFIG_LWIP_AUTOIP is not set
|
||||||
|
CONFIG_LWIP_NETIF_LOOPBACK=y
|
||||||
|
CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
|
||||||
|
CONFIG_LWIP_MAX_ACTIVE_TCP=16
|
||||||
|
CONFIG_LWIP_MAX_LISTENING_TCP=16
|
||||||
|
CONFIG_TCP_MAXRTX=12
|
||||||
|
CONFIG_TCP_SYNMAXRTX=6
|
||||||
|
CONFIG_TCP_MSS=1436
|
||||||
|
CONFIG_TCP_MSL=60000
|
||||||
|
CONFIG_TCP_SND_BUF_DEFAULT=5744
|
||||||
|
CONFIG_TCP_WND_DEFAULT=5744
|
||||||
|
CONFIG_TCP_RECVMBOX_SIZE=6
|
||||||
|
CONFIG_TCP_QUEUE_OOSEQ=y
|
||||||
|
# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
|
||||||
|
CONFIG_TCP_OVERSIZE_MSS=y
|
||||||
|
# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set
|
||||||
|
# CONFIG_TCP_OVERSIZE_DISABLE is not set
|
||||||
|
CONFIG_LWIP_MAX_UDP_PCBS=16
|
||||||
|
CONFIG_UDP_RECVMBOX_SIZE=6
|
||||||
|
CONFIG_TCPIP_TASK_STACK_SIZE=3072
|
||||||
|
CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
||||||
|
# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||||
|
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
|
||||||
|
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||||
|
# CONFIG_PPP_SUPPORT is not set
|
||||||
|
# CONFIG_LWIP_MULTICAST_PING is not set
|
||||||
|
# CONFIG_LWIP_BROADCAST_PING is not set
|
||||||
|
CONFIG_LWIP_MAX_RAW_PCBS=16
|
||||||
|
CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
|
||||||
|
# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
|
||||||
|
# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
|
||||||
|
CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=16384
|
||||||
|
# CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set
|
||||||
|
# CONFIG_MBEDTLS_DEBUG is not set
|
||||||
|
CONFIG_MBEDTLS_HARDWARE_AES=y
|
||||||
|
# CONFIG_MBEDTLS_HARDWARE_MPI is not set
|
||||||
|
# CONFIG_MBEDTLS_HARDWARE_SHA is not set
|
||||||
|
CONFIG_MBEDTLS_HAVE_TIME=y
|
||||||
|
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
|
||||||
|
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
|
||||||
|
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
|
||||||
|
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
|
||||||
|
# CONFIG_MBEDTLS_TLS_DISABLED is not set
|
||||||
|
CONFIG_MBEDTLS_TLS_SERVER=y
|
||||||
|
CONFIG_MBEDTLS_TLS_CLIENT=y
|
||||||
|
CONFIG_MBEDTLS_TLS_ENABLED=y
|
||||||
|
# CONFIG_MBEDTLS_PSK_MODES is not set
|
||||||
|
CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
|
||||||
|
CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y
|
||||||
|
CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y
|
||||||
|
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y
|
||||||
|
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y
|
||||||
|
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y
|
||||||
|
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y
|
||||||
|
CONFIG_MBEDTLS_SSL_RENEGOTIATION=y
|
||||||
|
# CONFIG_MBEDTLS_SSL_PROTO_SSL3 is not set
|
||||||
|
CONFIG_MBEDTLS_SSL_PROTO_TLS1=y
|
||||||
|
CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y
|
||||||
|
CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
|
||||||
|
# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
|
||||||
|
CONFIG_MBEDTLS_SSL_ALPN=y
|
||||||
|
CONFIG_MBEDTLS_SSL_SESSION_TICKETS=y
|
||||||
|
CONFIG_MBEDTLS_AES_C=y
|
||||||
|
# CONFIG_MBEDTLS_CAMELLIA_C is not set
|
||||||
|
# CONFIG_MBEDTLS_DES_C is not set
|
||||||
|
CONFIG_MBEDTLS_RC4_DISABLED=y
|
||||||
|
# CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT is not set
|
||||||
|
# CONFIG_MBEDTLS_RC4_ENABLED is not set
|
||||||
|
# CONFIG_MBEDTLS_BLOWFISH_C is not set
|
||||||
|
# CONFIG_MBEDTLS_XTEA_C is not set
|
||||||
|
CONFIG_MBEDTLS_CCM_C=y
|
||||||
|
CONFIG_MBEDTLS_GCM_C=y
|
||||||
|
# CONFIG_MBEDTLS_RIPEMD160_C is not set
|
||||||
|
CONFIG_MBEDTLS_PEM_PARSE_C=y
|
||||||
|
CONFIG_MBEDTLS_PEM_WRITE_C=y
|
||||||
|
CONFIG_MBEDTLS_X509_CRL_PARSE_C=y
|
||||||
|
CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
|
||||||
|
CONFIG_MBEDTLS_ECP_C=y
|
||||||
|
CONFIG_MBEDTLS_ECDH_C=y
|
||||||
|
CONFIG_MBEDTLS_ECDSA_C=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
|
||||||
|
CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
|
||||||
|
CONFIG_MDNS_MAX_SERVICES=10
|
||||||
|
CONFIG_MQTT_PROTOCOL_311=y
|
||||||
|
CONFIG_MQTT_TRANSPORT_SSL=y
|
||||||
|
CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
|
||||||
|
CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
|
||||||
|
# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
|
||||||
|
# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
|
||||||
|
# CONFIG_MQTT_CUSTOM_OUTBOX is not set
|
||||||
|
# CONFIG_OPENSSL_DEBUG is not set
|
||||||
|
CONFIG_OPENSSL_ASSERT_DO_NOTHING=y
|
||||||
|
# CONFIG_OPENSSL_ASSERT_EXIT is not set
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
|
||||||
|
CONFIG_PTHREAD_STACK_MIN=768
|
||||||
|
CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y
|
||||||
|
# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set
|
||||||
|
# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
|
||||||
|
CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
|
||||||
|
# CONFIG_SPI_FLASH_VERIFY_WRITE is not set
|
||||||
|
# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set
|
||||||
|
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
|
||||||
|
CONFIG_SPIFFS_MAX_PARTITIONS=3
|
||||||
|
CONFIG_SPIFFS_CACHE=y
|
||||||
|
CONFIG_SPIFFS_CACHE_WR=y
|
||||||
|
# CONFIG_SPIFFS_CACHE_STATS is not set
|
||||||
|
CONFIG_SPIFFS_PAGE_CHECK=y
|
||||||
|
CONFIG_SPIFFS_GC_MAX_RUNS=10
|
||||||
|
# CONFIG_SPIFFS_GC_STATS is not set
|
||||||
|
CONFIG_SPIFFS_PAGE_SIZE=256
|
||||||
|
CONFIG_SPIFFS_OBJ_NAME_LEN=32
|
||||||
|
CONFIG_SPIFFS_USE_MAGIC=y
|
||||||
|
CONFIG_SPIFFS_USE_MAGIC_LENGTH=y
|
||||||
|
CONFIG_SPIFFS_META_LENGTH=4
|
||||||
|
CONFIG_SPIFFS_USE_MTIME=y
|
||||||
|
# CONFIG_SPIFFS_DBG is not set
|
||||||
|
# CONFIG_SPIFFS_API_DBG is not set
|
||||||
|
# CONFIG_SPIFFS_GC_DBG is not set
|
||||||
|
# CONFIG_SPIFFS_CACHE_DBG is not set
|
||||||
|
# CONFIG_SPIFFS_CHECK_DBG is not set
|
||||||
|
# CONFIG_SPIFFS_TEST_VISUALISATION is not set
|
||||||
|
CONFIG_IP_LOST_TIMER_INTERVAL=120
|
||||||
|
CONFIG_TCPIP_LWIP=y
|
||||||
|
CONFIG_UNITY_ENABLE_FLOAT=y
|
||||||
|
CONFIG_UNITY_ENABLE_DOUBLE=y
|
||||||
|
# CONFIG_UNITY_ENABLE_COLOR is not set
|
||||||
|
CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
|
||||||
|
# CONFIG_UNITY_ENABLE_FIXTURE is not set
|
||||||
|
CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
|
||||||
|
CONFIG_SUPPORT_TERMIOS=y
|
||||||
|
CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
|
||||||
|
CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128
|
||||||
|
# CONFIG_WL_SECTOR_SIZE_512 is not set
|
||||||
|
CONFIG_WL_SECTOR_SIZE_4096=y
|
||||||
|
CONFIG_WL_SECTOR_SIZE=4096
|
||||||
|
# CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set
|
||||||
|
|
||||||
|
# Deprecated options for backward compatibility
|
||||||
|
CONFIG_TOOLPREFIX="xtensa-esp32-elf-"
|
||||||
|
CONFIG_PYTHON="python"
|
||||||
|
CONFIG_MAKE_WARN_UNDEFINED_VARIABLES=y
|
||||||
|
# End of deprecated options
|
BIN
PCB/BlueCubeModRev2Schematics.pdf
Normal file
BIN
PCB/BlueCubeModRev2Schematics.pdf
Normal file
Binary file not shown.
@ -627,13 +627,11 @@ Example Datasheet</description>
|
|||||||
<package name="SW_JS102011JCQN">
|
<package name="SW_JS102011JCQN">
|
||||||
<wire x1="-4.25" y1="1.8" x2="4.25" y2="1.8" width="0.127" layer="51"/>
|
<wire x1="-4.25" y1="1.8" x2="4.25" y2="1.8" width="0.127" layer="51"/>
|
||||||
<wire x1="4.25" y1="1.8" x2="4.25" y2="-1.8" width="0.127" layer="51"/>
|
<wire x1="4.25" y1="1.8" x2="4.25" y2="-1.8" width="0.127" layer="51"/>
|
||||||
<wire x1="4.25" y1="-1.8" x2="-4.25" y2="-1.8" width="0.127" layer="51"/>
|
|
||||||
<wire x1="-4.25" y1="-1.8" x2="-4.25" y2="1.8" width="0.127" layer="51"/>
|
<wire x1="-4.25" y1="-1.8" x2="-4.25" y2="1.8" width="0.127" layer="51"/>
|
||||||
<wire x1="-4.25" y1="1.8" x2="-0.88" y2="1.8" width="0.127" layer="21"/>
|
<wire x1="-4.25" y1="1.8" x2="-0.88" y2="1.8" width="0.127" layer="21"/>
|
||||||
<wire x1="0.88" y1="1.8" x2="4.25" y2="1.8" width="0.127" layer="21"/>
|
<wire x1="0.88" y1="1.8" x2="4.25" y2="1.8" width="0.127" layer="21"/>
|
||||||
<wire x1="-4.25" y1="-1.8" x2="-4.25" y2="1.8" width="0.127" layer="21"/>
|
<wire x1="-4.25" y1="-1.8" x2="-4.25" y2="1.8" width="0.127" layer="21"/>
|
||||||
<wire x1="4.25" y1="1.8" x2="4.25" y2="-1.8" width="0.127" layer="21"/>
|
<wire x1="4.25" y1="1.8" x2="4.25" y2="-1.8" width="0.127" layer="21"/>
|
||||||
<wire x1="1.66" y1="-1.8" x2="-1.66" y2="-1.8" width="0.127" layer="21"/>
|
|
||||||
<wire x1="-4.5" y1="2.25" x2="4.5" y2="2.25" width="0.05" layer="39"/>
|
<wire x1="-4.5" y1="2.25" x2="4.5" y2="2.25" width="0.05" layer="39"/>
|
||||||
<wire x1="4.5" y1="2.25" x2="4.5" y2="-2.25" width="0.05" layer="39"/>
|
<wire x1="4.5" y1="2.25" x2="4.5" y2="-2.25" width="0.05" layer="39"/>
|
||||||
<wire x1="4.5" y1="-2.25" x2="-4.5" y2="-2.25" width="0.05" layer="39"/>
|
<wire x1="4.5" y1="-2.25" x2="-4.5" y2="-2.25" width="0.05" layer="39"/>
|
||||||
@ -641,6 +639,10 @@ Example Datasheet</description>
|
|||||||
<smd name="2" x="0" y="1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
<smd name="2" x="0" y="1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
||||||
<smd name="1" x="-2.5" y="-1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
<smd name="1" x="-2.5" y="-1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
||||||
<smd name="3" x="2.5" y="-1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
<smd name="3" x="2.5" y="-1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
||||||
|
<wire x1="-0.635" y1="-1.778" x2="-1.27" y2="-2.159" width="0.127" layer="21"/>
|
||||||
|
<wire x1="-1.27" y1="-2.159" x2="-0.635" y2="-2.54" width="0.127" layer="21"/>
|
||||||
|
<text x="0.254" y="-2.286" size="0.254" layer="21" rot="SR180">ON</text>
|
||||||
|
<wire x1="-1.27" y1="-2.159" x2="1.016" y2="-2.159" width="0.127" layer="21"/>
|
||||||
</package>
|
</package>
|
||||||
</packages>
|
</packages>
|
||||||
</library>
|
</library>
|
||||||
@ -1098,12 +1100,12 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
|
|||||||
<vertex x="-30.4546" y="21.0312"/>
|
<vertex x="-30.4546" y="21.0312"/>
|
||||||
</polygon>
|
</polygon>
|
||||||
<polygon width="0.1524" layer="16">
|
<polygon width="0.1524" layer="16">
|
||||||
<vertex x="-30.4546" y="29.21"/>
|
<vertex x="-39.7383" y="29.1465"/>
|
||||||
<vertex x="-30.4546" y="21.082"/>
|
<vertex x="-39.7383" y="21.082"/>
|
||||||
<vertex x="-41.1226" y="21.082"/>
|
<vertex x="-41.1226" y="21.082"/>
|
||||||
<vertex x="-41.1226" y="6.6294"/>
|
<vertex x="-41.1226" y="6.6294"/>
|
||||||
<vertex x="-1.9304" y="6.6294"/>
|
<vertex x="-1.9304" y="6.6294"/>
|
||||||
<vertex x="-1.9304" y="29.21"/>
|
<vertex x="-1.9304" y="29.1465"/>
|
||||||
</polygon>
|
</polygon>
|
||||||
<contactref element="C11" pad="1"/>
|
<contactref element="C11" pad="1"/>
|
||||||
<via x="-28.1178" y="25.654" extent="1-16" drill="0.35"/>
|
<via x="-28.1178" y="25.654" extent="1-16" drill="0.35"/>
|
||||||
@ -1111,16 +1113,16 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
|
|||||||
<via x="-29.3624" y="24.6634" extent="1-16" drill="0.35"/>
|
<via x="-29.3624" y="24.6634" extent="1-16" drill="0.35"/>
|
||||||
<via x="-29.1846" y="27.051" extent="1-16" drill="0.35"/>
|
<via x="-29.1846" y="27.051" extent="1-16" drill="0.35"/>
|
||||||
<polygon width="0.1524" layer="2">
|
<polygon width="0.1524" layer="2">
|
||||||
<vertex x="-30.4546" y="29.1338"/>
|
<vertex x="-39.7383" y="29.1338"/>
|
||||||
<vertex x="-30.4546" y="21.1074"/>
|
<vertex x="-39.7383" y="21.1074"/>
|
||||||
<vertex x="-41.0718" y="21.1074"/>
|
<vertex x="-41.0718" y="21.1074"/>
|
||||||
<vertex x="-41.0718" y="6.477"/>
|
<vertex x="-41.0718" y="6.477"/>
|
||||||
<vertex x="-2.1336" y="6.477"/>
|
<vertex x="-2.1336" y="6.477"/>
|
||||||
<vertex x="-2.1336" y="29.1338"/>
|
<vertex x="-2.1336" y="29.1338"/>
|
||||||
</polygon>
|
</polygon>
|
||||||
<polygon width="0.1524" layer="15">
|
<polygon width="0.1524" layer="15">
|
||||||
<vertex x="-30.4546" y="29.1592"/>
|
<vertex x="-39.7256" y="29.1592"/>
|
||||||
<vertex x="-30.4546" y="21.082"/>
|
<vertex x="-39.7256" y="21.082"/>
|
||||||
<vertex x="-41.1226" y="21.082"/>
|
<vertex x="-41.1226" y="21.082"/>
|
||||||
<vertex x="-41.1226" y="6.477"/>
|
<vertex x="-41.1226" y="6.477"/>
|
||||||
<vertex x="-2.1082" y="6.477"/>
|
<vertex x="-2.1082" y="6.477"/>
|
||||||
@ -1156,7 +1158,7 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
|
|||||||
<wire x1="-28.0128" y1="18.6462" x2="-28.0412" y2="18.6178" width="0.1524" layer="1"/>
|
<wire x1="-28.0128" y1="18.6462" x2="-28.0412" y2="18.6178" width="0.1524" layer="1"/>
|
||||||
<wire x1="-25.7668" y1="18.6168125" x2="-25.7668" y2="18.6208" width="0.1524" layer="1"/>
|
<wire x1="-25.7668" y1="18.6168125" x2="-25.7668" y2="18.6208" width="0.1524" layer="1"/>
|
||||||
<wire x1="-25.7668" y1="18.6168125" x2="-25.95530625" y2="18.42830625" width="0.1524" layer="1"/>
|
<wire x1="-25.7668" y1="18.6168125" x2="-25.95530625" y2="18.42830625" width="0.1524" layer="1"/>
|
||||||
<wire x1="-23.7208" y1="9.5578" x2="-23.7208" y2="12.87083125" width="0.1524" layer="16"/>
|
<wire x1="-23.7208" y1="12.87083125" x2="-23.7208" y2="10.3452" width="0.1524" layer="16"/>
|
||||||
<wire x1="-26.5068" y1="18.6208" x2="-26.31430625" y2="18.42830625" width="0.1524" layer="1"/>
|
<wire x1="-26.5068" y1="18.6208" x2="-26.31430625" y2="18.42830625" width="0.1524" layer="1"/>
|
||||||
<wire x1="-26.31430625" y1="18.42830625" x2="-25.95530625" y2="18.42830625" width="0.1524" layer="1"/>
|
<wire x1="-26.31430625" y1="18.42830625" x2="-25.95530625" y2="18.42830625" width="0.1524" layer="1"/>
|
||||||
<wire x1="-23.6324125" y1="18.1755" x2="-28.7419" y2="18.1755" width="0.1524" layer="16"/>
|
<wire x1="-23.6324125" y1="18.1755" x2="-28.7419" y2="18.1755" width="0.1524" layer="16"/>
|
||||||
@ -1165,8 +1167,9 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
|
|||||||
<wire x1="-28.1428" y1="18.7194" x2="-28.677" y2="18.7194" width="0.1524" layer="1"/>
|
<wire x1="-28.1428" y1="18.7194" x2="-28.677" y2="18.7194" width="0.1524" layer="1"/>
|
||||||
<wire x1="-28.9814" y1="18.415" x2="-28.677" y2="18.7194" width="0.1524" layer="1"/>
|
<wire x1="-28.9814" y1="18.415" x2="-28.677" y2="18.7194" width="0.1524" layer="1"/>
|
||||||
<wire x1="-28.1428" y1="18.7194" x2="-28.0412" y2="18.6178" width="0.1524" layer="1"/>
|
<wire x1="-28.1428" y1="18.7194" x2="-28.0412" y2="18.6178" width="0.1524" layer="1"/>
|
||||||
<contactref element="S2" pad="3"/>
|
<contactref element="S2" pad="1"/>
|
||||||
<wire x1="-24.7504" y1="8.5282" x2="-23.7208" y2="9.5578" width="0.1524" layer="16"/>
|
<wire x1="-23.7208" y1="10.3452" x2="-21.9038" y2="8.5282" width="0.1524" layer="16"/>
|
||||||
|
<wire x1="-21.9038" y1="8.5282" x2="-19.7504" y2="8.5282" width="0.1524" layer="16"/>
|
||||||
</signal>
|
</signal>
|
||||||
<signal name="3.3V">
|
<signal name="3.3V">
|
||||||
<contactref element="C23" pad="1"/>
|
<contactref element="C23" pad="1"/>
|
||||||
@ -1216,20 +1219,11 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
|
|||||||
<wire x1="-24.1981" y1="27.1016" x2="-23.876" y2="27.4237" width="0.1524" layer="1"/>
|
<wire x1="-24.1981" y1="27.1016" x2="-23.876" y2="27.4237" width="0.1524" layer="1"/>
|
||||||
<wire x1="-19.9372" y1="20.1252" x2="-21.18934375" y2="20.1252" width="0.1524" layer="1"/>
|
<wire x1="-19.9372" y1="20.1252" x2="-21.18934375" y2="20.1252" width="0.1524" layer="1"/>
|
||||||
<wire x1="-21.59574375" y1="19.7188" x2="-24.9098" y2="19.7188" width="0.1524" layer="1"/>
|
<wire x1="-21.59574375" y1="19.7188" x2="-24.9098" y2="19.7188" width="0.1524" layer="1"/>
|
||||||
<contactref element="U2" pad="6"/>
|
|
||||||
<contactref element="U2" pad="5"/>
|
|
||||||
<wire x1="-24.8158" y1="27.101" x2="-24.1987" y2="27.101" width="0.1524" layer="1"/>
|
<wire x1="-24.8158" y1="27.101" x2="-24.1987" y2="27.101" width="0.1524" layer="1"/>
|
||||||
<wire x1="-24.1987" y1="27.101" x2="-23.876" y2="27.4237" width="0.1524" layer="1"/>
|
<wire x1="-24.1987" y1="27.101" x2="-23.876" y2="27.4237" width="0.1524" layer="1"/>
|
||||||
<wire x1="-24.8158" y1="27.101" x2="-26.1874" y2="27.101" width="0.1524" layer="1"/>
|
<wire x1="-24.8158" y1="27.101" x2="-26.1874" y2="27.101" width="0.1524" layer="1"/>
|
||||||
<wire x1="-26.1874" y1="27.101" x2="-26.188" y2="27.1016" width="0.1524" layer="1"/>
|
<wire x1="-26.1874" y1="27.101" x2="-26.188" y2="27.1016" width="0.1524" layer="1"/>
|
||||||
<wire x1="-21.18934375" y1="20.1252" x2="-21.59574375" y2="19.7188" width="0.1524" layer="1"/>
|
<wire x1="-21.18934375" y1="20.1252" x2="-21.59574375" y2="19.7188" width="0.1524" layer="1"/>
|
||||||
<contactref element="C10" pad="1"/>
|
|
||||||
<wire x1="-14.7058" y1="23.7944" x2="-14.7058" y2="24.2944" width="0.1524" layer="1"/>
|
|
||||||
<via x="-14.605" y="23.1648" extent="1-16" drill="0.35"/>
|
|
||||||
<wire x1="-15.8584125" y1="27.3022" x2="-16.1205875" y2="27.3022" width="0.1524" layer="16"/>
|
|
||||||
<wire x1="-16.1205875" y1="27.3022" x2="-16.2193875" y2="27.401" width="0.1524" layer="16"/>
|
|
||||||
<wire x1="-14.605" y1="23.1648" x2="-14.605" y2="26.0487875" width="0.1524" layer="16"/>
|
|
||||||
<wire x1="-14.605" y1="26.0487875" x2="-15.8584125" y2="27.3022" width="0.1524" layer="16"/>
|
|
||||||
<wire x1="-23.876" y1="27.4237" x2="-23.3419" y2="27.9578" width="0.1524" layer="1"/>
|
<wire x1="-23.876" y1="27.4237" x2="-23.3419" y2="27.9578" width="0.1524" layer="1"/>
|
||||||
<wire x1="-23.3419" y1="27.9578" x2="-21.9492" y2="27.9578" width="0.1524" layer="1"/>
|
<wire x1="-23.3419" y1="27.9578" x2="-21.9492" y2="27.9578" width="0.1524" layer="1"/>
|
||||||
<contactref element="C12" pad="2"/>
|
<contactref element="C12" pad="2"/>
|
||||||
@ -1241,14 +1235,6 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
|
|||||||
<wire x1="-25.7668" y1="21.3491" x2="-25.9842" y2="21.3491" width="0.1524" layer="1"/>
|
<wire x1="-25.7668" y1="21.3491" x2="-25.9842" y2="21.3491" width="0.1524" layer="1"/>
|
||||||
<wire x1="-24.9098" y1="19.7188" x2="-25.0478" y2="19.5808" width="0.1524" layer="1"/>
|
<wire x1="-24.9098" y1="19.7188" x2="-25.0478" y2="19.5808" width="0.1524" layer="1"/>
|
||||||
<wire x1="-25.0478" y1="19.5808" x2="-25.7668" y2="19.5808" width="0.1524" layer="1"/>
|
<wire x1="-25.0478" y1="19.5808" x2="-25.7668" y2="19.5808" width="0.1524" layer="1"/>
|
||||||
<wire x1="-14.605" y1="22.86" x2="-14.605" y2="23.1648" width="0.1524" layer="1"/>
|
|
||||||
<wire x1="-15.8242" y1="21.6154" x2="-15.6436" y2="21.796" width="0.1524" layer="1"/>
|
|
||||||
<wire x1="-15.6436" y1="21.796" x2="-15.6436" y2="22.1653875" width="0.1524" layer="1"/>
|
|
||||||
<wire x1="-15.6436" y1="22.1653875" x2="-15.2819875" y2="22.527" width="0.1524" layer="1"/>
|
|
||||||
<wire x1="-15.2819875" y1="22.527" x2="-14.938" y2="22.527" width="0.1524" layer="1"/>
|
|
||||||
<wire x1="-14.938" y1="22.527" x2="-14.605" y2="22.86" width="0.1524" layer="1"/>
|
|
||||||
<wire x1="-14.605" y1="23.1648" x2="-14.605" y2="23.6936" width="0.1524" layer="1"/>
|
|
||||||
<wire x1="-14.605" y1="23.6936" x2="-14.7058" y2="23.7944" width="0.1524" layer="1"/>
|
|
||||||
<contactref element="R1" pad="1"/>
|
<contactref element="R1" pad="1"/>
|
||||||
<wire x1="-25.9842" y1="21.4122" x2="-25.9842" y2="21.3491" width="0.1524" layer="1"/>
|
<wire x1="-25.9842" y1="21.4122" x2="-25.9842" y2="21.3491" width="0.1524" layer="1"/>
|
||||||
</signal>
|
</signal>
|
||||||
@ -1582,8 +1568,10 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
|
|||||||
<signal name="ESPANT">
|
<signal name="ESPANT">
|
||||||
<contactref element="U1" pad="P$2"/>
|
<contactref element="U1" pad="P$2"/>
|
||||||
<contactref element="U$1" pad="FEED"/>
|
<contactref element="U$1" pad="FEED"/>
|
||||||
<wire x1="-23.5682" y1="26.3042" x2="-30.9778" y2="26.3042" width="0.254" layer="1"/>
|
<wire x1="-30.9778" y1="26.3042" x2="-31.0388" y2="26.3652" width="0.3048" layer="1"/>
|
||||||
<wire x1="-31.0388" y1="26.3652" x2="-30.9778" y2="26.3042" width="0.254" layer="1"/>
|
<wire x1="-23.5682" y1="26.3042" x2="-24.0767" y2="26.3042" width="0.254" layer="1"/>
|
||||||
|
<wire x1="-24.0767" y1="26.3042" x2="-24.0792" y2="26.3017" width="0.254" layer="1"/>
|
||||||
|
<wire x1="-24.0767" y1="26.3042" x2="-30.9778" y2="26.3042" width="0.3048" layer="1"/>
|
||||||
</signal>
|
</signal>
|
||||||
<signal name="D+">
|
<signal name="D+">
|
||||||
<contactref element="J3" pad="3"/>
|
<contactref element="J3" pad="3"/>
|
||||||
@ -1655,6 +1643,19 @@ Note, that not all DRC settings must be set by the manufacturer. Several can be
|
|||||||
<wire x1="-9.1694" y1="27.178" x2="-9.852" y2="27.178" width="0.1524" layer="1"/>
|
<wire x1="-9.1694" y1="27.178" x2="-9.852" y2="27.178" width="0.1524" layer="1"/>
|
||||||
<wire x1="-9.852" y1="27.178" x2="-10.086" y2="26.944" width="0.1524" layer="1"/>
|
<wire x1="-9.852" y1="27.178" x2="-10.086" y2="26.944" width="0.1524" layer="1"/>
|
||||||
</signal>
|
</signal>
|
||||||
|
<signal name="3.3V_USB">
|
||||||
|
<contactref element="U2" pad="6"/>
|
||||||
|
<contactref element="U2" pad="5"/>
|
||||||
|
<contactref element="C10" pad="1"/>
|
||||||
|
<wire x1="-14.7058" y1="23.7944" x2="-14.7058" y2="24.2944" width="0.1524" layer="1"/>
|
||||||
|
<wire x1="-15.8242" y1="21.6154" x2="-15.6436" y2="21.796" width="0.1524" layer="1"/>
|
||||||
|
<wire x1="-15.6436" y1="21.796" x2="-15.6436" y2="22.1653875" width="0.1524" layer="1"/>
|
||||||
|
<wire x1="-15.6436" y1="22.1653875" x2="-15.2819875" y2="22.527" width="0.1524" layer="1"/>
|
||||||
|
<wire x1="-15.2819875" y1="22.527" x2="-14.938" y2="22.527" width="0.1524" layer="1"/>
|
||||||
|
<wire x1="-14.938" y1="22.527" x2="-14.605" y2="22.86" width="0.1524" layer="1"/>
|
||||||
|
<wire x1="-14.605" y1="22.86" x2="-14.605" y2="23.6936" width="0.1524" layer="1"/>
|
||||||
|
<wire x1="-14.605" y1="23.6936" x2="-14.7058" y2="23.7944" width="0.1524" layer="1"/>
|
||||||
|
</signal>
|
||||||
</signals>
|
</signals>
|
||||||
<mfgpreviewcolors>
|
<mfgpreviewcolors>
|
||||||
<mfgpreviewcolor name="soldermaskcolor" color="0xC8008000"/>
|
<mfgpreviewcolor name="soldermaskcolor" color="0xC8008000"/>
|
||||||
|
@ -1816,13 +1816,11 @@ Datasheet</description>
|
|||||||
<package name="SW_JS102011JCQN">
|
<package name="SW_JS102011JCQN">
|
||||||
<wire x1="-4.25" y1="1.8" x2="4.25" y2="1.8" width="0.127" layer="51"/>
|
<wire x1="-4.25" y1="1.8" x2="4.25" y2="1.8" width="0.127" layer="51"/>
|
||||||
<wire x1="4.25" y1="1.8" x2="4.25" y2="-1.8" width="0.127" layer="51"/>
|
<wire x1="4.25" y1="1.8" x2="4.25" y2="-1.8" width="0.127" layer="51"/>
|
||||||
<wire x1="4.25" y1="-1.8" x2="-4.25" y2="-1.8" width="0.127" layer="51"/>
|
|
||||||
<wire x1="-4.25" y1="-1.8" x2="-4.25" y2="1.8" width="0.127" layer="51"/>
|
<wire x1="-4.25" y1="-1.8" x2="-4.25" y2="1.8" width="0.127" layer="51"/>
|
||||||
<wire x1="-4.25" y1="1.8" x2="-0.88" y2="1.8" width="0.127" layer="21"/>
|
<wire x1="-4.25" y1="1.8" x2="-0.88" y2="1.8" width="0.127" layer="21"/>
|
||||||
<wire x1="0.88" y1="1.8" x2="4.25" y2="1.8" width="0.127" layer="21"/>
|
<wire x1="0.88" y1="1.8" x2="4.25" y2="1.8" width="0.127" layer="21"/>
|
||||||
<wire x1="-4.25" y1="-1.8" x2="-4.25" y2="1.8" width="0.127" layer="21"/>
|
<wire x1="-4.25" y1="-1.8" x2="-4.25" y2="1.8" width="0.127" layer="21"/>
|
||||||
<wire x1="4.25" y1="1.8" x2="4.25" y2="-1.8" width="0.127" layer="21"/>
|
<wire x1="4.25" y1="1.8" x2="4.25" y2="-1.8" width="0.127" layer="21"/>
|
||||||
<wire x1="1.66" y1="-1.8" x2="-1.66" y2="-1.8" width="0.127" layer="21"/>
|
|
||||||
<wire x1="-4.5" y1="2.25" x2="4.5" y2="2.25" width="0.05" layer="39"/>
|
<wire x1="-4.5" y1="2.25" x2="4.5" y2="2.25" width="0.05" layer="39"/>
|
||||||
<wire x1="4.5" y1="2.25" x2="4.5" y2="-2.25" width="0.05" layer="39"/>
|
<wire x1="4.5" y1="2.25" x2="4.5" y2="-2.25" width="0.05" layer="39"/>
|
||||||
<wire x1="4.5" y1="-2.25" x2="-4.5" y2="-2.25" width="0.05" layer="39"/>
|
<wire x1="4.5" y1="-2.25" x2="-4.5" y2="-2.25" width="0.05" layer="39"/>
|
||||||
@ -1830,6 +1828,10 @@ Datasheet</description>
|
|||||||
<smd name="2" x="0" y="1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
<smd name="2" x="0" y="1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
||||||
<smd name="1" x="-2.5" y="-1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
<smd name="1" x="-2.5" y="-1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
||||||
<smd name="3" x="2.5" y="-1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
<smd name="3" x="2.5" y="-1.2" dx="1.6" dy="1" layer="1" rot="R90"/>
|
||||||
|
<wire x1="-0.635" y1="-1.778" x2="-1.27" y2="-2.159" width="0.127" layer="21"/>
|
||||||
|
<wire x1="-1.27" y1="-2.159" x2="-0.635" y2="-2.54" width="0.127" layer="21"/>
|
||||||
|
<text x="0.254" y="-2.286" size="0.254" layer="21" rot="SR180">ON</text>
|
||||||
|
<wire x1="-1.27" y1="-2.159" x2="1.016" y2="-2.159" width="0.127" layer="21"/>
|
||||||
</package>
|
</package>
|
||||||
</packages>
|
</packages>
|
||||||
<symbols>
|
<symbols>
|
||||||
@ -2450,11 +2452,12 @@ Datasheet</description>
|
|||||||
<wire x1="170.18" y1="101.6" x2="170.18" y2="96.52" width="0.1524" layer="91"/>
|
<wire x1="170.18" y1="101.6" x2="170.18" y2="96.52" width="0.1524" layer="91"/>
|
||||||
<wire x1="177.8" y1="88.9" x2="177.8" y2="96.52" width="0.1524" layer="91"/>
|
<wire x1="177.8" y1="88.9" x2="177.8" y2="96.52" width="0.1524" layer="91"/>
|
||||||
<junction x="177.8" y="96.52"/>
|
<junction x="177.8" y="96.52"/>
|
||||||
<label x="167.64" y="101.6" size="1.778" layer="95"/>
|
<label x="170.18" y="99.06" size="1.778" layer="95"/>
|
||||||
<pinref part="C24" gate="G$1" pin="1"/>
|
<pinref part="C24" gate="G$1" pin="1"/>
|
||||||
<pinref part="S2" gate="G$1" pin="3"/>
|
<wire x1="170.18" y1="101.6" x2="170.18" y2="106.68" width="0.1524" layer="91"/>
|
||||||
<wire x1="165.1" y1="101.6" x2="170.18" y2="101.6" width="0.1524" layer="91"/>
|
|
||||||
<junction x="170.18" y="101.6"/>
|
<junction x="170.18" y="101.6"/>
|
||||||
|
<pinref part="S2" gate="G$1" pin="1"/>
|
||||||
|
<wire x1="170.18" y1="106.68" x2="165.1" y2="106.68" width="0.1524" layer="91"/>
|
||||||
</segment>
|
</segment>
|
||||||
</net>
|
</net>
|
||||||
<net name="3.3V" class="0">
|
<net name="3.3V" class="0">
|
||||||
@ -2469,18 +2472,6 @@ Datasheet</description>
|
|||||||
<wire x1="203.2" y1="96.52" x2="220.98" y2="96.52" width="0.1524" layer="91"/>
|
<wire x1="203.2" y1="96.52" x2="220.98" y2="96.52" width="0.1524" layer="91"/>
|
||||||
<junction x="220.98" y="104.14"/>
|
<junction x="220.98" y="104.14"/>
|
||||||
</segment>
|
</segment>
|
||||||
<segment>
|
|
||||||
<pinref part="U2" gate="IC" pin="VDD"/>
|
|
||||||
<wire x1="88.9" y1="68.58" x2="86.36" y2="68.58" width="0.1524" layer="91"/>
|
|
||||||
<pinref part="U2" gate="IC" pin="VIO"/>
|
|
||||||
<wire x1="86.36" y1="66.04" x2="88.9" y2="66.04" width="0.1524" layer="91"/>
|
|
||||||
<wire x1="88.9" y1="66.04" x2="88.9" y2="68.58" width="0.1524" layer="91"/>
|
|
||||||
<label x="93.98" y="66.04" size="1.778" layer="95"/>
|
|
||||||
<wire x1="88.9" y1="66.04" x2="93.98" y2="66.04" width="0.1524" layer="91"/>
|
|
||||||
<junction x="88.9" y="66.04"/>
|
|
||||||
<pinref part="C10" gate="G$1" pin="1"/>
|
|
||||||
<junction x="88.9" y="68.58"/>
|
|
||||||
</segment>
|
|
||||||
</net>
|
</net>
|
||||||
<net name="VBUS" class="0">
|
<net name="VBUS" class="0">
|
||||||
<segment>
|
<segment>
|
||||||
@ -2627,6 +2618,20 @@ Datasheet</description>
|
|||||||
<label x="40.64" y="48.26" size="1.778" layer="95"/>
|
<label x="40.64" y="48.26" size="1.778" layer="95"/>
|
||||||
</segment>
|
</segment>
|
||||||
</net>
|
</net>
|
||||||
|
<net name="3.3V_USB" class="0">
|
||||||
|
<segment>
|
||||||
|
<pinref part="U2" gate="IC" pin="VDD"/>
|
||||||
|
<wire x1="88.9" y1="68.58" x2="86.36" y2="68.58" width="0.1524" layer="91"/>
|
||||||
|
<pinref part="U2" gate="IC" pin="VIO"/>
|
||||||
|
<wire x1="86.36" y1="66.04" x2="88.9" y2="66.04" width="0.1524" layer="91"/>
|
||||||
|
<wire x1="88.9" y1="66.04" x2="88.9" y2="68.58" width="0.1524" layer="91"/>
|
||||||
|
<label x="93.98" y="66.04" size="1.778" layer="95"/>
|
||||||
|
<wire x1="88.9" y1="66.04" x2="93.98" y2="66.04" width="0.1524" layer="91"/>
|
||||||
|
<junction x="88.9" y="66.04"/>
|
||||||
|
<pinref part="C10" gate="G$1" pin="1"/>
|
||||||
|
<junction x="88.9" y="68.58"/>
|
||||||
|
</segment>
|
||||||
|
</net>
|
||||||
</nets>
|
</nets>
|
||||||
</sheet>
|
</sheet>
|
||||||
<sheet>
|
<sheet>
|
||||||
|
14
README.md
14
README.md
@ -1,24 +1,28 @@
|
|||||||
# BlueCubeMod
|
# BlueCubeMod
|
||||||
|
|
||||||
ESP32 based GameCube Controller Bluetooth conversion using BTstack
|
ESP32 based GameCube Controller Bluetooth conversion for Nintendo Switch
|
||||||
|
|
||||||
|
v1:
|
||||||
Mac/PC/PS4 supported (tested using Dolphin Emulator on Mac)
|
Mac/PC/PS4 supported (tested using Dolphin Emulator on Mac)
|
||||||
|
|
||||||
For Switch/RaspberryPi, use an 8Bitdo USB adapter
|
For Switch/RaspberryPi, use an 8Bitdo USB adapter
|
||||||
|
|
||||||
|
v2:
|
||||||
|
Switch support only - no adapter required
|
||||||
|
|
||||||
## Wiring:
|
## Wiring:
|
||||||
|
|
||||||
- Connect pins 23 and 18 to GameCube controller's data pin (Red)
|
- Connect pins 23 and 18 to GameCube controller's data pin (Red)
|
||||||
|
|
||||||
- Connect GND to controller's ground pin (Black)
|
- Connect GND to controller's ground pin (Black)
|
||||||
|
|
||||||
## Build instructions:
|
## Build instructions(v2):
|
||||||
|
|
||||||
- Get esp-idf https://docs.espressif.com/projects/esp-idf/en/latest/get-started/
|
- Use this esp-idf fork here: https://github.com/NathanReeves/esp-idf
|
||||||
|
|
||||||
- Get BTstack - Dev Branch (as of 4/29) https://github.com/bluekitchen/btstack/tree/master/port/esp32
|
- Set up the esp-idf environment: https://docs.espressif.com/projects/esp-idf/en/latest/get-started/
|
||||||
|
|
||||||
- Clone BlueCubeMod
|
- Get the BlueCubeModv2 firmware
|
||||||
|
|
||||||
- If you haven’t flashed an ESP32 project before, you need the port name of ESP32 for the config file. If using unix system, to get the port name of a USB device run:
|
- If you haven’t flashed an ESP32 project before, you need the port name of ESP32 for the config file. If using unix system, to get the port name of a USB device run:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user