Профиль

Chabmirt

Chabmirt

Украина, Киев

Рейтинг в разделе:

Модифікація CCLoader

Купив я нещодавно bluetooth модуль mlt-bt05. Це один з клонів модуля HM-10, який ідентичний йому за апаратною частиною, але має зовсім інше програмне забезпечення. Програмне забезпення модуля mlt-bt05 мене не влаштувало, бо в ньому немає можливості встановлювати, таку характеристику послідовного з'єднання як парність. В інтернеті я знайшов інформацію про те, що цей модуль можна перепрошити і зробити з нього повноцінний HM-10.
Коротко як це робиться.
З GitHub скачується проект CCLoader
Він складається з двох частин. Одна - це скетч для плати Arduino. Його треба скомпілювати і завантажити на плату Arduino Uno або Arduino Mega. Плата Arduino підключається до модуля mlt-bt05 згідно до схеми

Друга частина - це програма для ПК. Ця програма зв'язується по послідовному порту з Arduino. Передає прошивку на плату Arduino, а вже Arduino прошиває модуль.
На github є як вихідній файл програми, так і вже зібрана програма для Windows.
Але, коли я спробував її запустити, то отримав помилку "illegal comport number"

Переглянувши вихідний файл я зрозумів, що програма може працювати з послідовними портами від COM1 до COM16. А в мене послідовний порт від Arduino був COM17.
Звичайно можна в системі змінити номер порта на меньший. Але мені більш до душі було виправити програму і зробити можливість працювати з будь-якими номерами портів.
В результаті я вніс зміни і успішно перепрошився через COM17.
Посилання на модифікований CCLoader.exe і його вихідний файл нижче

Кряк програми ZFlasher Stm32.

  • 14.07.20, 18:53
Передмова

В GooglePlay можна знайти таку програму ZFlasher Stm32.
Вона призначена для того, щоб перепрошивати мікроконтролери Stm32 з мобільного пристрою через програматор St-Link.
Програма безкоштовна, але є в неї особливість - дійсно безкоштовно вона дозволяє працювати тільки з контролерами серії Stm32F1. Для роботи з контролерами інших серій, програма вимагає вас здійснити донат.
На мою думку це нечесно. Для того, щоб отримати доступ до функціоналу, я маю зробити "добровільне пожертвування". А якщо після цього мене не задовільнить функціонал, я не можу повернути кошти, бо я ж не платив за функціонал, а робив "пожертвування".

Моєю метою було отримання недоступного функціоналу без "пожертвувань" і мені це вдалося.


Необхідні вимоги

На мобільному пристрої має бути root. Як отримати root це окрема пісня. Причому методи різні в залежності від моделі пристрою. З певними пригодами, мені вдалося отримати root на моєму HTC One X.


Крекінг

Програма ZFlasher Stm32 після того, як користувач здійснив донат, фіксує цу подію в налаштуваннях програми.
Самі налаштування зберігаються в xml-файлі. Знайти його можна за шляхом
/data/data/ru.zdevs.zflasherstm32/shared_prefs/ru.zdevs.zflasherstm32_preferences.xml
Саме для того, щоб дістатися цього файла, нам потрібен root.
В цьому файлі треба додати новий параметр bD типу boolean, і встановити його значення true.
<boolean name="bD" value="true" />



Після збереження файлу і перезапуску програми ZFlasher Stm32, в програмі стає доступний весь функціонал і можна перевіряти його роботу.


P.S.
Сам я рекомендую користуватися іншою Android програмою для прошивки Stm32 через программатор St-Link - StLinkP
В неї функціонал повністю безкоштовний. Хоча ви також можете зробити в ній донат, але вже як дійсно добровільну подяку розробнику за роботу

Відновлення роботи Windows XP

  • 18.06.20, 02:44
