Pull to refresh
40
0
Konstantin @Kitsok

User

Send message

Взлом цветного картриджа HP: превращаем его в ручной принтер

Reading time15 min
Views95K
image

Введение


Ещё с юности, когда у нас был старый DeskJet, меня интересовали картриджи струйных принтеров. Эти картриджи казались очень интересными и как только в них заканчивались чернила, я сразу забирал их себе. В то время я не мог сделать с ними ничего, кроме как разобрать и пачкать руки… Хоть я и знал, что там внутри есть какая-то сложная электроника, но при касании контактов батарейкой не происходило ничего интересного, а моих знаний по электронике на большее не хватало.

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

Недавно моя девушка занялась рисованием, поэтому это стало хорошим оправданием для возврата к струйным картриджам в надежде, что и мне удастся нарисовать что-то на холсте. На этот раз мне повезло: удалось найти способ привязки всех сопел к правильным сигналам. Кроме того, сегодня картриджи принтеров управляют бОльшим количеством сопел используя меньшее количество сигналов, что упрощает управление картриджем и увеличивает поверхность, которую можно покрыть за один проход.
Total votes 156: ↑155 and ↓1+154
Comments43

KeeBee. Изготовление с нуля собственной USB-клавиатуры

Reading time5 min
Views70K
Несколько месяцев назад завершился мой проект по изготовлению USB-клавиатуры. Среди прочего, я выполнил дизайн электронных схем, спроектировал печатную плат, запрограммировал прошивку, сделал макет в CAD и произвёл сборку устройства. В результате получилась удобная клавиатура, которую я использую ежедневно и ласково называю KeeBee:


Клавиатура KeeBee в окончательном виде

Несколько целей проекта:

  1. Самостоятельное создание схемы.
  2. Написание прошивки клавиатуры.
  3. Узнать, как работает протокол USB.
Читать дальше →
Total votes 130: ↑130 and ↓0+130
Comments87

ИТ-гигант уходит с рынка чипов для дата-центров — расскажем, что это значит для индустрии

Reading time4 min
Views19K
Последний ARM-чип компании Qualcomm для дата-центров — Centriq, вышел чуть более года назад и собрал на старте множество положительных отзывов. Но в середине декабря ИТ-гигант объявил, что закрывает направление, занимающееся производством процессоров для ЦОД.

Рассказываем, с чем связано такое решение и как оно отразится на отрасли в целом.

Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments15

Pi-Sonos: хобби, вышедшее из-под контроля

Reading time6 min
Views21K


Идея дизайна нового корпуса интернет-радиостанции Pi-Sonos родилась еще до завершения работы над предыдущей его версией. Со временем, она впитала в себя накопленный пользовательский опыт и учла допущенные ранее недочеты. На этот раз все «по-взрослому».
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments39

Обратная сторона zero knowledge: бэкдор в zk-SNARK, который невозможно обнаружить

Reading time3 min
Views11K
Используя протокол доказательства с нулевым разглашением из семейства SNARK, вы никогда не знаете правил игры. Эти правила устанавливают участники процедуры генерации доверенных параметров системы, однако после её завершения проверить эти правила не представляется возможным. Вы можете поверить в корректность генерации, но, если вы в ней не участвовали, стопроцентных гарантий у вас нет.


Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments7

Шлюзы промышленных протоколов обмена на Linux. Собери сам

Reading time4 min
Views19K
Я занимаюсь разработкой, внедрением и эксплуатацией систем автоматического управления технологическими процессами (АСУ ТП). Поначалу работал со SCADA-системами. Потом довольно быстро переключился на работу с протоколами обмена промышленных устройств. Как самостоятельное написание драйверов, так и настройка систем сбора данных. В настоящий момент моя работа проходит атмосфере Modbus-ов, МЭКов-101/104-х, ОРС и прочих протоколов.

image
Рис. 1. Многообразие протоколов обмена, используемых в АСУ ТП
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments73

Оптимальная температура в доме или как установить термостат в дальней комнате без проводов

Reading time11 min
Views23K

Для многих далеко не секрет, что такие устройства как недельные термостаты помогают обеспечить оптимальную комнатную температуру в доме к тому же с экономией энергоресурсов, затрачиваемых на обогрев. Для корректной работы устройства его обычно размещают в самой дальней комнате, где наименьшая температура. Но большинство термостатов предполагают проводное подключение к котлу для управления и далеко не всегда есть возможность эти провода проложить. О решении подобной проблемы и пойдет речь в данной статье. Всем, кому интересно прошу под кат…
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments33

Что мы узнали о безопасности Intel ME за последние годы: 7 фактов о таинственной подсистеме

Reading time6 min
Views24K


Изображение: Unsplash

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

