Skip to content

Commit

Permalink
Merge pull request #38 from Dygmalab/gl-wired-neuron-update
Browse files Browse the repository at this point in the history
Gl wired neuron update
  • Loading branch information
ota-jaylabs authored Dec 18, 2024
2 parents 0ae8e32 + 55cb07f commit 8d99da7
Show file tree
Hide file tree
Showing 124 changed files with 6,613 additions and 2,361 deletions.
9 changes: 4 additions & 5 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@
[submodule "lib/PluginUpgrade"]
path = lib/PluginUpgrade/PluginUpgrade
url = [email protected]:Dygmalab/KaleidoscopePluginKeyScannerUpgrade.git

[submodule "lib/PluginLedLibrary"]
path = lib/PluginLedLibrary/PluginLedLibrary
url = [email protected]:Dygmalab/KaleidoscopePuglinLedLibraryDefy.git

[submodule "lib/kaleidoscope"]
path = lib/kaleidoscope/kaleidoscope
url = [email protected]:Dygmalab/Kaleidoscope-Dygma.git
[submodule "lib/NeuronLedLibrary"]
path = lib/NeuronLedLibrary
url = [email protected]:Dygmalab/NeuronLedLibrary.git
branch = main
108 changes: 91 additions & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
# Set minimum required version of CMake
cmake_minimum_required(VERSION 3.16)

# Disable Google Test
set(BUILD_GMOCK OFF)
set(BUILD_GTEST OFF)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

if (DEFINED ENV{FIRMWARE_VERSION})
set(WN_FIRMWARE_VERSION $ENV{FIRMWARE_VERSION})
message("Using FIRMWARE_VERSION from environment ('${WN_FIRMWARE_VERSION}')")
set(ENV_FW_VERSION $ENV{FIRMWARE_VERSION})
message("Using FIRMWARE_VERSION from environment ('${ENV_FW_VERSION}')")
endif ()

# Include build functions from Pico SDK
Expand All @@ -25,17 +29,73 @@ pico_sdk_init()
# Add subdirectories to the project
add_subdirectory(lib)

# Include directories for HAL and middleware libraries
include_directories(src)
include_directories(configuration/middleware_config)

# Libraries
include_directories(lib/KeyboardioHID/src)
include_directories(lib/NeuronLedLibrary/)
include_directories(lib/NeuronLedLibrary/LedModeSerializable/)
include_directories(lib/NeuronLedLibrary/LedModeSerializable/src/)
include_directories(lib/RP_platform)
include_directories(lib/RP_platform/hal)
include_directories(lib/RP_platform/hal/mcu)
include_directories(lib/RP_platform/hal/mcu/rp20)
include_directories(lib/RP_platform/middleware)
include_directories(lib/RP_platform/middleware/halsep)

# Tell CMake where to find the executable source file
set(NEURONWIRED NeuronWired)

add_executable(${NEURONWIRED}
src/DefyFirmwareVersion.cpp
src/EEPROMPadding.cpp
src/EEPROMUpgrade.cpp
src/hid_report_descriptor.cpp
src/IntegrationTest.cpp
src/LED-CapsLockLight.cpp
src/main.cpp
)
src/config_app.h

lib/KeyboardioHID/src/MultiReport/ConsumerControl.cpp
lib/KeyboardioHID/src/MultiReport/Keyboard.cpp
lib/KeyboardioHID/src/MultiReport/Mouse.cpp
lib/KeyboardioHID/src/MultiReport/SystemControl.cpp
lib/KeyboardioHID/src/hidDefy.cpp
lib/KeyboardioHID/src/HIDReportObserver.cpp

# Colormap includes
lib/NeuronLedLibrary/Colormap-Defy.cpp
lib/NeuronLedLibrary/LEDEffect-BatteryStatus.cpp
lib/NeuronLedLibrary/LEDEffect-Bluetooth-Pairing-Defy.cpp
lib/NeuronLedLibrary/LEDEffect-Rainbow-Defy.cpp
lib/NeuronLedLibrary/LEDEffect-SolidColor-Defy.cpp
lib/NeuronLedLibrary/LEDEffect-Stalker-Defy.cpp
lib/NeuronLedLibrary/LED-Palette-Theme-Defy.cpp

