Usb флоппи своими руками

Новая жизнь дискет: что такое флопотрон и как его сделать

Новая жизнь дискет: что такое флопотрон и как его сделать

Многие ли помнят флоппи-диски? История похоронила гибкие носители ещё в 90-х. Единственное, что осталось от них — это дизайн иконки «Сохранить». Дискеты не могли идти в ногу с технологиями — объёмы программ и данных стремительно увеличивались. 2,88 МБ данных, которые помещались на стандартные 3,5-дюймовые дискеты, стало не хватать. Потребители перешли на оптические носители. Спустя десятилетия пользователи забыли о дискетах, а флоппи-дисководы стали чем-то вроде посуды в серванте. Но только не для польского инженера Павла Задрожняка. В далёком 2011 году он собрал устройство, состоящее из двух флоппи-приводов и назвал его соответствующе — «Floppotron». На нём он «сыграл» Имперский Марш. Ролик завирусился и Павел двинулся дальше.

В 2016 году инженер представил миру вторую версию своего музыкального инструмента. Его комплектация стала более внушительной: 64 флоппи-дисковода, 8 жёстких дисков и 2 сканера. На своём YouTube-канале Павел исполнил более сотни популярных песен.

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

Floppotron v2 — детище польского инженера Павла Задрожняка

Принцип звучания

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

Управление флоппи-приводом

У привода два разъёма — один для питания («mini-molex») и второй для управления (FDD). Запитывается дисковод сразу от 5В и 12В. Отличным решением будет использовать компьютерный блок питания. При работе с ним не забудьте замкнуть контакт PS_ON с контактом COM, чтобы включить его. Однако, подойдёт любой другой БП с такими же напряжениями. Главное, чтобы хватало выходного ампеража.

Разъём «mini-molex» имеет два контакта земли посередине и контакты 12В и 5В по бокам. Контакт 12В расположен слева и нередко с его стороны имеется «ключ», не дающий присоединить штекер не той стороной.

Хоть разъем FDD имеет пугающее количество контактов, оттуда понадобится всего два — 18 и 20.

18 контакт называется «Stepper Direction», и по нему устанавливается направление движения пишущей головки. 20 контакт называется «Step Pulse» и он уже непосредственно «толкает» шаговый двигатель.

Помимо этого нужно разрешить работу двигателя. Для этого нужно замкнуть на землю 12 контакт разъёма «Drive Select B». Это можно сделать либо джампером (перемычкой) между этим контактом и нижним (11 — землёй), либо непосредственно присоединить 12 контакт к проводу земли. Варвары же могут попросту загнуть этот контакт вниз, чтобы тот соприкасался с нижним контактом.

Схема подключения к флоппи-приводу

Контроллер

Управлять флопотроном можно со всего, что только можно запрограммировать: Arduino, Raspberry, STM. Подойдут даже обычные микроконтроллеры AVR или PIC. Главное, чтобы контроллер работал на 5-вольтовой логике, иначе нужно будет использовать конвертер логических уровней. В этой статье будет использоваться самая популярная модель платформы Arduino — Uno.

Коммутация

Для простого флопотрона кроме самих флоппи-дисководов и контроллера понадобятся только соединительные провода. Всего к приводу должно идти 5 проводов: 2 управляющих, 12В, 5В и земля.

Читайте также:  Букет еловых веток своими руками

Подключение проводов к флоппи-приводу

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

Один из способов подключения питания флоппи-приводов

Дополнительными проводами нужно отвести шину питания 5В и землю и подключить их к пинам платы Uno.

Коммутация проводов с платой Uno

Программная часть

Если вы решили использовать Arduino, то в первую очередь нужно установить Arduino IDE. Также стоит помнить, что для работы с клонами Arduino нужно установить соответствующий драйвер CH340G. Обо всём этом можно почитать в нашей статье.

Вначале стоит проверить флоппи-приводы на работоспособность. Для этого можно запрограммировать контроллер на какие-нибудь простые операции. Например такие:

Этот скетч должен заставить флоппи-привод, подключённый к первому каналу (2 и 3 пин), двигать считывающую головку равномерно по всей рабочей длине. Как только головка подходит к концу, направление движения инвертируется и цикл повторяется.

После того, как вы проверите все приводы, можно приступить к созданию программной части для флопотрона или просто использовать уже готовое решение.

Moppy — продвинутый контроллер для флопотрона. Он состоит из двух частей: прошивки для Arduino, которая непосредственно управляет флоппи-приводами, и компьютерной программы, которая посылает команды на контроллер по USB-кабелю.

Скачиваем последний релиз программы. Первый архив содержит скетч для Arduino, второй — программу для ПК.

Примечание Для работы прошивки нужна библиотека «TimerOne». Её можно найти в Менеджере Библиотек. Для этого откройте Скетч→Подключить Библиотеку→Управлять Библиотеками. Через поисковую строку открывшегося Менеджера Библиотек можно найти необходимую библиотеку «TimerOne».

После установки библиотеки прошивка готова к работе. Осталось выбрать порт, к которому подключена Uno, и прошить её.

Первый привод подключается к 2 и 3 пину платы («Stepper Direction» и «Step Pulse» соответственно). Следующий привод к 4 и 5, потом к 6 и 7 и так далее. К Uno можно подключить до 9 приводов (до пина A5). После подключения всех флоппи-приводов можно включать блок питания.

Воспроизведение

В папке с программой для ПК нужно запустить файл bin/MoppyControlGUI.bat. В открывшемся интерфейсе важны только два окна: окно выбора файла и окно выбора порта.

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

Хоть флоппи-приводы и способны извлекать из себя звук, их громкости хватает не всегда. Эту проблему можно решить двумя способами. Первый — дублирование одного midi-канала несколькими приводами. В таком случае флопотрон обретёт тембр для каждого канала. Второй же способ более экономичен — каждый привод можно поставить на какой-нибудь резонатор. Подойдёт обычная картонная коробка. В таком случае громкость даже от одного привода значительно увеличится.

Откуда брать midi-файлы?

Есть несколько источников:

  • Найти готовый midi-файл нужной песни. Однако, шанс того, что файл сразу подойдёт для флопотрона, очень мал. Скорее всего, его нужно будет редактировать.
  • Специальные программы для midi-файлов. Например MidiEditor. В ней вы сможете как создать новый файл, так и отредактировать существующий (поменять местами или объединить дорожки).
  • Нотный редактор. Например Guitar Pro. Для него есть множество готовых композиций, которые с лёгкостью можно экспортировать в midi-файл. Обратите внимание, что каждый канал в midi-файле соответствует отдельному подключённому флоппи-приводу. Обычно к одной нотной дорожке в Guitar Pro подвязываются сразу два канала. Привязку каналов к дорожкам, естественно, можно редактировать.
  • Использовать готовые midi-файлы, созданные специально для флопотрона. Например в этом репозитории, или в документах этой группы.
Читайте также:  Декупаж для напольной вазы своими руками

Источник

Создаём гигантский флоппи из флешки на обычном SMI чипе

В зависимости от того, чем ранее прошивали конкретную флешку, в основном и следует выбирать утилиту для создания флоппи-раздела. В этом вопросе, вам должен помочь один из моих мануалов – Как подобрать утилиту для восстановления флешки на контроллере SMI.

Если вас интересует гигантские флоппики, то рекомендую вам ознакомиться со следующей статьёй – Учим DYNA MPTool прошивать не родные контроллеры (например SM3260). Она поможет вам, перекомпоновать дистрибутив DYNAMPTool, таким образом, чтобы он стал работать с флешками, чья прошивка ранее была доступна исключительно через SMI MPTool.

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

Теперь отдельно рассмотрим особенности создания Floppy-раздела в SMI MPTool и Dyna MPTool.

Загружать .IMA-образы или любые другие, на FLOPPY-область флешки, можно только через DYNA MPTool, но об этом в следующем параграфе статьи. Через данную же программу, можно создать только стандартный флоппик формата 1.44, т.е. живых будет 1.38 мегабайт.

Заходим в настройки (кнопка Setting, пароль = 320) и ищем внизу на странице Multi-lun Setting, параметры отвечающие за флоппи-привод.

Enable Floppy Support – активация флоппи-дисковода на флешке.
Floppy Format – выполнить форматирование раздела, чтобы к нему сразу был доступ.
Floppy Only – отключить флеш-раздел, чтобы кроме дискетницы на флешки ничего не было.
Floppy Preload – в процессе прошивки, автоматически предзагружает, содержимое выбранного каталога с файлами.
Floppy Read Only – блокирует устройство на запись, в основном применяется в паре с предыдущей функцией Preload.

Настраиваем их исходя из своих непосредственных потребностей.

Если что-то ещё нужно изменить в флешке, то меняем настройки и на других вкладка приложения. Затем можно приступить к прошивке.

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

В самом начале материала, я уже давал ссылку, на статью о том, как прошивать не родные флешки в приложениях DYNA. Опираясь на этом же мануале и использованной в статье утилите Dyna Mass Storage Production Tool v14.07.18.02 N0726 [SM3257ENAA], опишу необходимые действия по чипу SM3260 AD.