Мы изучаем Intel ME на протяжение последних лет, и вот что нам удалось узнать об этой таинственной подсистеме к этому моменту.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments3

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

Reading time5 min
Views8.6K

Прошлые посты в корпоративном блоге не содержали ни одной консольной команды, и мы решили наверстать упущенное.


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


image
Так выглядит тестовый сайт на каждом сервере виртуального хостинга


Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments20

Связь драйвера и устройства по _HID методу ACPI на примере GPIO контроллера Lynxpoint

Reading time8 min
Views4.5K

Постановка задачи


В Linux есть стандартный интерфейс для работы с GPIO через sysfs. Документацию на него можно посмотреть тут.

Если кратко, то в папке "/sys/class/gpio" есть файлы «export» и «unexport». С помощью записи числа X в файл export можно открыть интерфейс в user space для управления GPIOX

# открыть интерфейс в user space для управления GPIO12
$ echo 12 > /sys/class/gpio/export

После открытия интерфейса появится папка /sys/class/gpio/gpioX/ в которой будут такие файлы как «value» или «direction», и путём записи «in» или «out» в файл «direction» и записи 1 или 0 в файл «value» можно управлять выводом GPIO напрямую через командную строку.

# настроить GPIO на вывод
$ echo "out" > /sys/class/gpio/gpio12/direction

# установить 1 на выводе GPIO
$ echo 1 > /sys/class/gpio/gpio12/value

Чтобы команда «echo X > /sys/class/gpio/export» приводила к созданию папки «gpioX», в ядре должен быть зарегистрирован драйвер контроллера GPIO, открывающий интерфейс к линиям GPIO.

