Как стать автором
Обновить
11
0

Embedded Software Engineer

Отправить сообщение

Как нашли бэкдор в радиосвязи TETRA — подробный разбор

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров31K

Неприступных крепостей не бывает. Опасную брешь, то есть бэкдор, недавно обнаружили в шифрованном стандарте радиосвязи TETRA. А ведь он вот уже 25 лет используется военными, экстренными службами и объектами критической инфраструктуры по всему миру. Самое интересное, что на технические детали и контекст этой истории почти никто не обратил внимания.

Мы изучили статьи и доклады исследователей и собрали всю суть. Перед вами — подробная история взлома TETRA.

Читать далее
Всего голосов 221: ↑220 и ↓1+219
Комментарии33

Управляем роботами из VR

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров3K

Удаленная работа уже давно шагает по миру и сильнейшее влияние оказывает все же на ИТ и около ИТ индустрию, а что же ждет сотрудников, которые не могут перейти на «удаленку» из-за специфики задач? А ждет их все то же самое – они (почти) все так же отправлятся на «удаленку», и поможет этому событию робототехника и VR!

За последнее десятилетие прогресс в робототехнике и иммерсивных технологиях(VR в частности) просто невероятен. Многие компании уже давно работают в этой области – OhmniLabs, Double Robotics, GITAI, Telexistence и т.д., а такие акции как ANA Avatar XPRIZE еще сильнее стимулируют развитие направления.

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

Пощупать
Всего голосов 7: ↑7 и ↓0+7
Комментарии6

Турель из Portal своими руками

Время на прочтение9 мин
Количество просмотров24K

А вы играли в Portal? Даже если нет, сборка личной автоматической турели с детекцией движения и оригинальным голосовым сопровождением наверняка окажется как минимум любопытной, ведь такая диковина может не просто украсить интерьер, но и стать, к примеру, отличным подарком для детей.
Читать дальше →
Всего голосов 89: ↑88 и ↓1+87
Комментарии21

Руководство по CMake для разработчиков C++ библиотек

Время на прочтение18 мин
Количество просмотров77K

Данное руководство позволит читателю составить полную картину того, как организовать сборку C++ библиотек с использованием современных возможностей CMake. Предполагается, что читатель имеет представление о базовых понятиях из мира CMake и динамических/статических C++ библиотек, так как в руководстве они могут не объясняться.

Читать далее
Всего голосов 71: ↑71 и ↓0+71
Комментарии49

Как отличить начинающего профессионала от умудренного хоббиста в цифровой схемотехнике?

Время на прочтение7 мин
Количество просмотров12K

В чем главное отличие между FPGA-хоббистом, ностальгирующим по КР580ИК80 на пенсии - и начинающим микроархитектором, ориентированным на будущее трудоустройство в передовую процессорную компанию или сфинансированный венчурными капиталистами стартап?

Три слова: понимание концепции конвейера. Молодым профессионалом, не старым хоббистом.

Это наглядно видно, если вы погуглите тексты про FPGA для начинающих. Если текст пишет программист, которому захотелось потрогать FPGA чисто для разнообразия, он как правило до конвейера не доходит. Помигает лампочками, поговорит про конечные автоматы и может начнет встраивать какую-нибудь FPGA-реализацию старого 8-битного процессора.

(Некоторые из таких людей даже пишут книги - вот некий Роберт Дунне реализовал процессор конечным автоматом с состояниями fetch/decode/execute, но до конвейера не дожал)

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

Но это надо преодолеть, поскольку если вы прийдете интервьироваться в какой-нибудь AMD на позицию юного проектировщика, вас будут спрашивать не как помигать лампочками и засунуть Радио РК-86 в Xilinx, а как стоя перед интервьирующим написать на доске на языке описания аппаратуры Verilog - конвейерную реализацию какого-нибудь умножения со сложением. Или сделать это на компьютере отрезанном от интернета, так что вы даже не cможете нагуглить решение - вот садисты, а?

Именно этому вопросу будет посвящено следующее занятие Сколковской Школы Синтеза Цифровых Схем.

Объяснение концепции конвеера военкоматом
Всего голосов 26: ↑18 и ↓8+10
Комментарии91

Манифест: почему я не делаю свой пет-проджект постоянной работой

Время на прочтение10 мин
Количество просмотров15K


Когда доходы от продаж с моего сайд-проекта пробили отметку $100k, я, к собственному удивлению, обнаружил:

Не хочу бросать основную работу.

Никакого позыва написать, что наконец-то я бросаю «крысиные бега». Не написал ни единого твита о том, как я стал творить, и «изменил собственную жизнь. (И вам это под силу! Купите мой курс!)». Не написал письма в духе Джерри Магуайера.

