Моя USB визитка

    Всем привет!

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



    Цель проекта


    Сделать максимально дешёвую версию USB Flash визитки, на которой бы содержалось моё резюме, исходный код и ещё несколько файлов. При этом использовать доступные комплектующие, которые можно заказать на LCSC и JLCPCB.

    Что мне нужно было для этого сделать?


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

    Что в итоге делает моя визитка?


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

    Основные узлы проекта


    Микроконтроллер STM32F070F6 — это был самый дешевый вариант контроллера с USB device на борту из тех что я нашёл;
    Winbond W25Q32 — последовательная флэш память на 4 Мб;
    Светодиоды 0805 — белый и синий цвета, для красоты;
    LP3992 — понижающий преобразователь напряжения на 3.3В, питание микросхем;
    USBLC6-2 — защита USB «разъема» от статики.

    Мой подход к разработке пет-проектов


    Есть определенный путь, которого я придерживаюсь программируя микроконтроллеры:

    1. Не использовать SPL, HAL и другие библиотеки для программирования периферии. Этого правила я придерживаюсь и на основной работе;
    2. Не использовать ОС. Я считаю что мои домашние проекты не настолько сложны, чтобы использовать этот полезный инструмент;
    3. Не использовать Кучу. Касается только домашних проектов (нет необходимости);
    4. Не использовать динамическое выделение памяти. Касается только домашних проектов (нет необходимости).

    Проектирование


    Компоненты

    Для начала мне было необходимо подобрать компоненты для моей задумки т.к. помимо рассыпухи у меня ничего не было. Для этого я решил использовать сервис LCSC, как дешёвый и доступный вариант для домашних разработок. Как оказалось, по многим параметрам я вошёл тютелька в тютельку. Например, использовал все ножки микроконтроллера, уложился в оперативную память в 6кБ, из которых 4кБ у меня занял буфер для передачи данных с USB на SPI Flash, использовал ноги для USB которых физически нету на данном контроллере и т.п.

    По цене в итоге вышло следующее:
    Микроконтроллер STM32F070F6 -0.64$
    Последовательная флэш память Winbond W25Q32 — 0.35$
    Понижающий преобразователь LP3992-33B5F — 0.04$
    Защита от статики USBLC6-2SC6 -0.08$
    Кварц — 0.15$

    Резисторы и конденсаторы использовал в форм факторе 0603, светодиоды 0805. Всё это у меня уже было, поэтому подсчитать их стоимость не представляется возможным. Однако можно с уверенностью сказать, что по цене всё уместилось в 1.5$ с запасом. Это не выглядит дешёвым по сравнению с проектом Хиллиарда, но и цены у меня не оптовые.

    Печатная плата и схемотехника

    Схему и печатную плату проектировал в Altium designer, скрины прилагаю.





    Все компоненты обвязаны согласно даташитам. Микросхема флэш памяти запускается с контроллера через МДП транзистор.

    Тут проблемой был USB разъем. Согласно спецификации USB он имеет толщину 2мм. Плату такой толщины заказывать дорого, да и для визитки не очень практично. Выход из ситуации я подсмотрел у одного человека, который делал музыкальную визитку. Он использовал плату 1мм, и делал на ней дополнительный разъем, который отрывается и запаивается поверх основного. Я поступил так же.



    Пайка

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

    Программирование

    Тут мне особо сказать нечего, программировал всё на низком уровне, на языке C++. Исходный код прикрепляю. Обращение к регистрам делал по статьям lamerok. USB реализовано с помощью средств микроконтроллера. Микросхема флэш памяти работает по SPI через DMA на самой высокой скорости. Диоды мигают по очереди по прерыванию таймера на 250мС.





    Заключение


    На этом думаю всё, основные моменты я описал. Если нужно что-то раскрыть более подробно (программирование USB, Flash или схемотехнику), то пишите, обязательно сделаю.

    Всех благ!
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 132

      +4
      Хотелось именно в размер визитки? Вполне ведь можно было все в полоску по ширине юсб затолкать, а ФИО на обратной стороне маской сделать.
      А если уж в формате визитки, можно заморочиться с конструкцией из двух поворачивающихся половин, чтобы в обычном состоянии разъем был в центре
        0
        Да, хотелось именно в форме визитки.
          +1
          Вполне можно было напечатать бумажную визитку с QR-кодом, ведущим в linktree. Получить электронные данные таким образом сегодня будет даже быстрее, чем втыкать USB.
          Но тут, видимо, не о практичности речь.
          +3
          Плату такой толщины заказывать дорого, да и для визитки не очень практично.
          А как же элементы на плате? За них же все цепляться будет.

          Мне кажется, эстетичней было бы разместить все SMD-элементы на противоположной стороне, на которую наклеивать утолщающую накладку с вырезами под элементы.
            +2

            Тоже возникла похожая мысль, немножко более извращенная: вырезать текстолит, оставляя контактный слой, напаивать элементы "изнутри" платы, заливать эпосидкой. Должна получиться плата с прозрачными окнами с элементами внутри.

              0

              Врятли такой нестандартный подход уместен на визитке электронщика :)

                +3
                вот для diy-щика вполне
            +2

            А цена? В начале статьи шло акцентирование на минимальную стоимость. И на какую отметку вышли?

              0
              Компоненты в 1.5$, плата 0.8$, доставку подсчитать сложновато. Да и на 5 штук стоимость одна на единицу, а на 100 штук уже совсем другая.
              +13
              Вопрос — насколько упоротым нужно быть чтобы засунуть в свой комп неизвестное USB устройство?
                –2
                Это визитка. Соискатель, вручивший её сотруднику отдела кадров, уже засветился на камерах. Да и не ССЗБ он, чтобы что-то вредоносное давать. Не трудоустроят ведь как минимум.
                  +4

                  Ну и не трудоустроят.
                  Может он на собес вообще на за трудоустраиваться приходил.


                  Совать чужое usb в свою сеть — надо быть сильно упоротым.

                    –7
                    Но на камерах-то засветился. А это несколько фоток в каких-нибудь форумах кадровиков с пометкой «не трудоустраивать никогда никуда, даже „свободной кассой“, а если где-то уже устроен, дать пинка под зад». Да в конце концов, можно запихнуть в изолированный комп с нестандартной ОС вроде Kolibri. Там поддержку USB-накопителей запилили уже. Ну а что это не «флешка-убийца», можно и по компонентам визуально определить. А ещё можно засовывать, только предварительно позвонив по указанному на визитке номеру, и убедившись, что у соискателя на телефоне засветился ваш номер. И сверив фотографию в паспорте соискателя с физическим соискателем, а ФИО — с резюме.
                      +4

                      Кто может что по виду определить?
                      Девушка-HR?
                      Если она сунет "это" в свой рабочий комп, то я, как безопасник, сразу с ней распрощаюсь.


                      А чувак не на собес приходил, я ж говорю. Ему ваши потуги до лампочки, он свой лям уже заработал.

                        +1
                        Как безопасник, расскажите что теоретически можно сделать плохого такой флэшкой не возвращая её владельцу и не устанавливая дополнительного софта?
                          +1
                          Эмулировать клавиатуру, открыть консоль хоткеем, набить туда скрипт, скачивающий и запускающий зловреда. Или самого зловреда в блокноте. Далее зависит от прав пользователя, типа и версии ОС и наличия уязвимостей.
                            +1
                            Кстати говоря, операционку, которая крутится на компе, куда флешку воткнули, вполне себе можно распознать этой самой флешкой (XP и десятка по разному общаются с девайсами, линукс вообще легко вычисляется), а уже определив что у нас тут, можно думать, кого запускать, deltree или rm -rf
                            +3

                            Скорректирую вопрос: как заработать "лям" таким экстравагантным способом?

                              –4
                              Ну, наверное, конкуренты подослали его, чтобы зашёл в кадры с этой хреновиной. Но во-первых, маловероятно, что ему за это дадут целый лям, а во-вторых, даже лям рано или поздно кончится, а в форумах кадровиков с пометкой «никуда не брать» его фотки с камер останутся навсегда.
                                +1
                                Вариант 1: Берём бомжа с помойки, молодого дурака, идейного анархиста, любого неместного, и т.п.
                                Вариант 2: Производим атаку на фирму, в которой 10 человек среди которых нет безопасников.
                                  +1
                                  Была статья ЕМНИП на Хабре об исследователе сетевой безопасности, отправившем родную мать (по её инициативе) в окружную тюрьму — по легенде она, инспектор заведений общепита, проверяет тюремную кухню. Так вот её впустили везде, сопровождал сам директор тюрьмы, неоднократно оставлял её в одиночестве в служебных помещениях, благодаря чему она смогла беспрепятственно установить устройства слежения.
                                +1

                                Я уже 3 раза сказал, что никто не ходил никуда трудоустраиваться.


                                Вы вообще не представляете себе мир, где люди работают сами на себя?


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

                                +4
                                Хотя бы безобидное — usb killer.
                                +8
                                Девушка-HR?
                                Если она сунет "это" в свой рабочий комп, то я, как безопасник, сразу с ней распрощаюсь.

                                Хм. А может стоит распрощаться с актёром, играющим в театр безопасности, но оставляющим возможность атаки на сеть с помощью флешки, воткнутой в комп рядового эйчара?

                                  +1
                                  Если вы, как безопасник исключаете человеческий фактор только методом прощания, то с вами тоже пора распрощаться.
                                    –1

                                    Вы где-то видели безопасников, которые не фильтруют дебилов?
                                    Уровень "вставил чужую флешку в рабочий комп" по-другому не назвать.

                                      0

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

                                +11
                                Надо быть сильно упоротым, чтобы быть таким упоротым. Как уже бесят ссаки и всякие секирбашкачные приказы наших безопасников, складывается ощущение что вы у нас и работаете
                                  +1

                                  Согласен, работать внутри в таких условиях не особо приятно.
                                  Но это если смотреть с точки зрения наёмного работника, который думает только о себе.


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


                                  И это — у вас что, русский не родной?
                                  Я не говорил, что лично я безопасник. Я лишь именно так вижу их работу.

                                  –1

                                  А песочница зачем? Вообще зачем антивиры, фаерволы, если своя сеть закрыта и ничто не подключается? Поясню — если набиваете себе цену, как безопасника, то готовьтесь, что Вы сами будете эти флешки совать в комп, потому как сам работал сисадмином, и если начальник говорит Надо, то это значит Надо любым способом, только не Нельзя

                                    0
                                    С каких это пор песочницы стали гарантом безопасности? Еще не было ни одной чтобы из нее не вышли наружу.
                                    +1
                                    А зачем ноутбуку, на котором проводят собеседования, и в который вставляются флешки, быть в корпоративной сети? Известная же схема, когда есть отдельный Wi-Fi роутер, физически никак не связанный с корпоративной сетью, смотрящий только в инет, для девайсов, приносимых посетителями и потенциально опасных (таких как IoT девайсы, старые машины, которые нельзя обновить, доступные посетителям и т.д.). Роутер точно стоит дешевле, чем даже пару часов работы сисадмина и безопасника. А резюме и файлы, отправленные HR с такого ноута, в который был вставлен USB-девайс кандидата, по степени опасности ничем не отличаются от отправленных напрямую кандидатом на электронную почту компании.
                                      0
                                      Скорее всего отдельно выделять ноут для собеседований никто не будет, сотрудник просто придёт со своим.
                                        +2
                                        Только смысл в этой визитке как в юсб-девайсе на собеседовании-то? Если кого-то зовут, то его резюме как правило, уже лежит на столе или в ноуте.
                                        Это исключительно партнеров/контрагентов впечатлять.
                                  –1
                                  Можно в телефонную зарядку сунуть. Или даже в павербанк. А разрабатывать на ESPшке, чтобы потом подключаться через вайфай.
                                    0
                                      +1
                                      Во-первых цена по ссылке конская, во-вторых в статье речь идет о самодельном устройстве, цель которого продемонстрировать профессиональные качества. И я предложил вариант при котором нет необходимости вставлять устройство у USB разъем, ибо, как отметили выше, никто не хочет вставлять в свой компьютер непонятно что.
                                        0

                                        Я думал вы наоборот предлагаете — закладку вместо визитки вставлять во что-то более незаметное :-)

                                          0
                                          Ценник на волка в шкуре добропорядочной овцы аксессуара не самого дешёвого бренда кмк вполне соответствует позиционированию и исполнению.
                                      0
                                      Если перефразировать — не каждый HR не побоится воткнуть это в свой комп. Но может и не нужно? Нужный HR просто вышлет оффер на мыло — заглядывать в cv уже необязательно.
                                      0
                                      Не совсем понятно как сделан USB разъем, можно детальнее?
                                        +1
                                        USB разъём делал по спецификации. Сделал два разъёма на плате, один основной, а другой отрывной по 1мм толщиной. Далее отрывной разъём отделяется, и прикладывается сверху на основной, затем припаиваются к друг другу. Таким образом достигается нужная толщина в 2мм.
                                        +16
                                        А соискатель на реверс-инженера или безопасника в качестве визитки может usb-killer раздавать. Если вставили — значит контора ему не подходит.
                                          0
                                          Тогда соискатель должен ещё и быть достаточно скрытным/неотслеживаемым. А то ведь потом предъявят за порчу имущества.
                                            0
                                            По результатам внутреннего расследования, только если был соблюдён регламент, иначе вычет с проштрафившихся сотрудников.
                                              0
                                              Чем это принципиально отличается от ситуации, когда террорист раскидал флешки со взрывчаткой, из-за которой от компьютера, в который их вставляли, оторвало кусок? Регламенты же определяют, как организация работает внутри, а не как её защищают законы снаружи, а по закону чужое имущество портить запрещено.
                                                0
                                                Взрывчатка вне целевого ареала — это терроризм. Заряженный конденсатор — нет, его можно нечаянно обронить. Никто не заставляет найденный мусор вставлять в компьютер.
                                                  0
                                                  А заряженный конденсатор внутри устройства, схемотехническое решение в котором однозначно раскрывает его предназначение?
                                                    0
                                                    Если у конденсатора внезапно шаг выводов совпал с разъёмом usb, это ещё ничего не значит. Зачем его тыкать в компьютер? Может это кастомный павербанк, например.
                                                      0
                                                      Если я правильно помню, то в таких случаях суд устанавливает, знал ли отправитель, что конденсатор могут попытаться вставить в компьютер, и что компьютер в таком случае выйдет из строя.
                                                      А полноценный usb-killer состоит не только из одного конденсатора, а из схемы, которая из VBUS делает -120 вольт и импульсом отправляет их на D+/D-. Как ещё можно объяснить наличие такой схемы в устройстве, у которого единственный доступный пользователю разъём — это USB? Это уже похоже на историю с хозяйкой дома, которая специально отравила водку и не промаркировала её должным образом, что и убило воров.
                                          +4
                                          Не использовать SPL, HAL и другие библиотеки для программирования периферии. Этого правила я придерживаюсь и на основной работе

                                          Хотелось бы услышать аргументацию. Понятно, что код получается компактнее, но переносимость, командная работа, передача проекта, тестирование. Эти составляющие сильно страдают. Если для пет-проекта регистры — полезно, то для бизнеса, мне кажется, такая категоричность не оправдана.
                                          3. Не использовать Кучу.
                                          4. Не использовать динамическое выделение памяти.

                                          А в чем разница, применительно к МК?
                                            +1
                                            Тоже офигел с такого подхода.
                                            Насчет кучи и памяти — просто разряжаешь револьвер и откладываешь его в сторону. В случае ошибки программа просто завершается и перезапустить её некому (разве только вотчдог какой).
                                              +1
                                              Если нет ртос то либо будут Nmi прерывания с бесконечным циклом внутри (или тем что прогер напишет), либо какие то ячейки памяти тупо портятся и проблема может вылезти где угодно.

                                              Не использовать кучу и динамику это стандартное неписанное правило (а вообще то писанное в MISRA и подобных стандартах) при работе с МК с малым количеством ОЗУ и в режиме без ОС.
                                              +1
                                              Полная аргументация — это тема для отдельной статьи. Если коротко, то люблю копаться в контроллере, а также код получается много быстрее и компактнее. В проект не переносятся ошибки из стандартной библиотеки. Хотя, можно сказать, что они заменяются собственными.

                                              Со стороны бизнеса пока претензий не было.

                                              Куча — не очень хочется тащить системные библиотеки в маленькие проекты.
                                              Динамическое выделение памяти — не очень безопасно.
                                                +2

                                                Вы уверены, что в вашем коде меньше ошибок, чем в стандартной библиотеке?
                                                Кстати, что имеется в виду под «стандартной библиотекой»?

                                                  +1
                                                  SPL =) Стандартная Периферийная Библиотека =)
                                                    0
                                                    Они, как минимум, более обозримы. Тащить чужие грабли со всеми зависимостями, багами и фичами не всегда оптимально.
                                                      0

                                                      А расскажите как вы это проверяете?
                                                      Ну вот какой-то несложный уровень, абстракцию над, допустим, SPI или i2c вы сами будете для каждого девайса писать?
                                                      Или «у меня работает»?

                                                0

                                                А зачем коммутировать питание spi-flash? Тем более рвать землю, а не Vcc? Почему SCK подтянут к Vcc, при этом CS не подтянут вообще. Зачем нужен диод последовательно с LDO?

                                                  0
                                                  Хотелось контролировать питание флэш-памяти.
                                                  Рвал землю, потому что так в протеусе были внятные результаты, в обратном случае — нет.
                                                  SCK нужно подтянуть, так как команды SPI flash начинают читаться по первому спадающему фронту, что и обеспечивается подтяжкой.(из документации)
                                                  НА счёт CS, забыл. В прототипе подтянут был.
                                                    0

                                                    Резистор на CLK лишний, т.к. после инициализации SPI линия переходит в состояние "0" либо "1" в зависимости от выбранного режима. Такие подтяжки используют для терминирования линии, чтоб восстановить форму сигнала. Но в данном случае он и без неё должен быть удовлетворительным. И скорее всего подтяжка к земле более эффективна. А вот подтяжка на CS запрещает работу памяти на момент пока МК не инициализировать данный пин и очень желательна. А рвать землю очень плохо.

                                                  0

                                                  Зачем нужен R7 если МК уже содержит внутри встроенный резистор: USB connect / disconnect capability (controllable embedded pull-up resistor on
                                                  USB_DP line)?

                                                    0
                                                    Об этом я узнал уже при программировании, после разводки платы, убирать не стал.
                                                    +17
                                                    Вырвиглазный шрифт. Какой-нибудь Consolas бы лучше подошёл, кмк — да и читался бы проще.
                                                      +2
                                                      Я так и не смог прочитать емейл)
                                                        0
                                                        Шрифт как шрифт, графический дизайн и системный дизайн вполне могут не согласовываться. Ещё ракурс съёмки и размытость не способствуют читабельности — они акцентированы на кишках.
                                                        Как минимум, шрифт решает задачу усложнения чтения надписей по зрительной памяти — можно помахать такой визиткой без риска нежелательной обратной связи.
                                                          +1
                                                          Ничего себе вы углубили :) С такой точки зрения — да, всё чётко.
                                                      +22

                                                      Отличная визитка.
                                                      Сразу показывает фактический уровень соискателя.
                                                      Сейчас вызову на себя гнев местной публики — но как это выглядит с другой стороны:
                                                      Мне, как начальнику группы аппаратной разработки HR приносят это и говорят — есть кандидат.
                                                      Даже не вставляя в комп — видно что это разработчик начального уровня.
                                                      Объясню ход моих мыслей:
                                                      1) Мы живем в России, говорим по русски — а тут нет ни одной буквы по русски. Значит человек мимикрирует под разработчика как минимум мирового уровня. Но даже директора крупных международных компаний в России делают визитки на русском.
                                                      2) USB — разведено без дифпары
                                                      3) На USB добавлена защита — что в данном применении излишне, потому что визитка это по сути одноразовая вещь. Значит она должна быть максимально дешевой.
                                                      4) Напаянный в толщину разъем — значит то, что человек экономил на печатной плате (не стал делать толщиной 2.4мм как в стандарте), что опять же вызывает когнитивный диссонанс с п3.
                                                      5) LDO — для удешевления конструкции заменяется на два диода или на стабилитрон с резистором.
                                                      6) Громоздкие корпуса элементов, увеличивающие общую толщину конструкции. В идеале — флешку и контроллер в qfn. А еще лучше без внешней флешки
                                                      7) Шрифт на визитке режет глаза — но такой шрифт почему то нравится студентам (сам раньше тащился от него, потом понял что ариал наше все)
                                                      8) Нет крутых фишек, стандартная схемотехника, легко программируется.
                                                      9) Нет пасхалок или ребусов (даже никакого qr кода или чего то подобного)
                                                      10) Соискателю 26 лет
                                                      11) Белый номер маленькими цифрами на плате — такие маркировки ставят jlcpcb (Китай) а это значит что можно было заказать монтаж там же и детали выбрать из перечня их компонентов. Вышло бы дешевле + экономия времени разработчика. Отличительная черта начинающего — не задумываться о экономии времени, делать все самому. Тут сразу видно, что это ручная пайка (светодиоды и их резисторы не врут).
                                                      12) Много "лишних" элементов в схемотехнике. Да, конденсаторы по питанию, токограничительные резисторы и светодиоды нужны в промышленном решении — но создают лишнюю цену в визитке, которая опять же повторюсь — одноразовая.


                                                      Что можно было сделать лучше?
                                                      Найти контроллер в минимально возможном корпусе, не требующий обвязки для подключения к USB. Например в каком нибудь qfn24 или msop8. Возможно это был бы даже не stm, а что то редкое и диковинное. Возможно стоило рассмотреть одноразово программируемые МК.
                                                      На самой визитке написать нормальным шрифтом и Русскими буквами свои данные.
                                                      Дать QR с адресом резюме (для тех — кто не хочет тыкать неизвестное изделие в свои ПК)


                                                      PS Извиняюсь за возможные ошибки и лексические не стыковки — голова уже не работает, пора спать.

                                                        +20
                                                        Плюсанул, но по поводу этого:
                                                        Да, конденсаторы по питанию, токограничительные резисторы и светодиоды нужны в промышленном решении — но создают лишнюю цену в визитке, которая опять же повторюсь — одноразовая.

                                                        А при их отсутствии вы не написали бы что-то типа такого:
                                                        Нет блокировочных конденсаторов и ограничительных резисторов, сразу видно, что вчерашний студент не знает, какие веселые глюки без них иногда возникают.

                                                        ?
                                                          0

                                                          Нет, если бы было видно, что из схемы выкинуто все, на чем можно сэкономить, а остальное сделано так — что не придраться. Естественно разумный минимум должен быть. Но конкретно в данном экземпляре — очень много лишнего.

                                                          +16

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


                                                          Тем не менее, я с посылом не согласен:


                                                          • "Значит человек мимикрирует под разработчика как минимум мирового уровня" — странная логика. Английский в среде разработке — незаменимый навык. Так что он обычно помогает, а не вредит (как в случае с вами, видимо, по религиозным принципам). Или даташиты стали переводить на русский? Опять же, я не знаю, что у вас там в железе, но в обычной разработке чуть ли не 90% новой информации (статьи, документация, книги) поступает на английском, так что странно хотеть от соискателя какой-то особой любви к русскому языку и связывать английские буковки с уровнем. Соискатель, скорее всего, тоже хочет знать, что вы английские буквы читать умеете, потому что иначе вы отрезаны от всего мира, документации, технического прогресса.
                                                          • "Соискателю 26 лет" — и что это значит? Некоторые к 26 имеют чуть ли не 10 лет опыта, некоторые только из университета выпустились. Это нормально.
                                                          • "Отличительная черта начинающего — не задумываться о экономии времени, делать все самому" — а быть начинающим — это плохо? Готовность разобраться во всем, и сделать проект самому от начала до конца — тоже плохо? Или на существование имеют право только сеньёры?

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


                                                          Так что весь комментарий превращается в очередную историю "как я отклоняю кандидатов, даже не дочитав резюме, просто потому что мне не понравилось X"

                                                            +1

                                                            Английский в среде разработки — незаменимый язык, это правда.
                                                            Однако визитка — это не "среда разработки", это установление контакта. Контакт принято устанавливать на наиболее распространенном в данной местности языке.
                                                            Если я буду давать свою визитку кому-то в России — я позабочусь о том, чтобы она была на русском и кириллицей.
                                                            Если это будет где-то в англоговорящей стране — я позабочусь о надписях латиницей.
                                                            Если придется давать визитку в Китае/Японии/etc — я сделаю визитку с надписями на соответствующем языке (предварительно проконсультировавшись о том, как это лучше делать).
                                                            То же самое и с резюме.

                                                            +3
                                                            1) Мы живем в России, говорим по русски — а тут нет ни одной буквы по русски. Значит человек мимикрирует под разработчика как минимум мирового уровня. Но даже директора крупных международных компаний в России делают визитки на русском.

                                                            Он не директор, а айтишник. Вы поток CV в IT видели? В хайринге принимали участие?
                                                            На русском через меня проходили лишь выгрузки с сайтов вроде hh или tut.by. То, что было сделано руками, было с сильным преимуществом на английском.

                                                              +1
                                                              А я вот не соглашусь)
                                                              Вот много людей вообще готовы предоставить с собой портфолио такого уровня? Я вот занимался поиском кандидата и человек с такой визиткой был бы явно отмечен. Придираться на самом деле можно к любой плате, тот же юсб не делается в 2х слоях, если говорить о правилах. Возможно часть ошибок сделана специально, что бы был повод поговорить — подискутировать. Лично я бы пригласил такого человека, с удовольствием посмотрел настройки проекта. Как показывает мой опыт в разработки — понятие правильно у всех очень разное…
                                                                +3
                                                                тот же юсб не делается в 2х слоях, если говорить о правилах

                                                                Вы не поверите, но вполне себе делается. И не только он. Если вы можете соблюсти целевой импеданс дифпары. Даже больше вам скажу, в двух слоях люди ddr память делают и она работает.
                                                                  0
                                                                  Сможете дизайн предоставить с такими параметрами? Я не придираюсь, делал сам USB на 2х слоях с чистой землёй под диф. парой и сопротивлением 140 Ом и оно стабильно работает. Просто человек изначально вёл разговор о «идеальных» правилах.
                                                                    +1
                                                                    Извините, не совсем понимаю ваше «предоставить». Делал ли я усб в двух слоях? Делал. И не только усб.

                                                                    Правда, это картинка без учета маски. С маской импеданс немного меньше получается.
                                                                      0
                                                                      Сложно что — то возразить, не зная в чём измеряется толщина проводника в калькуляторе.
                                                                        +1
                                                                        Э… да? Это микроны. Мне так удобнее. Т.е. 1464 — это 1,464мм толщина полторашки у резонита. Ширины дорожек и зазоров, соответственно, 0,35мм, 0,15мм, 0,2мм. В сатурне нету расчета дифпар, зажатых землёй, кстати.
                                                                +4
                                                                И я даже верю, что вы начальник. Пункты 1, 7, 8, 9, 10 — чисто ваши эмоции. Все остальные замечания из серии «неправильно делать А, надо делать Б» (а если сделано Б, значит надо А).
                                                                А конденсаторы по питанию вообще обсуждению не подлежат.
                                                                  +1
                                                                  Все ваши доводы более-менее адекватны, если бы вы нанимали электронщика. А товарищ, ведь, программист.
                                                                    +1

                                                                    Тогда зачем представлять себя объектом, который не показывает твои профессиональные навыки как программиста? Это все равно что сантехник сделает визитку в виде деревянной разделочной доски кмк.

                                                                      +3
                                                                      Хех, вот вы программист. Хотите блеснуть чем-то интересным. Что вы будете делать?
                                                                      И почему не показывает? Программа под контроллер написана? Написана. Чановская библиотека использована — вроде бы нет. Даже атмеги пресловутой и той нету. А то, что программист не в курсе, что на переходы не надо ставить термобарьеры или с питальником не до конца разобрался — это в любом случае повод поговорить.
                                                                      Но шрифт, да, вырвиглазный. Я когда себе визитку делал, остановился на ГОСТ 26.008-85. Наиболее читабельный.
                                                                        +2

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

                                                                        0

                                                                        Ниже кстати разобрали его код
                                                                        https://habr.com/ru/post/509138/#comment_21803122

                                                                        +4
                                                                        qfn и уменьшение количества элементов вряд ли усугубят положительное впечатление на HR.
                                                                        Большее количество элементы в глазах неспециалиста увеличивают сложность изделия, в отличие от единственного qfn на голой плате.
                                                                        За отсутствие защиты на usb некоторых именитых брендов нужно публично сечь.
                                                                          +5
                                                                          Отлично, вы прошлись по схемотехнике и платам, я, пожалуй, соглашусь, что отлично показывает уровень соискателя и пройдусь по схемотехнике ещё раз:
                                                                          0. За такую схему надо бить ссаными тряпками.
                                                                          1. Свастику на XT2 можно было развернуть нормально. USBLC6 пофигу, где D-, а где D+. Если удобнее в разводке так — не вопрос, сделать D- и D+ нетлейблами.
                                                                          2. Тут же, вместо нормального значка земли просто нетлейбл. И на XT3. А в остальных местах — нормальный значок земли. Зачем?
                                                                          2. NC на U2 не помечен крестиком, как NC. Но это мелочь.
                                                                          3. Кондёр на U3… серьёзно? Это же додуматься надо было нарисовать кондёр не возле VCC, а возле земли и тянуть через половину схемы линию.
                                                                          4. Земля на светодиодах — я даже не знаю уже что сказать.
                                                                          5. R10 и R11 включены… интересно. Ну и соотношение их номиналов явно намекает на наличие психических отклонений у автора. Да и смысл вообще коммутировать питание флешки.
                                                                          6. Конденсаторы на U1 — см. п.3.
                                                                          7. VD1 — вот просто, зачем? Защита от переполюсовки? Но на выходе?!

                                                                          В общем, поздравляю, идеальная визитка, чтобы ваше резюме навсегда внесли в чёрный список))
                                                                            +2
                                                                            Решил открыть исходники, но лучше бы этого не делал:
                                                                            1. bitbucket.org/i_soba/vidget_pcb/src/master/History Архивы? Под гитом? Вы серьёзно что ли?!
                                                                            2. bitbucket.org/i_soba/vidget_code/src/master/Periph/SPI/HW_stmf070x_spi.cpp
                                                                            Гениально. Запускаем DMA, чтобы ядро не тупило бесполезно и… висим в цикле, ожидая окончания передачи. Ещё и бесполезное continue зачем-то.
                                                                            3. bitbucket.org/i_soba/vidget_code/src/master/Periph/USB/HW_stmf070x_usb.cpp
                                                                            Просто приведу пример:
                                                                            if(standart_usb_request.wLenght > MSC_USB_STRING_SERIAL_DESCRIPTOR[0]){standart_usb_request.wLenght = MSC_USB_STRING_SERIAL_DESCRIPTOR[0];}

                                                                            Как думаете, вменяемый человек будет это хреначить в одну строчку?)
                                                                              +2
                                                                              Гениально. Запускаем DMA, чтобы ядро не тупило бесполезно и… висим в цикле, ожидая окончания передачи. Ещё и бесполезное continue зачем-то.

                                                                              Зато не SPL!
                                                                          +3

                                                                          Думаю можно было бы сделать step-down использовав медь и текстолит платы. И тот же контроллер плюс один ключ. Это было бы более зрелищно!
                                                                          Ну а от моргания синих и красных- лично меня уже укачивает. Мне недавно очень понравились янтарного цвета smd светодиодиоды. Такой прям ламповый у них цвет. Как в детстве, у лампочек в конструкторе.

                                                                            +1
                                                                            Для пущей ламповости можно было бы добавить вакуумную интегральную схему.
                                                                            +8
                                                                            Че накинулись. Хороший проект, сразу выделяющий кандидата из общей массы студентов.

                                                                            Насчет HAL, я сам не профессиональный электронщик, но товарищи, наоборот считают, что в случае STM это оправданное в промышленном варианте решение.
                                                                              +7
                                                                              Зачем затирать телефон на своей визитке? Это как на рекламе бы все телефоны затирали. =)
                                                                                +2
                                                                                Лучше задать вопрос зачем в федеральных номерах люди скобки ставят. Или копируют друг у друга не задумываясь?
                                                                                0
                                                                                Уже есть похожие и менее устрашающие варианты.
                                                                                Картинки

                                                                                Элегантный вариант.

                                                                                Живучий вариант.

                                                                                Для меломанов.
                                                                                  +5

                                                                                  Как-то, лет 10 назад, сестре на одном из воркшопов (она работает в туристической отрасли) дали визитку, как на втором фото. Воткнула в рабочий комп под Ubuntu – тишина, нет флешки. Решили воткнуть в комп с Виндой. И тут начинается интересное. На компьютере стоял Касперский с его блокировками всяких внешних устройств. Вставляем визитку в USB – Касперский говорит, что подключена клавиатура, введите пин-код. Ок, интересно что дальше. Отключаем в Касперском контроль внешних устройств, вставляем визитку. Открывается окно консоли, очень быстро вводится команда на запуск IE и пытается открыться сайт арабской гостиницы. После такого финта больше никогда не подключали к компьютерам такие визитки.

                                                                                  0
                                                                                  Встречают по одёжке.
                                                                                  Вот такой вариант и более красивый, и полезный. Может надолго задержаться сувениром у «начальника транспортного цеха» и контакты кандидата будут перед глазами. А хотите разные файлы и резюме разместить (да ещё и актуальные) — поместите QR-код и/или короткую ссылку текстом.
                                                                                  https://habr.com/ru/post/391395/
                                                                                    0
                                                                                    У меня на работе (небольшая фирма, 120+ сотрудников, западная Европа), никто кроме админов просто физически не сможет воткнуть неверифицированное устройство в usb порт.
                                                                                    Попытаешься, сразу окно на полэкрана с отвратительным звуком, и коллеги услышат, и админы узнают.
                                                                                    Между гиками — да, идея есть и исполнение супер. Как сувенир — тоже хорошо. Еще можно шефу подарок — с его данными какими то…
                                                                                    Ну а по прямому назначению визитке с максимальными данными, резюме и тд. и тп., достаточно qr кода…
                                                                                      0
                                                                                      В компьютерах, ориентированных на энтерпрайз функциональность каждого usb порта контролируется отдельно на уровне BIOS.
                                                                                      +4
                                                                                      Чувак, ты молодец, что заморочился! Для первой версии, на мой взгляд, очень норм! Критики тебе накидали, думаю, если заморочишься на вторую версию, будет повод написать ещё одну статью с разбором ошибок :)
                                                                                        0
                                                                                        а сделать обычную визитку с qr-кодом, в котором инфа о тебе и ссылка на github с проектами не?
                                                                                          0
                                                                                          В 21 веке, оказывается, не все умеют читать глазами эти ваши qr коды.
                                                                                            0
                                                                                            Зачем соискателю обычная визитка? Их у HR уже пачка.
                                                                                            +3
                                                                                            image

                                                                                            У меня не работает ))))
                                                                                              +9
                                                                                              Так у вас, поди, много чего не работает.
                                                                                                +1
                                                                                                А так?

                                                                                                image
                                                                                                +1
                                                                                                Меня не привлекает факт навязывания использования флешки, чтобы что-то так посмотреть. Вероятно, вы так же ноутбук в комплекте с этой усб-визиткой носите, чтобы никто не переживал вставлять эту флешку в свой ПК?
                                                                                                  0
                                                                                                  В вашем проекте используется описание регистров периферии на C++. Этот код вы сами пишете, или генерите средой разработки?
                                                                                                    +1
                                                                                                    Пишу сам, адреса блоков беру из CMSIS
                                                                                                    +4
                                                                                                    Обычно не комментирую хабр статьи, но тут прям откровенно необходимо.
                                                                                                    Невооруженным глазом видны косяки на плате, делая совершенно очевидным довольно низкий уровень разработчика и отсутствие опыта, хотя казалось бы: это — визитка, а значит должна быть вылизана до блеска.
                                                                                                    Ну и шрифт весьма уг.
                                                                                                      +2
                                                                                                      Жду визиток от микробиологов, например, с порошком который предлагается съесть.
                                                                                                        0
                                                                                                        Зачем есть? Достаточно понюхать — кастомные феромоны заставят угрюмого типа из СБ покинуть помещение с приступом кашля, а очарованной уполномоченной особе подписать выгодный контракт.
                                                                                                        0
                                                                                                        А если там вирус для взлома?
                                                                                                          0
                                                                                                          выглядит, конечно, футуристично, но есть ли в этом большой смысл, если можно резюме скинуть, используя облако
                                                                                                            0
                                                                                                            есть ли в этом большой смысл


                                                                                                            Смысл — привлечь внимание. В те времена, когда визитки (бумажные) были редкостью — это привлекало тоже внимание. Были визитки-CD. Было когда-то круто, когда на визитке есть email и www-адрес. А визитка с припаянными микросхемами — это киберпанк, и немного кич. Как золотое тиснение на визитке.
                                                                                                              0
                                                                                                              Как золотое тиснение на визитке

                                                                                                              Боюсь спросить тогда, чем считать золотое покрытие на визитке — печатной плате.
                                                                                                                +2
                                                                                                                Это демонстрирует, что владелец визитки может позволить себе наносить золото куда попало. Хоть на картон, хоть на печатную плату.
                                                                                                                  0
                                                                                                                  Сусальное золото можно наносить куда попало — тонкая фольга, была доступна в продаже в виде блокнотов. Если бы от этого зависел оффер, можно и потратиться слегка.
                                                                                                                    0
                                                                                                                    Сусальное золото на печатной плате свидетельствует разве что об особенном художественном вкусе. Позолота на плате, сделанная без необходимости, свидетельствует о неправильно выбранном цикле производства.
                                                                                                                      0
                                                                                                                      наносить золото куда попало. Хоть на картон, хоть на печатную плату.
                                                                                                                      Куда попало, в т.ч. на плату — сусальное золото либо амальгама, либо раствор в царской водке. Поэтому сусальное золото.

                                                                                                                      Золото на плату с целью снижения сопротивления и противодействия коррозии, в т.ч. электро- — правильное производство (хотя и кустарно выходит неплохо, на то оно и золото).
                                                                                                                        0
                                                                                                                        Золото на плату с целью снижения сопротивления и противодействия коррозии


                                                                                                                        Зачем золото в электронике — я представляю. Зачем это в визитке (что картонной, что электрической)?
                                                                                                                          0
                                                                                                                          Для красоты же!
                                                                                                            +5
                                                                                                            Это какой-то треш или тонкий троллинг все таки? Не уже ли Вам не стыдно такое показывать своему потенциальному работодателю? Имхо, не показав данную визитку, шанс устроиться в компанию будет сильно выше. А теперь по существу…

                                                                                                            0. Качество оформления схемы это катастрофа. Я смотрю на это и на ум приходит всего 2 мысли: или автор прям совсем нулевый студент или ему просто похуй плевать на свой же собственный труд. Ну оформите вы нормально схему, это сразу даст Вам бонус, потенциальный работодатель увидит, что вы может и не мастер, но аккуратный человек с чувством прекрасного.

                                                                                                            1. Вы используете Altium Designer, но не удосужились даже создать нормальный шаблон листа схематика? При чем даже создавать не надо — можно скачать лист ГОСТа или ISO из интернета.

                                                                                                            2. Вы используете Altium, но вместо генерации PDF файла и вытягивания из него качественной картинки, вы вставляет скриншот из самого AD. Это показатель уровня. Согласитесь, что вот так лучше будет?
                                                                                                            Пример схемы


                                                                                                            3. VD1 совершенно магическая вещь! Что вы им хотели сделать? Если защитить от переполюсовки, то надо ставить ДО стабилизатора (хотя какая переполюсовка в USB). Если хотели «опустить» напряжение из 3.3В в 3В, то смею заверить — падение на диоде Шоттки будет адово плавать, конкретно ваш по даташиту плавает от 0.45 до 0.9В. И почему вообще 3В, а не 3.3? И почему не взять стабилизатор на 3.0В?

                                                                                                            4. На одном листе GND и шиной и NetLable, это вообще фиаско… Что помешало сделать нормальный УГО для U4 и сделать подключить значком?

                                                                                                            5. NetLable, висящие в воздухе — это однозначно уровень! Не надо так делать…

                                                                                                            6. Почему на светодиодах все 4 вывода на объединить вместе и не подключить одним знаком GND? Почему поделено на 2 группы? Почему не на 4?

                                                                                                            7. На U1 опять кто-то делал УГО под веществами. Зачем VSS утащили на другую сторону? Его можно так же слева под VDDA разместить и тогда не пришлось бы тащить огромную цепь земли и не засорять схему.

                                                                                                            8. Что мне больше всего понравилось — это подключение R11! Это просто космос. Вы бы хоть подсмотрели в чужие схемы и увидели, что хорошая практика подтяжку вешать на затвор напрямую. Ведь если R10 сгорит или еще чего, то затвор откажется без подтяжки, ключи откроется и будет магия. Номинал R10 тоже прекрасен, особенно на фоне подтяжки в 10 кОм… Мне кажется 100...510 Ом там бы прекрасно подошли, к тому же 420 Ом уже используется на схеме, зачем плодить лишние номиналы?

                                                                                                            9. Возможно я слепой, но где подтяжка к VCC от reset-а? Вижу 0.1 мкФ, а подтяжка где? Таки вещи можно подсмотреть на отладках Discovery, даже искать не надо ничего.

                                                                                                            10. Разводка это ппц… Ладно такое показывают ребята-DIYщики, но вы же разработчик и хотите за это денег!

                                                                                                            11. Это косметика конечно, но важная — шрифт на плате просто не читаемый, зачем такое использовать? Ну хочешь ты «показать класс», так используй ГОСТ или ISOCPEUR. Ну а так вполне зашел Arial или что-то такое, без лишней вычурности.

                                                                                                            12. Заглянул мельком в код… Не думал что когда нибудь такое скажу, но лучше бы вы использовали HAL. Зачем С++, если вы его не используете? Читаемость кода на дне. Единственное, что интересно — USB, он вроде не стандартный, а таким самописный. Хотя что-то подсказывает, что был откуда-то стянут на гитхабе.

                                                                                                            13. Уровень владения git-ом продемонстрирован прекрасно, архивы в контроле версий о много говорят.

                                                                                                            P.S. Я не хотел кого-то сильно обидеть, но надеюсь автор таки как профессионал прислушается к критике и что-то изменит. Пару ошибочных моментов указал, но их гораздо больше, есть к чему стремиться.
                                                                                                              0
                                                                                                              Предлагаю совместить с USB Killer (https://habr.com/ru/post/251451/).
                                                                                                                +2
                                                                                                                Для участников священных войн Windows vS Linux предлагаю расширенный вариант — при подключении определяем по особенностям подачи команд USB операционную систему и если это вражеская ос, то подключаем вместо себя USB Killer.
                                                                                                                  +1
                                                                                                                  Сделать USB Killer в формате визитки (без здоровенных конденсаторов и дросселей) — своеобразный challenge. Это произведёт впечатление, даже если не включать ;)
                                                                                                                    0
                                                                                                                    Легко. Печатная катушка в один виток и МГД-генератор в кустах. Сработает гарантированно (в т.ч. и без физического подключения).
                                                                                                                    Вариант 2 — ионистор, формата толстой визитки гарантированно хватит.
                                                                                                                      0
                                                                                                                      Печатная катушка в один виток и МГД-генератор в кустах

                                                                                                                      С тяжелой артиллерией в кустах и катушка не нужна ;)
                                                                                                                      ионистор


                                                                                                                      image

                                                                                                                      На открытой плате сложно замаскировать подобную блямбу.
                                                                                                                  0
                                                                                                                  У меня одного Дежа-Вю?

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

                                                                                                                  Самое читаемое