Uzix | микроблог
463 subscribers
228 photos
19 videos
19 files
44 links
Просто персональный канал
Download Telegram
Не так давно решил отправиться на покой мини-компьютер, служивший мне с 2015 верой и правдой сначала подкроватным сервером, а потом подтелевизорной эмуляторной машиной с Batocera. Не то чтобы я много играл (скорее, больше настраивал :)), но потерю захотелось восполнить. По этому поводу я таки прогрелся на покупку MiSTer FPGA.

Формат с проводами, торчащими во все стороны, я плохо перевариваю, и по этому поводу начал разработку ThinITX-материнки для китайского варианта DE10-Nano. Планирую на ней сделать 24-бит цвет на VGA (против 18 бит у китая), I2S звуковой ЦАП с предусилителем (однобитный у китая), SPDIF/TOSLINK, АЦП для магнитофонного входа (у китая нет), RTC, WiFi/BT адаптер в формате MiniPCIE, MT32-Pi на борту, 4 USB порта сзади + 1 внутри + гребёнки под 4 USB спереди, SNAC со встроенным шифтером на 5В/3.3В, управление ARGB-подсветкой (куда ж без этого), питание от 12В, защиты от перенапряжения, превышения тока и короткого замыкания (отдельные шины питания для мистера и USB).
Ещё в китай-девайсе мне не нравится радиатор и вентилятор на нём. По-хорошему, такие вещи должны иметь отдельное крепление, а не быть приклеены к BGA чипу, который когда-нибудь может из-за этого словить отвал шаров (особенно когда вентилятор выработает ресурс и начнёт давать сильные вибрации). С этим не очень понятно что делать, но как минимум стойки для вентилятора 92x92 предусмотреть можно (а заодно и регулировку его оборотов в зависимости от температуры FPGA).
👍31🔥126🥰2
Весь день потратил на замену севшей ламповой подсветки в мониторе на светодиодную. Я никогда раньше не лазил внутрь мониторов и был морально готов после этого "ремонта" нести его в мусорку. Но, на удивление, всё прошло по большей части гладко. Основную проблему составило крепление светодиодной ленты на двухсторонний скотч - сначала скотч, а затем и лента норовили приклеится как им вздумается. а не как положено. Ну и без пары сломанных пластиковых защёлок не обошлось :( Но всё же по итогу монитор заработал.

Чем мне приглянулся этот монитор? Он большой (19") и квадратный (5:4) - раз. Два - есть VGA и DVI. Три - держит 15кГц строчную и 48/50Гц кадровую на VGA - хотя тут справляется на четыре с минусом и некоторые режимы работают кривовато .
Но самое вкусное - в родном 1280x1024 он держит 48/50 Гц на DVI - что делает его, наверное, идеальным монитором для MiSTer - со включённой постобработкой картинки на Мистере (сканлайны, симуляция ЭЛТ и т.п.) картинка просто идеальная: нет подёргиваний при плавном скролле. которые характерны для эмуляторов и скалеров, работающих в 60Гц. А так же нет характерных для VGA искажений ширины/высоты некоторых колонок и строк пикселей - что можно заметить на тонких спектрумовских шрифтах, или, ещё лучше, на пиксельной шахматной заливке, которая на VGA на LCD-мониторах обычно превращается в кашу.
🔥26👍191🥰1
Media is too big
VIEW IN TELEGRAM
Бывает вот сидишь, потихоньку ковыряешься в заброшенном проекте, правишь в коде свои глупые ошибки. И, ВНЕЗАПНО, в самый неожиданный момент оно начинает работать :o

SPDIF в OtterlyMIDI заиграл. Я успел пожалеть что решил сделать его по хардкору - без специализированного модуля SAI (которого нет в дешёвых попсовых контроллерах), а жонглируя битами в I2S + в последнем свободном SPI. Но каким-то магическим образом биты всё же встали на свои места, сложились в манчестерский код, который сложился в семплы, которые сложились в музыку. Ура!
👍40🔥203🤯1🎉1
Понемногу продвигается IO плата для MiSTer FPGA. Кстати, кто-нибудь встречал переходник с MicroSD на FFC (тонкий шлейф)? Хочу вывести карту памяти с платы Мистера на заднюю панель, но для этого нужно делать отдельную плату толщиной 0.6-0.8мм, может есть что-нибудь готовое?
👍155🔥4👏1
Таких схем я ещё не видел, не мог не поделиться.
Это из проекта клона Famicom OpenFC - https://github.com/starlightk7/OpenFC
Хайрез в комментариях
👍14🔥7😱1
Давно сюда ничего не писал. Последние месяцы почти всё свободное время я уделяю ковырянию в нейросетях. Про них сейчас пишут на каждом углу, и на каждом виртуальном заборе в интернете кто-то уже нацарапал три буквы - "LLM". А чем-то интересным или уникальным я поделиться не могу за неимением такового.

Хотя есть кое-что. Оказывается, существуют майнерские GPU, которые на барахолках продаются чуть ли не на развес. В теории - это древние убитые карты которые уже ничего не могут. Но на практике оказалось что они довольно неплохи как входной билет в локальный запуск LLM - чтобы понять надо ли оно мне вообще не тратя большие суммы. Я приобрёл пару таких GPU: P102-100 и CMP 50HX (она поновее, но, как оказалось, хуже) по 10Гб VRAM каждая. Чтобы вместить три (вместе с уже имеющейся RTX 5060 16Gb) карты в корпус - пришлось немного поработать дрелью и метчиком, и добавить дополнительный слот с помощью адаптера M.2 - PCIe.

Что по результату: получившая конфигурация запускает с удовлетворительной скоростью Qwen 3.6 и Gemma 4 - лучшие сейчас нейросети из небольших. Это, конечно, не Codex или Claude, но для типовых простых задач кодинга они вполне пригодны.
Прямо сейчас я с помощью Qwen полностью переделываю свой сайт err200.net. Вёрсткой я никогда не любил заниматься, и без нейронок скорее бы его удалил чем переделал. Но когда можно написать "Сделай мне сайт на Hugo", "Сделай переключатель светлой/тёмной темы", "Импортируй записи из моего блога в Telegram" или даже "Что-то тут криво выглядит, почини" - а затем просто наблюдать как нейронка сражается с километровыми манускриптами CSS и JS - то почему бы и нет :)
🔥26👍111💯1
Нейронки, оказывается, вполне умеют писать ассемблерный код для ZX Spectrum.

Есть у меня плеер MIDI, и в нём есть драйвер FAT32. Дал бесплатному Codex простой промпт: "Это проект плеера для ZX Spectrum, написан на sjasm. Для проверки и сборки используется команда make all. В src\fatfs.asm находится драйвер FAT32. Добавь в него поддержку FAT16." - никакой другой настройки, никакого дополнительного контекста. Задача так-то не сложная, но мне всё время было недосуг вспоминать/заново разбираться с устройством FAT (правда, всё равно пришлось чтобы сделать ревью). К моему удивлению, нейрока не просто справилась, но сделала это с первой попытки, написала вполне пригодный код и ничего при этом не поломала. Нашлось пара мелких косяков оптимизации, но спустя пару промптов нейронка всё сама и поправила. Ну и комментариев маловато оставила, их я уже сам добавил в процессе ревью.

А вот с локальными моделями этот же эксперимент, к сожалению, провалился. Все три опробованные модели - Qwen3.6-27B-Q6_K, Qwen3-Coder-Next-UD-Q4_K_XL и Qwen3.5-122B-A10B-UD-Q3_K_XL явно не понимали что здесь происходит, почему при сборке всё время мешает какой-то там ассерт на размер структуры, и вообще за что им всё это :)

