通过ESP8266给Arduino板子下载程序-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8944|回复: 10

[已解决] 通过ESP8266给Arduino板子下载程序

[复制链接]
发表于 2017-12-25 11:09 | 显示全部楼层 |阅读模式

各个大神,

有个关于ESP8266下载程序到Aruino板子的问题,一直无法解决,是这样的:我将需求简要描述如下:
APP图形化编程 -》 云端编译 -》将编译好的hex文件送至wifi芯片ESP8266 -》ESP8266将其下载到Aruidno板子中,实现无线编程。

目前的问题是:ESP8266如何将程序下载到Arduino板子,ESP8266需要实现一个下载的功能,相当于电脑端Arduino IDE的下载功能。

该过程需要知道ESP8266是如何与Arduino UNO中Atemga328P的BootLoader是如何通信的,也就是需要知道Aduino atmega328p中BootLoader的通信协议。

目前已做了如下努力:
1、乐鑫和安信可均无法解决该问题,因为这是ESP8266于下位机通信,起决定作用的是Arduino UNO板子。
2、与Atmega328P的厂家microchip交互,他们也无法解决该问题,因为Arduino 在atmega上已经做了再次开发,开发了Arduino自己的BootLoader。

因此,请问哪位大神知道Arduino的BootLoader的通信协议?如果知道,麻烦请联系我哦,万分感谢。
联系方式:wangcheng201202@126.com   手机:18616173156。


系统框图.png
发表于 2017-12-25 12:16 | 显示全部楼层
最近我在玩 kittenbot 的小圆车,据说他们家的可以实现。他家有自己定制的一个esp8266 。从 pc看过去,看到的是支持  telnet 协议的一个设备,从 arduino 看过去是一个串口而已。

你可以和卖家聊一下,如果能用,建议你买一个,然后看看你自己的 8266如何实现同样的功能

https://item.taobao.com/item.htm ... amp;id=551380787824
 楼主| 发表于 2017-12-25 14:24 | 显示全部楼层
Zoologist 发表于 2017-12-25 12:16
最近我在玩 kittenbot 的小圆车,据说他们家的可以实现。他家有自己定制的一个esp8266 。从 pc看过去,看到 ...

你好,谢谢你的回答。
 楼主| 发表于 2017-12-25 14:30 | 显示全部楼层
本帖最后由 Victory-wang 于 2017-12-25 14:31 编辑
Victory-wang 发表于 2017-12-25 14:24
你好,谢谢你的回答。

你好,谢谢你的回答。
小喵科技是用PC端的Kittenblock,配合ESP8266给Arduino板子做无线下载。手机端APP不可以。因此,可以确定他们的下载功能不是在ESP8266实现的,而是在电脑端软件实现的。wifi只是做透传功能

我现在需要的是在ESP8266实现下载功能。
发表于 2017-12-25 14:51 | 显示全部楼层
Victory-wang 发表于 2017-12-25 14:30
你好,谢谢你的回答。
小喵科技是用PC端的Kittenblock,配合ESP8266给Arduino板子做无线下载。手机端APP不 ...

你要实现的是什么功能?
发表于 2017-12-25 15:27 | 显示全部楼层
Zoologist 发表于 2017-12-25 14:51
你要实现的是什么功能?

他想实现用8266做脱机下载吧,做个无线的脱机下载器
发表于 2017-12-25 15:31 | 显示全部楼层
解决方法两种
1.用8266做透传,通过电脑avrdude软件直接给8266发送数据,透传给avr,相当于无线串口。工作量较少。
2.做脱机下载,在8266里实现avr下载协议,需要熟悉avr下载协议,网上有stm32实现的离线下载器,可以参考移植
 楼主| 发表于 2017-12-25 15:59 | 显示全部楼层
跑龙套的保 发表于 2017-12-25 15:31
解决方法两种
1.用8266做透传,通过电脑avrdude软件直接给8266发送数据,透传给avr,相当于无线串口。工作 ...

你好,谢谢你的回答。
1、avrduder软件是PC端的,该项目是用APP编程,云端实现编译,通过8266实现下载。
2、找过avrduder软件代码,在几百KB以上,移植到ESP8266,很复杂,也就是您说的在8266中实现avr下载协议。。avrdude之所以能够实现下载功能,我认为是avrdude本身实现的就是电脑端Arduino IDE中的upload功能。avrdude只是做了一个UI
最后,要从avrdude中抽取出整个下载协议,目前来看极其复杂。。。所以才想到如果能够直接联系到Arduino官方,知道其BootLoader的通信协议,就可以较为容易的实现。
发表于 2018-1-4 09:17 | 显示全部楼层
Victory-wang 发表于 2017-12-25 15:59
你好,谢谢你的回答。
1、avrduder软件是PC端的,该项目是用APP编程,云端实现编译,通过8266实现下载。
...

这个还是挺复杂的,去github上看看avrdude的源码
发表于 2020-1-15 16:11 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 15:59 , Processed in 0.132129 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表