В мене на ноутбуці перестала запускатися WindowsXP. Вискакувало повідомлення, що файл \windows\system32\config\system не знайдено або пошкоджено.
У мене вже таке траплялося раніше. Проблема успішно вирішувалася запуском установочного диску WindowsXP з наступним запуском консолі відновлення. Але цього разу не спрацювало.
В консолі відновлення є крок, коли треба зробити вибір, яку операційну систему треба відновлювати (на випадок, якщо установлено кілька систем). І от на цьому кроці, коли я натискав "1" для вибору системи, ноутбук зависав.
Тоді я спробував запуститися з LiveCD і скопіювати файл system (цей файл є файлом реєстру Windows гілка SYSTEM), але нічого не виходило. Видавалася помилка вводу/виводу. Один з секторів жорсткого диску в якому зберігався файл було пошкоджено. При цьому файл можно було перейменовувати.
В мене виникла ідея: скопіювати повністю файл, пропустивши місця з битих секторів. Зіпсований файл перейменувати, а замість нього записати відновлену копію.
Проблемою виявилося знайти програму, яка могла зробити таку копію. Програми, які я пробував, припиняли копіювання, натикаючись на битий сектор, і (можливо не вміли, а можливо я не знав як це змінити) припиняли копіювання.
Нарешті мені вдалося знайти програму, яка впоралась з завданням.
Це Active@ File Recovery від LSoft Technologies. В мене вона знаходилася на LEX LiveCD в розділі меню "Восстановление". В програмі треба було обрати файл і виконати команду Recovery, а коли з'явилося повідомлення про битий сектор, натиснути на кнопку "Ignore".
Потім я скопіював отриманий таким чином файл до папки \windows\system32\config (попередньо переіменувавши зіпсований файл на system.bad) і перезапустив систему.
WindowsXP успішно перезапустилася.

Загадочный USB-CAN адаптер

  • 14.04.20, 19:51
Пару лет назад я приобрел у китайцев USB-CAN адаптер и до сих пор не знаю как его использовать.
Никакого диска с ПО вместе с ним не прислали и поисками в интернете я тоже ничего не добился


На компьютере устройство обнаруживается как виртуальный последовательный порт Silicon Labs CP210x. Но по порту мне не удалось получить хоть какой-то реакции.

Разобрав устройство, я обнаружил, что работает он на микроконтроллер Stm32F1 и на плате есть нераспаяный разъем под St-Link.

Я подумал, что у меня получиться снять прошивку и из нее получить какую-то информацию. Подпаял разъем и подключил St-Link. Но меня ожидал облом. На микроконтроллере была установлена защита от чтения.

Частично мне удалось считать прошивку программой Stm32F1Discloser

На данный момент об устройстве известно следующее:

Плата:
CPU: Stm32F103C8T6
Осциллятор: 12 MГц
UART-USB: Silabs CP2102
CAN-transceiver: NXP TJA1050

Подключение:
CP2102 подключен к USART2 пины PA2, PA3
NXP TJA1050 подключено к пинам PB8, PB9

Прошивка:
Установленная частота 72 МГц
USART2: Установленные параметры: 115200 бод, 8 бит данных, бит четности отсутствует

Протокол передачи:
Lawicel - нет (не отвечает на команду "V[CR]" - получить версию) 

Официальный сайт компании XPrinter

Продолжаю тему термопринтеров.
Есть такой китайский производитель XPrinter.
Захотелось мне глянуть на ихний официальный сайт, и сходу у меня это не получилось.
Гугл выдавал что-то не понятное.
Но оказывается что английская версия их официального сайта имеет интуитивно непонятный адрес
Может кому-то это знание пригодится (Мне так точно).

Цифры в названии моделей принтеров этикеток Datamax O'Neil.

