Vlad
Пока что это звучит как два пика на спектре, уверены что вам бфт подходит а не вельвет?))
да не уверен ни в чем, только осваиваю тему. но в промышленности вроде долговременные вращения машин с плавной деградацией подшипников, вейвлет вроде тут не нужен
Anton
ппл, чтобы подключить лте-5г антены к X55 Quectel, какие разъёмы нужны? я пока кажется нашёл, что MHF4, но это не точно :)
Центр
Уважаемые
Центр
Помогите, ESP32 заливаю прошивку из примеров на управление WIFI. ESP32 перезагружается
Центр
Вот такая ошибка, esp32 перезагружается
Центр
Не BLT не WiFi ESP32 не воспринимает и перезагружается. Другие прошивки например с диодами или реле работают
Agent
Вот такая ошибка, esp32 перезагружается
Какая-то проблема с размером прошивки видимо. Что в настройках Partition Scheme выбрано?
Центр
Эти параметры здесь?
Центр
Agent
Эти параметры здесь?
Вроде адекватно стоит, но попробуй выбрать Huge APP для начала.
Vlad
ну что ты голову паришь - посмотри чипинфо, ну или в конфигах поставь opi и qspi а какие бывают тут все написано https://products.espressif.com/#/product-selector?names=&filter={%22Series%22:[%22ESP32-S3%22]}
ха! попробовал тестануть опять БПФ для полосы частот 8000 кГц: 1) раньше пробовал esp32-s3R2 c QSPI PSRAM ("кругляш" https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-1.28) - и работало в 10 раз медленнее (20 сек вместо 2), чем когда все буферы во внутренней SRAM, т.е. криво - спектр смещен-изувечен, т.к. медленно 2) а счас попробовал тоже самое, но на камне esp32-s3R8 c OPI PSRAM ("прямоугольник" https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-2) - и он медленнее ровно на 25% (626 мс вместо 500 мс), спектр опять смещен вверх. получается, OPI PSRAM быстрее QSPI PSRAM в ... 10 / 1.25 = 8 раз !
Центр
Поставил
Центр
все равно также
Угін
все равно также
флеш сайз поменяй на 4 мэбэ
Центр
Тоже самое
Центр
И такая вот фигня с 2-умя ESP32. Не ставится скетч и всё... уже мучаюсь 5 день
Vlad
ппл, чтобы подключить лте-5г антены к X55 Quectel, какие разъёмы нужны? я пока кажется нашёл, что MHF4, но это не точно :)
еб...тый производитель, https://www.elmatrix.ru/upload/docs/l10-c_quec.pdf даже не указал явно разъемы
Центр
Угін
Тоже самое
че то же самое он терь ребутается читай трейс да фикси я хз как ардуина там крутится должна
Центр
Так то это готовый код из примера, должно все работать
Угін
а какие там чипы ану
Центр
Сейчас на него заливал скетч
Центр
ch340c
Vlad
https://www.pjrc.com/store/teensy41.html
1024K RAM (512K tightly coupled), 4K EEPROM (emulated) QSPI memory expansion, locations for 2 extra RAM :(
Центр
Вот другая прошивка из примера
Anton
еб...тый производитель, https://www.elmatrix.ru/upload/docs/l10-c_quec.pdf даже не указал явно разъемы
аптом и спич. ещё я так понимаю эти разъёмы обжимать надо? суть вопроса — появился у меня avm 6850 5g, у него потенциал выше, чем реализовано. можно вывести ещё две дополнительные лте-5г антены и 3 влан антены наружу.
Центр
Загрузчик
Anton
у влан разъёмы murata, а вот лте-5г не могу однозначно раскопать
Anton
1024K RAM (512K tightly coupled), 4K EEPROM (emulated) QSPI memory expansion, locations for 2 extra RAM :(
сдаётся мне что-то ты делаешь не правильно
Vlad
сдаётся мне что-то ты делаешь не правильно
может быть, но тут хотелка максимально навороченная. и полосу частот надо максимальную, и дискретность 1 Гц, и габариты минимальные... так конечно не бывает, но ... пока ищу
Vlad
может быть, но тут хотелка максимально навороченная. и полосу частот надо максимальную, и дискретность 1 Гц, и габариты минимальные... так конечно не бывает, но ... пока ищу
// Настройки #define SAMPLES 8192 // Количество отсчётов (сэмплов) для анализа.2048 - быстро #define SAMPLE_RATE 16384 // Гц, Частота дискретизации — сколько раз в секунду снимаются показания с акселерометра (Минимальное значение: 2 × MAX_FREQ (по теореме Найквиста), максимальное - от скорости датчика).4096 при i2c, 8192 при spi #define MAX_FREQ 8000 // Максимальная анализируемая частота, Гц, #define FREQ_STEP ((double)SAMPLE_RATE / SAMPLES) // Разрешение, Гц #define MIN_FREQ 20.0 // Минимальная анализируемая частота (Гц), чтобы исключить ненужные паразитные, возникающие при расчетах (для систем с низкочастотными вибрациями (например, 5-10 Гц) - уменьшить) #define PICK_MINIMUM_PERCENT 300 // Минимальный процент превышения пика над RMS, попадающих в результат #define MAX_PEAKS 20 // Максимальное количество пиков, попадающих в результат #define FREQ_DISTANCE_PERCENT 10.0 // Процент отличия частоты, при котором пик считается "одиноким", и удаляется #define NOISE_FLOOR 0.001 // Порог шума (g), ниже которого данные игнорируются #define HAMMING_CORRECTION 0.54 // Поправка для окна Хэмминга вот такие настройки в 512 кб уже не влазят
Resident
// Настройки #define SAMPLES 8192 // Количество отсчётов (сэмплов) для анализа.2048 - быстро #define SAMPLE_RATE 16384 // Гц, Частота дискретизации — сколько раз в секунду снимаются показания с акселерометра (Минимальное значение: 2 × MAX_FREQ (по теореме Найквиста), максимальное - от скорости датчика).4096 при i2c, 8192 при spi #define MAX_FREQ 8000 // Максимальная анализируемая частота, Гц, #define FREQ_STEP ((double)SAMPLE_RATE / SAMPLES) // Разрешение, Гц #define MIN_FREQ 20.0 // Минимальная анализируемая частота (Гц), чтобы исключить ненужные паразитные, возникающие при расчетах (для систем с низкочастотными вибрациями (например, 5-10 Гц) - уменьшить) #define PICK_MINIMUM_PERCENT 300 // Минимальный процент превышения пика над RMS, попадающих в результат #define MAX_PEAKS 20 // Максимальное количество пиков, попадающих в результат #define FREQ_DISTANCE_PERCENT 10.0 // Процент отличия частоты, при котором пик считается "одиноким", и удаляется #define NOISE_FLOOR 0.001 // Порог шума (g), ниже которого данные игнорируются #define HAMMING_CORRECTION 0.54 // Поправка для окна Хэмминга вот такие настройки в 512 кб уже не влазят
Вам камушек по лучше надо, с запасом, что бы не тормощило =) и сами понимаете же
Vlad
// Настройки #define SAMPLES 8192 // Количество отсчётов (сэмплов) для анализа.2048 - быстро #define SAMPLE_RATE 16384 // Гц, Частота дискретизации — сколько раз в секунду снимаются показания с акселерометра (Минимальное значение: 2 × MAX_FREQ (по теореме Найквиста), максимальное - от скорости датчика).4096 при i2c, 8192 при spi #define MAX_FREQ 8000 // Максимальная анализируемая частота, Гц, #define FREQ_STEP ((double)SAMPLE_RATE / SAMPLES) // Разрешение, Гц #define MIN_FREQ 20.0 // Минимальная анализируемая частота (Гц), чтобы исключить ненужные паразитные, возникающие при расчетах (для систем с низкочастотными вибрациями (например, 5-10 Гц) - уменьшить) #define PICK_MINIMUM_PERCENT 300 // Минимальный процент превышения пика над RMS, попадающих в результат #define MAX_PEAKS 20 // Максимальное количество пиков, попадающих в результат #define FREQ_DISTANCE_PERCENT 10.0 // Процент отличия частоты, при котором пик считается "одиноким", и удаляется #define NOISE_FLOOR 0.001 // Порог шума (g), ниже которого данные игнорируются #define HAMMING_CORRECTION 0.54 // Поправка для окна Хэмминга вот такие настройки в 512 кб уже не влазят
// Настройки #define SAMPLES 4096 // Количество отсчётов (сэмплов) для анализа.2048 - быстро #define SAMPLE_RATE 8192 // Гц, Частота дискретизации — сколько раз в секунду снимаются показания с акселерометра (Минимальное значение: 2 × MAX_FREQ (по теореме Найквиста), максимальное - от скорости датчика).4096 при i2c, 8192 при spi #define MAX_FREQ 4000 // Максимальная анализируемая частота, Гц, а такие - еще влазят, и работают ОК: время чтения реально не выше расчетного FREQ_STEP, но только через SPI и в SRAM
Центр
Как фиксить?))
Vlad
Вот другая прошивка из примера
так она прошивается, раз пытается connecting to you ssid
Vlad
реально flash 16M и DIO ?
Vlad
Тоже самое
Waiting for WiFi зашилось и пытается работать же
Центр
Перезагружается почему то
Vlad
а нафига ее нахлобучивать на какую-то мать ?
Центр
Да просто ))
Anton
The memory requirements for FFT (Fast Fourier Transform) functions in the esp-dsp library primarily depend on the number of complex data points (fftLen) and whether the operation is performed in-place. For an in-place calculation with 2*fftLen interleaved complex values, a memory size of 16 KB is often sufficient. This is because the input and output data share the same memory location, reducing the overall memory footprint. Memory Considerations: In-place vs. Out-of-place: The esp-dsp library's FFT functions are typically designed to operate in-place, meaning the input array is also used to store the output. This significantly reduces memory usage. Complex Data: FFT functions work with complex numbers, requiring both real and imaginary parts for each data point. Array Size: The input array must have a size that is a power of 2 (e.g., 256, 512, 1024, 4096, etc.). The default FFT size in the esp-dsp library is often 4096. Data Type: The data type (e.g., float, double) used to represent the complex numbers will also influence the memory usage. Single-precision floats (32-bit) are commonly used, requiring 4 bytes per real or imaginary part, so 8 bytes per complex number. Example: For a 1024-point complex FFT (fftLen = 1024), you'll need an array of size 2 * 1024 = 2048 elements. If using single-precision floats, this would require 2048 * 8 = 16,384 bytes, or 16 KB of memory. Additional Notes: The esp-dsp library provides examples, such as fft4real, which demonstrate how to use FFT functionality, including initializing input signals, calculating FFT, and applying bit reversal. The library also includes APIs for different FFT sizes and data types, allowing you to optimize memory usage based on your specific needs. If you are dealing with real-valued signals, you can often adapt the FFT functions to handle them efficiently, potentially reducing memory overhead. Consider using the dsps_fft4r function from the esp-dsp library for real-valued inputs as it can optimize the FFT calculation for this case, according to the ESP-IDF documentation.
Центр
Vlad
ну рискни без нее
Центр
С этим работает исправно , реле щелкает
Центр
Как что то с Wi-Fi сразу перезагружает
Vlad
не понял тогда, с каким-то конкретным скетчем не работает ? а с другими - полностью работает ?
Anton
можно ещё сюда посмотреть: The TI MSP430FR5994 MCU has a low energy accelerator that performs complex FFT. They also provide code that offloads the audio data stream to DMA to allow real time signal processing. There is an inexpensive Launchpad dev board
Центр
Все что касается беспроводного подключения
Центр
Ну я пробовал короткие скетчи , там диод , реле , они мало весят
Vlad
Все что касается беспроводного подключения
USB-кабель меняй 146 %, толще питание
Центр
А какой?
Vlad
пока не заработает :)
Центр
Если запитать от 12 вольт с понижением
Центр
Центр
Вот такая плата есть понижающая
Vlad
// Настройки #define SAMPLES 4096 // Количество отсчётов (сэмплов) для анализа.2048 - быстро #define SAMPLE_RATE 8192 // Гц, Частота дискретизации — сколько раз в секунду снимаются показания с акселерометра (Минимальное значение: 2 × MAX_FREQ (по теореме Найквиста), максимальное - от скорости датчика).4096 при i2c, 8192 при spi #define MAX_FREQ 4000 // Максимальная анализируемая частота, Гц, а такие - еще влазят, и работают ОК: время чтения реально не выше расчетного FREQ_STEP, но только через SPI и в SRAM
// Общие буферы для всех осей double accelData[SAMPLES]; // Буфер для данных акселерометра (одна ось за раз) double fftReal[SAMPLES]; // Реальная часть FFT double fftImag[SAMPLES]; // Мнимая часть FFT // Единственный объект FFT ArduinoFFT<double> FFT = ArduinoFFT<double>(fftReal, fftImag, SAMPLES, SAMPLE_RATE); // Структура для хранения информации о пиках struct PeakInfo { double frequency; double amplitude; double rms; }; // Глобальные массивы пиков для всех осей PeakInfo peaksX[MAX_PEAKS], peaksY[MAX_PEAKS], peaksZ[MAX_PEAKS]; Это уже всё есть, буфер один всего, на все 3 оси, поочередная обработка. Просто всё 1) хочешь высокую частоту MAX_FREQ - надо вдвое выше частоту дискретизации SAMPLE_RATE 2) а так же хочешь высокое разрешение FREQ_STEP спектра по частоте - надо и SAMPLES еще выше делать 3) а это разбухание - и в мозг не лезет, и проц тормозит. А если тормозит - спектр изувеченный. Нах не нужный
Ник
Хочется быстро, но фифо обошли стороной. Интересно когда осознаёте что после 4кгц точность в один Герц нужна только вам)
Anton
double???
Anton
на esp32 считать в даблах???
Anton
во-первых, перейди на флоаты
Anton
флоат на есп32 уже нормально, по скорости как инт почти
Ник
Не путайте человека ему нужно очень точно
Anton
во вторых, генерики с++ на мк?
Anton
в третьих, я подозреваю, что сырые данные с сенсоров надо прогонять через фильтр
Anton
// Общие буферы для всех осей double accelData[SAMPLES]; // Буфер для данных акселерометра (одна ось за раз) double fftReal[SAMPLES]; // Реальная часть FFT double fftImag[SAMPLES]; // Мнимая часть FFT // Единственный объект FFT ArduinoFFT<double> FFT = ArduinoFFT<double>(fftReal, fftImag, SAMPLES, SAMPLE_RATE); // Структура для хранения информации о пиках struct PeakInfo { double frequency; double amplitude; double rms; }; // Глобальные массивы пиков для всех осей PeakInfo peaksX[MAX_PEAKS], peaksY[MAX_PEAKS], peaksZ[MAX_PEAKS]; Это уже всё есть, буфер один всего, на все 3 оси, поочередная обработка. Просто всё 1) хочешь высокую частоту MAX_FREQ - надо вдвое выше частоту дискретизации SAMPLE_RATE 2) а так же хочешь высокое разрешение FREQ_STEP спектра по частоте - надо и SAMPLES еще выше делать 3) а это разбухание - и в мозг не лезет, и проц тормозит. А если тормозит - спектр изувеченный. Нах не нужный
ты удивишься насколько быстрее флоаты, чем даблы на есп32. суть: даблы реализуются програмно, флоаты аппаратно.
Anton
да, если ещё и константы типа 10.0, то по стандарту си (++) они будут даблами и это сильно тормознёт вычисления, надо везде явно писать 10.0f
Anton
Anton
Для FFT только оконный фильтр же нужен
Мусор на входе - мусор на выходе. Смотреть надо, датчик там поди шумный
Evgeniy
По всей полосе шумит или только на опред частотах?
Evgeniy
По питанию может что-то пролазить
Vlad
спасибища за советы, докладываю о результатах правок: 1) было с double-ами: Measurement time: 626 ms Processing time: 1237 ms 2) стало с float-ами: Measurement time: 626 ms Processing time: 506 ms обработка улучшилась ну реально. но в данном случае - все равно это не помогает, т.к. скорость получения данных - низковата, для буферов под 8000 Гц
Vlad
хотя это все было для PSRAM ! счас в SRAM каааак проверим, влезть то теперь обязано для 8000 Гц