lib/SPISlave/src/link/spi_link_def.h
lib/SPISlave/src/link/spi_link_slave.h
lib/SPISlave/src/link/spi_link_slave.c

lib/RP_platform/middleware/memory/heap.c
lib/RP_platform/middleware/utils/dl_crc32.c
lib/RP_platform/middleware/halsep/hal_mcu_spi.c
lib/RP_platform/middleware/halsep/hal_mcu_dma.h
lib/RP_platform/middleware/halsep/hal_mcu_dma.c

# Low level hal includes
lib/RP_platform/hal/mcu/rp20/hal_ll_rp20xx_gpio.c
lib/RP_platform/hal/mcu/rp20/hal_ll_rp20xx_mutex.c
lib/RP_platform/hal/mcu/rp20/hal_ll_rp20xx_spi.c
lib/RP_platform/hal/mcu/hal_mcu_spi_ll.h
lib/RP_platform/hal/mcu/hal_mcu_dma_ll.h
lib/RP_platform/hal/mcu/rp20/hal_ll_rp20xx_dma.c

lib/RP_platform/middleware/dl_types.h
lib/RP_platform/middleware/halsep/hal_mcu_mutex.c
src/Watchdog_timer.h
)

pico_set_program_name(${NEURONWIRED} "NeuronWired")
pico_set_program_version(${NEURONWIRED} "0.1")
Expand Down Expand Up @@ -65,47 +125,61 @@ target_link_libraries(${NEURONWIRED}
CRC
EEPROM
kaleidoscope
KeyboardioHID
PluginLedLibrary
PluginUpgrade
SPISlave
FIFO_BUFFER
)
# Create map/bin/hex/uf2 files
pico_add_extra_outputs(${NEURONWIRED})

target_compile_definitions(${NEURONWIRED} PUBLIC
-DF_CPU=133000000L
-D__RP2040__
-DNEURON_WIRED
-DUSE_TINYUSB
-DBOARD_VENDORID=0x35EF
-DBOARD_PRODUCTID=0x0010
-DBOARD_MANUFACTURER="DYGMA"
-DBOARD_PRODUCT="DEFY"
-DUSBCON
-DKALEIDOSCOPE_HARDWARE_H="Kaleidoscope-Hardware-Dygma-DefyWN.h"
-DKALEIDOSCOPE_LED_CONTROL_H="kaleidoscope/plugin/LEDControl.h"
-DEEPROM_EMULATION_SIZE=8192
-DHAL_CFG_MCU=HAL_MCU_RP2040
-DMCU_ALIGNMENT_SIZE=4
-DNEURON_WIRED
-DUSB_PRODUCT="DEFY"

-DARDUINO_RASPBERRY_PI_PICO
-DARDUINO_ARCH_RP2040
-DARDUINO=10804
-DCFG_DEBUG=0
-DLFS_NO_ASSERT
-DUSE_LFXO
-DUSBCON
-DUSE_TINYUSB

-DEEPROM_EMULATION_SIZE=8192
-DKALEIDOSCOPE_HARDWARE_H="Kaleidoscope-Hardware-Dygma-DefyWN.h"
-DKALEIDOSCOPE_LED_CONTROL_H="kaleidoscope/plugin/LEDControl.h"
)

if (DEFINED WN_FIRMWARE_VERSION)

# Defy Neuron version
target_compile_definitions(${NEURONWIRED} PUBLIC
-DDEFY_NEURON_FW_VERSION=\"v2.0.0-beta.11\"
)


