Чтение и запись файла конфигурации на Adafruit Circuit Playground Express

Я хотел бы сохранить конфигурацию приложения в файле, хранящемся на флэш-памяти Circuit Playground Express (CPX). Само приложение должно иметь возможность обновлять файл конфигурации. Вещи, которые мне нужно хранить, являются базовыми, например:

  • Яркость неопикселя (например, яркость = 0,9)
  • Включение/выключение NeoPixels (напр. NP_enable = [0,0,1,0,1,0,1,1,1,1]

ArduinoJason кажется подходящим, но я даже не могу добраться до точки записи файлов в CPX. Предполагается, что библиотеки TinyUSB предоставляют возможность записи в CPX SPI Flash, но я не могу скомпилировать ни один из примеров, включенных в эту библиотеку. Я пытаюсь скомпилировать пример msc_external_flash, поставляемый с библиотекой TinyUSB. Я получаю следующие 2 ошибки:

In file included from /home/pi/Arduino/libraries/Adafruit_TinyUSB_Library/examples/MassStorage/msc_external_flash/msc_external_flash.ino:28:0:
/home/pi/Arduino/libraries/Adafruit_TinyUSB_Library/src/Adafruit_TinyUSB.h:31:2: error: #error TinyUSB is not selected, please select it in "Tools->Menu->USB Stack"
#error TinyUSB is not selected, please select it in "Tools->Menu->USB Stack"
^~~~~
msc_external_flash:65:6: error: #error No QSPI/SPI flash are defined on your board variant.h !
#error No QSPI/SPI flash are defined on your board variant.h !
^~~~~

Выбранная плата - SAMD-->Circuit Playground Express. В меню "Сервис" нет пункта для выбора стека USB.

Что касается второй ошибки, Из msc_external_flash.ino:

  #if defined(EXTERNAL_FLASH_USE_QSPI)
    Adafruit_FlashTransport_QSPI flashTransport;
  #elif defined(EXTERNAL_FLASH_USE_SPI)
    Adafruit_FlashTransport_SPI flashTransport(EXTERNAL_FLASH_USE_CS, EXTERNAL_FLASH_USE_SPI);
  #else
    #error No QSPI/SPI flash are defined on your board variant.h !
  #endif

из файлов с именем variant.h этот выглядит лучшим кандидатом: /главная/pi/.arduino15/пакеты/arduino/оборудование/samd/1.8.12/варианты/схема воспроизведения/variant.h

но файл не содержит строки "EXTERNAL_FLASH" или чего-либо, что я вижу, специфичного для CPX.

Версия Arduino 1.8.19, которую я использую на Raspberry Pi 3 B +, работающем под управлением Buster.

Спасибо, Скотт

, 👍1

Обсуждение

пожалуйста , опишите проблему и задайте вопрос ... этот сайт не является форумом, @jsotola

[Ардуиноджсон](https://arduinojson.org /) имеет пример, который считывает файл конфигурации с SD-карты. See [JsonConfigFile.ino](https://arduinojson.org/v6/example/config/). Вы можете легко адаптировать его для любой другой файловой системы, такой как SPIFFS и LittleFS., @Benoit Blanchon

установите ядро Adafruit SAMD core. похоже, вы используете ядро Arduino SAMD, которое имеет только базовую поддержку платы Adaruit, @Juraj

Выбранная плата - SAMD-->Circuit Playground Express. Я могу запустить другие примеры CPX, такие как IRNeoPixels, я предполагаю, что у меня есть ядро Adafruit SAMD., @user3308886

да, но вы не можете скомпилировать фирменные блюда Adafruit с ядром Arduino SAMD, @Juraj


1 ответ


3

Проблема заключалась в использовании ядра платы Arduino SAMD вместо ядра платы Adafruit SAMD. Ядро платы Adafruit SAMD не будет видно, если вы не добавите: https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

в поле "URLS менеджера дополнительных плат:" панели настроек Arduino IDE.

Как только вы это сделаете... Затем установите "Платы Adafruit SAMD" из Arduino IDE Boards Manager. Затем выберите пункт меню: Инструменты -> Правление: --> Платы Adafruit SAMD (32-разрядные ARM Cortext-M0+ и Cortext-M4) -> Adafruit Circuit Игровая площадка Экспресс (SAMD21)

Я не видел эту процедуру ни в одной документации Adafruit.

,

https://learn.adafruit.com/adafruit-feather-m0-basic-proto/setup, @Juraj