Скорее всего все появилось +/- в одно время, после бума нетбуков, у которых отсутствовал оптический привод, и нужно было как-то решать эту проблему. Но решение от IODD эмулировать оптический привод мне нравится больше загрузочных флешек и даже больше, чем Ventoy.
Сам удивляюсь, почему другие производители не делают такие устройства. Сейчас правда, когда большинство дистрибутивов операционных систем можно ставить без CD-ROM, значимость IODD стала меньше.
Есть приложение DriveDroid. Но оно требует права root. Кажется, оно только локальные ISO позволяет эмулировать. Ну и образ должен быть до 2 GB ввиду странного ограничения прописанного в ядре Linux.
Можно собрать на макетной плате. Понадобится: макетная плата, соединительные провода, разъемы USB Type C, USB Type A для макетных плат и кабель USB type A - USB Type C.
Если у устройства три интерфейса, у устройства есть одна двунаправленная EP0, и у каждого интерфейса есть IN EP и OUT EP, тогда будет 1 + 3 × 2 = 7 точек.
всего может быть 16 точек для отсылки данных на устройство и 16 точек для приёма данных с устройства.” Почему EP однонаправлен? Почему EP не может работать в обоих направлениях, почему нужно создавать In EP 1, Out EP 1 вместо In-out EP 1
Одна точка - EP0, является двунаправленной. Я думаю, чтобы проще реализовывать буфер для каждой точки.
Для конфигурирования USB используется конечная точка по умолчанию, имеющая номер 0.” Получается, в распоряжении программиста может быть 15 точек для отсылки данных на устройство и 15 точек для приёма данных с устройства. Потому что 0th точка зарезервирована, верно?
Если я правильно помню, статусы индикаторов USB-клавиатуры передаются через EP0.
на практике 16 EP в каждом направлении это много или мало? Почему не может быть всего 2 EP в каждом направлении (из которых одна - Control, то есть особая), то есть по сути всего 1 EP в каждом направлении в распоряжении программиста. И пусть программист на своём уровне уже добавляет метки пакетов своего кастомного протокола
Обычно всего две в каждом направлении и используются, но устройство может содержать несколько интерфейсов. Нумерация точек происходит для устройства. Например, если три интерфейса, нужно 4 точки.
Нормально. Особенно удобно с плагином для VS Code и вторым пико для дебага и заливки. С многопоточностью не работал на нем. Только использовал два ядра в своем эмуляторе "Ну, погоди!". Для многопоточности нужно использовать FreeRTOS или ZephyrOS, как я понимаю.
Проектора картинки нет. Вам нужно подключить hdmi выход устройства к реальному проектору, телевизору или монитору. Устройство просто эмулилирует фильмоскоп, а программа, запущенна в нем, позволяет удобно просматривать отсканированные диафильмы.
Спасибо. Рвассмотрю. Просто я хотел разобраться как сделать корпус, питание, работу с BLE, USB, HID, какие использовать библиотеки, вот и оформил в виде двух статей.
В любом случае преобразование USB - BLE неэффективно из-за постоянного питания USB-клавиатуры.
У тех ESP32, что у меня есть в наличии нет аппаратного USB.
Он просто удобный, и с ним быстрее и меньше вероятности, что что-то пойдет не так.
Скорее всего все появилось +/- в одно время, после бума нетбуков, у которых отсутствовал оптический привод, и нужно было как-то решать эту проблему. Но решение от IODD эмулировать оптический привод мне нравится больше загрузочных флешек и даже больше, чем Ventoy.
Вроде как в вашей первой, неотредактированной версии сообщения я не видел S3, хотя, может я ошибаюсь.
У ESP32-WROOM-32, который самый распространенный, не имеет аппаратного USB. Теоретически конечно можно и программный использовать.
Да, лучше IODD и Zalman никто еще не придумал.
Сам удивляюсь, почему другие производители не делают такие устройства. Сейчас правда, когда большинство дистрибутивов операционных систем можно ставить без CD-ROM, значимость IODD стала меньше.
Я делал на баше для Raspberry Pi Zero 2 W.
Вы можете посмотреть здесь https://habr.com/ru/companies/ruvds/articles/722266/.
Правда там не было загрузки образа по сети.
Есть приложение DriveDroid. Но оно требует права root. Кажется, оно только локальные ISO позволяет эмулировать. Ну и образ должен быть до 2 GB ввиду странного ограничения прописанного в ядре Linux.
Да, но это больше эксперимент для изучения технологий, чем полноценное устройство.
Спасибо за дополнение к статье.
Спасибо за хороший вопрос, который я упустил в статье. Байты передаются по схеме Little Endian, биты - по схеме LSB.
Можно собрать на макетной плате. Понадобится: макетная плата, соединительные провода, разъемы USB Type C, USB Type A для макетных плат и кабель USB type A - USB Type C.
Если у устройства три интерфейса, у устройства есть одна двунаправленная EP0, и у каждого интерфейса есть IN EP и OUT EP, тогда будет 1 + 3 × 2 = 7 точек.
Одна точка - EP0, является двунаправленной. Я думаю, чтобы проще реализовывать буфер для каждой точки.
Если я правильно помню, статусы индикаторов USB-клавиатуры передаются через EP0.
Обычно всего две в каждом направлении и используются, но устройство может содержать несколько интерфейсов. Нумерация точек происходит для устройства. Например, если три интерфейса, нужно 4 точки.
Я так и делал в Ну, Погоди!. Я думал вопрос был в многопоточности на одном ядре.
Нормально. Особенно удобно с плагином для VS Code и вторым пико для дебага и заливки. С многопоточностью не работал на нем. Только использовал два ядра в своем эмуляторе "Ну, погоди!". Для многопоточности нужно использовать FreeRTOS или ZephyrOS, как я понимаю.
Проектора картинки нет. Вам нужно подключить hdmi выход устройства к реальному проектору, телевизору или монитору. Устройство просто эмулилирует фильмоскоп, а программа, запущенна в нем, позволяет удобно просматривать отсканированные диафильмы.
Добавил видео работы устройства в действии. Вместо монитора можно использовать или проектор или телевизор с входом HDMI.
Вы правы, добавлю видео.
Спасибо. Рвассмотрю. Просто я хотел разобраться как сделать корпус, питание, работу с BLE, USB, HID, какие использовать библиотеки, вот и оформил в виде двух статей.
В любом случае преобразование USB - BLE неэффективно из-за постоянного питания USB-клавиатуры.