diff --git a/EdgeImpulse.EI-SDK.pdsc b/EdgeImpulse.EI-SDK.pdsc
index cd9b2ca..5f8254e 100644
--- a/EdgeImpulse.EI-SDK.pdsc
+++ b/EdgeImpulse.EI-SDK.pdsc
@@ -5,13 +5,16 @@
EI-SDK
LICENSE-apache-2.0.txt
Edge Impulse SDK
- https://github.com/edgeimpulse/edge-impulse-sdk-pack/releases/download/v1.60.3/
+ https://github.com/edgeimpulse/edge-impulse-sdk-pack/releases/download/v1.60.5/
hello@edgeimpulse.com
https://github.com/edgeimpulse/edge-impulse-sdk-pack.git
-
+
EI-SDK
+
+ EI-SDK
+
EI-SDK
@@ -98,9 +101,6 @@
EI-SDK
-
-
- EI-SDK
@@ -146,7 +146,7 @@
-
+
Edge Impulse SDK
diff --git a/EdgeImpulse.pidx b/EdgeImpulse.pidx
index 9d5f315..0ccd986 100644
--- a/EdgeImpulse.pidx
+++ b/EdgeImpulse.pidx
@@ -2,8 +2,8 @@
EdgeImpulse
https://raw.githubusercontent.com/edgeimpulse/edge-impulse-sdk-pack/main/
- 2024-10-14 17:19:34
+ 2024-10-16 13:57:27
-
+
diff --git a/edgeimpulse/edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h b/edgeimpulse/edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h
index 49245c6..c129a9e 100644
--- a/edgeimpulse/edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h
+++ b/edgeimpulse/edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h
@@ -194,7 +194,7 @@ static int hw_r2c_fft(const float *input, ei::fft_complex_t *output, size_t n_ff
static int hw_r2r_fft(const float *input, float *output, size_t n_fft)
{
- if(!can_do_fft(n_fft)) { EIDSP_ERR(ei::EIDSP_NOT_SUPPORTED); }
+ if(!can_do_fft(n_fft)) { return ei::EIDSP_NOT_SUPPORTED; }
float *arm_fft_out;
auto allocator = EI_MAKE_TRACKED_POINTER(arm_fft_out, n_fft);
diff --git a/edgeimpulse/edge-impulse-sdk/dsp/numpy.hpp b/edgeimpulse/edge-impulse-sdk/dsp/numpy.hpp
index c4c01b3..e179569 100644
--- a/edgeimpulse/edge-impulse-sdk/dsp/numpy.hpp
+++ b/edgeimpulse/edge-impulse-sdk/dsp/numpy.hpp
@@ -50,9 +50,21 @@
#elif EIDSP_USE_CMSIS_DSP
#include "edge-impulse-sdk/dsp/dsp_engines/ei_arm_cmsis_dsp.h"
#else
+#define EIDSP_INCLUDE_KISSFFT 1
#include "edge-impulse-sdk/dsp/dsp_engines/ei_no_hw_dsp.h"
#endif
+// More decisions on kissfft
+#ifndef EIDSP_INCLUDE_KISSFFT
+
+#if defined(EI_CLASSIFIER_NON_STANDARD_FFT_SIZES) && !EI_CLASSIFIER_NON_STANDARD_FFT_SIZES
+#define EIDSP_INCLUDE_KISSFFT 0
+#else
+#define EIDSP_INCLUDE_KISSFFT 1
+#endif // EI_CLASSIFIER_NON_STANDARD_FFT_SIZES
+
+#endif // EIDSP_INCLUDE_KISSFFT
+
// For the following CMSIS includes, we want to use the C fallback, so include whether or not we set the CMSIS flag
#include "dsp/statistics_functions.h"
@@ -1723,6 +1735,7 @@ class numpy {
}
static int software_rfft(float *fft_input, float *output, size_t n_fft, size_t n_fft_out_features) {
+ #if EIDSP_INCLUDE_KISSFFT || !defined(EIDSP_INCLUDE_KISSFFT)
kiss_fft_cpx *fft_output = (kiss_fft_cpx*)ei_dsp_malloc(n_fft_out_features * sizeof(kiss_fft_cpx));
if (!fft_output) {
EIDSP_ERR(EIDSP_OUT_OF_MEM);
@@ -1751,10 +1764,14 @@ class numpy {
ei_dsp_free(fft_output, n_fft_out_features * sizeof(kiss_fft_cpx));
return EIDSP_OK;
+ #else
+ return EIDSP_NOT_SUPPORTED;
+ #endif
}
static int software_rfft(float *fft_input, fft_complex_t *output, size_t n_fft, size_t n_fft_out_features)
{
+ #if EIDSP_INCLUDE_KISSFFT || !defined(EIDSP_INCLUDE_KISSFFT)
// create fftr context
size_t kiss_fftr_mem_length;
@@ -1771,6 +1788,9 @@ class numpy {
ei_dsp_free(cfg, kiss_fftr_mem_length);
return EIDSP_OK;
+ #else
+ return EIDSP_NOT_SUPPORTED;
+ #endif
}
static int signal_get_data(const float *in_buffer, size_t offset, size_t length, float *out_ptr)