Т.к. моя флешка исправная и ей не нужен никакой пинок, прошивать буду в режиме высокоуровневого форматирования, чтобы экономить по максимуму время. Для этого в настройках я в разделе Enabel Open-Card, выставляю значение переключателя на Enable High Level.

Настройки для Floppy, расположены на второй странице настроек – Device Config.

Сначала нужно активировать птичку Lun Enchanced Setting и указать количество разделов на флешке, которые вам требуется. Я лично взял один (1), т.к. больше и не требуется для нашей цели.

В графу Lun Size, вбиваем такое значение, которое было бы немного больше чем то, на которое вы рассчитываете. Т.е. берём с небольшим запасом, мало ли, размер кластера файловой системы повлияет или ещё чего. Например, для обычной флешки объёмом 1.38MB, вбиваем значение равное 2MB.

Хочу отметить один важный момент, касающийся значения Lun Size у Floppy Lun. Может показаться, что туда ничего вбивать не надо и можно оставить дефолтный ноль. Но такое если и прокатит, то только если на вашей флешке исключительно одна флоппи-область.

Читайте также:  Как сделать бердышко своими руками

Если же вы решили поселить на флешке еще и другие разделы, например, самый простой флеш-раздел, то непременно словите ошибку. Дело в том, что в таком случае, создаётся раздел, реальным объёмом во столько, сколько вы там указали. Несмотря на то, что в свойствах диска будут писаться те же доступные 1,38МБ.

Опцией Read Only, как вы понимаете из её названия, можно заблокировать раздел на запись. Это на тот случай, если вы собираетесь предзагрузить файлы.

А теперь самое интересное, это функция Preload, с чей помощью можно расширить объём Floppy-раздела, на гигабайты. Несмотря на то, что я на скрине указал значение Lun Size, как 200MB, он таким не станет сам по себе. Чтобы растянуть флоппик, нужно ещё залить образ диска соответствующего объёма.

Создать такие IMA-образы, например, можно в таких платных программах как WinImage и UltraISO. Далее выбираем режим Image у функции Preload и указываем созданный вами образ дискеты. В последствии, на уже прошитой флешке, можно стереть все файлы и пользоваться таким гигантским флоппиком по своему усмотрению.

Если говорить о режиме FAT, в котором предзагружается папка с жесткого диска, то её размеры не могут превышать 1,38МБ.

Отдельно остановлюсь на некоторых моментах, которые полезно было бы сразу обозначить, чтобы потом не отвечать на эти вопросы.

Анализировать все модели контроллеров, на блокировку от записи на флоппи, не вижу никакого смысла, ибо основная мысль статьи не об этом. Остановлюсь лишь на том, что нужно править в прошивке тестированном мною чипе SM3260AD.

Так вот, можно как сразу при прошивке закрыть раздел от записи, предзагрузив на него файлы через функцию PRELOAD. Для этого ищем опцию Read Only, визуально расположенную рядом с настройками флоппика.

Но таким макаром, мы не сможет налету снимать защиту с раздела. На помощь к нам придёт DEBUG-режим, доступный в обоих рассматриваемых прошивальщиках. Если флоппик одиночный, то редактировать получится только через Дюну, ибо простая MPTool просто не увидит НЕ USB-устройство.

По адресу 0000017B в CID ищем байт, отвечающий за состояние защиты от записи. Для floppy-партиции, значения следующие:
58 – защита снята (WP OFF)
59 – активирована (WP ON)

Если вы читали другие статьи на моём портале, то заметили бы одну особенность, что в зависимости от типа созданного раздела, значение этого байта совершенно разное.

Чтение и сохранение данных, осуществляем с помощью кнопок Read CID и Write CID.

В режиме FAT или просто PRELOAD загрузки обычных файлов, объём жестко ограничивается стандартными 1.38МБ. Попытка залить на наш флоппик, через прошивальщик более предельного значения, обязательно закончится преждевременным вылетом приложения или банальными ошибками. Так что рекомендую или заранее подготовить файлы, чтобы они туда влезли или загружать файлы самостоятельно, уже после выполнения процедуры прошивки.

Режим Image, доступный в DYNA MPTool, это отдельная песня. Найти границы вселенной, я не пытался, но без проблем заливал IMA-образы объёмом в пару гигабайт. Только форматировать обычными методами у вас не получится, на помощь придёт обычное ручное удаление файлов.

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

Самое заметное и интересующую многих ограничение, это создание CDROM-раздела на флешки, вместе с Floppy. Такая композиция, к сожалению, невозможна, чему подтверждение многочисленные эксперименты, проведённые мной.

А вот создать дополнительный Public или Security-раздел, вполне можно, без особых проблем.

Источник

Оцените статью