заливка прошивки через сеть на Arduino

d00m
Offline
Зарегистрирован: 21.02.2013

привет.

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

компы доступны друг другу через сеть - есть пинг и все порты открыты.

каким образом можно залить прошивку с первого компа на arduino ?

может можно както пробросить COM порты через сеть, чтобы на первом был доступен тот COM порт с Arduino который создался на втором компе при подключении адаптера?

d00m
Offline
Зарегистрирован: 21.02.2013

неужели такая сложная или редкая задача, что никто не знает как быть? ) 

inspiritus
Offline
Зарегистрирован: 17.12.2012

RDP Вам в помощь. На втором ставите среду, перебрасываете программу и льете, зайдя по рдп с первого.

d00m
Offline
Зарегистрирован: 21.02.2013

увы, не пойдет такой вариант.

 

std
Offline
Зарегистрирован: 05.01.2012

Тот же вопрос, но про avr-etherboot. Как собрать это чудище, если я вижу makefile впервые, если я понятия не имею что с ним делать, если я вообще нахожусь очень далеко от мира Linux? Умею пользоваться только средой, чтобы поменять fuses на 8 МГц, на 16 МГц - жму Burn bootloader, чтобы нидайбох ничего там с командной строки не закосячить.

inspiritus
Offline
Зарегистрирован: 17.12.2012

в таком случае и "навскидку" в некотором роде эзернет-программатор.

имеем боевой контроллер, подключенный к железу, в тч и к W5100, например мега 2560.

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

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

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

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

наверно можно вообще все реализовать на одной меге , написав новый бутлоадер (не из USB , а из W5100). Надо гдетто почитать про то, как атмелы стартуют...

d00m
Offline
Зарегистрирован: 21.02.2013

блин.. я думал это распространенная задача и у нее есть простое решение..

все софтины, что позволяют редиректить COM порт через TCP или платные или дико платные.

есть com0com - но он похоже не работает с COM портами которые создаются USB адаптерами.

 

__Alexander
Offline
Зарегистрирован: 24.10.2012

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

Logik
Offline
Зарегистрирован: 05.08.2014

d00m пишет:

блин.. я думал это распространенная задача и у нее есть простое решение..

ага. Так её и решают через удаленній доступ тем или другим путем. Тимвюер например. Иногда так делают настолько серезные и небезопасные штуки, что лучше даже не думать что может быть....

d00m
Offline
Зарегистрирован: 21.02.2013

решают задачу так, как удобно. 

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

так что решил с помощью проброса COM порта по TCP протоколу - теперь прошиваю МК находящийся в другом городе)

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

а описать что и как ставили и настраивали?

d00m
Offline
Зарегистрирован: 21.02.2013

не вопрос..

тулы качаем тут:

https://sourceforge.net/projects/com0com/files/com0com/2.2.2.0/

нам нужно два зипа:

com0com-2.2.2.0-x64-fre-signed.zip и hub4com-2.1.0.0-386.zip

пример схемы работы:

комп А (ip:192.168.0.1)(remote arduino) <- tcp сеть (vpn, lan) -> комп B (ip:192.168.0.2)(IDE + source code)

фаерволл не забудьте тоже отключить. проверьте пинг между хостами.
 
на обоих компах:
ставим setup.exe из первого. в системе (проверено на win7 и win10) в device manager появится новая группа устройств "com0com - serial port emulators"  

из второго нам интересен батник com2tcp-rfc2217.bat - открываем отдельное cmd окно для него и не закрываем до окончания всего процесса прошивки МК.

комп А - к примеру ардуина при подключении повесилась на COM порт COM1 (проверить в device manager после подключения МК)

в cmd окне выполнить такую команду в каталоге с распакованными файлами:

\com2tcp-rfc2217 COM1 7000 

или иногда бывает надо COM порт указать в другом виде:

\com2tcp-rfc2217 \\.\COM1 7000

это откроет на компе А порт 7000 в режиме LISTEN - он будет слушать все что приходит на 7000 порт и редиректить на COM1

комп B:

\com2tcp-rfc2217.bat \\.\CNCB0 192.168.0.1 7000

это заставит все, что приходит на виртуальный COM порт COM50 перенаправлять на комп А на порт 7000

теперь можно в IDE выбрать COM50 и заливать прошивку.

работает OK, проверено неоднократно.