Так получилось, что я работаю над портированием coreboot для кастомной платы на базе процессора Intel Haswell i7 [Для тех, кто не знает, coreboot это open source проект по созданию BIOS с открытым исходным кодом (https://www.coreboot.org/)]. В мой процессор встроен южный мост LynxpointLP в котором есть 94 линии GPIO. И я захотел открыть их в sysfs…
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments4

Подборка докладов по ядру Linux с Open Source Summit Europe 2018

Reading time4 min
Views7.6K


На прошлой неделе в Эдинбурге (Шотландия) прошел европейский Open Source Summit 2018. Представляю вашему вниманию подборку интересных докладов по ядру Linux, на которых мне удалось поприсутствовать.
Total votes 27: ↑25 and ↓2+23
Comments2

Руководство по доведению «до кондиции» клона популярного китайского мини-роутера Hame A15, он же «unbranded A5-V11»

Reading time24 min
Views60K

Если я видел дальше других, то потому, что стоял на плечах гигантов.
И.Ньютон


Думаю многим известен маленький китайский роутер Hame A15 (он, а точнее массовые его копии, с улучшенными по сравнению с оригиналом ТТХ, одинаково хорошо гуглятся по ключевым словам 3g/4g router как на ebay, так и на aliexpress). Сегодня я хотел расказать, как я довел до ума роутер за 6,5$ и потратил на это 20$. Зачем? А примерно за тем же, зачем из бисера плетут браслетики — чтобы микромоторику потренировать и зрение подсадить (корпуса компонентов в основном 0402 :) Большей частью ради спортивного интереса, хотя немаловажно и то, что роутерчик этот, на сегодняшний день — моя любимая база для различных проектов (даже несмотря на сложность доступа к GPIO), вместо «народных» NEXX WT3020F, TP-Link TL-MR3020, TP-Link TL-WR703N и иже с ними. Причиной тому в первую очередь является его размер и форма печатной платы, удобная для встраивания куда угодно (на фото можно оценить размеры). В дальнейшем, чтобы избежать путаницы терминологии, буду называть показанное ниже устройство так, как его называет wiki openwrtA5-V11.


Читать дальше →
Total votes 50: ↑50 and ↓0+50
Comments73

DNS over TLS — Шифруем наши DNS запросы с помощью Stunnel и Lua

Reading time5 min
Views20K


источник изображения


DNS (англ. Domain Name System — система доменных имён) — компьютерная распределённая система для получения информации о доменах.

TLS (англ. transport layer security — Протокол защиты транспортного уровня) — обеспечивает защищённую передачу данных между Интернет узлами.

После новости "Google Public DNS тихо включили поддержку DNS over TLS" я решил попробовать его. У меня есть Stunnel который создаст шифрованный TCP туннель. Но программы обычно общаются с DNS по UDP протоколу. Поэтому нам нужен прокси который будет пересылать UDP пакеты в TCP поток и обратно. Мы напишем его на Lua.


Вся разница между TCP и UDP DNS пакетами:


4.2.2. TCP usage
Messages sent over TCP connections use server port 53 (decimal). The message is prefixed with a two byte length field which gives the message length, excluding the two byte length field. This length field allows the low-level processing to assemble a complete message before beginning to parse it.

RFC1035: DOMAIN NAMES — IMPLEMENTATION AND SPECIFICATION


То есть делаем туда:


  1. берём пакет из UDP
  2. добавляем к нему в начале пару байт в которых указан размер этого пакета
  3. отправляем в TCP канал

И в обратную сторону:


  1. читаем из TCP пару байт тем самым получаем размер пакета
  2. читаем пакет из TCP
  3. отправляем его получателю по UDP
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments21

Python для ребёнка: выбор самоучителя

Reading time8 min
Views122K
Python для ребёнка: выбор книги для самостоятельного изучения языка в 2018 году

Мой сын заинтересовался программированием на Python, и у меня появился вопрос – есть ли сегодня возможность купить книгу для ребёнка в качестве самоучителя? Самоучители для взрослых детям не подходят – мотивации продираться самостоятельно через учебники программирования и у взрослых не всегда хватает, а у ребёнка скучное «академическое» изложение вообще может убить весь интерес к предмету на пятой странице.

К счастью, на момент написания статьи (конец 2018 года) выбор оказался весьма широк – есть как переводные, так и отечественные книги, нацеленные на детскую и подростковую аудиторию. В ходе поиска, отсеяв книги по Python 2, я смог найти 10 свежих книг по Python 3 для детей, изучил каждую их них вживую в офлайн-магазинах, и результатами своих изысканий хочу поделиться с вами в статье под катом.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments54

2019 — год, когда Intel остановился

Reading time4 min
Views114K
Заглядывать в будущее – рискованный талант, но сегодня на рынке микропроцессоров сложилась ситуация, которая, пожалуй, разворачивается впервые с 1978 года. Корпорация Intel, правившая балом производства полупроводниковых технологий, первый раз за 40 лет теряет хватку, уступая звание лидера небезызвестной компании TSMC, давно зарекомендовавшей себя в качестве партнера и производителя графических чипов NVidia, а с будущего года – и AMD.

image

Еще в далеком ныне 2014 году Intel планировала совершить очередной шаг вперед в покорении рубежей техпроцесса, представив первую модель, основанную на 10-нм технологии – но из-за технических проблем переход на новый, революционный по тем меркам техпроцесс, был отложен. Сначала на год, потом на два, а затем – на неопределенный срок. Впрочем, первые шаги к долгожданному переходу на 10-нм Intel все-таки сделала, представив на суд публике ультраэкономичные процессоры для тонких ноутбуков.

Но пока Intel топталась на месте с проблемной «десяткой», AMD успела сотворить невозможное. С выходом в 2016 году нового поколения процессоров Ryzen, красным удалось не только заинтересовать рядовых пользователей и энтузиастов, но и создать для себя универсальную платформу для дерзких экспериментов, благодаря чему свет увидели и профессиональные десктопные решения семейства Threadripper, и серверное семейство процессоров EPYC, вовсе перевернувшее все представления о возможностях красного гиганта, давно покинувшего этот сегмент рынка.

Всего за 2 года AMD успела поработать над ошибками, и представить уже новую, улучшенную версию прежней архитектуры, удивив и порадовав поклонников – Ryzen 2 учел практически все огрехи предшественника, Threadripper второго поколения обещает 32 (!) ядра там, где даже 16 неплохо удивляли, а EPYC вот-вот ворвется во множество компаний enterprise-класса, потеснив абсолютного короля серверного сегмента. К такому синие были совершенно не готовы…

image

Total votes 82: ↑72 and ↓10+62
Comments101

Таймер — начало

Reading time8 min
Views24K
Все началось с него. Это была первая моя покупка на Алиэкспресс для первой автоматизации на даче — захотелось сделать автополив в теплице. Таймер пришел в помятой коробке, с треснутым защитным колпаком, но рабочий. Он прекрасно отработал весь летний сезон поливая огурцы.На зиму был снят и спрятан в теплое и сухое место. Но на следующий сезон меня ждал неприятный сюрприз  — таймер стал зависать, переставал реагировать на кнопки управления и открывать воду. Сначала я грешил на дешевые батарейки и заменил их на фирменные Duraсell. Думал проблема в питании и пусковых токах. Не помогло. Тогда я достал паяльник и пропаял в нем все, что только можно, даже добавил некоторые недостающие конденсаторы. Но он упорно продолжал зависать. К сожалению, изделие не очень ремонтопригодно — в том что было у меня используется бескорпусная микросхема-капля и, видимо, что-то расконтачилось именно под компаундом с микросхемой. Кое-как сезон был закончен с таким барахлящим таймером и я начал думать чем же мне его заменить.
Читать дальше →
Total votes 60: ↑60 and ↓0+60
Comments57

Быстрый старт с ARM Mbed: разработка на современных микроконтроллерах для начинающих

Reading time17 min
Views74K
Привет, Хабр.

Традиционным уникальным преимуществом платформы Arduino называлось (да и сейчас иногда называется, хотя это уже неверно — и мы поговорим, почему) опускание порога входа в микроконтроллерную разработку до уровня базовых знаний C/C++ и электроники в маштабе «подключить светодиод в нужной полярности».

Спросите примерно у любого активного сторонника Arduino — и вам быстро объяснят, что можно, конечно, писать под STM32 или nRF52, но выгоды в том реальной никакой, зато вас ждут бессонные ночи над сотнями страниц даташитов и бесконечные простыни функций с длинными непонятными названиями.

Заслуги Arduino в снижении порога вхождения действительно трудно переоценить — эта платформа появилась на свет в середине нулевых годов, а после 2010 завоевала серьёзную популярность среди любителей. Особых альтернатив на тот момент ей не было — процессоры на ядрах Cortex-M только появились, по сравнению с AVR они были довольно сложны даже для профессиональных разработчиков, а отладочные платы у большинства вендоров стоили от сотни долларов и выше (и в общем в индустрии ценник за отладку на 5-долларовом контроллере в $500 никого сильно не удивлял).

Однако большая проблема Arduino в том, что её развитие за минувшие 10+ лет более всего напоминает некоторые модели АвтоВАЗа:


Так как дальше я планирую длинное вступление, то сейчас, чтобы вы представляли, в чём будет заключаться практическая часть, я приведу полный текст программы, включающий инициализацию процессора STM32 и мигание светодиодом. Программа написана для ОС ARM Mbed:

#include "mbed.h"
DigitalOut myled(LED1);

int main() {
    while(1) {
        myled = 1; // LED is ON
        wait(0.2); // 200 ms
        myled = 0; // LED is OFF
        wait(1.0); // 1 sec
    }
}

Похоже ли это на высокий входной порог? На функции с непонятными названиями? Бессонные ночи над даташитами? Нет? Ладно, давайте не будем забегать вперёд.
Читать дальше →
Total votes 114: ↑98 and ↓16+82
Comments463

Разработка внешнего аккумулятора на четырех батареях LiFePO4

Reading time6 min
Views23K

Упрощенная схема BQ40Z50-R1

Внешние аккумуляторы (power banks) активно используются для зарядки смартфонов и других мобильных гаджетов. Это простое по структуре устройство: литий-ионные или литий-полимерные батареи, управляющая печатная плата, корпус. Но сама по себе разработка зарядных схем для внешних аккумуляторов и электромобилей не так проста, тут можно экспериментировать и предлагать новые решения.

В рамках одного проекта мы разрабатывали внешний аккумулятор с поддержкой обычной и быстрой зарядки, в том числе от солнечных батарей. Еще одно требование — минимизация габаритов устройства. На первом этапе мы реализовали обычную зарядку четырех одинаковых АКБ LiFePO4 за счет микроконтроллера и менеджера заряда BQ40Z50-R1, без применения специализированной микросхемы заряда и ШИМ. Помимо заряда микроконтроллер красиво управляет индикаторными светодиодами и взаимодействует с пользователем по BLE. Делимся подробностями этого этапа разработки.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments10

Автоматическая беспроводная система управления кондиционерами, или блок ротации кондиционеров на STM32 + TI CC2530

Reading time5 min
Views17K
Привет, друзья!
Сегодня я хочу рассказать вам об одной интересной разработке электронной системы управления кондиционерами.

Современный интернет, облачные вычисления или просто обработку больших объемов данных невозможно представить без такого понятия как сервер. Ориентировочно до 50% потребляемой серверами энергии уходит в тепло, которое нужно тем или иным способом из серверных помещений или центров обработки данных отводить.

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

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



Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments15

Фильтр Маджвика

Reading time38 min
Views134K

Предисловие от переводчика


Здесь представлен один из новейших методов расчёта ориентации в пространстве по показаниям датчиков акселерометра, гироскопа и компаса — фильтр Маджвика, который, по словам автора, даёт результат лучший, чем применение фильтра на основе метода Калмана в результатах и производительности. Автор — Себастьян Маджвик (его интернет-магазин). Метод описан в статье на английском. Данная работа защищена в Университете г. Бристоля Перевода я не нашёл. Переводчик из меня так себе, особенно таких сложных текстов. Но нам же интересно, что за метод?

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


Читать дальше →
Total votes 66: ↑64 and ↓2+62
Comments17

Information

Rating
Does not participate
Location
Amsterdam, Noord-Holland, Нидерланды
Registered
Activity