# Defy firmware package version - Neuron + Keyscanner + RFGW
if (DEFINED ENV_FW_VERSION)
target_compile_definitions(${NEURONWIRED} PUBLIC
-DDEFY_FW_VERSION=\"${ENV_FW_VERSION}\"
)
else ()
target_compile_definitions(${NEURONWIRED} PUBLIC
-DFIRMWARE_VERSION=\"${WN_FIRMWARE_VERSION}\"
)
-DDEFY_FW_VERSION=\"v2.0.0\" # Fixed value to be used until we have proper GitHub build system
)
endif ()

if (CMAKE_BUILD_TYPE MATCHES Debug)
target_compile_options(${NEURONWIRED} PRIVATE -O0)
target_compile_definitions(${NEURONWIRED} PUBLIC
DEBUG)
else (CMAKE_BUILD_TYPE MATCHES Release)
target_compile_options(${NEURONWIRED} PRIVATE -O3)
endif ()

configure_file(memmap_mainProgram.ld memmap_mainProgram.ld @ONLY)
Expand Down
3 changes: 1 addition & 2 deletions lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ add_subdirectory(Communications)
add_subdirectory(CRC)
add_subdirectory(EEPROM)
add_subdirectory(kaleidoscope)
add_subdirectory(KeyboardioHID)
add_subdirectory(MCP3428)
add_subdirectory(PluginLedLibrary)
add_subdirectory(PluginUpgrade)
add_subdirectory(SPISlave)
add_subdirectory(FIFO_BUFFER)
2 changes: 1 addition & 1 deletion lib/CRC/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ target_include_directories(CRC

target_sources(CRC
INTERFACE
./src/CRC.cpp
./src/CRC_wrapper.cpp
)

target_link_libraries(CRC
Expand Down
43 changes: 0 additions & 43 deletions lib/CRC/src/CRC.cpp

This file was deleted.

17 changes: 17 additions & 0 deletions lib/CRC/src/CRC_wrapper.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

#include "middleware/utils/dl_crc32.h"
#include "CRC_wrapper.h"

static constexpr uint8_t crc_table[256] = {0x0, 0x7, 0xE, 0x9, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD, 0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2, 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA, 0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2, 0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A, 0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32, 0x1F, 0x18, 0x11, 0x16, 0x3, 0x4, 0xD, 0xA, 0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42, 0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A, 0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C, 0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4, 0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC, 0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4, 0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C, 0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44, 0x19, 0x1E, 0x17, 0x10, 0x5, 0x2, 0xB, 0xC, 0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34, 0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B, 0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63, 0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B, 0x6, 0x1, 0x8, 0xF, 0x1A, 0x1D, 0x14, 0x13, 0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83, 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3};

uint8_t crc8(const uint8_t *msg, uint32_t len) {
uint8_t temp;
temp = 0;
for (uint32_t i = 0; i < len; i++) {
temp = crc_table[temp ^ msg[i]];
}
return temp;
}
uint32_t crc32(const uint8_t *ptr, uint32_t len) {
return dlcrc32_calculate_data(0xFFFFFFFF, ptr, len);
}
6 changes: 4 additions & 2 deletions lib/CRC/src/CRC.h → lib/CRC/src/CRC_wrapper.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@


#ifndef CRC_H_
#define CRC_H_
#include "stdio.h"

uint32_t crc32(const void *ptr, uint32_t len);
#include "stdio.h"

uint32_t crc32(const uint8_t *ptr, uint32_t len);
uint8_t crc8(uint8_t const msg[], uint32_t len);

#endif
4 changes: 0 additions & 4 deletions lib/EEPROM/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,3 @@ target_sources(EEPROM
INTERFACE
./src/EEPROM.cpp
)

target_link_libraries(EEPROM
INTERFACE
)
10 changes: 10 additions & 0 deletions lib/Fifo_buffer/CmakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
add_library(FIFO_BUFFER INTERFACE)

target_include_directories(FIFO_BUFFER
INTERFACE
./src)

target_sources(FIFO_BUFFER
INTERFACE
./src/Fifo_buffer.cpp
)
Loading

0 comments on commit 8d99da7

Please sign in to comment.