Считать код c ардуино по UART

alfacnc
Offline
Зарегистрирован: 29.06.2022

Здравствуйте,

Прошу помочь с следующим вопросом.

Есть ардуино про мини с установленным блютус модулем НС-05, надо считать с нее код по блютус.

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

Считывание .НЕХ файла по USBasp это крайний вариант, т.к. опасаюсь подпаиваться с мисо и моси.

Отсюда, повторюсь, вопрос - можно ли, и как это сделать, считать код (разумеется .НЕХ) по блютус через UART канал? 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

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

alfacnc
Offline
Зарегистрирован: 29.06.2022

можно подробнее? какой программой считывать, как подсоединять схема?

UART(TTL) загрузчик есть

b707
Offline
Зарегистрирован: 26.05.2017

alfacnc пишет:

можно подробнее? какой программой считывать, как подсоединять схема?

UART(TTL) загрузчик есть

какая вам схема? - по блютус ведь :)

Есть проблема - для запуска загрузчика кто-то должен вовремя передернуть ресет. Кто(что) это будет делать при подключении по блютус?

 

alfacnc
Offline
Зарегистрирован: 29.06.2022

какая схема...?

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

какой прогой считывать?

 

alfacnc
Offline
Зарегистрирован: 29.06.2022

"USB-TTL позволяет только загрузку данных во flash, остальные возможности (как у ISP программатора) ему недоступны..." https://alexgyver.ru/lessons/programmer-tips/

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

rkit
Offline
Зарегистрирован: 23.11.2016

А, великий источник максимально точной информации все разжевал.

b707
Offline
Зарегистрирован: 26.05.2017

alfacnc пишет:

"USB-TTL позволяет только загрузку данных во flash, остальные возможности (как у ISP программатора) ему недоступны..." https://alexgyver.ru/lessons/programmer-tips/

вранье :) гайвер, как всегда, лажает...  по крайней мере считать данные с флеш и ЕЕПРОМ USB-TTL вполне в состоянии..если флеш не залочен. Только на прошлой неделе обсуждали...

Цитата:
Считаю вопрос закрыт, если только ни у кого нет каких либо фантастических идей типа сделать из одно ардуино ISP программатор подцепить к ней блютус и по нему законектица для считывания с базовой ардуинкой

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

alfacnc
Offline
Зарегистрирован: 29.06.2022

судя по вашим ответам вы диванный эскперт важно раздувающий щеки и флудящий в чатах

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

еще раз, если загрузчик имеется и он позволяет считывать флэш и еепром то можно!!!
PS не зависимо от того, кто и что об этом думает

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

А скорость BT с какой вероятностью совпадет со скоростью загрузчика ?

lilik
Offline
Зарегистрирован: 19.10.2017

Komandir пишет:

А скорость BT с какой вероятностью совпадет со скоростью загрузчика ?

:)

Если используемый скетч подразумевал "перезапись по воздуху".

b707
Offline
Зарегистрирован: 26.05.2017

проще всего отключить блютус и законнектить USB-TTL на эти самые пины. Но у ТС. судя по всему, руки из того самого места... коли он даже на Про мини боится к пинам ИСП подключаться.

С другой стороны. раз это Про мини - то там и загрузчика-то, скорее всего, нет - зачем он без USB ?

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

ИМХО кроме того что там нет загрузчика - там еще и SPI отключен и LOCK биты выставлены ... Ибо нех...й ковырять чужой код !

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Komandir пишет:

ИМХО кроме того что там нет загрузчика - там еще и SPI отключен и LOCK биты выставлены ... Ибо нех...й ковырять чужой код !

про это разговора не было!
У меня приятель шьёт нано через блютуз, то-есть однозначно можно )))

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Плюсом ещё и ножки MISO MOSI SCK должны быть оторваны под корень ...

lilik
Offline
Зарегистрирован: 19.10.2017

Komandir пишет:

Плюсом ещё и ножки MISO MOSI SCK должны быть оторваны под корень ...

