DMD_STM32 - библиотека DMD матриц для СТМ32 и RP2040

про 103VET6 я вам сразу писал, что стану им заниматься только если мне его кто-нибудь подарит :slight_smile: Камень дорогой и при этом редкий, усилия по добавлению его в библиотеку вряд ли окупятся.

Что касается “вашего” 407vgt6 и “моего” 407vet6 -то это чипы одной линейки, отличающиеся только размером флеша, у них даже даташит общий. Так что если заведется на моем - должно заработать и у вас.

Вас какие режимы больше интересуют - монохромные или RGB?

Здравствуйте. Спасибо за понимание , У меня монохром всего 16*32 …

Обновление - версия v0.9.2

DMD_STM32 on Github

Добавлена поддержка монохромных панелей для плат на чипе RP2040. Поддерживается только так называемый параллельный режим (подробнее в вики). Инициализацию панели и выбор пинов смотреть в примере.

Исправлены ошибки работы монохромных режимов на платах STM32F4 “блекпилл”. Скорость работы кода на блекпилах оказалась слишком быстрой, регистры на матрицах не успевали, пришлось добавить искусственные задержки :slight_smile:

В следующем релизе планирую добавить 8битный цвет.

@vadim_kkkk

Вадим, если нужда еще не отпала - на версии 0.9.2 плата stm32f407vet6 у меня заработала в монохромном режиме. Думаю и ваша F407vg должна запуститься.

Выбирайте в настройках Ардуино ИДЕ плату “Generic STM32F407v series”, скачиваете пример dmd_monochrome для STM32F4 плат. Используйте режим “параллельного подключения”. Пины можно оставить те, что в примере - должно работать.

Обязательно отпишитесь о результате.

Здравствуйте. Спасибо за беспокойство. Но я уже на 90%п перенёс проект на STM32CubeIde. Вывод на матрицу сделал покопавшись в сети. Пока все работает… Но на 407 попробую в ближайшее время, отпишусь…

Здравствуйте . Заказчику не понравились символы, на Р10.
Будем делать Р5 RGB. Буду ждать когда RGB для 407 сделаете…

Вадим, вы так и не отписались, работает ли у вас хотя бы монохром.
Что касается RGB - не планировал в ближайшее время этим заниматься.

Подскажите, кто-то встречал такие модули?

Здрасте
Вставьте, пожалуйста, картинку большего разрешения - на этой я не могу прочитать надписи. Но судя по распиновке разъема это не HUB08, не HUB12, и, тем более, не HUB75.
Что-нибудь известно про эту панель - монохром это или что? Разрешение?


Надписи все равно фиг читаются, ну да ладно. Судя по лицевой стороне, это очень древняя двух-цветная ДИП-матрица низкого разрешения.
Такие в библиотеке не поддерживаются и добавлять смысла не вижу - слишком старые.

Да это понятно, что смысла нет. Просто, думал вдруг кто сталкивался и контроллер заводской кто знает подходящий. Все равно, спасибо за ответ

Китайский контроллер наверняка можно подобрать… но опять же, есть ли смысл? Эти матрицы жрут много электричества по сравнению с современными СМД, а результат того не стоит - картинка очень низкокачественная…
Много их у вас?
Они для больших панно и смотрятся только с расстояния…

По поводу контроллера - подождите, может @FoxJone что-нибудь подскажет - он матрицами занимается профессионально.

У меня нет. А те кто ко мне обратились, говорят аж 49 кабинетов у них

Под большие обьемы можно и на заказ написать… :slight_smile:

А какая цена примерно может быть?

Это лучше в личке обсуждать.

Здравствуйте. Сделал как вы писали.

Спойлер

ПРЕДУПРЕЖДЕНИЕ: библиотека DMD_STM32_RGB должна запускаться на архитектурах [stm32 и может быть несовместима с вашей платой на архитектуре rp2040].
D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp: In member function ‘bool Adafruit_I2CDevice::write(const uint8_t*, size_t, bool, const uint8_t*, size_t)’:

D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:112:47: error: invalid conversion from ‘const uint8_t* {aka const unsigned char*}’ to ‘uint8* {aka unsigned char*}’ [-fpermissive]

 if (_wire->write(prefix_buffer, prefix_len) != prefix_len) {

                                           ^

In file included from C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\STM32F4\libraries\Wire/Wire.h:41:0,

             from D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.h:5,

             from D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:1:

C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\STM32F4\libraries\Wire/WireBase.h:116:10: note: initializing argument 1 of ‘void WireBase::write(uint8*, int)’

 void write(uint8*, int);

      ^~~~~

D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:112:49: error: invalid operands of types ‘void’ and ‘size_t {aka unsigned int}’ to binary ‘operator!=’

 if (_wire->write(prefix_buffer, prefix_len) != prefix_len) {

     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~

D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:121:31: error: invalid conversion from ‘const uint8_t* {aka const unsigned char*}’ to ‘uint8* {aka unsigned char*}’ [-fpermissive]

if (_wire->write(buffer, len) != len) {

                           ^

In file included from C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\STM32F4\libraries\Wire/Wire.h:41:0,

             from D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.h:5,

             from D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:1:

C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\STM32F4\libraries\Wire/WireBase.h:116:10: note: initializing argument 1 of ‘void WireBase::write(uint8*, int)’

 void write(uint8*, int);

      ^~~~~

D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:121:33: error: invalid operands of types ‘void’ and ‘size_t {aka unsigned int}’ to binary ‘operator!=’

if (_wire->write(buffer, len) != len) {

   ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~

D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp: In member function ‘bool Adafruit_I2CDevice::_read(uint8_t*, size_t, bool)’:

D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:195:79: error: no matching function for call to ‘TwoWire::requestFrom(uint8_t, uint8_t, uint8_t)’

size_t recv = _wire->requestFrom((uint8_t)_addr, (uint8_t)len, (uint8_t)stop);

                                                                           ^

In file included from C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\STM32F4\libraries\Wire/Wire.h:41:0,

             from D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.h:5,

             from D:\arduino_1.6\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:1:

C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\STM32F4\libraries\Wire/WireBase.h:101:11: note: candidate: uint8 WireBase::requestFrom(uint8, int)

 uint8 requestFrom(uint8, int);

       ^~~~~~~~~~~

C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\STM32F4\libraries\Wire/WireBase.h:101:11: note: candidate expects 2 arguments, 3 provided

C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\STM32F4\libraries\Wire/WireBase.h:106:11: note: candidate: uint8 WireBase::requestFrom(int, int)

 uint8 requestFrom(int, int);

       ^~~~~~~~~~~

C:\Program Files (x86)\Arduino\hardware\Arduino_STM32\STM32F4\libraries\Wire/WireBase.h:106:11: note: candidate expects 2 arguments, 3 provided

exit status 1
Ошибка компиляции для платы Generic STM32F407V series.

Турецкий фонт для библиотеки, сорри за качество ролика :slight_smile:
https://youtu.be/hsDohmxn968

  • текст: Маленькая утка и большая сова :slight_smile:

@FoxJone что-нибудь подскажет - он матрицами занимается профессионально.

И тем не менее, всуе прошу не упоминать! (с)

А по сабжу сдать это коллекционерам как раритет.
Я когда привез первые модули в страну в конце нулевых (а я вообще был первый, кто привез их в Сибирь - про европейскую часть страны не буду зарекаться), такие модули уже считались раритетом.
Что за хаб у них - вообще без понятия, но точно не 08/12/74/75. Скорее всего какой то давно почивший в бозе, по крайней мере сейчас таких точно нету.
Сами модули с шагом 25 мм :joy:

2 лайка