Подумал, может со мной что не так. Зависая в соцсетях, я постоянно натыкался на фетишизацию трудоголизма, из-за чего меня подмывало бросить работу. Такая свобода подобна нирване, «все или ничего» и, как только вкусишь ее, пути назад не будет. Чем не киносценарий?  

Я хочу написать новый сценарий – о тех, кто Творит По Совместительству. Давайте определим, что это такое, почему этим стоит заниматься, как дать этому ход, а потом довести до ума.

Не просто деньги


Годовой заработок в $100k всегда казался мне планкой, с которой начинается успешный «независимый доход». В лучшие годы мои родители зарабатывали меньше, а в большинстве городов $100k хватает на самообеспечение и даже на то, чтобы прокормить семью. Еще лучше, если доход целиком пассивный – мечтал, каково путешествовать по свету, а деньги пускай зарабатываются, пока я сплю.  
Читать дальше →
Всего голосов 47: ↑43 и ↓4+39
Комментарии11

Дешевле не будет: SSD и оперативная память продолжают дорожать

Время на прочтение4 мин
Количество просмотров28K

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

За месяц стоимость чипов DDR4 увеличилась сразу на 7%, а DDR2 — так и вовсе на 10%. Что касается SSD, то их цена к концу II квартала 2021 года увеличилась на 5%, это корпоративный сектор. Пользовательские SSD стали дороже на 8%. О подробностях случившегося и перспективах — под катом. Ну и в комментариях давайте обсудим, чего можно ждать.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии46

Серебряная пуля для кремлевского демона

Время на прочтение5 мин
Количество просмотров79K

image


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

Читать дальше →
Всего голосов 174: ↑162 и ↓12+150
Комментарии134

Как я собрал «умный» органайзер для электронных компонентов

Время на прочтение13 мин
Количество просмотров28K
Привет. Я Александр Бурага, разработчик из команды роботов и беспилотных автомобилей Яндекса. Но сегодня речь пойдёт не о них, а о моём личном проекте, над которым тружусь дома.

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



Мне часто случается вооружаться паяльником — например, дорабатывать или монтировать отдельные радиоэлектронные блоки — с проблемой бессистемного хранения столкнулся и я. Под катом вас ждёт рассказ о том, как я пытаюсь решить её с помощью «умного» органайзера, который понимает речь и запоминает своё содержимое.
Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии110

Идем по приборам

Время на прочтение22 мин
Количество просмотров30K


Много ли нужно, чтобы изменить пробег или залезть в память приборной панели?


Есть только один способ узнать — попробовать сделать это самому.

Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии31

Выбор элементной базы для аккумуляторного питания небольшого устройства

Время на прочтение10 мин
Количество просмотров11K


Получил задание на разработку батарейного устройства с NFC, радиообменом в сети Z-wave и рядом других особенностей. Тема статьи касается электропитания данного устройства, поэтому подробного описания назначения и функций устройства не будет. Оно должно работать как от батареи, так и от сети постоянного тока 5-12 вольт. При питании от аккумулятора устройство потребляет около 200 мкА (периодическое сканирование NFC). При подносе карты потребление вырастает примерно до 400 мА в течение 0.5 секунды. Устройство должно работать на улице круглогодично и быть по габаритам максимально близким к кредитной карте и толщиной не более 2 см. Срок эксплуатации устройства до замены аккумулятора 2-3 года. Планируемая серийности несколько тысяч штук.

Кому интересны рассуждения дилетанта, решающего проблему энергопитания устройства, прошу под кат.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии51

Как сделать интерактивную карту с помощью Python и open source библиотек

Время на прочтение6 мин
Количество просмотров46K

Сегодня делимся с вами пошаговым руководством создания интерактивных карт для веб-приложения или блога. Просто сохраните эту статью в закладках. Хоть и существует, например, библиотека d3.js, которая может создавать пользовательские карты, есть несколько инструментов еще проще. В этом посте посмотрим на три простые в обращении, но мощные библиотеки Python с открытым исходным кодом и поработаем с ними.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии3

Топ IT-книг прошлого века, которые актуальны до сих пор

Время на прочтение14 мин
Количество просмотров79K
«Физические законы — это не Python, их не изменить в новых версиях, то есть материал в книге (по электронике) будет актуален всегда».
ne555, из комментариев на Хабре

image

Одна из главных проблем технической журналистики — устаревание информации вследствие быстрого развития технологий. Можно написать самый полный, понятный и красочный гайд на свете, но он через пару месяцев канет в небытие после страшного слова «апдейт».

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