:)

Итог темы: всё можно сделать, но злобному ТС-у секрет верескового мёда не видать!

alfacnc
Offline
Зарегистрирован: 29.06.2022

ua6em пишет:

еще раз, если загрузчик имеется и он позволяет считывать флэш и еепром то можно!!!
PS не зависимо от того, кто и что об этом думает

 что значит ПОЗВОЛЯЕТ считывать флэш? есть китайский UART он позволяет, как проверить?

 

Для злобных флудящих токсикозов b707 и lilik объясняю: человек делал БУ на пресс в качестве прототипа МК поставил АрдуиноПроМини, в процессе наладки  он по блюпупу загружал/изменял/перезагружал в ней скетч. Значит локи не заблочены.

Год назад он пропал! Все исходники соответсвенно тоже. Все работает, но висит на соплях.

Поэтому надо прочитать работающий .НЕХ и залить его в нормально собраный БУ.

Первой же мыслю было снять промини и дудкой через USBasp прочитать прошивку, но злобные языки сказали, что это типо опасно (мои доводы против были проигнорированы) и надо читать через блютус это типо безопасней на предмет статики и все такое (теоретический бред). НО так как основная задача не навредить и не сломать то что есть, то надо попробовать.

Я через блютус и ТТL еще не пробовал считывать, рою инет там голяк. Отсюда и вопросы, а в ответ пока что только троллинг и угар.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Родное сердце! Раздел называется "программирование". Ты программировать собрался?
Тебе в коммерческий раздел. Там, возможно, кто-то расскажет как через аврдуд считать флэш. Там только скорость угадать нужно, если твой кореш пользовался стандартными методами. Если ты же самописом каким-то, то ты попал! ;))
---------
ЗЫ: Если по правде, то в про мини настолько мало памяти, что любой код проще заново написать.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Ну и да, в догонку. Конечно в 100500 раз проще подпаяться к SPI! ;)

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

При подключении со стороны ББ к этому модулю - что происходит ?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

 значит загрузчик там есть, блютус настроен, из какой программы обновлял ПО знаешь?

lilik
Offline
Зарегистрирован: 19.10.2017

alfacnc пишет:

Для злобных флудящих токсикозов b707 и lilik объясняю: человек делал БУ на пресс в качестве прототипа МК поставил АрдуиноПроМини, в процессе наладки  он по блюпупу загружал/изменял/перезагружал в ней скетч. 

Я хороший.

Но толком вы ни черта не пишите спрашивающим. У меня, к примеру,  с помощью двух НС-05 происходит загрузка скетча/управление конструкцией и эта связь эквивалента соединению ПК с ардуиной "шнуром". Вся работа из Arduino IDE. Т.е. задача сводится из "иде" по шнуру из платы с МК вытягивать прошивку. Мне так никогда не надо было :) 

lilik
Offline
Зарегистрирован: 19.10.2017
alfacnc
Offline
Зарегистрирован: 29.06.2022

wdrakula пишет:
Родное сердце! Раздел называется "программирование". Ты программировать собрался? Тебе в коммерческий раздел. Там, возможно, кто-то расскажет как через аврдуд считать флэш. Там только скорость угадать нужно, если твой кореш пользовался стандартными методами. Если ты же самописом каким-то, то ты попал! ;)) --------- ЗЫ: Если по правде, то в про мини настолько мало памяти, что любой код проще заново написать.

там на БТ модуле подписано его имя и скорость 19200 что логично т.к. 168 камень

Komandir пишет:

При подключении со стороны ББ к этому модулю - что происходит ?

честно не понял что значит ББ, я полноценного подключения я еще не делал, а так комп ВТ видит пароль 1234

ua6em пишет:

 значит загрузчик там есть, блютус настроен, из какой программы обновлял ПО знаешь?

точно не скажу, не при мне было, но похоже что АрдуиноИДЕ

lilik пишет:

Я хороший.

Но толком вы ни черта не пишите спрашивающим. У меня, к примеру,  с помощью двух НС-05 происходит загрузка скетча/управление конструкцией и эта связь эквивалента соединению ПК с ардуиной "шнуром". Вся работа из Arduino IDE. Т.е. задача сводится из "иде" по шнуру из платы с МК вытягивать прошивку. Мне так никогда не надо было :) 

Мы все хорошие, только все чаще об этом забываем...

Вот я тоже к такой мысли прихожу, что если на UART програматор (у меня СН431) на выходе повесить модуль НС-05, то можно дудой как в  https://lampcore.ru/%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA/%D0%BA%D0%B0%D0%BA-%D1%81%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D1%83-arduino-%D1%87%D0%B5%D1%80%D0%B5%D0%B7-uart/ все качнуть.

Не могу прям щас все проверить НС-05 нет в наличи, жду доставку.

lilik
Offline
Зарегистрирован: 19.10.2017

Ну так задача упрощается. Замените ещё одним НС-5, что б ПК вообще не знал про блютуз и думал, что с платой шнуром соединён. И тогда ищите подобные решения.

lilik
Offline
Зарегистрирован: 19.10.2017

:) опоздал с ответом.

alfacnc
Offline
Зарегистрирован: 29.06.2022

lilik пишет:

Ну так задача упрощается. Замените ещё одним НС-5, что б ПК вообще не знал про блютуз и думал, что с платой шнуром соединён. И тогда ищите подобные решения.

Сам так не делал, вот рою инет на предмет что-то похожего, по БТ еще 8 лет назад Дима Осипов прошивал ардуино https://www.youtube.com/watch?v=wOyRgg8vE6I&ab_channel=DmitryOSIPOV, но что бы счтать такого не видел, а тут  еще у гавера заява что по ТТL !!в ардуино!! только записать можно хотя протокол по определению чтение-запись.

 

b707
Offline
Зарегистрирован: 26.05.2017

alfacnc пишет:

тут  еще у гавера заява что по ТТL !!в ардуино!! только записать можно хотя протокол по определению чтение-запись.

гайвер рекламщик. не обращай внимания.

Считать по ТТL _ТЕОРЕТИЧЕСКИ_ можно, протокол-то чтение-запись, это верно. Но на практике это будет зависеть от того, есть ли такая возможность в том загрузчике, что зашит сейчас в твоей про мини.

Тут где-то рядом есть тема про чтение и запись ЕЕПРОМ через TTL(на прошлой неделе терли) - так вот, в теории тоже все шоколадно, дудка должна писать и читать ЕЕПРОМ, но в реальности выяснилось, что в загрузчике Уно эта функция есть, а в загрузчике Меги - нет...

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

alfacnc
Offline
Зарегистрирован: 29.06.2022

7

у автора метода используется USB-UART CP2102 у меня же CH340 есть ли между ними какая-то принципиальная разница? не получится что под каждый рот свой пирожок надо будет?

b707
Offline
Зарегистрирован: 26.05.2017

alfacnc пишет:

у автора метода используется USB-UART CP2102 у меня же CH340 есть ли между ними какая-то принципиальная разница?

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

alfacnc
Offline
Зарегистрирован: 29.06.2022

b707 пишет:

alfacnc пишет:

тут  еще у гавера заява что по ТТL !!в ардуино!! только записать можно хотя протокол по определению чтение-запись.

гайвер рекламщик. не обращай внимания.

Считать по ТТL _ТЕОРЕТИЧЕСКИ_ можно, протокол-то чтение-запись, это верно. Но на практике это будет зависеть от того, есть ли такая возможность в том загрузчике, что зашит сейчас в твоей про мини.

Тут где-то рядом есть тема про чтение и запись ЕЕПРОМ через TTL(на прошлой неделе терли) - так вот, в теории тоже все шоколадно, дудка должна писать и читать ЕЕПРОМ, но в реальности выяснилось, что в загрузчике Уно эта функция есть, а в загрузчике Меги - нет...

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

чё за ветка дай ссыль покурить...

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

ну попробовать -показать надо.. вот блин не получилось надь снимать и как деды завещали делать...

b707
Offline
Зарегистрирован: 26.05.2017

alfacnc пишет:

чё за ветка дай ссыль покурить...

https://arduino.ru/forum/programmirovanie/dostup-k-eeprom

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

ББ - это компьютер. После подключения как видится устройство на компьютере ? Порт появляется в списке устройств  (Порты COM LPT) ?

alfacnc
Offline
Зарегистрирован: 29.06.2022

b707, спасибо

Komandir пишет:

ББ - это компьютер. После подключения как видится устройство на компьютере ? Порт появляется в списке устройств  (Порты COM LPT) ?

 вчера компа под рукой не было подключал телефон, он этот модуль по БТ увидел и пропустил пароль 1234, с компом могу тольков понедельник туды залезть что бы порты посмотреть

какие могут быть варианты ?  я так понимаею если появиться СОМ, то все норм, если ничего нету, то зови шамана с бубном... появление LPT маловероятно,  21 век все таки на дворе) 

alfacnc
Offline
Зарегистрирован: 29.06.2022

wdrakula пишет:
ЗЫ: Если по правде, то в про мини настолько мало памяти, что любой код проще заново написать.

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

alfacnc пишет:

wdrakula пишет:
ЗЫ: Если по правде, то в про мини настолько мало памяти, что любой код проще заново написать.

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

150 тонный?

на гидравлических прессах самая примитивная автоматика, обратись к wdrakula  к примеру он тебе напишет профессионально и  будет у тебя исходник

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Столько всего написано, но суть вопроса то «Слить HEX-файл», так?

Подключаешься по SPI (например, USBasp) и «сливаешь».

Чего там такого можно «сделать не так»? Ну если советским паяльником будешь пользоваться, то заземли жало. Но это уже совсем... 

Да и на скрутках пойдёт )))

ЗЫ: Кстати, интересно, hex-файл в этом случае вместе с бутлоадером «сольётся»? Ни разу так не пробовал...

b707
Offline
Зарегистрирован: 26.05.2017

alfacnc пишет:

там управление 6 релюхами, трудность в том что периоды включения\выключения и вся эта логика выстраивалась на данных со специальных ультрозвуковых датчиках потока которые он привез-увез с собой,

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

alfacnc
Offline
Зарегистрирован: 29.06.2022

ua6em пишет:

150 тонный?

на гидравлических прессах самая примитивная автоматика, обратись к wdrakula  к примеру он тебе напишет профессионально и  будет у тебя исходник

горизонтальный 1250 тон рожден в СССР, написать скетч по заданным параметрам и я смогу, просто ту программу Гидравлик с большой буквы писал, он этот пресс сам перебрал и номвую логику ему повесил, а закончить не успел, больше года как пропал на связь не выходит, чет у мужика случилось походу, а может под ковид попал(

b707 пишет:

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

хорошая идея, надо подумать, зачет

-NMi-
Offline
Зарегистрирован: 20.08.2018

Есть от пресса ентого схема гидравлическая???

alfacnc
Offline
Зарегистрирован: 29.06.2022

нет, нету...(

alfacnc
Offline
Зарегистрирован: 29.06.2022

странно что кнопка reset на ардуино отпаена, может что знак что она залочена..

сорян фотку не смог подгрузить

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

alfacnc пишет:

нет, нету...(

она на стенке электрошкафа заклёпками приклёпана обычно, выталкиватели есть?

lilik
Offline
Зарегистрирован: 19.10.2017

alfacnc пишет:

странно что кнопка reset на ардуино отпаена, может что знак что она залочена..

сорян фотку не смог подгрузить

Правильно :), что б скетчи только через блютуз, ресет на платке проводочком должен соединён быть с каким-нибудь выводом. 

alfacnc
Offline
Зарегистрирован: 29.06.2022

ua6em пишет:

alfacnc пишет:

нет, нету...(

она на стенке электрошкафа заклёпками приклёпана обычно, выталкиватели есть?

есть, бывшая жена..)

честно, я не гидравлик, даже не представляю о чем Вы спрашиваете.

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

lilik пишет:

alfacnc пишет:

странно что кнопка reset на ардуино отпаена, может что знак что она залочена..

сорян фотку не смог подгрузить

Правильно :), что б скетчи только через блютуз, ресет на платке проводочком должен соединён быть с каким-нибудь выводом. 

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

b707
Offline
Зарегистрирован: 26.05.2017

alfacnc пишет:

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

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

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

ТС нас тролит ! Ни фото ни схемы ни понимания ни умения паять ...

ТС иди ка ты лесом !!!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Komandir пишет:

ТС нас тролит ! Ни фото ни схемы ни понимания ни умения паять ...

ТС иди ка ты лесом !!!

не! не лесом! ноги в руки и бегом к гидравлику, что это делал, может человеку помощь нужна

lilik
Offline
Зарегистрирован: 19.10.2017

alfacnc пишет:

а зачем соединен с каким-нибудь выводом .... или я ошибаюсь?

Это по "классике" от Дмитрия Осипова и буржуйских коллег. Если хотите экспериментов, для примера сброшу свой самый простенький, для одной про мини ( а так можно скока хошь про мини одним блютузом управлять и перепрошивать поочерёдно )

//тест "блинк" для дистанционной загрузки скетчей в плату ардуино pro mini (328)
long Y=0;//пременная хранения моментов времени
int t=1000;// переменная хранения длительностей пауз между переключениями светодиода
void setup()
{
  Serial.begin(57600);  // скорость 57600 для Arduino pro mini , 
                         // может быть разная для разных моделей плат
 
 ////////////
 pinMode(13,OUTPUT);
 digitalWrite(13,LOW);
 
}

void loop()
{
if(millis()-Y>t){Y=millis();digitalWrite(13,!digitalRead(13));}//мигаем светодиодом как угодно с паузой
t=CheckSerial();//по поступившей команде выставляем паузу
}
//
int uploadpin=A5;// вывод платы для осуществления аппаратной перезагрузки, соединён с RES

String inputString;// строки данных
int n=t;//переменная хранения команды-числа

 
/////////////////////////////////////////////////////////////////////////////////////////////////
//ФУНКЦИИ ПРИЁМА И ОБРАБОТКИ КОМАНД-ДАННЫХ
int CheckSerial()
{
  //////////////////////////////////////////////////////////////////////////////
  while (Serial.available())//считываем строку данных пока они поступают
  {
    char inChar = (char)Serial.read();
    if (inChar == '\n'||inChar == ' ')     //если окончание строки или запрос на загрузку
    {
      MakeCmd();//обрабатываем её данной функцией
      break;
    }
    else inputString += inChar;// иначе удлиняем строку на один символ
  }
 return n;// возвращаем значение переменной как значение всей функции 
}
/////////////////////////////////////////////////////////////////////////////////
void MakeCmd()
{
  int y = inputString.length(); // присваиваем переменной у число символов в строке
  if (y < 1 || y > 4){inputString = "";return;} //если их меньше 1 или больше 4, выходим из функции
  String cmd = inputString; // передаём строку другой переменной
  inputString = "";//"обнуляем переменную"
  //////
    if (cmd == "0") {                 //если получили ноль
    Serial.write(0x14);               // ответить avrdude.exe
    Serial.write(0x10);               //  для синхронизации 
    delay(10); 
    pinMode(uploadpin,OUTPUT);        //ЭТО ВЫЗОВЕТ аппаратный РЕСЕТ
  }
  if (cmd != "0"){ n=cmd.toInt();}   // преобразуем строку в номер команды-число 
  //////
}

///////////////////////////////////////////////////////////////////////////////////////////////////////

Оба файла с расширением ino в одной папке. 

 

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

lilik А DTR BT модуль не умеет ?