Коммит для любопытных.
👍19🔥10
Uzix | микроблог
Запаял новую плату - карту OPL3 (грубо говоря, AdLib) на шину PCI. Запустилась почти что с первой попытки - если не считать перевёрнутого танталового конденсатора и неисправного ЦАП YAC512 с али. Но конденсатор был легко перепаян за несколько секунд (и он…
Media is too big
VIEW IN TELEGRAM
Сдул пыль со старого проекта - PCI-OPL3. Полтора года назад остановился на том, что в некотором софте карта определяется через раз.
Как работает алгоритм детекта? Код записывает значение в регистр чипа OPL для запуска таймера, ждёт некоторое время, а затем читает регистр статуса - переполнился таймер или нет. Чтение и запись регистров на карте работают стабильно и без ошибок. Но, как оказалось, слишком быстро.
Чтобы не реализовывать полноценную задержку на системном таймере, авторы некоторого софта полагались на то, что длительность инструкции чтения/записи регистров будет фиксирована, и для создания задержки просто делали несколько чтений в цикле. Для ISA это работало, для PCI уже нет.

В своей карте я применил PCI-ISA мост CH365P. Он довольно примитивный и не умеет растягивать I/O циклы, а значит это придётся делать софтово. Для этого вместе с кодексом я набросал простой драйвер, который через EMM386 перехватывает обращения к портам карты и вставляет дополнительные циклы ожидания.
На первый взгляд это работает нормально. Попроверяю ещё - и можно релизить.
🔥20👍5