Сейчас мне приходиться работать с термопринтерами для печати этикеток.
Не так то просто разобраться во всем ихнем разнообразии.
В этой статье я хочу разобрать один вопрос.
Что означают цифры в моделях принтеров этикеток фирмы Datamax O'Neil (а с недавнего времени Honeywell)?
Если взглянуть на название моделей (например на этом сайте), то можно обнаружить одну закономерность. В названиях всех моделей всегда есть четыре цифры. Например Datamax O'Neil H-4606
Эти цифры скрывают за собой информацию, которая может дать вам быструю информацию о характеристиках принтера:
1-я цифра - Максимальная ширина печатаемой этикетки в дюймах
2-я цифра - Разрешение печати (2 - 203dpi, 3 - 300dpi, 6 - 600dpi)
3-я и 4 цифра - Скорость печати в дюймах за секунду.

Пример: Принтер Datamax O'Neil E-4305A Mark III - максимальная ширина этикетки 4 дюйма (102 мм), разрешение 300dpi и скорость печати 5 дюймов/сек (125 мм/сек)

Акселерометр MPU6050

  • 29.06.18, 18:25
Возник вопрос калибровки модуля акселерометра MPU6050

Вычитал значение недокументированных регистров для AccelOffset
Получил следующие значения
X = 0xFA2E
Y = 0xF391
Z = 0x0450

Прослушка ИК приемника с помощью анализатора логики

  • 10.02.18, 00:45
На днях решил реализовать мини-пульт для телевизора. Дело в том, что у нас телевизор стоит в стенке и кнопка включения/выключения недоступна. Так вот, я хочу разместить рядом с телевизором мини-пульт с одной кнопкой. Чтоб можно было подойти и включить телевизор без поиска основного пульта.
Первый вариант я делал на Arduino с помощью библиотеки IRRemote. С помощью ее самой узнал код, который передает оригинальный пульт и попытался его повторить. Ардуишный приемник реагировал одинаково и на оригинальный пульт и на мой самодельный. А вот телевизор чувствовал разницу и на мой пульт не реагировал. Тогда я решил прослушать сигнал на приемнике с помощью анализатора логики от Saleae.
Накидал я себе макетку. Подал на нее 5 вольт от USB, кинул на нее обычный светодиод, чтоб следить за питанием и подсоединил сигнальный провод от приемника к каналу 0 анализатора. И тут меня ждал обломчик. На приемнике горел красный светодиод, хотя он должен быть погашен и мигать только в момент приема посылки. Поковырявшись в мануалах я пришел к выводу что сигнальный вывод следует подтянуть к питанию через резистор 22кОм. Я такого номинала не нашел и использовал резистор 15кОм. После этого заработало.


Проанализировав картинку стало понятно, что используется протокол NEC. И был вычислен нужный код

Робота з 7-сегментним індикатором модуля ICPDAS I7231

  • 28.10.17, 02:42
Яскравість індикатора можна задати функцією
Set5DigitLedIntensity(int mode);
Рівень яскравості mode може приймати значення від 0 до 15.

Для того щоб відобразити будь-який символ, треба використовувати функцію
Show5DigitLedSeg(int pos, unsigned char data);
Де pos - це позиція індикатора.
data - це маск де кожний біт відповідає за один з елементів індикатора.
0x01 - Горизонтальний середній
0x02 - Вертикальний лівий верхній
0x04 - Вертикальний лівий нижній
0x08 - Горизональний нижній
0x10 - Вертикальний правий нижній
0x20 - Вертикальний правий верхній
0x40 - Горизонтальний верхній
0x80 - Крапка

Мои мучения. sftp, delphi и synapse (продолжение)

  • 11.04.17, 21:59
После того, как я пропатчил CryptLib программа TestSftp все равно сопротивлялась.

При попытке присоединиться к серверу она зависала на ощутимое время, а потом выдавала сообщение:

Synapse TCP/IP Socket error 10091: Timeout on read (select()) after 15 seconds.

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

Я выяснил, что зависание происходит в библиотеке Synapse в модуле ssl_cryptlib.pas в методе TSSLCryptLib.PopAll.





Страницы:
1
2
3
4
6
предыдущая
следующая