Блок пользователя - Часы на ленте WS2812, ESP8266

Разработка блока часов на адресной ленте и ESP8266

Создаем свой блок. Вопросы, помощь знатоков.
aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блок пользователя - Часы на ленте WS2812, ESP8266

#41

Сообщение aidar_i » 01.10.2019{, 20:33}

diman27 писал(а):
27.09.2019{, 17:34}
Привет всем, подскажите, как на матричных часах можно шрифт сменить
Можно, в библиотеке Adafruit_GFX очень много шрифтов, подберете необходимую. Если нужно другое, создайте по моему видео.
Выкладываю пример с блоком выбора шрифта.
Выбор шрифтов.flp
(372.56 КБ) 137 скачиваний
Последний раз редактировалось aidar_i 04.10.2019{, 17:29}, всего редактировалось 1 раз.

Аватара пользователя
diman27
Сержант
Сообщения: 269
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 4
Откуда: Белово

Блок пользователя - Часы на ленте WS2812, ESP8266

#42

Сообщение diman27 » 04.10.2019{, 12:30}

Что-то не работает блок, просит библиотеку с название шрифта.
Arduino: 1.8.9 (Windows 10), Плата:"LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600"

C:\Users\krentsler\AppData\Local\Temp\flprog\pr12\pr12.ino: In function 'void setup()':

pr12:129:1: error: 'matrix' was not declared in this scope

matrix.setFont(&FreeSans9pt7b.h);

^

pr12:129:31: error: 'const struct GFXfont' has no member named 'h'

matrix.setFont(&FreeSans9pt7b.h);

^

exit status 1
'matrix' was not declared in this scope
Вложения
часы ws.flp
(1.17 МБ) 106 скачиваний

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блок пользователя - Часы на ленте WS2812, ESP8266

#43

Сообщение aidar_i » 04.10.2019{, 17:28}

Прошу прощения, в параметрах блока шрифта, я ввел &FreeSans9pt7b.h . Нужно убрать "точку" и "аш". Подправил проект.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Блок пользователя - Часы на ленте WS2812, ESP8266

#44

Сообщение edyapd » 02.12.2019{, 16:35}

aidar_i, подскажите, а где взять библиотеку Fonts/FreeSans9pt7b.h
Поиск выдаёт два результата и оба ссылаются на эту тему.

Отправлено спустя 25 минут 34 секунды:
Кажется нашёл ЗДЕСЬ

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Блок пользователя - Часы на ленте WS2812, ESP8266

#45

Сообщение Qwert855 » 10.03.2021{, 15:24}

aidar_i писал(а):
04.07.2019{, 23:22}
Библиотека с кириллицей
Adafruit_GFX_Library.zip
добрый день.
подскажите кирилица в блоке только одним шрифтом?
если выбираю в проекте шрифт из данной библиотеки отличный от базового, то кирилица не отображается вовсе а англ. знаки работают хорошо.

Отправлено спустя 2 минуты 37 секунд:
Qwert855 писал(а):
10.03.2021{, 15:24}
aidar_i писал(а):
04.07.2019{, 23:22}
Библиотека с кириллицей
Adafruit_GFX_Library.zip
добрый день.
подскажите кириллица в блоке только одним шрифтом?
если выбираю в проекте шрифт из данной библиотеки отличный от базового, то кириллица не отображается вовсе а англ. знаки работают хорошо.
шрифт по умолчанию работает в кириллице.

dsfbuy
Сержант
Сообщения: 171
Зарегистрирован: 03.11.2018{, 12:40}
Репутация: 21
Откуда: Братск
Имя: Виктор

Блок пользователя - Часы на ленте WS2812, ESP8266

#46

Сообщение dsfbuy » 10.03.2021{, 19:28}

Qwert855, Вы устанавливали свои шрифты с кириллицей? Все стандартные шрифты в библиотеке только с латиницей.

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Блок пользователя - Часы на ленте WS2812, ESP8266

#47

Сообщение Qwert855 » 10.03.2021{, 22:49}

dsfbuy писал(а):
10.03.2021{, 19:28}
Qwert855, Вы устанавливали свои шрифты с кириллицей? Все стандартные шрифты в библиотеке только с латиницей.
Взял блок из вложения под цитаттой.
Шрифт с кириллицей работает, но он очень мелкий.
При выборе другого размера работает только латиница, кириллица просто не отображается никак- пустота.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блок пользователя - Часы на ленте WS2812, ESP8266

#48

Сообщение aidar_i » 11.03.2021{, 05:57}

Здесь я выложил выше библиотеку с кириллицей, если используется штатная Ардуино Иде, удалите старые библиотеки из нее, там она в двух местах.
Ставьте в DeclareSection:
FontsRus/ название библиотеки шрифта.h

В параметрах ставьте:
&название шрифта.
Внимание! Название библиотеки и название шрифта совпадают не полностью, нужно открыть библиотеку и скопировать название выбранного шрифта.
Последний раз редактировалось aidar_i 06.01.2022{, 08:51}, всего редактировалось 1 раз.

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Блок пользователя - Часы на ленте WS2812, ESP8266

#49

Сообщение Qwert855 » 11.03.2021{, 08:50}

aidar_i писал(а):
11.03.2021{, 05:57}
Здесь я выложил выше библиотеку с кириллицей, если используется штанная Ардуино Иде, удалите старые библиотеки из нее, там она в двух местах.
Ставьте в DeclareSection:
FontsRus/ название библиотеки шрифта.h

В параметрах ставьте:
&название шрифта.
Внимание! Название библиотеки и название шрифта совпадают не полностью, нужно открыть библиотеку и скопировать название выбранного шрифта.
Поищу лучше.
У меня сейчас Fonts/ название библиотеки шрифта.h
При этом удалив все копии кириллица появилась вместо кривых знаков но только в мелком шрифт штатном вроде 8м.

Библ с папкой FontsRus не попадалась.
Спасибо.

Отправлено спустя 4 минуты 4 секунды:
Библиотека используется с 5го поста.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блок пользователя - Часы на ленте WS2812, ESP8266

#50

Сообщение aidar_i » 11.03.2021{, 10:59}

Эта библиотека выложена в другом месте.
В этой библиотеке в папке FontsRus много шрифтов с кириллицей. В сообщении 48 я писал, как пользоваться.
Отправлено спустя 9 минут 42 секунды:
Adafruit_GFX_Library.rar
(1.14 МБ) 81 скачивание

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Блок пользователя - Часы на ленте WS2812, ESP8266

#51

Сообщение Qwert855 » 11.03.2021{, 11:45}

aidar_i писал(а):
11.03.2021{, 11:09}
Эта библиотека выложена в другом месте.
В этой библиотеке в папке FontsRus много шрифтов с кириллицей. В сообщении 48 я писал, как пользоваться.
Отправлено спустя 9 минут 42 секунды:
Adafruit_GFX_Library.rar
спасибо, да библ отличается.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блок пользователя - Часы на ленте WS2812, ESP8266

#52

Сообщение aidar_i » 11.03.2021{, 12:52}

Если не получается, пишите.

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Блок пользователя - Часы на ленте WS2812, ESP8266

