Start of 5.X work

This commit is contained in:
Sebastien L
2025-03-18 17:38:34 -04:00
parent c0ddf0a997
commit 73bd096f37
442 changed files with 227862 additions and 21075 deletions

76
spiffs_src/CMakeLists.txt Normal file
View File

@@ -0,0 +1,76 @@
cmake_minimum_required(VERSION 3.16)
message(STATUS "** SPIFFS ")
include(../tools/protoc_utils/protobuf_utils.cmake)
set(GENERATED_BIN_DIRECTORY "${GENERATED_SPIFFS_DIRECTORY}/data")
file(MAKE_DIRECTORY "${GENERATED_BIN_DIRECTORY}")
function(generate_protobuf_bin SOURCE_JSON_FILE PROTO_FILE MAIN_CLASS GENERATED_BIN_DIRECTORY)
# Get the relative path from SOURCE_JSON_FILE
file(RELATIVE_PATH RELATIVE_JSON_PATH "${CMAKE_CURRENT_SOURCE_DIR}/" "${SOURCE_JSON_FILE}")
get_filename_component(RELATIVE_DIR "${RELATIVE_JSON_PATH}" DIRECTORY)
get_filename_component(STRUCTURE_NAME "${RELATIVE_JSON_PATH}" NAME_WE)
# Create the directory structure in GENERATED_BIN_DIRECTORY
set(TARGET_BIN_DIRECTORY "${GENERATED_BIN_DIRECTORY}/${RELATIVE_DIR}")
file(MAKE_DIRECTORY "${TARGET_BIN_DIRECTORY}")
# Set the path for the generated .bin file
set(GENERATED_BIN "${TARGET_BIN_DIRECTORY}/${STRUCTURE_NAME}.bin")
string(TOLOWER ${GENERATED_BIN} GENERATED_BIN)
# Prepare the protodot command and its arguments
set(PROTOBIN_COMMAND
${PYTHON_EXECUTABLE}
${TOOLS_DIR}/protoc_utils/generate_bin.py
--proto_file "${PROTO_FILE}"
--main_class "${MAIN_CLASS}"
--target_dir "${TARGET_BIN_DIRECTORY}"
--json ${SOURCE_JSON_FILE}
--include "${GENERATED_PROTOBUF_ROOT}/proto/nanopb/generator/proto"
--include "${GENERATED_PROTOBUF_ROOT}/py/"
)
add_custom_command(
OUTPUT ${GENERATED_BIN}
COMMAND ${PROTOBIN_COMMAND}
DEPENDS ${SOURCE_JSON_FILE}
COMMENT "Generating BIN file ${GENERATED_BIN} for structure ${STRUCTURE_NAME} from json ${SOURCE_JSON_FILE}"
VERBATIM
)
set(GENERATED_BIN_FILES ${GENERATED_BIN_FILES} ${GENERATED_BIN} PARENT_SCOPE)
endfunction()
file(GLOB_RECURSE SOURCE_JSON_FILES "${CMAKE_CURRENT_SOURCE_DIR}/targets/*.json")
foreach(SOURCE_JSON_FILE IN LISTS SOURCE_JSON_FILES)
generate_protobuf_bin("${SOURCE_JSON_FILE}" "${GENERATED_PROTOBUF_ROOT}/py/configuration" "config" "${GENERATED_BIN_DIRECTORY}")
endforeach()
generate_protobuf_bin("${CMAKE_CURRENT_SOURCE_DIR}/data/default_sets.json" "${GENERATED_PROTOBUF_ROOT}/py/DAC" "default_sets" "${GENERATED_BIN_DIRECTORY}")
add_custom_target(generate_spiffs_bin DEPENDS ${GENERATED_BIN_FILES} )
set_source_files_properties(${GENERATED_BIN_FILES} PROPERTIES GENERATED TRUE)
add_dependencies(generate_spiffs_bin generate_system_proto)
add_dependencies(generate_spiffs_bin generate_py_files)
# Copy .bin files from spiffs_src/data to GENERATED_SPIFFS_DIRECTORY/data
file(GLOB_RECURSE SPIFFS_SRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/data/*.bin")
copy_files("${SPIFFS_SRC_FILES}" "${CMAKE_CURRENT_SOURCE_DIR}/data" "${GENERATED_SPIFFS_DIRECTORY}/data")
list(APPEND SPIFFS_DATA_FILES "${CUSTOM_COPY_TARGET}")
# Copy .gz and png files from components/wifi-manager/webapp/dist to GENERATED_SPIFFS_DIRECTORY/data/www
file(GLOB_RECURSE WIFI_MANAGER_FILES
"${PROJECT_ROOT_DIR}/components/wifi-manager/webapp/dist/*.gz"
"${PROJECT_ROOT_DIR}/components/wifi-manager/webapp/dist/*.png")
copy_files("${WIFI_MANAGER_FILES}" "${PROJECT_ROOT_DIR}/components/wifi-manager/webapp/dist" "${GENERATED_SPIFFS_DIRECTORY}/data/www")
list(APPEND SPIFFS_DATA_FILES "${CUSTOM_COPY_TARGET}")
# Retrieve the list of custom target names
get_property(CUSTOM_COPY_TARGETS GLOBAL PROPERTY CUSTOM_COPY_TARGETS)
spiffs_create_partition_image(spiffs ${GENERATED_SPIFFS_DIRECTORY}/data FLASH_IN_PROJECT DEPENDS generate_spiffs_bin ${CUSTOM_COPY_TARGETS} )
message(STATUS "** ")

View File

@@ -0,0 +1,299 @@
{ "sets": [
{
"model": "ES8388",
"bytes_per_frame": 8,
"valid":true,
"set": {
"commands": [
{
"type": "INIT",
"items": [
{
"reg_action": {
"reg": 8,
"val": 0,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 2,
"val": 243,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 43,
"val": 128,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 0,
"val": 5,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 1,
"val": 64,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 4,
"val": 60,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 23,
"val": 32,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 24,
"val": 2,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 26,
"val": 0,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 27,
"val": 0,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 25,
"val": 50,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 38,
"val": 0,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 39,
"val": 184,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 42,
"val": 184,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 46,
"val": 30,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 47,
"val": 30,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 48,
"val": 30,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 49,
"val": 30,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 2,
"val": 170,
"mode": "NOTHING"
}
}
]
}
],
"mclk_needed": true
}
},
{
"model": "ES8388",
"bytes_per_frame": 4,
"valid":true,
"set": {
"commands": [
{
"type": "INIT",
"items": [
{
"reg_action": {
"reg": 8,
"val": 0,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 2,
"val": 243,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 43,
"val": 128,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 0,
"val": 5,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 1,
"val": 64,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 4,
"val": 60,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 23,
"val": 24,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 24,
"val": 2,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 26,
"val": 0,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 27,
"val": 0,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 25,
"val": 50,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 38,
"val": 0,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 39,
"val": 184,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 42,
"val": 184,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 46,
"val": 30,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 47,
"val": 30,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 48,
"val": 30,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 49,
"val": 30,
"mode": "NOTHING"
}
},
{
"reg_action": {
"reg": 2,
"val": 170,
"mode": "NOTHING"
}
}
]
}
],
"mclk_needed": true
}
}
]
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,58 @@
{
"dev": {
"spi": {
"mosi": 4,
"clk": 5,
"dc": 18,
"host": "Host1"
},
"dac": {
"bck": 33,
"ws": 25,
"dout": 32,
"model": "I2S"
},
"display": {
"type": "SPI",
"common": {
"width": 256,
"height": 64,
"HFlip": false,
"VFlip": false,
"rotate": false,
"driver": "SSD1322",
"reset": 21
},
"spi": {
"cs": 19,
"speed": 8000000
}
},
"rotary": {
"A": 23,
"B": 22,
"SW": 34,
"volume": true,
"longpress": true
}
},
"names": {
"device": "bureau-oled"
},
"net": {
"credentials": [
{
"ssid": "iot",
"auth_type": "WPA2_PSK",
"password": "facedecafe"
},
{
"ssid": "iot2",
"auth_type": "WPA2_PSK",
"password": "facedecafe"
}
]
}
}

View File

@@ -0,0 +1,45 @@
{
"gpios": {
"redLED": {
"gpio": {
"pin": 22,
"level": "LOW"
},
"brightness": 50,
"led_type": "GPIO"
},
"greenLED": {
"gpio": {
"pin": 19,
"level": "LOW"
},
"brightness": 50,
"led_type": "GPIO"
},
"amp": {
"pin": 21,
"level": "HIGH"
},
"jack": {
"pin": 39,
"level": "LOW"
}
},
"dev": {
"dac": {
"bck": 27,
"ws": 26,
"dout": 25,
"din":35,
"model": "AC101",
"i2c": {
"port": "PORT0",
"speed": 400000,
"sda": 33,
"scl": 32
},
"jack_mutes_amp": false
}
}
}

View File

@@ -0,0 +1,96 @@
{
"gpios": {
"redLED": {
"gpio": {
"pin": 19,
"level": "LOW"
},
"brightness": 50,
"led_type": "GPIO"
},
"greenLED": {
"gpio": {
"pin": 22,
"level": "LOW"
},
"brightness": 50,
"led_type": "GPIO"
},
"amp": {
"pin": 21,
"level": "HIGH"
},
"jack": {
"pin": 39,
"level": "LOW"
}
},
"dev": {
"dac": {
"bck": 27,
"ws": 26,
"dout": 25,
"din": 35,
"model": "AC101",
"i2c": {
"port": "PORT0",
"speed": 400000,
"sda": 33,
"scl": 32
},
"jack_mutes_amp": false
},
"root_button_profile": "default",
"buttons_profiles": [
{
"profile_name": "default",
"buttons": [
{
"gpio": {
"pin": 5
},
"normal": {
"pressed": {
"type": "A_TOGGLE"
}
}
},
{
"gpio": {
"pin": 18
},
"pull": true,
"shifter": 5,
"normal": {
"pressed": {
"type": "A_VOLUP"
}
},
"shifted": {
"pressed": {
"type": "A_NEXT"
}
}
},
{
"gpio": {
"pin": 23
},
"pull": true,
"shifter": 5,
"normal": {
"pressed": {
"type": "A_VOLDOWN"
}
},
"shifted": {
"pressed": {
"type": "A_PREV"
}
}
}
]
}
]
}
}

View File

@@ -0,0 +1,91 @@
{
"gpios": {
"redLED": {
"gpio": {
"pin": 22,
"level": "LOW"
},
"brightness": 50,
"led_type": "GPIO"
},
"greenLED": {
"gpio": {
"pin": 19,
"level": "LOW"
},
"brightness": 50,
"led_type": "GPIO"
},
"amp": {
"pin": 21,
"level": "HIGH"
},
"jack": {
"pin": 39,
"level": "LOW"
}
},
"dev": {
"dac": {
"bck": 27,
"ws": 25,
"dout": 26,
"din": -1,
"model": "ES8388",
"i2c": {
"port": "PORT0",
"speed": 400000,
"sda": 33,
"scl": 32
},
"addr": 16,
"jack_mutes_amp": false
},
"root_button_profile": "default",
"buttons_profiles": [
{
"profile_name": "default",
"buttons": [
{
"gpio": {"pin":5},
"normal": {
"pressed": {
"type":"A_TOGGLE"
}
}
},
{
"gpio": {"pin":18},
"pull": true,
"shifter": 5,
"normal": {
"pressed": {
"type":"A_VOLUP"
}
},
"shifted": {
"pressed": {
"type":"A_NEXT"
}
}
},
{
"gpio": {"pin":23},
"pull": true,
"shifter": 5,
"normal": {
"pressed": {
"type":"A_VOLDOWN"
}
},
"shifted": {
"pressed": {
"type":"A_PREV"
}
}
}
]
}
]
}
}

View File

@@ -0,0 +1,161 @@
{
"gpios": {
"greenLED": {
"gpio": 12,
"brightness": 50,
"led_type": "LED_TYPE_GPIO"
},
"redLED": {
"gpio": 13,
"brightness": 50,
"led_type": "LED_TYPE_GPIO"
},
"jack": 34,
"spkfault": 2
},
"dev": {
"i2c": {
"__values_port": "UNSPECIFIED_PORT, PORT0, PORT1",
"port": "UNSPECIFIED_PORT",
"speed": 0,
"sda": 0,
"scl": 0
},
"dac": {
"bck": 33,
"ws": 25,
"dout": 32,
"mck": "MCK0",
"mute": 14,
"model": "TAS57xx",
"i2c": {
"__values_port": "UNSPECIFIED_PORT, , PORT1",
"port": "PORT0",
"speed": 250000,
"sda": 27,
"scl": 26
},
"daccontrolset": {
"commands": [
{
"__values_type": "INIT, POWER_ON, POWER_OFF, SPEAKER_ON, SPEAKER_OFF, HEADSET_ON, HEADSET_OFF",
"type": "INIT",
"items": [
{
"reg_action": {
"__one_of_reg_action": "Choose only one structure for sys.ControlItem.item_type",
"reg": 0,
"val": 0,
"__values_mode": "REG_MODE_NOTHING, REG_MODE_OR, REG_MODE_AND",
"mode": "REG_MODE_NOTHING"
},
"gpio_action": {
"__one_of_gpio_action": "Choose only one structure for sys.ControlItem.item_type",
"gpio": 0,
"__values_level": "ACTION_LEVEL_UNDEFINED, ACTION_LEVEL_1, ACTION_LEVEL_0",
"level": "ACTION_LEVEL_UNDEFINED"
},
"delay_action": {
"__one_of_delay_action": "Choose only one structure for sys.ControlItem.item_type",
"delay": 0,
"__comments2_delay": "Delay in milliseconds"
}
}
]
}
]
},
"jack_mutes_amp": false
},
"spdif": {
"ws": 25,
"data": 15,
"clk": 33
},
"battery": {
"channel": "CH7",
"scale": 20.24,
"atten": "ATT_0"
},
"ir": {
"gpio": 0
}
},
"cspot": {
"enabled": true,
"bitrate": 0,
"zeroconf": false,
"volume": 0
},
"airplay": {
"enabled": false,
"port": 0
},
"squeezelite": {
"output_type": "OUTPUT_I2S",
"__comments_amp_gpio_timeout": "Timeout (seconds) for switching off amp GPIO\n default is to keep the device 'on' all the time",
"amp_gpio_timeout": 0,
"__comments_wav_aiff_header_parsing": "tRead wave and aiff format from header, ignore server parameters",
"wav_aiff_header_parsing": false,
"__comments_server_name_ip": "Server connection options",
"server_name_ip": "",
"server_port": 0,
"__comments_enabled": "Allow disabling squeezelite to use the \n device in \"detached mode\"",
"enabled": false,
"output_bt": {
"sink_name": "",
"pin": ""
},
"log": {
"__values_output": "DEFAULT, ERROR, WARN, INFO, DEBUG, SDEBUG",
"output": "DEFAULT",
"__values_stream": "DEFAULT, ERROR, WARN, INFO, DEBUG, SDEBUG",
"stream": "DEFAULT",
"__values_decode": "DEFAULT, ERROR, WARN, INFO, DEBUG, SDEBUG",
"decode": "DEFAULT",
"__values_slimproto": "DEFAULT, ERROR, WARN, INFO, DEBUG, SDEBUG",
"slimproto": "DEFAULT",
"__values_ir": "DEFAULT, ERROR, WARN, INFO, DEBUG, SDEBUG",
"ir": "DEFAULT"
},
"__comments_max_rate": "Max sample rate reported to server",
"max_rate": 0,
"buffers": {
"stream": 0,
"output": 0
},
"resample": ""
},
"release_url": "",
"bt_sink": {
"enabled": false,
"volume": 0,
"pin": ""
},
"statistics": false,
"telnet": {
"enable": false,
"block": 0,
"buffer": 0
},
"equalizer": {
"loudness": 0.0
}
},
"names": {
"__comments_device": "Network device name",
"device": "",
"__comments_airplay": "AirPlay device name",
"airplay": "",
"__comments_spotify": "Spotify device name",
"spotify": "",
"__comments_bluetooth": "Bluetooth player name advertized",
"bluetooth": "",
"__comments_squeezelite": "Player name reported to the Logitech Media Server",
"squeezelite": "",
"__comments_wifi_ap_name": "Wifi Access Point name",
"wifi_ap_name": ""
},
"target": "SqueezeAMP"
}
}

View File

@@ -0,0 +1,85 @@
{
"gpios": {
"greenLED": {
"gpio": {
"pin": 110,
"level": "LOW"
},
"brightness": 50,
"led_type": "GPIO"
},
"redLED": {
"gpio": {
"pin": 111,
"level": "LOW"
},
"brightness": 50,
"led_type": "GPIO"
}
},
"dev": {
"spi": {
"mosi": 23,
"miso": 19,
"clk": 18,
"dc": 33,
"host": "Host1"
},
"dac": {
"bck": 13,
"ws": 14,
"dout": 12,
"din":15,
"mck": "GPIO0",
"model": "CS4265",
"i2c": {
"port": "PORT0",
"speed": 250000,
"sda": 21,
"scl": 22
},
"jack_mutes_amp": false
},
"gpio_exp": [
{
"model": "MCP23S17",
"addr": 32,
"spi": {
"speed": 10000000,
"cs": 4
},
"base": 100,
"count": 16,
"intr": 27,
"ena": {
"pin": 2,
"level": "HIGH"
}
}
],
"eth": {
"type": "RMII",
"common": {
"model": "W5500",
"rst": 109,
"ethtmout_s": 8
},
"spi": {
"cs": 5,
"speed": 10000000,
"intr": 25,
"host": "Host1"
}
}
},
"names": {
"device": "SqueezeIO-v0.1",
"airplay": "SqueezeIO-v0.1",
"spotify": "SqueezeIO-v0.1",
"bluetooth": "SqueezeIO-v0.1",
"squeezelite": "SqueezeIO-v0.1",
"wifi_ap_name": "SqueezeIO-v0.1"
},
"target": "SqueezeIO"
}