Самостоятельное изготовление Пикселькита

Mikhail Sannikov edited this page Jan 19, 2017 · 5 revisions

Содержание:

На этой странице я попытаюсь рассказать, как в домашних условиях можно собрать Пикселькит и модифицировать с его помощью ваш любимый старый геймпад. Если описанный способ кажется вам слишком сложным или трудоёмким, вы всегда можете купить комплект для сборки, или готовое устройство.

Не смотря на то, что мы предоставляем разведённую плату всем желающим, я не стану описывать принципы лазерно-утюжной технологии (ЛУТ) со всеми шагами производства. Вы можете найти огромную массу таких туториалов в Рунете.

Итак, для того чтобы самостоятельно собрать Пикселькит и провести с его помощью модификацию вам потребуются:

  1. Готовая печатаная плата
  2. Кварцевый резонатор с частотой 12 Мгц (в низком корпусе “лодочка”)
  3. 2 стабилитрона на 3.6 вольта
  4. 2 резистора на 68 Ом
  5. Резистор на 1.5 кОм
  6. Микроконтроллер ATmega8A-PU (DIP корпус, 28 ножек), или его старая версия ATmega8-16PU, или подходящий чип из списка совместимых.
  7. Провод со стандартным USB-коннектром длинной 1.3-1.8м. Идеально подойдёт провод от старой мыши -- он достаточно эластичен, подходит по толщине и длине.
  8. Программатор для ATmega8. Подойдёт любой. Можно собрать самостоятельно, можно купить готовый примерно за $20, можно попросить у знакомых. Лично я для прошивки этого чипа всегда использовал Arduino. Именно этот процесс я и опишу.
  9. Оригинальный геймпад из списка совместимых (см. на главной странице)
  10. Термоклей (тот который течёт из горячих пистолетов) или эпоксидка. Второй вариант рекомендую тем, кто уверен, что сможет разместить всё правильно с первого раза.

Разумеется, вам понадобятся инструменты. Я не буду перечислять банальные вещи, типа паяльника и бокорезов, зато скажу о некоторых специфичных.

Крайне желательно иметь под рукой Dremel или другой аналогичный аппарат. С его помощью очень удобно вырезать лишние части на внутренней стороне корпуса геймпада. Кроме этого, с его помощью нужно будет просверлить плату, после травления (сверлом диаметром около 0.6 мм). Так же желательно располагать пистолетом для термоклея. Такой клей достаточно хорошо фиксирует компоненты внутри геймпада и при этом оставляет вам возможность вынуть их, если вы вдруг допустите ошибку при установке.

Производство печатной платы

Как я уже сказал выше, вытравливание и лужение платы я оставляю вам на откуп. Могу посоветовать метод, которым пользуется DiHalt — он один из самых надёжных. Хотя, конечно, тут у каждого собственные секреты (я, например, печатаю рисунок не на фотобумаге, а на странице Популярной Механики, а раствор железа всегда сильно грею, для того чтобы травилось максимально быстро).

Для того, чтобы распечатать рисунок платы устанавливаем себе бесплатную CAD Eagle и открываем в нём brd-файл с разводкой платы. Кнопкой Display (1) отключаем слои с ненужной ерундой, оставляем только Bottom и Pads (2). Жмём кнопку Print и настраиваем отступы по желанию. На этом этапе (если вы готовите плату ЛУТом) важно помнить, что галка “mirror” должна быть снята. Иначе вам придётся паять все компоненты к одной стороне платы, а чип к обратной — скорее всего такая “конструкция” в итоге не влезет в геймпад.

При производстве важно соблюсти размер платы. Вы, например, можете вытравить рисунок на большом куске текстолита, и потом обточить его до минимума с помощью того же дремеля. Сделать это нужно в основном для того, чтобы ваша плата гарантированно влезла в корпус геймпада и не создавала внутри проблем оригинальным компонентам (внутри геймпада от SMD2, например, крайне мало места).

О контроле травления и лужения я не упоминаю — никаких спаек и неправильно замкнутых контактов быть не должно. При грамотном использовании ЛУТ может обеспечить вас дорожками толщиной всего в 0.1 мм. Для сравнения, основная часть дорожек в нашем дизайне имеет толщину 0.254 мм.

В результате всех манипуляций с текстолитом, железом, сверлом и напильником у вас должна получиться примерно такая платка, размером около 22х37 мм.

## Прошивка для микроконтроллера ## ATmega8 работает не сама по себе, а под управлением микропрограммы, которая командует транспортировкой сигналов между оригинальным интерфейсом геймпада и шиной USB. Такая программа называется прошивкой.