#53

Сообщение Qwert855 » 11.03.2021{, 13:40}

попробовал залить рабочую программу с обновленной библиотекой.
она в одной копии по адресу ФЛП\ideV6\libraries\
в самой папке имеется Adafruit_GFX_Library\FontsRus

ключевые параметры в скетче (как я понимаю)

Код: Выделить всё

#include <FontsRus/CrystalNormal9.h>
 
if (en_font) matrix.setFont(&CrystalNormal9);
при этом ошибка
'CrystalNormal9' was not declared in this scope

шрифты разные пробовал сама суть та же, очевидно библиотеку не находит.
\Documents\Arduino\libraries не содержит копии
\ideV6\portable\sketchbook\libraries не содержит копии

Отправлено спустя 3 минуты 19 секунд:
тут же меняю код на

Код: Выделить всё

#include <Fonts/FreeSans9pt7b.h>
 
  if (en_font) matrix.setFont(&FreeSans9pt7b);
и все норм.

почему то не видит именно FontsRus/

Отправлено спустя 3 минуты 26 секунд:
думаю не подгружается файл в котором указана разметка файлов на папке FontsRus/

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блок пользователя - Часы на ленте WS2812, ESP8266

#54

Сообщение aidar_i » 11.03.2021{, 15:48}

Внимательно читайте мой комментарий в сообщении 48 после Внимание!
Автор шрифтов так неудобно назвал библиотеки шрифтов и сами шрифты.

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Блок пользователя - Часы на ленте WS2812, ESP8266

#55

Сообщение Qwert855 » 11.03.2021{, 16:18}

я названия беру фактические из папки (не из списка в блоке шрифтов-они отличаются от FontsRus ) \ideV6\libraries\Adafruit-GFX-Library\FontsRus\CourierCyr9.h

вставляю в скетч CourierCyr9 как написал выше.

ответ - не найдено 'CrystalNormal9' was not declared in this scope

библиотеки Adafruit_NeoMatrix и Adafruit_GFX_Library взял с этой ветки, или нужно еще что то заменить?
Копии этих библиотек что были удалил по адресам
\Documents\Arduino\libraries
\ideV6\portable\sketchbook\libraries
\ideV6\libraries

поместил скаченные в \ideV6\libraries
ответ - 'CrystalNormal9' was not declared in this scope

остается только комп перезагрузить.

Отправлено спустя 5 минут 1 секунду:
на другом компе то же самое.

Отправлено спустя 4 минуты 9 секунд:

Код: Выделить всё

#include <Adafruit_NeoMatrix.h>
#include <FontsRus/CourierCyr9.h>
#include <Adafruit_GFX.h>
#include <Adafruit_NeoPixel.h>

Код: Выделить всё

{
    matrix.begin();
    matrix.setTextWrap(0);
    matrix.setFont(&CourierCyr9);
}

Код: Выделить всё

    {
        		
        		STR_Temp = in_Text;
        		tape = utf8rus(in_Text);
        		length_string= tape.length()*(8);
        		 //Так подсчет символов с кирилицей будет верный		
        		toStart=1;
        		
        	
    }
Отправлено спустя 46 минут 46 секунд:
программа ругается именно на

Код: Выделить всё

if (en_font) matrix.setFont(&Crystal8);
декларацию она видит.

Код: Выделить всё

#include <FontsRus/Crystal8.h>
если изменить название то декларация не проходит

Отправлено спустя 12 минут 19 секунд:
aidar_i писал(а):
01.10.2019{, 20:33}
diman27 писал(а):
27.09.2019{, 17:34}
Привет всем, подскажите, как на матричных часах можно шрифт сменить
Можно, в библиотеке Adafruit_GFX очень много шрифтов, подберете необходимую. Если нужно другое, создайте по моему видео.
Выкладываю пример с блоком выбора шрифта.
Выбор шрифтов.flp
скачал данный блок, он отличается от того что использовал я.
но суть та же.
если Fonts то компиляция проходит
если FontsRus то ошибка на

Код: Выделить всё

matrix.setFont(&Crystal9);
в выложенной библиотеке из 50го поста есть разные версии файлов
glcdfont.c
gfxfont.h
и их архивные копии, не может быть в этом дело?

Отправлено спустя 1 час 9 минут 52 секунды:
попытка воткнуть шрифт подменой содержимого :D , привела к тому что англ знаки работают а русские нет (просто пустое табло)

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блок пользователя - Часы на ленте WS2812, ESP8266

#56

Сообщение aidar_i » 11.03.2021{, 19:25}

Откройте библиотеку шрифта в notepad+
Там название шрифта Crystal9pt8b (посмотрите точно как)

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Блок пользователя - Часы на ленте WS2812, ESP8266

#57

Сообщение Qwert855 » 11.03.2021{, 20:21}

aidar_i писал(а):
11.03.2021{, 19:25}
Откройте библиотеку шрифта в notepad+
Там название шрифта Crystal9pt8b (посмотрите точно как)
я уже все что знал перепробовал
осталось экзоциста позвать
дело не в конкретном шрифте а выборе шрифта функцией

Код: Выделить всё

setFont()
эта функция работает только со списком файлов который в папке Fonts при этом название самой папки не важно (главное что бы совпадало фактическое и указанное в #include).
я так понимаю где то есть "подпись" в шрифтах может это, и где то файл который сверяет их по своему массиву.

Код: Выделить всё

const GFXfont CourierCyr9pt8b PROGMEM = {
  (uint8_t  *)CourierCyr9pt8bBitmaps,
  (GFXglyph *)CourierCyr9pt8bGlyphs,
  0x20, 0xC1, 15 };
и где то в файле библиотеки прописано с какими файлами, как работать
а

Код: Выделить всё

#include <FontsRus/CourierCyr9.h>
показывает только фактический файл в котором искать "подпись"

Код: Выделить всё

const uint8_t Crystal9pt8bBitmaps[] PROGMEM = {
  0x32, 0x26, 0x66, 0x44, 0x4C, 0xC8, 0x08, 0xDB, 0xB0, 0xFF, 0xFE, 0x00,
  0x18, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80,
  0x06, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0x7F,
  0xFF, 0x04, 0x00, 0x1F, 0x7F, 0x40, 0xC0, 0xC0, 0xFE, 0x7C, 0x00, 0x03,
  0x02, 0x02, 0xFE, 0xFA, 0x00, 0x20, 0x00, 0x00, 0x00, 0xE1, 0x04, 0x4C,
  0x11, 0x20, 0x44, 0x80, 0x06, 0x08, 0x90, 0x22, 0xCF, 0x88, 0x45, 0xC9,
  0x10, 0x64, 0x41, 0x80, 0x04, 0x88, 0x32, 0x20, 0xC8, 0x82, 0x1C, 0x00,
  0x00, 0x0F, 0x8F, 0xE2, 0x00, 0x82, 0x60, 0x9F, 0xB3, 0xE9, 0x04, 0x41,
  0xB0, 0x4C, 0x13, 0x0C, 0xFD, 0x1F, 0x00, 0xE8, 0x1C, 0xF2, 0x08, 0x61,
  0x84, 0x10, 0x41, 0x0C, 0x30, 0xF1, 0xC0, 0x38, 0xF0, 0xC3, 0x08, 0x20,
  0x82, 0x18, 0x61, 0x84, 0xF3, 0x80, 0xAB, 0x80, 0x18, 0x21, 0xF3, 0xE3,
  0x06, 0x00, 0x00, 0x7C, 0xF8, 0xC0, 0x06, 0x0C, 0x10, 0x60, 0x81, 0x06,
  0x08, 0x30, 0x41, 0x83, 0x04, 0x18, 0x00, 0x1F, 0x88, 0x12, 0x1C, 0x8F,
  0x66, 0x99, 0x24, 0xC1, 0x26, 0x59, 0xB4, 0x4F, 0x13, 0x8C, 0x81, 0x1F,
  0x80, 0xFF, 0x32, 0x26, 0x44, 0x44, 0xCC, 0xC0, 0x0F, 0x87, 0xF0, 0x0C,
  0x02, 0x00, 0x8F, 0xE7, 0xE1, 0x00, 0xC0, 0x30, 0x0C, 0x02, 0x00, 0x7C,
  0x3F, 0x00, 0x1F, 0x1F, 0xC0, 0x60, 0x30, 0x1B, 0xF9, 0xFC, 0x02, 0x03,
  0x01, 0x80, 0xC0, 0x4F, 0xE7, 0xE0, 0x61, 0xA0, 0xD0, 0x78, 0x2C, 0x17,
  0xF9, 0xF8, 0x06, 0x02, 0x01, 0x01, 0x80, 0xC0, 0x60, 0x7F, 0x7F, 0x40,
  0xC0, 0xC0, 0xFE, 0x7C, 0x00, 0x03, 0x02, 0x02, 0x06, 0xFA, 0xF8, 0x0F,
  0x9F, 0xC8, 0x0C, 0x06, 0x03, 0xF8, 0xF8, 0x82, 0x41, 0xE0, 0xB0, 0x58,
  0x6F, 0xD3, 0xE0, 0xFF, 0xFF, 0x03, 0x02, 0x02, 0x02, 0x00, 0x06, 0x04,
  0x04, 0x04, 0x0C, 0x0C, 0x1F, 0x8F, 0xF2, 0x0D, 0x82, 0x60, 0x9F, 0xA3,
  0xE1, 0x00, 0x41, 0xB0, 0x4C, 0x13, 0x0C, 0xFD, 0x1F, 0x00, 0x1F, 0x3F,
  0xD0, 0x78, 0x2C, 0x17, 0xF9, 0xF0, 0x00, 0x03, 0x01, 0x00, 0x80, 0xCF,
  0xA7, 0xC0, 0x5C, 0x08, 0x50, 0x20, 0x19, 0x90, 0x0C, 0x31, 0xC6, 0x7C,
  0xF8, 0x03, 0xEF, 0xC0, 0x61, 0x8E, 0x31, 0x99, 0x98, 0x0F, 0x87, 0xF0,
  0x0C, 0x02, 0x00, 0x8F, 0xA3, 0xF1, 0x00, 0x40, 0x30, 0x0C, 0x02, 0x00,
  0x00, 0x20, 0x00, 0xFF, 0xFE, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x06,
  0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0x60, 0x01,
  0x80, 0x06, 0x00, 0x18, 0x00, 0x7F, 0xFF, 0x0F, 0x8F, 0xF2, 0x0D, 0x82,
  0x60, 0x9F, 0xE7, 0xF1, 0x06, 0xC1, 0x30, 0x4C, 0x32, 0x0C, 0x83, 0x00,
  0x3F, 0x8F, 0xF2, 0x0D, 0x82, 0x60, 0x9F, 0xE7, 0xE1, 0x00, 0xC1, 0xB0,
  0x4C, 0x12, 0x0C, 0xFD, 0x3F, 0x00, 0x0F, 0x9F, 0xC8, 0x04, 0x06, 0x03,
  0x00, 0x00, 0x80, 0x40, 0x20, 0x30, 0x18, 0x0F, 0xE3, 0xF0, 0x3F, 0x8F,
  0xF2, 0x0D, 0x82, 0x60, 0x98, 0x24, 0x01, 0x06, 0x41, 0xB0, 0x4C, 0x12,
  0x0C, 0xFD, 0x3F, 0x00, 0x3F, 0x9F, 0xC8, 0x0C, 0x06, 0x03, 0xF9, 0xFC,
  0x80, 0xC0, 0x60, 0x30, 0x10, 0x07, 0xE7, 0xE0, 0x3F, 0x9F, 0xC8, 0x0C,
  0x06, 0x03, 0xF9, 0xFC, 0x80, 0xC0, 0x60, 0x30, 0x10, 0x08, 0x00, 0x2F,
  0x9F, 0xD8, 0x0C, 0x06, 0x02, 0x38, 0x18, 0x81, 0xC1, 0xE0, 0xB0, 0x50,
  0x67, 0xD3, 0xE0, 0x30, 0xC8, 0x32, 0x0D, 0x82, 0x60, 0x9F, 0xE7, 0xF1,
  0x06, 0xC1, 0x30, 0x4C, 0x32, 0x0C, 0x83, 0x00, 0x32, 0x22, 0x66, 0x44,
  0x4C, 0xCC, 0x80, 0x00, 0xC0, 0x30, 0x0C, 0x02, 0x00, 0x80, 0x20, 0x01,
  0x06, 0x41, 0xB0, 0x4C, 0x13, 0x0C, 0xFC, 0x1F, 0x00, 0x20, 0xC8, 0x62,
  0x30, 0x98, 0x6C, 0x1E, 0x04, 0x01, 0xFE, 0xFF, 0x30, 0x4C, 0x32, 0x0C,
  0x83, 0x00, 0x30, 0x40, 0x83, 0x06, 0x0C, 0x10, 0x20, 0x41, 0x83, 0x04,
  0x0F, 0xFF, 0x80, 0x1F, 0x88, 0x32, 0x4D, 0x92, 0x64, 0x9B, 0x24, 0x11,
  0x06, 0x41, 0x30, 0x4C, 0x32, 0x0C, 0x83, 0x00, 0x38, 0xCB, 0x32, 0xCD,
  0x9A, 0x66, 0x98, 0xA4, 0x01, 0x06, 0x41, 0xB0, 0x4C, 0x12, 0x0C, 0x83,
  0x00, 0x0F, 0x8F, 0xF2, 0x0D, 0x82, 0x60, 0x98, 0x24, 0x01, 0x06, 0x41,
  0xB0, 0x4C, 0x13, 0x0C, 0xFD, 0x1F, 0x00, 0x3F, 0x8F, 0xF2, 0x0D, 0x82,
  0x60, 0x9F, 0xA7, 0xE1, 0x00, 0xC0, 0x30, 0x0C, 0x02, 0x00, 0x80, 0x00,
  0x0F, 0x8F, 0xF2, 0x0D, 0x82, 0x60, 0x98, 0x24, 0x01, 0x06, 0x41, 0xB0,
  0x4C, 0x13, 0x14, 0xFE, 0x1E, 0xC0, 0x3F, 0x8F, 0xF2, 0x0D, 0x82, 0x60,
  0x9F, 0xE7, 0xE1, 0xC0, 0xF8, 0x36, 0x0C, 0xC2, 0x18, 0x87, 0x00, 0xC0,
  0x1F, 0x9F, 0xC8, 0x0C, 0x06, 0x03, 0xF0, 0xF8, 0x02, 0x01, 0x80, 0x80,
  0x40, 0x67, 0xD3, 0xE0, 0xFF, 0x00, 0x10, 0x10, 0x10, 0x30, 0x00, 0x20,
  0x20, 0x20, 0x60, 0x60, 0x40, 0x30, 0xC8, 0x32, 0x0C, 0x82, 0x60, 0x98,
  0x24, 0x01, 0x06, 0x41, 0xB0, 0x4C, 0x13, 0x0C, 0xFD, 0x1F, 0x00, 0x30,
  0xC8, 0x32, 0x0D, 0x82, 0x60, 0x98, 0x24, 0x01, 0x0C, 0x46, 0x33, 0x0F,
  0x82, 0x80, 0x80, 0x00, 0x30, 0xC8, 0x32, 0x0D, 0x82, 0x60, 0x98, 0x24,
  0x01, 0x06, 0x49, 0xB2, 0x4D, 0x93, 0x6C, 0x83, 0x1F, 0x80, 0x20, 0x4C,
  0x33, 0x18, 0x4C, 0x1A, 0x07, 0x80, 0x00, 0x70, 0x14, 0x0D, 0x86, 0x61,
  0x08, 0xC3, 0x20, 0xC0, 0x30, 0xC8, 0x32, 0x0D, 0x82, 0x60, 0x9F, 0xA3,
  0xF0, 0x00, 0x01, 0x80, 0x40, 0x10, 0x0C, 0x7D, 0x1F, 0x00, 0x3F, 0xC0,
  0x00, 0x18, 0x04, 0x03, 0x01, 0x80, 0x40, 0x60, 0x10, 0x0C, 0x06, 0x01,
  0x00, 0x00, 0x3F, 0xC0, 0x10, 0x3C, 0x78, 0x81, 0x06, 0x0C, 0x18, 0x00,
  0x40, 0x83, 0x06, 0x0C, 0x10, 0x38, 0xF0, 0x82, 0x0C, 0x10, 0x61, 0x82,
  0x00, 0x10, 0x60, 0x83, 0x0C, 0x10, 0x00, 0x3C, 0x18, 0x30, 0x60, 0x81,
  0x06, 0x00, 0x18, 0x20, 0x41, 0x83, 0x06, 0x0C, 0xE0, 0x16, 0x31, 0xB0,
  0x60, 0xFF, 0xF0, 0xB8, 0x3C, 0x85, 0x0A, 0x27, 0xC8, 0xA1, 0x42, 0x8C,
  0x3C, 0x85, 0x0A, 0x33, 0x8F, 0xA1, 0x42, 0x84, 0xF0, 0x3E, 0x81, 0x02,
  0x04, 0x08, 0x20, 0x40, 0x80, 0xF0, 0x7C, 0x85, 0x0A, 0x24, 0x48, 0xA1,
  0x42, 0x8C, 0xF0, 0x7D, 0x04, 0x10, 0x39, 0xE8, 0x20, 0x81, 0xE0, 0x7E,
  0x81, 0x02, 0x07, 0xC8, 0x20, 0x40, 0x80, 0x3E, 0x81, 0x02, 0x04, 0xD1,
  0xB1, 0x42, 0x84, 0xF0, 0x62, 0x85, 0x0A, 0x20, 0x0F, 0xA1, 0x42, 0x8C,
  0x69, 0x24, 0xA4, 0x80, 0x02, 0x04, 0x08, 0x30, 0x48, 0xA1, 0x42, 0x84,
  0xF0, 0x22, 0x99, 0x63, 0x84, 0x0F, 0xA1, 0x42, 0x8C, 0x62, 0x10, 0x84,
  0x22, 0x10, 0x83, 0xC0, 0x3C, 0x85, 0x6A, 0xB5, 0x48, 0xA1, 0x42, 0x8C,
  0x72, 0xA5, 0x6A, 0x74, 0x48, 0xA1, 0x42, 0x8C, 0x3C, 0x85, 0x0A, 0x34,
  0x48, 0xB1, 0x42, 0x84, 0xF0, 0x7C, 0x85, 0x0A, 0x27, 0xC8, 0x20, 0x40,
  0x80, 0x3C, 0x85, 0x0A, 0x34, 0x48, 0xA1, 0x42, 0x9C, 0xF8, 0x7C, 0x85,
  0x0A, 0x27, 0xCC, 0x2C, 0x48, 0x98, 0x10, 0x3E, 0x81, 0x02, 0x03, 0x87,
  0x81, 0x02, 0x05, 0xF0, 0xFC, 0x03, 0x08, 0x20, 0x82, 0x10, 0x40, 0x62,
  0x85, 0x0A, 0x34, 0x48, 0xA1, 0x42, 0x84, 0xF0, 0x62, 0x85, 0x0A, 0x24,
  0x09, 0x24, 0x50, 0xC0, 0x62, 0x85, 0x0A, 0x34, 0x48, 0xA5, 0x52, 0x80,
  0xF0, 0x22, 0x48, 0x91, 0xC0, 0x06, 0x0A, 0x24, 0xC9, 0x10, 0x62, 0x85,
  0x0A, 0x30, 0x0F, 0x81, 0x02, 0x05, 0xF0, 0x7E, 0x00, 0x10, 0x41, 0x86,
  0x08, 0x20, 0x01, 0xF0, 0x1F, 0x1F, 0x18, 0x10, 0x10, 0xF0, 0xE0, 0x30,
  0x30, 0x20, 0x20, 0x20, 0x38, 0x38, 0x32, 0x22, 0x66, 0x44, 0x4C, 0xCC,
  0x80, 0x38, 0x10, 0x20, 0xC1, 0x83, 0x07, 0x8C, 0x18, 0x30, 0x40, 0x81,
  0x1C, 0x00, 0xFF, 0xFE, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00,
  0x18, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80,
  0x06, 0x00, 0x18, 0x00, 0x7F, 0xFF, 0xFF, 0xFE, 0x00, 0x18, 0x00, 0x60,
  0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18,
  0x00, 0x60, 0x01, 0x80, 0x06, 0x00, 0x18, 0x00, 0x7F, 0xFF, 0x7C, 0x85,
  0x0A, 0x37, 0xC7, 0x20, 0x40, 0x81, 0x00, 0x3C, 0x81, 0x02, 0x04, 0x08,
  0x20, 0x40, 0x80, 0xF0, 0x7C, 0x42, 0x08, 0x20, 0x82, 0x18, 0x41, 0x00,
  0x22, 0x85, 0x0A, 0x37, 0x87, 0x81, 0x02, 0x05, 0xF0, 0x08, 0x79, 0x2A,
  0x95, 0x6A, 0x95, 0x6A, 0xB5, 0x49, 0xE1, 0x00, 0x22, 0x4C, 0x91, 0x40,
  0x84, 0x0A, 0x24, 0xC9, 0x00, 0x62, 0x85, 0x0A, 0x24, 0x48, 0xA1, 0x42,
  0x84, 0xF8, 0x10, 0xC6, 0x18, 0x62, 0xF9, 0xE0, 0x82, 0x08, 0x40, 0x62,
  0x85, 0x0A, 0x24, 0x48, 0xA5, 0x5A, 0xA4, 0xF0, 0x62, 0x85, 0x0A, 0x24,
  0x48, 0xA5, 0x5A, 0xA4, 0xF8, 0x10, 0xE1, 0x84, 0x10, 0x79, 0xF4, 0x61,
  0x85, 0xE0, 0x62, 0x85, 0x0A, 0x36, 0x46, 0xB5, 0x5A, 0xA4, 0x90, 0x61,
  0x04, 0x10, 0x78, 0xF8, 0x61, 0x85, 0xE0, 0x3C, 0x10, 0x41, 0x30, 0xC0,
  0x82, 0x0B, 0xE0, 0x24, 0x95, 0x4A, 0xB7, 0x4E, 0xB5, 0x4A, 0xA5, 0x30,
  0x3C, 0x85, 0x0A, 0x37, 0xC7, 0x87, 0x1A, 0x45, 0x10, 0x1F, 0x88, 0x32,
  0x0D, 0x82, 0x60, 0x98, 0x23, 0xF1, 0xFC, 0x41, 0xB0, 0x4C, 0x13, 0x0C,
  0x83, 0x20, 0x80, 0x3F, 0x90, 0x08, 0x0C, 0x06, 0x03, 0x00, 0xFC, 0xFE,
  0x41, 0xE0, 0xB0, 0x58, 0x6B, 0xD7, 0xE0, 0x3F, 0x88, 0x32, 0x0D, 0x82,
  0x60, 0x98, 0x23, 0xF1, 0xF8, 0x41, 0xB0, 0x4C, 0x13, 0x0C, 0xBD, 0x3F,
  0x00, 0x3F, 0x90, 0x08, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x80, 0x40, 0x60,
  0x30, 0x18, 0x08, 0x04, 0x00, 0x00, 0x30, 0x0A, 0x00, 0xA0, 0x36, 0x06,
  0x60, 0xC6, 0x08, 0x41, 0x04, 0x30, 0x43, 0x0C, 0x20, 0xC2, 0x0C, 0x3F,
  0x8D, 0xF4, 0xC0, 0x48, 0x04, 0x3F, 0x90, 0x08, 0x0C, 0x06, 0x03, 0x00,
  0xFC, 0xFC, 0x40, 0x60, 0x30, 0x18, 0x0B, 0xC7, 0xF0, 0x36, 0xC9, 0xB2,
  0x4C, 0x92, 0x64, 0x9B, 0x23, 0xF1, 0xF8, 0x49, 0xB2, 0x4D, 0x93, 0x6C,
  0x9B, 0x24, 0x80, 0x3F, 0x00, 0xC0, 0x40, 0x20, 0x10, 0x18, 0x70, 0x3C,
  0x02, 0x01, 0x00, 0x80, 0xC7, 0xC7, 0xC0, 0x30, 0xC8, 0x32, 0x0C, 0x82,
  0x60, 0x98, 0x24, 0x01, 0x06, 0x47, 0xB3, 0x4D, 0x93, 0xCC, 0xA3, 0x20,
  0x80, 0x07, 0x00, 0x03, 0x0C, 0x83, 0x20, 0xD8, 0x26, 0x09, 0x82, 0x40,
  0x10, 0x64, 0x7B, 0x34, 0xD9, 0x3C, 0xCA, 0x32, 0x08, 0x30, 0xC8, 0x62,
  0x30, 0xB8, 0x7C, 0x1C, 0x03, 0xF1, 0xF8, 0x41, 0xB0, 0x4C, 0x13, 0x0C,
  0x83, 0x20, 0x80, 0x00, 0xC0, 0x70, 0x3C, 0x1A, 0x0C, 0x8E, 0x22, 0x01,
  0x06, 0x41, 0xB0, 0x4C, 0x13, 0x0C, 0x83, 0x20, 0x80, 0x1F, 0x89, 0xB2,
  0x4D, 0x92, 0x6C, 0x99, 0x24, 0x01, 0x06, 0x41, 0xB0, 0x4C, 0x13, 0x0C,
  0x83, 0x20, 0x80, 0x30, 0xC8, 0x32, 0x0D, 0x82, 0x60, 0x98, 0x23, 0xF1,
  0xFC, 0x41, 0xB0, 0x4C, 0x13, 0x0C, 0x83, 0x20, 0x80, 0x1F, 0x88, 0x32,
  0x0D, 0x82, 0x60, 0x98, 0x24, 0x01, 0x06, 0x41, 0xB0, 0x4C, 0x13, 0x0C,
  0xBD, 0x1F, 0x00, 0x3F, 0xC8, 0x32, 0x0D, 0x82, 0x60, 0x98, 0x24, 0x01,
  0x06, 0x41, 0xB0, 0x4C, 0x13, 0x0C, 0x83, 0x20, 0x80, 0x3F, 0x88, 0x32,
  0x0D, 0x82, 0x60, 0x98, 0x23, 0xF1, 0xF8, 0x40, 0x30, 0x0C, 0x03, 0x00,
  0x80, 0x20, 0x00, 0x1F, 0x98, 0x08, 0x04, 0x02, 0x03, 0x00, 0x00, 0x80,
  0x40, 0x20, 0x30, 0x18, 0x0B, 0xE3, 0xF0, 0xFF, 0x18, 0x10, 0x10, 0x30,
  0x30, 0x00, 0x20, 0x20, 0x20, 0x60, 0x60, 0x60, 0x40, 0x61, 0xA0, 0xD0,
  0x78, 0x2C, 0x16, 0x09, 0xF8, 0xFC, 0x03, 0x01, 0x00, 0x80, 0xCF, 0xA7,
  0xC0, 0x02, 0x00, 0x01, 0xF8, 0x9B, 0x24, 0xD9, 0x26, 0x49, 0xB2, 0x40,
  0x12, 0x64, 0x9B, 0x24, 0xD9, 0x36, 0x4B, 0xD1, 0xF0, 0x10, 0x04, 0x00,
  0x30, 0xCC, 0x23, 0x18, 0x44, 0x1A, 0x07, 0x80, 0xC0, 0x70, 0x14, 0x0D,
  0x86, 0x61, 0x08, 0xC3, 0x20, 0xC0, 0x30, 0xC8, 0x32, 0x0D, 0x82, 0x60,
  0x98, 0x24, 0x01, 0x06, 0x41, 0xB0, 0x4C, 0x13, 0x0C, 0xBD, 0x3F, 0x60,
  0x18, 0x04, 0x61, 0xA0, 0xD0, 0x78, 0x2C, 0x16, 0x09, 0xF8, 0xFC, 0x03,
  0x01, 0x00, 0x80, 0xC0, 0x60, 0x20, 0x30, 0xC8, 0x32, 0x0C, 0x82, 0x60,
  0x98, 0x24, 0x01, 0x06, 0x49, 0xB2, 0x4D, 0x93, 0x6C, 0xBD, 0x3F, 0xC0,
  0x30, 0xC8, 0x32, 0x0C, 0x82, 0x60, 0x98, 0x24, 0x01, 0x06, 0x49, 0xB2,
  0x4D, 0x93, 0x6C, 0xBD, 0x3F, 0x60, 0x18, 0x04, 0xF0, 0x18, 0x08, 0x04,
  0x02, 0x03, 0x00, 0x7C, 0xBD, 0x41, 0xA0, 0xF0, 0x58, 0x2B, 0xD3, 0xF0,
  0x30, 0xC8, 0x32, 0x0D, 0x82, 0x60, 0x98, 0x63, 0x01, 0xE4, 0x49, 0xB2,
  0x4D, 0x93, 0x6C, 0xB3, 0x38, 0x80, 0x30, 0x10, 0x08, 0x0C, 0x06, 0x03,
  0x00, 0xFC, 0xFE, 0x41, 0xE0, 0xB0, 0x58, 0x6B, 0xD7, 0xE0, 0x3F, 0x80,
  0xC0, 0x60, 0x20, 0x10, 0x18, 0xF8, 0x7C, 0x03, 0x01, 0x00, 0x80, 0xC7,
  0xA7, 0xF0, 0x33, 0x89, 0xB2, 0x4D, 0x92, 0x6C, 0x9B, 0x23, 0x01, 0xE6,
  0x49, 0xB2, 0x4D, 0x93, 0x6C, 0x94, 0x23, 0x00, 0x1F, 0xC8, 0x32, 0x0D,
  0x82, 0x60, 0x98, 0x23, 0xF0, 0xFC, 0x07, 0x83, 0x41, 0x91, 0xCC, 0xE3,
  0x20, 0x80, 0x3C, 0x85, 0x0A, 0x37, 0x87, 0xA1, 0x42, 0x85, 0x10, 0x3C,
  0x81, 0x02, 0x07, 0x87, 0xA1, 0x42, 0x84, 0xF0, 0x3C, 0x85, 0x0A, 0x37,
  0x8F, 0xB1, 0x42, 0x84, 0xF0, 0x7C, 0x81, 0x02, 0x04, 0x08, 0x20, 0x40,
  0x81, 0x00, 0x01, 0x03, 0x05, 0x1B, 0x12, 0x22, 0x42, 0x42, 0x42, 0xBE,
  0x82, 0x7D, 0x04, 0x10, 0x78, 0xE8, 0x20, 0x81, 0xE0, 0x2A, 0x95, 0x4A,
  0xB7, 0x8F, 0xA5, 0x5A, 0xA5, 0x50, 0x38, 0x10, 0x41, 0x10, 0x60, 0x82,
  0x0B, 0xC0, 0x22, 0x85, 0x0A, 0x34, 0x49, 0xB7, 0x5A, 0xE5, 0x10, 0x08,
  0xC5, 0x0A, 0x14, 0x68, 0x93, 0x4E, 0xB5, 0xCA, 0x20, 0x62, 0x99, 0x63,
  0x87, 0x87, 0xB1, 0x42, 0x85, 0x10, 0x02, 0x0C, 0x29, 0xB2, 0x48, 0xA1,
  0x42, 0x85, 0x10, 0x3C, 0x95, 0x4A, 0xB4, 0x48, 0xA1, 0x42, 0x85, 0x10,
  0x62, 0x85, 0x0A, 0x37, 0xC7, 0xA1, 0x42, 0x85, 0x10, 0x3C, 0x85, 0x0A,
  0x34, 0x48, 0xB1, 0x42, 0x84, 0xF0, 0x7C, 0x85, 0x0A, 0x34, 0x48, 0xA1,
  0x42, 0x85, 0x10, 0x3F, 0x90, 0x08, 0x0C, 0x06, 0x03, 0x00, 0xFC, 0xFC,
  0x40, 0x60, 0x30, 0x18, 0x0B, 0xC7, 0xF0, 0x24, 0x07, 0xD0, 0x41, 0x07,
  0x8E, 0x82, 0x08, 0x1E };

const GFXglyph Crystal9pt8bGlyphs[] PROGMEM = {
  {     0,   0,   0,   4,    0,    1 },   // 0x20 ' '
  {     0,   4,  14,   3,    0,  -13 },   // 0x21 '!'
  {     7,   4,   3,   5,    3,  -13 },   // 0x22 '"'
  {     9,  14,  16,  16,    1,  -15 },   // 0x23 '#'
  {    37,   8,  18,   9,    1,  -15 },   // 0x24 '$'
  {    55,  14,  17,  16,    2,  -15 },   // 0x25 '%'
  {    85,  10,  14,  10,    1,  -13 },   // 0x26 '&'
  {   103,   2,   3,   3,    3,  -13 },   // 0x27 '''
  {   104,   6,  14,   5,    1,  -13 },   // 0x28 '('
  {   115,   6,  14,   5,    1,  -13 },   // 0x29 ')'
  {   126,   3,   3,   6,    3,  -13 },   // 0x2A '*'
  {   128,   7,   6,   8,    2,   -9 },   // 0x2B '+'
  {   134,   1,   1,   3,    0,    0 },   // 0x2C ','
  {   135,   7,   2,   8,    2,   -7 },   // 0x2D '-'
  {   137,   1,   2,   3,    0,   -1 },   // 0x2E '.'
  {   138,   7,  14,   5,    0,  -14 },   // 0x2F '/'
  {   151,  10,  14,   9,    1,  -13 },   // 0x30 '0'
  {   169,   4,  13,   9,    5,  -13 },   // 0x31 '1'
  {   176,  10,  14,   9,    0,  -13 },   // 0x32 '2'
  {   194,   9,  14,   9,    0,  -13 },   // 0x33 '3'
  {   210,   9,  13,   9,    2,  -13 },   // 0x34 '4'
  {   225,   8,  14,   9,    1,  -13 },   // 0x35 '5'
  {   239,   9,  14,   9,    1,  -13 },   // 0x36 '6'
  {   255,   8,  13,   9,    3,  -13 },   // 0x37 '7'
  {   268,  10,  14,   9,    1,  -13 },   // 0x38 '8'
  {   286,   9,  14,   9,    1,  -13 },   // 0x39 '9'
  {   302,   2,   7,   3,    0,   -6 },   // 0x3A ':'
  {   304,   2,   6,   3,    0,   -6 },   // 0x3B ';'
  {   306,   5,   8,   8,    3,  -10 },   // 0x3C '<'
  {   311,   7,   5,   8,    2,   -9 },   // 0x3D '='
  {   316,   5,   8,   9,    3,  -10 },   // 0x3E '>'
  {   321,  10,  14,   9,    0,  -13 },   // 0x3F '?'
  {   339,  14,  16,  16,    1,  -15 },   // 0x40 '@'
  {   367,  10,  13,   9,    0,  -13 },   // 0x41 'A'
  {   384,  10,  14,   9,    0,  -13 },   // 0x42 'B'
  {   402,   9,  14,   9,    1,  -13 },   // 0x43 'C'
  {   418,  10,  14,   9,    0,  -13 },   // 0x44 'D'
  {   436,   9,  14,   9,    0,  -13 },   // 0x45 'E'
  {   452,   9,  13,   9,    0,  -13 },   // 0x46 'F'
  {   467,   9,  14,   9,    1,  -13 },   // 0x47 'G'
  {   483,  10,  13,   9,    0,  -13 },   // 0x48 'H'
  {   500,   4,  13,   3,    1,  -13 },   // 0x49 'I'
  {   507,  10,  14,   9,    1,  -13 },   // 0x4A 'J'
  {   525,  10,  13,   9,    0,  -13 },   // 0x4B 'K'
  {   542,   7,  14,   9,    0,  -13 },   // 0x4C 'L'
  {   555,  10,  13,   9,    0,  -13 },   // 0x4D 'M'
  {   572,  10,  13,   9,    0,  -13 },   // 0x4E 'N'
  {   589,  10,  14,   9,    1,  -13 },   // 0x4F 'O'
  {   607,  10,  13,   9,    0,  -13 },   // 0x50 'P'
  {   624,  10,  14,   9,    1,  -13 },   // 0x51 'Q'
  {   642,  10,  14,   9,    0,  -13 },   // 0x52 'R'
  {   660,   9,  14,   9,    1,  -13 },   // 0x53 'S'
  {   676,   8,  13,   9,    3,  -13 },   // 0x54 'T'
  {   689,  10,  14,   9,    1,  -13 },   // 0x55 'U'
  {   707,  10,  13,   9,    0,  -13 },   // 0x56 'V'
  {   724,  10,  14,   9,    1,  -13 },   // 0x57 'W'
  {   742,  10,  14,   9,    0,  -13 },   // 0x58 'X'
  {   760,  10,  14,   9,    1,  -13 },   // 0x59 'Y'
  {   778,  10,  14,   9,    0,  -13 },   // 0x5A 'Z'
  {   796,   7,  17,   5,    0,  -15 },   // 0x5B '['
  {   811,   6,  14,   9,    2,  -14 },   // 0x5C '\'
  {   822,   7,  17,   5,    0,  -15 },   // 0x5D ']'
  {   837,   9,   3,   9,    1,  -10 },   // 0x5E '^'
  {   841,   6,   2,   8,    1,    1 },   // 0x5F '_'
  {   843,   2,   3,   3,    3,  -13 },   // 0x60 '`'
  {   844,   7,   9,   7,    1,   -9 },   // 0x61 'a'
  {   852,   7,  10,   7,    1,   -9 },   // 0x62 'b'
  {   861,   7,  10,   7,    1,   -9 },   // 0x63 'c'
  {   870,   7,  10,   7,    1,   -9 },   // 0x64 'd'
  {   879,   6,  10,   7,    1,   -9 },   // 0x65 'e'
  {   887,   7,   9,   7,    1,   -9 },   // 0x66 'f'
  {   895,   7,  10,   7,    1,   -9 },   // 0x67 'g'
  {   904,   7,   9,   7,    1,   -9 },   // 0x68 'h'
  {   912,   3,   9,   3,    1,   -9 },   // 0x69 'i'
  {   916,   7,  10,   7,    1,   -9 },   // 0x6A 'j'
  {   925,   7,   9,   7,    1,   -9 },   // 0x6B 'k'
  {   933,   5,  10,   7,    1,   -9 },   // 0x6C 'l'
  {   940,   7,   9,   7,    1,   -9 },   // 0x6D 'm'
  {   948,   7,   9,   7,    1,   -9 },   // 0x6E 'n'
  {   956,   7,  10,   7,    1,   -9 },   // 0x6F 'o'
  {   965,   7,   9,   7,    1,   -9 },   // 0x70 'p'
  {   973,   7,  10,   7,    1,   -9 },   // 0x71 'q'
  {   982,   7,  10,   7,    1,   -9 },   // 0x72 'r'
  {   991,   7,  10,   7,    1,   -9 },   // 0x73 's'
  {  1000,   6,   9,   7,    2,   -9 },   // 0x74 't'
  {  1007,   7,  10,   7,    1,   -9 },   // 0x75 'u'
  {  1016,   7,   9,   7,    1,   -9 },   // 0x76 'v'
  {  1024,   7,  10,   7,    1,   -9 },   // 0x77 'w'
  {  1033,   7,  10,   7,    1,   -9 },   // 0x78 'x'
  {  1042,   7,  10,   7,    1,   -9 },   // 0x79 'y'
  {  1051,   7,  10,   7,    1,   -9 },   // 0x7A 'z'
  {  1060,   8,  14,   7,    1,  -13 },   // 0x7B '{'
  {  1074,   4,  13,   3,    1,  -13 },   // 0x7C '|'
  {  1081,   7,  14,   7,    0,  -13 },   // 0x7D '}'
  {  1094,  14,  16,  16,    1,  -15 },   // 0x7E '~'
  {  1122,  14,  16,  16,    1,  -15 },   // 0x7F
  {  1150,   7,  10,   7,    1,   -9 },   // 0x80
  {  1159,   7,  10,   7,    1,   -9 },   // 0x81
  {  1168,   6,  10,   7,    2,   -9 },   // 0x82
  {  1176,   7,  10,   7,    1,   -9 },   // 0x83
  {  1185,   7,  12,   7,    1,  -10 },   // 0x84
  {  1196,   7,  10,   7,    1,   -9 },   // 0x85
  {  1205,   7,  11,   7,    1,   -9 },   // 0x86
  {  1215,   6,  10,   7,    2,   -9 },   // 0x87
  {  1223,   7,  10,   7,    1,   -9 },   // 0x88
  {  1232,   7,  11,   7,    1,   -9 },   // 0x89
  {  1242,   6,  10,   8,    2,   -9 },   // 0x8A
  {  1250,   7,  10,   7,    1,   -9 },   // 0x8B
  {  1259,   6,  10,   7,    1,   -9 },   // 0x8C
  {  1267,   6,  10,   6,    1,   -9 },   // 0x8D
  {  1275,   7,  10,   7,    1,   -9 },   // 0x8E
  {  1284,   7,  10,   7,    1,   -9 },   // 0x8F
  {  1293,  10,  14,   9,    1,  -13 },   // 0x90
  {  1311,   9,  14,   9,    1,  -13 },   // 0x91
  {  1327,  10,  14,   9,    1,  -13 },   // 0x92
  {  1345,   9,  14,   9,    1,  -13 },   // 0x93
  {  1361,  12,  16,  10,    0,  -13 },   // 0x94
  {  1385,   9,  14,   9,    1,  -13 },   // 0x95
  {  1401,  10,  14,   9,    1,  -13 },   // 0x96
  {  1419,   9,  14,   8,    1,  -13 },   // 0x97
  {  1435,  10,  14,   9,    1,  -13 },   // 0x98
  {  1453,  10,  16,   9,    1,  -15 },   // 0x99
  {  1473,  10,  14,   9,    1,  -13 },   // 0x9A
  {  1491,  10,  14,   9,    1,  -13 },   // 0x9B
  {  1509,  10,  14,   9,    1,  -13 },   // 0x9C
  {  1527,  10,  14,   9,    1,  -13 },   // 0x9D
  {  1545,  10,  14,   9,    1,  -13 },   // 0x9E
  {  1563,  10,  14,   9,    1,  -13 },   // 0x9F
  {  1581,  10,  14,   9,    1,  -13 },   // 0xA0
  {  1599,   9,  14,   9,    1,  -13 },   // 0xA1
  {  1615,   8,  14,   9,    3,  -13 },   // 0xA2
  {  1629,   9,  14,   9,    2,  -13 },   // 0xA3
  {  1645,  10,  18,   9,    1,  -15 },   // 0xA4
  {  1668,  10,  14,   9,    1,  -13 },   // 0xA5
  {  1686,  10,  16,  10,    1,  -13 },   // 0xA6
  {  1706,   9,  14,   9,    2,  -13 },   // 0xA7
  {  1722,  10,  14,   9,    1,  -13 },   // 0xA8
  {  1740,  10,  16,  10,    1,  -13 },   // 0xA9
  {  1760,   9,  14,  12,    3,  -13 },   // 0xAA
  {  1776,  10,  14,   9,    1,  -13 },   // 0xAB
  {  1794,   9,  14,   9,    1,  -13 },   // 0xAC
  {  1810,   9,  14,   8,    1,  -13 },   // 0xAD
  {  1826,  10,  14,   9,    1,  -13 },   // 0xAE
  {  1844,  10,  14,   9,    1,  -13 },   // 0xAF
  {  1862,   7,  10,   7,    1,   -9 },   // 0xB0
  {  1871,   7,  10,   7,    1,   -9 },   // 0xB1
  {  1880,   7,  10,   7,    1,   -9 },   // 0xB2
  {  1889,   7,  10,   7,    1,   -9 },   // 0xB3
  {  1898,   8,  11,   7,    0,   -9 },   // 0xB4
  {  1909,   6,  10,   7,    1,   -9 },   // 0xB5
  {  1917,   7,  10,   7,    1,   -9 },   // 0xB6
  {  1926,   6,  10,   6,    1,   -9 },   // 0xB7
  {  1934,   7,  10,   7,    1,   -9 },   // 0xB8
  {  1943,   7,  11,   7,    1,  -10 },   // 0xB9
  {  1953,   7,  10,   7,    1,   -9 },   // 0xBA
  {  1962,   7,  10,   7,    1,   -9 },   // 0xBB
  {  1971,   7,  10,   7,    1,   -9 },   // 0xBC
  {  1980,   7,  10,   7,    1,   -9 },   // 0xBD
  {  1989,   7,  10,   7,    1,   -9 },   // 0xBE
  {  1998,   7,  10,   7,    1,   -9 },   // 0xBF
  {  2007,   9,  14,   9,    1,  -13 },   // 0xC0
  {  2023,   6,  12,   7,    1,  -11 } }; // 0xC1

const GFXfont Crystal9pt8b PROGMEM = {
  (uint8_t  *)Crystal9pt8bBitmaps,
  (GFXglyph *)Crystal9pt8bGlyphs,
  0x20, 0xC1, 18 };

// Approx. 3173 bytes

просьба поделиться архивом библиотек на которых это работает.
на данный момент я пользуюсь архивами с этой ветки с поста #8 - Adafruit_NeoMatrix.zip, #50 - Adafruit_GFX_Library.rar ,на примере из поста #41 - Выбор шрифтов.flp,
подозреваю есть еще связь с какой то библиотекой
вывод на адресные диоды

Я бы как то понял если бы вообще не работало ничего, но на англ работают все файлы из пипки Fonts :smile14: :smile44: :smile14:

Отправлено спустя 17 минут 16 секунд:
сам написал и сам потом только увидел.

Код: Выделить всё

#include <FontsRus/Crystal8.h>

Код: Выделить всё

   matrix.setFont(&Crystal8pt8b);
aidar_i, Спасибо.

Отправлено спустя 10 минут 57 секунд:
Кириллицей - пустое табло :D как и было при подмене файлов ранее.
НО программа компилируется. :smile44:
шрифты меняются.
Последний раз редактировалось Qwert855 13.03.2021{, 00:55}, всего редактировалось 1 раз.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блок пользователя - Часы на ленте WS2812, ESP8266

#58

Сообщение aidar_i » 12.03.2021{, 03:37}

Все правильно, должен работать. Я все шрифты не проверял, сегодня эту постараюсь посмотреть. Скорее функцию utf8rus придется менять.
При системных шрифтах у(игрек) привязан верхнему левому углу , а в шрифтах из папок (при применении блоков выбора шрифта) нижнему левому углу шрифта . Если при первом варианте у=0. то при втором у = 9 (смотрите по высоте экрана).

Отправлено спустя 1 час 58 минут 48 секунд:
Вот 2 варианта на экран 30х10 пикселей.
WS2812 SimpleScroll_2.flp
(1.13 МБ) 51 скачивание
WS2812 SimpleScroll_2_1.flp
(1.15 МБ) 44 скачивания
У меня 1й вариант работает.
Последний раз редактировалось aidar_i 13.03.2021{, 08:10}, всего редактировалось 2 раза.

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Блок пользователя - Часы на ленте WS2812, ESP8266

#59

Сообщение Qwert855 » 13.03.2021{, 01:00}

aidar_i писал(а):
12.03.2021{, 05:36}
Все правильно, должен работать. Я все шрифты не проверял, сегодня эту постараюсь посмотреть. Скорее функцию utf8rus придется менять.
При английских шрифтах у привязан верхнему левому углу , а на кириллице нижнему левому углу шрифта . Если english у=0. то russian y = 9 (смотрите по высоте экрана).

Отправлено спустя 1 час 58 минут 48 секунд:
Вот 2 варианта на экран 30х10 пикселей.
WS2812 SimpleScroll_2.flp
WS2812 SimpleScroll_2_1.flp

У меня 1й вариант работает.
На счет отсчета координат( у ) обязательно проверю. У меня установлено на 12 без центровки.

Я правильно понял, что использовать два языка не получится без доработки блока, к примеру вывода (у) наружу блока?

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Блок пользователя - Часы на ленте WS2812, ESP8266

#60

Сообщение aidar_i » 13.03.2021{, 08:09}

Qwert855 писал(а):
13.03.2021{, 01:00}
Я правильно понял, что использовать два языка не получится без доработки блока, к примеру вывода (у) наружу блока?
Прошу прощения, я ошибочно неправильно объяснил, исправил:
При системных шрифтах у(игрек) привязан верхнему левому углу , а в шрифтах из папок (при применении блоков выбора шрифта) нижнему левому углу шрифта . Если при первом варианте у=0. то при втором у = 9 (смотрите по высоте экрана).
Ничего дорабатывать не нужно.

Ответить

Вернуться в «Разработка пользовательских блоков»