Довольно давно у меня в кладовке пылился синтезатор Roland JUNO-G. Его поразила родовая болезнь – быстрая смерть LCD, замену которому Roland выпускала по конским ценам, а потом и просто прекратила выпуск. При этом в остальном синтезатор полностью рабочий и выбрасывать его было жалко. И тут, спустя много лет, мне попался репозитарий на GitHub с описанием способа нестандартного ремонта дисплея Roland JUNO-G. Я осуществил его на собственном синтезаторе и хочу немного рассказать об этом. Тема интересная, поскольку таким образом можно восстанавливать разную устаревшую технику.
На Github есть несколько репозитариев, посвященных такому ремонту JUNO-G, из них оригинальным является проект dpeddi (https://github.com/dpeddi/LCDJunoG).
Ниже приведен фрагмент схемы синтезатора, который иллюстрирует подключение шлейфа оригинального дисплея к 18 контактному разъему на плате процессора.

Суть ремонта сводится к эмуляции работы старого жидкокристаллического дисплея JUNO-G с помощью современного модуля TFT LCD Display 320X480 ILI9488 4.0 с алиэкспресс, который управляется Raspberry Pi Pico. Автору прошивки удалось разобраться в протоколе обмена процессора с дисплеем по этой шине и создать нужный эмулятор.
Вот что пишет dpeddi о разработке своей прошивки: “Я подключил к клавиатуре свой логический зонд hantek 6022BL и попытался проанализировать данные. Исходное программное обеспечение Hantek было действительно плохим, поэтому я перешел на Sigrok. После нескольких попыток у меня появился csv-файл с обработанными данными. Я написал небольшую программу на python для анализа полученных данных и визуального просмотра результата. Наконец-то я разобрался с протоколом.
Я могу предположить, что исходный дисплей имеет два контроллера KS0713, которые управляют каждый своей половиной дисплея.
Я подключил клавиатуру и дисплей к своему ESP32 (я начал мечтать изменить цвет с помощью Wi-Fi), и после некоторых тестов обнаружил, что скорость шины клавиатуры слишком высока для использования IRQ, поэтому я попытался перейти на DMA, используя линию CS1 в качестве эталонного тактового сигнала для I2C контроллера. Это сработало, я получаю половину отображения, но, прочитав спецификацию ESP32, я обнаружил, что второй контроллер I2C не может использоваться для дополнительного параллельного ввода.
Немного почитав, я решил купить Raspberry Pi Pico. PIO кажется действительно многообещающим… Я подключил его… Дисплей, подключенный к SPI, работает в 2 или 3 раза быстрее, чем ESP… отлично… Итак, я реализовал эскиз для чтения данных с помощью IRQ… но даже RP2040 дал сбой… поэтому я перешел на State Machine + DMA… это было непросто… некоторые вещи из документации вообще не работали.
Я изучил некоторые из следующих проектов, размещенных на github, чтобы узнать больше о dma
https://github.com/raspberrypi/pico-examples/blob/master/pio/logic_analyser/logic_analyser.c
https://github.com/gamblor21/rp2040-logic-analyzer/blob/main/rp2040-logic-analyzer.c
https://github.com/panda5mt/picampinos
https://github.com/ArduCAM/arducam_mic/blob/master/arducam_mic.c
https://github.com/pinballpower/code_dmd
https://github.com/jostlowe/Pico-DMX
После нескольких попыток я остановил свой выбор на Pico-DMX, адаптированном к моим потребностям, чтобы заставить дисплей работать.”
Надо признать, прекрасная работа!
Еще меня несказанно порадовал тот факт, что для ремонта требуется только сам дисплей, плата Raspberry Pi Pico и немного проводов. В моём случае пришлось еще докупить шлейф и переходник на шлейф, поскольку в моём варианте синтезатора был установлен немного другой дисплей, чем у автора прошивки.
Но я рекомендую пользоваться не оригинальной прошивкой dpeddi, а форком bjaan (https://github.com/bjaan/roland-juno-g-display-replacement). Здесь есть очень подробная инструкция по выполнению всех работ, включая сборку прошивки. Сама прошивка так же улучшена и, что важно, несколько изменена распиновка контроллера. На самом деле, тут есть и релиз прошивки, так что компилировать ничего самостоятельно нет необходимости.
Прошивка Raspberry Pi Pico тривиальна – нажимая кнопку BOOTSEL, подключаете микроконтроллер по USB к компьютеру, на компьютере появляется USB диск, на который просто копируете файл прошивки с расширением .uf2. После перезагрузки микроконтроллера он уже будет исполнять новую прошивку.
Подключение шлейфа от платы процессора к Raspberry Pi Pico проводится так:

Подключение TFT LCD к Raspberry Pi Pico проводится так:

При правильном подключении никакой настройки не требуется, и схема начинает работать сразу. При включении появляется и быстро исчезает экран с номером прошивки.
Мой первый тестовый вариант подключения выглядел так:

Теперь осталось только аккуратно прикрепить новый дисплей на место старого. Тут я обнаружил, что единого варианта нет, и все видео из интернет с демонстрацией ремонта используют какие то сложные решения. Кто пилит плату LCD и обматывает все вокруг черным скотчем, кто делает новые печатные платы для крепления дисплея.
На самом деле в оригинальном репозитарии dpeddi есть модель рамки дисплея для печати на 3D принтере. Правда она лежит в папке рядом с исходниками на С, видимо по этой причине эту модель игнорируют.
Выглядит она так:

Я распечатал рамку черным PLA пластиком, но она не совсем точно подошла к моей версии TFT LCD модуля. Пришлось немного доработать надфилем. После подгонки и установки дисплея в рамку вся конструкция дисплейного модуля синтезатора выглядела так:

А установленный в синтезатор модуль выглядит вполне симпатично:

Размещение Raspberry Pi Pico внутри корпуса синтезатора не вызывает проблем – места там достаточно. Я не стал делать специальных креплений, просто обмотал все каптон скотчем и закрепил модуль нейлоновыми стяжками.
Как видно по картинкам, новый дисплей по высоте подходит, но уже оригинального. По этой причине не так удобно пользоваться подэкранными кнопками. Если на оригинальном дисплее описание функции кнопки находилось непосредственно над кнопкой, то на новом дисплее оно сдвинуто. Но это не такое большое неудобство по сравнению с возможностью снова полноценно использовать синтезатор. И да, стоимость ремонта просто копеечная.
Сама прошивка вышла уже как 4 года назад, а узнал я о ней только в этом году. Но лучше поздно, чем никогда. Надеюсь, моя статья не только поможет отремонтировать дисплей другим владельцам Roland JUNO-G, но послужит мотивацией энтузиастам к возможному программному ремонту разной устаревшей, но еще полезной электроники.