Исходные коды прошивки выложены у нас в репозитории. Они хорошо (в некоторых местах даже избыточно) документированы и любой заинтересованный человек с номинальным знанием английского языка сможет в них разобраться. Разумеется, перед заливкой прошивки в микроконтроллер её необходимо скомпилировать. Не обременяя вас этим процессом мы взяли его на себя. Получившийся файл с расширением hex необходимо поместить во внутреннюю память вашей ATmega8. Этот процесс, как ни парадоксально, тоже называется “прошивка”, только в этот раз слово выступает в качестве глагола.

Прошиваем микроконтроллер

Есть множество способов поместить прошивку внутрь микросхемы. В основном для этого используются специальные устройства -- программаторы. Если у вас есть собственный программатор, или друг им обладающий, можете смело пропускать этот раздел -- у вас итак всё получится. Остальным я расскажу, как можно прошить микроконтроллер, используя в качестве программатора Arduino или любую другую плату этого популярного семейства и простой BitBang-кабель.

Такой способ прошивки основан на микросхеме FT232RL, которая припаяна к вашему Arduino и реализует COM-порт на шине USB. Соответственно для этого способа подойдут только USB-версии Arduino, при этом у них должна быть разведена группа контактов X3. Идеально для этого подойдёт плата Freeduino.

При этом оригинальный чип из Arduino (ATmega168) вам не понадобится, а на его место, прямо в панельку нужно установить вашу ATmega8A-PU. Обязательно ориентируйте микроконтроллер при установке -- первая ножка отмечена ключём-выемкой.

После установки микроконтроллера в Arduino необходимо соединить выводы X3 с выводами ICSP как это показано на схеме выше. Можно использовать модифицированный аудиокабель от старых CD-приводов или воспользоваться несколькими проводками со специальными захватами. Такое соединение фактически и будет являться Bit-Bang кабелем.

После всех манипуляций с Arduino подключаем его в таком виде к вашему компьютеру USB-шнуром и приступаем непосредственно к процессу прошивки.

Для того чтобы отправить hex-файл с прошивкой с вашего жёсткого диска в микроконтроллер, вам потребуется программа AVRdude. Программа работает через командную строку, поэтому сразу советую установить GUI для неё.

Запускаем avrdude-GUI.exe. В открывшемся окне:

  1. В поле “avrdude.exe File” (1) указываем путь к соответствующму файлу
  2. В выпадающем списке “Programmer” (2) выбираем FT232R Synchronous BitBang (diecimila)
  3. Поле “Port” оставляем пустым
  4. В выпадающем списке “Device” (3) выбираем ATmega8
  5. В графу “Command Line Option” (4) без кавычек вписываем “-P ft0 -B 4800”, где “-P ft0” -- выбор первого устройства с чипом FTDI, а “-B 4800” — установка низкой скорости для обмена.

Теперь нужно проверить, видит ли avrdude вашу ATmega8. Для этого необходимо прочитать т.н. фьюз-биты. Fuse-bits это, по сути, флаги, которые объясняют микроконтроллеру, как нужно работать внутри конкретного дизайна платы. Например, с их помощью можно указать какой генератор частоты используется в дизайне -- внутренний или внешний и т.д. Не углубляясь в подробности, скажу, что для нашего дизайна и чипа ATmega8A-PU/ATmega8-16PU нужно будет записать в hight-fuse значение C9, а в low-fuse значение 9F (для других микроконтроллеров значение нужно пересчитывать). Но прежде чем это делать, нам нужно проверить работоспособность путём чтения фьюз-битов, которые были записаны в наш микроконтроллер на заводе.

  1. Нажимаем кнопку “Read” внутри блока “Fuse” (5). Если биты прочитались, то это значит, что наш программатор работает и с его помощью можно “шить”
  2. Записываем необходимые нам hFuse и lFuse в соответствующие поля. Жмём кнопку “Write” и подтверждаем выбор
  3. Можно снова попробовать нажать на кнопку “Read” и если на предыдущем шаге биты записались, то после чтения в полях они останутся неизменными
  4. Теперь из поля “Command Line Option” можно убрать ключ “-B 4800” и работать на полной скорости
  5. Далее в блоке “Flash” (6) в пустом поле выбираем путь к нашей прошивке с расширением hex
  6. Жмём кнопку “Erase-Write-Verify”, которая находится в этом же блоке и ждём когда прошивка загрузится в память микроконтроллера предварительно стерев оттуда заводскую.

На последнем этапе прошивки приложение может зависнуть на пару секунд. Тем не менее, весь процесс проходит успешно и прошивка корректно загружается в микроконтроллер. Более подробно о процессе прошивки через BitBang-кабель можно почитать в этой заметке (в ней рассмотрен процесс прошивки “родного” для Arduino микроконтроллера ATmega168).

