vak: (Default)
[personal profile] vak
Соорудил прошивку, превращающую платку RP2040-Zero в USB-флешку размером 2 мегабайта. Разрешено только чтение, писать нельзя. Содержимое диска записывается заранее, отдельной софтиной. Производитель данного конкретного чипа Flash-памяти (W25Q16JV-IQ) обещает срок хранения больше 20 лет.

Исходники проекта здесь: github.com/sergev/usb-rom

Неизменяемая USB-флешка имеет массу применений. Навскидку:
  • Как бэкап ключей шифрования. Запишите туда содержимое ~/.gnupg и положите в сейф.
  • Для важных документов. Положите на диск файл с завещанием, заклейте в конверт и вручите нотариусу на хранение.
  • Для быстрого обнаружения пропавших котиков. Записать на платку информацию про вашего любимца, вместе с фоткой на руках у хозяйки, и прикрепить на ошейник.

Date: 2023-11-19 07:03 (UTC)
suhajh: (Default)
From: [personal profile] suhajh
не в тему=
а можно как то изменять или добавлять букавки в єкранную клавиатуру ? (операция ы)🙂

Date: 2023-11-19 07:28 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Насчет завещания рекомендую ознакомиться с законодательством. Вряд ли флешка проканает.

Date: 2023-11-19 10:26 (UTC)
prool: cat (Default)
From: [personal profile] prool
Я все понимаю, я сам киберпанк, но что касается завещания, тут дело даже не законе о носителе, на котором должно быть написано завещание, а в устройстве для чтения. Даже если вы оставите завещание на таком конвенциональном носителе как магнитофонная бобина или видеокассета, как быстро нотариус или другой чиновник найдет устройство для чтения. А тут непонятная хрень. У нее конечно разъем USB, а вдруг она сломает мой ноутбук. Или у ноутбука не найдется для нее драйверов. Или у меня только USB 3.0, или будущее USB 5.0.

То же касается котика, выгравировать номера телефонов на жетоне и прикрепить жетон к ошейнику мне кажется проще
Edited Date: 2023-11-19 10:26 (UTC)

Date: 2023-11-20 06:15 (UTC)
ufm: (Default)
From: [personal profile] ufm
Хмм... Попытался прикинуть, куда бечь, если мне припрёт прочитать 3.5 дискету... Ну, допустим я смогу найти и купить на барахолке USB привод для этого (на материнках доступных мне компов уже давно нет такого разъёма).

Пятидюймовую - уже сложнее. Придётся колхозить из usb floppy и пятидюймового привода.

Восьмидюймовую... Допустим, записанную на Искра-226. Эм...

Date: 2023-11-20 07:13 (UTC)
ufm: (Default)
From: [personal profile] ufm
Этот девайс решает проблему подключения. Ты работающий восьмидюймовый привод найди.

P.S. Я молчу, что прочитать восьмидюймовую дискету, даже пролежавшую с 80-го года в сейфе в стабилизированной по температуре и влажности комнате - та еще задача.

P.P.S. Ну, технически, наверное как-то можно и привод найти, и прочитать что-б с гарантией. Только в разряд "У нас сейчас не вызывает больших проблем" - это никак не попадает.

Date: 2023-11-25 04:43 (UTC)
From: [personal profile] igaa
Для чистоты лучше в дескрипторе устройства использовать enum-константы, а не безымянные литералы:

.iManufacturer = STRID_MANUFACTURER,
.iProduct = STRID_PRODUCT,
.iSerialNumber = STRID_SERIAL,


Впрочем, это особенность либы TinyUSB, в которую кто-то когда-то захардкодил 0x01, 0x02, 0x03, а соответствующие enum-константы определил позже (и они почти не используются). Так и плывёт эта цифровая "магия", и никто из мейнтейнеров не соображает её исправить.

Date: 2023-11-25 06:59 (UTC)
From: [personal profile] igaa
И ещё замечание по дескриптору.
RP2040 имеет USB 1.1, а не 2.0.
Поэтому должно быть .bcdUSB = 0x0110,.

В TinyUSB с этим ошибка:
tinyusb/examples/device/net_lwip_webserver/src/usb_descriptors.c
.bcdDevice = 0x0101,
Но версии USB 1.01 не существует.
Допустимые значения 0x0110, 0x0200, 0x0300, 0x0310 и т.д.

P.S. Сейчас почитал внимательнее. На сайте raspberrypi.com указан "USB 1.1 controller". Но там же в pdf-даташите "RP2040 contains a USB 2.0 controller".
Какая там USB-версия контроллера на самом деле - не вполне понятно, но судя по максимальной скорости 12Mbps - вероятно, всё-таки 1.1.
Edited (P.S.) Date: 2023-11-25 07:25 (UTC)