Вдохновившись историей «второго рождения» учебника по электронике 1979 года (а точнее, комментариями к ней), мы решили собрать для вас подборку книг по электронике, которым в 2020 году исполнилось от 25 до 69 лет, но которые при этом не утратили своей актуальности. А чтобы не ограничиваться собственными нейтрально-редакторскими вводными, мы попросили прокомментировать эту подборку победителя «ТехноТекста-2019» в номинации «Научно-популярное», старожила Хабра, разработчика интегральных микросхем для космоса и потомственного инженера Валерия Шункова aka @amartology.

Осторожно: прочтение книг из этой подборки может вызвать острое желание взяться за паяльник. Вдохновляйтесь, творите и делитесь своим опытом с Хабром, ведь именно по просьбе сообщества мы добавили в список номинаций «ТехноТекста-2020» новую — «Железо и его разработка».
Читать дальше →
Всего голосов 95: ↑89 и ↓6+83
Комментарии98

Светодиод, таймер и прерывания на RISC-V с нуля (на примере GD32VF103 и IAR C++)

Время на прочтение41 мин
Количество просмотров25K


Сегодня речь пойдет о модном — о RISС-V микроконтроллере. Я давно хотел познакомиться с этим ядром и ждал когда появится что-то похожее на STM32 и вот дождался, встречайте — китайский GigaDevice — GD32V.


Инфраструктура для этого микроконтроллера не такая обширная как для STM32, но есть все необходимое для того, чтобы начать с ним работать. Благо отладочные платы можно заказать на аликекспресс, например, вот тут: Longan Nano GD32VF103CBT6 RISC-V MCU


Китайцы продвигают для этого микроконтроллера среду разработку Platform IO, которую можно поставить как расширение под Visual Studio Code. Но мы не будем её использовать, это ведь не по инженерным понятиям, мы же инженеры и хотим разобраться во всем сами. Поэтому давайте попробуем запустить плату на IAR, написав все с нуля.


Кстати, IAR раздает отладочный комплект (отладочная плата + отладчик I-Jet + 30 Дней полная лицензия) IAR RISC-V GD32V Evaluation kit. Вот тут можно оставить заявку Request for Development Tools. Не уверен, что они посылают комплект всем желающим, но мы получили в течение 5 дней. Спасибо им за это!


Ну что же, кто заинтересовался, добро пожаловать под кат

Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии31

Как я научился проходить архитектурные секции

Время на прочтение4 мин
Количество просмотров31K
Архитектурные секции у многих вызывают чувство неопределенности и тревоги: формулировки не изобилуют деталями, как проверить ответ — непонятно. При этом способность пройти архитектурную секцию отличает вчерашнего выпускника от человека, которому можно доверить строить нечто большее, чем обход бинарных деревьев. В определенный момент я решил как следует подготовиться секции по дизайну, потратил на это около пары недель и выработал системный подход, которым хочу с вами поделиться.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+41
Комментарии18

STL, allocator, его разделяемая память и её особенности

Время на прочтение11 мин
Количество просмотров11K

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

Так и автор однажды задался мыслью, а что если … если произойдёт вырождение адресов сегментов разделяемой памяти в разных процессах. Вообще-то именно это происходит, когда процесс с разделяемой памятью делает fork, а как насчет разных процессов? Кроме того, не во всех системах есть fork.

Казалось бы, совпали адреса и что с того? Как минимум, можно пользоваться абсолютными указателями и это избавляет от кучи головной боли. Станет возможно работать со строками и контейнерами С++, сконструированными из разделяемой памяти.

Отличный, кстати, пример. Не то, чтобы автор сильно любил STL, но это возможность продемонстрировать компактный и всем понятный тест на работоспособность предлагаемой методики. Методики, позволяющей (как видится) существенно упростить и ускорить межпроцессное взаимодействие. Вот работает ли она и чем придётся заплатить, будем разбираться далее.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии2

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

Время на прочтение15 мин
Количество просмотров107K
Пользуетесь ли вы структурами данных и алгоритмами в повседневной работе? Я обратил внимание на то, что всё больше и больше людей считает алгоритмы чем-то таким, чем, без особой связи с реальностью, технические компании, лишь по собственной прихоти, интересуются на собеседованиях. Многие жалуются на то, что задачи на алгоритмы — это нечто из области теории, имеющей слабое отношение к настоящей работе. Такой взгляд на вещи, определённо, распространился после того, как Макс Хауэлл, автор Homebrew, опубликовал твит о том, что произошло с ним на собеседовании в Google:

Google: 90% наших инженеров пользуются программой, которую вы написали (Homebrew), но вы не можете инвертировать бинарное дерево на доске, поэтому — прощайте.

Хотя и у меня никогда не возникало нужды в инверсии бинарного дерева, я сталкивался с примерами реального использования структур данных и алгоритмов в повседневной работе, когда трудился в Skype/Microsoft, Skyscanner и Uber. Сюда входило написание кода и принятие решений, основанное на особенностях структур данных и алгоритмов. Но соответствующие знания я, по большей части, использовал для того чтобы понять то, как созданы некие системы, и то, почему они созданы именно так. Знание соответствующих концепций упрощает понимание архитектуры и реализации систем, в которых эти концепции используются.



В эту статью я включил рассказы о ситуациях, в которых структуры данных, вроде деревьев и графов, а так же различные алгоритмы, были использованы в реальных проектах. Здесь я надеюсь показать читателю то, что базовые знания структур данных и алгоритмов — это не бесполезная теория, нужная только для собеседований, а что-то такое, что, весьма вероятно, по-настоящему понадобится тому, кто работает в быстрорастущих инновационных технологических компаниях.
Читать дальше →
Всего голосов 71: ↑69 и ↓2+67
Комментарии53

Проект длиной в 8 лет — знал бы, ни за что не ввязался: свой 2-тактный мотор

Время на прочтение8 мин
Количество просмотров116K
Когда-то давно я понял, что мне мотора Иж Планета не хватает и я решил радикально модифицировать его — сделать собственный цилиндр. По ходу сменился даже мотор. За его время я успел закончить школу, поступить в один вуз, вылететь и каким-то чудом перевестись в другой и отучиться там еще 5 лет и все равно я закончил и его уже два года назад. Знал бы я, что так оно растянется, наверное, не ввязался бы. Поскольку мы воспринимаем время относительно прожитого в сознательном возрасте, то для меня оно растянулось на половину прожитого времени.

Прошло уже 6 лет с момента выхода первой и последней заметки по этому проекту(Свой 2-тактный мотор. CR620 рекомендуется к ознакомлению). Тогда я остановился из-за проблем с аутсорсом в металлообработке. Кто не может, кто не хочет, кто делает бесконечно долго, кто и детали назад возвращать не хочет. А город в котором я живу имеет славную промышленную историю и был центром Петровской индустрии 18-века, но от славного прошлого ныне остался один корень в названии города и несколько действующих предприятий, на которых занято порядка единиц процентов населения. А сейчас не 90-е и даже не 00-е, когда можно было договорится с человеком с завода чтобы он что-то такое эдакое для тебя сделал. Теперь у них есть работа и КПП на входе, как я потом узнал — номинальное. Вся эта история с передачей деталей где они лежат, а не делаются, поиск новых мест и тому подобное блуждание длилась несколько лет. Оказалось, что отлить сложную алюминиевую отливку у сарая на родительской даче я смог, а обработать, что не выглядело проблемой изначально — нет.

Читать дальше →
Всего голосов 254: ↑253 и ↓1+252
Комментарии108

Издатель/подписчик для распределённых отказоустойчивых бортовых систем реального времени в 1500 строк кода

Время на прочтение31 мин
Количество просмотров16K

Сап, котятки.


Я пришёл рассказать о проекте UAVCAN — новом сетевом стандарте для организации взаимодействия узлов и компонентов современных транспортных средств с высоким уровнем автономности/автоматизации. Название является акронимом от Uncomplicated Application-level Vehicular Computing And Networking (несложные бортовые сети и коммуникации уровня приложения).


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



Конъюнктура


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


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

Ну и что?
Всего голосов 21: ↑21 и ↓0+21
Комментарии17

Расчет временных ограничений для ПЛИС простым языком

Время на прочтение12 мин
Количество просмотров12K
Здравствуйте. Эта статья написана для самых-самых новичков в мире ПЛИС, которые пока что совсем не знают что такое STA (static timing analysis). В ней я попытаюсь максимально просто и наглядно рассказать что такое временны́е ограничения (timing constraints), накладываемые на проекты под ПЛИС.

Статья создана на основе собственного опыта попыток объяснить самому себе, студентам-практикантам и любопытным коллегам эту тему так, чтобы не погружаться в заумные академические дебри, а максимально просто и прозрачно, бытовым языком. Я учился работать с ПЛИС без учебы и подготовки по этой теме и знаю по своему опыту насколько трудно что-то понять не имея теоретического базиса в этой теме и в схемотехнике. Для опытного плисовода описанное — элементарно. Но для какого-нибудь студента четвертого курса статья будет полезной и поможет разобраться во всех этих слэках, сетапах и холдах.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии15

Информация

В рейтинге
Не участвует
Откуда
München, Bayern, Германия
Зарегистрирован
Активность