Монтаж компонентов на плату

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

Пикселькит содержит две перемычки, которые вам нужно будет замкнуть в зависимости от того, какой контроллер вы ходите модифицировать. Для SNES не нужно замыкать ничего, для NES (Dendy) — замкнуть первую, для интерфейса DB9 (Sega, Atari) — обе враз, ну и если вы вдруг нашли где-то геймпад от PCE, то замкнуть нужно будет только вторую перемычку. Я обычно просто впаиваю в качестве перемычек отрезанные ножки компонентов, которые смонтировал ранее.

При неправильно выставленных перемычках геймпад не будет корректно работать.

Руководствуясь вышеописанными рекомендациями припаивайте компоненты на плату, не забывая отрезать все лишние части с обратной стороны под самый корень. Всё это делается для уменьшения высоты платы. Так как компонентов на плате кот наплакал можете руководствоваться фотографиями в качестве туториала для пайки.

После монтажа компонентов отмойте плату от флюса каким-нибудь подходящим раствором. Я использую для этого кисточку и спирт. После того, как плата высохнет тщательно проверьте всё, что сделали на предмет спаек, перетравок, замкнутых в ненужных местах контактных площадок и пр.

Всё, ваш собственный Пикселькит готов. Теперь нужно засунуть его в геймпад.

Подготовка геймпада

Как я уже рассказывал, основные работы, которые вам придётся проделать при подготовке геймпада к модификации — удаление внутренних деталей корпуса. Разумеется, для каждой модели геймпада эти детали отличаются. Например, в геймпаде от SNES достаточно места для установки, не только Пикселькита, но и флешки с хабом. А внутри контроллера от Sega Mega Drive 2 его еле хватает на установку одной только платы. Хотя тут, конечно всё зависит от желания. Обладая им можно попытаться использовать не только внешнюю поверхность основной платы геймпада (которая находится под задней крышкой), но и внутреннюю (которая находится спереди со стороны кнопок).

Итак, разобрав ваш геймпад (достаточно снять заднюю крышку, саму плату вынимать не нужно) примерно прикиньте с какой стороны вы можете установить Пикселькит. У меня чаще получается ставить его слева, прямо под action-кнопки. Теперь посмотрите на заднюю крышку, которую вы только что открутили и проанализируйте, какие её детали смогут помешать вашему замыслу. Если это рёбра жёсткости (во время суматошной игры и баттон-мэшинга на кнопки оказывается жуткое давление, поэтому, чтобы основная плата геймпада не надломилась, на обратной стороне крышки обычно делают несколько пластиковых колец-упоров), то всё хорошо. Если помимо них в зону установки попадают например стойки шурупов, или пластиковые крепежи основной платы, то, скорее всего, вам придётся найти новое посадочное место для Пикселькита.

Определившись с местом остаётся только беспощадно вырезать весь мешающий пластик с крышки не повредев её саму. Сделать это, как я уже говорил будет проще всего дремелем. После него даже нет необходимости в зачистке оставшейся поверхности. Из более простых инструментов может быть сгодятся бокорезы и напильник, а так же детский выжигатель. Но это конечно, хардкор.)

После того, как вы поправили корпус, установите Пикселькит в намеченное вами место и временно закрепите (двусторонним скотчем, пластикой, каплей термоклея — не важно). Установить Пикселькит нужно компонентами к задней крышке. Т.е. та сторона Пикселькита, на которой вы осуществляли пайку должна прилегать к основной плате геймпада. После установки попробуйте закрыть крышку так, чтобы она не деформировалась. Если всё получается, то можно переходить к окончательному монтажу.

Установка Пикселькита

Для окончательной упаковки геймпада вам осталось соединить оригинальный интерфейсный провод вашего контроллера со входами Пикселькита, а USB-кабель с его выводами.

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

Визуально проверьте всё в последний раз. Нажатие кнопок, крепление провода, деформацию корпуса и пр. И если всё в порядке, то подключайте ваш геймпад к компьютеру, устанавливайте эмулятор вместе с Battle City, Contra или Chrono Trigger и начинайте испытывать чувство неподдельной ностальгии по временам, когда деревья были выше и зеленее, а сахар слаще и вкуснее.

Не забывайте про вторую часть инструкции в которой описано, как в геймпад поместить флешку и настроить весь необходимый софт. Если у вас что-то не работает, но вы уверены, что всё сделали верно, то прежде, чем писать комментарий, поищите ответ в нашем FAQ, есть вероятность, что эта распространённая проблема и она уже решена. И да, присылайте нам фотографии того, что у вас получилось — мы разместим их в общем альбоме! Некоторые уже: