极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 84068|回复: 39

使用OpenWRT路由远程给Arduino下载程序

[复制链接]
发表于 2013-8-26 13:00:15 | 显示全部楼层 |阅读模式
本帖最后由 histamine 于 2013-8-28 22:06 编辑

上周看到@agaonet兄这帖:http://geek-workshop.com/thread-5752-1-3.html

觉得此需求蛮好玩的,于是使用了tplink的wr703n迷你路由研究了一番

最终去掉了avrdude对libreadline以及libncurses的依赖,使其可以塞到wr703n 4M固件空间里去,顺便也编写了基于LuCI的arduino程序下载界面

整体思路很简单,上传hex文件,调用avrdude,然后输出结果





avrdude裁剪:
  1. --- a/configure
  2. +++ b/configure
  3. @@ -4253,7 +4253,6 @@
  4.    $as_echo_n "(cached) " >&6
  5. else
  6.    ac_check_lib_save_LIBS=$LIBS
  7. -LIBS="-lncurses  $LIBS"
  8. cat >conftest.$ac_ext <<_ACEOF
  9. /* confdefs.h.  */
  10. _ACEOF
  11. @@ -4328,7 +4327,6 @@
  12.    $as_echo_n "(cached) " >&6
  13. else
  14.    ac_check_lib_save_LIBS=$LIBS
  15. -LIBS="-lreadline  $LIBS"
  16. cat >conftest.$ac_ext <<_ACEOF
  17. /* confdefs.h.  */
  18. _ACEOF
复制代码
然后去掉Makefile里面对libreadline以及libncurses的依赖信息

luci-avrdude web界面部分代码:


集成avrdude的wr703n的4MB固件:
8月28日更新:
http://pan.baidu.com/share/link? ... 5&uk=2298833357

pan.baidu.com/share/link?shareid=1120389846&uk=909210540
主要包括以下功能:
luci web配置界面
avrdude及其web界面
ser2net
uvc摄像头驱动以及mjpg-streamer(去掉了libjpeg依赖,注意只支持可以硬件jpeg输出的摄像头)
uhttpd
lua
u盘驱动
ntfs/ext4文件系统支持
arduino uno/ftdi/cp210x usb转串口驱动
libnfc 支持pn532串口驱动

注意:此固件不支持ipv6以及ppp拨号

欢迎各位改进{:soso_e100:}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-8-26 14:44:44 | 显示全部楼层
这个太牛了。。。
回复 支持 反对

使用道具 举报

发表于 2013-8-26 16:29:00 | 显示全部楼层
好强,学习了.{:2_31:}
回复 支持 反对

使用道具 举报

发表于 2013-8-26 16:34:10 | 显示全部楼层
本帖最后由 chzhewl 于 2013-8-26 16:48 编辑

请问下路由器同arduino 是如何连接的? 据了解要下载arduino  程序 除了必顺的tx 和 tr 连线外还需要一条dtr 的连线,703n好像没有提供这个接口, 不知道楼主是怎么做的,求指教
回复 支持 反对

使用道具 举报

发表于 2013-8-26 17:00:40 | 显示全部楼层
有兴趣的同学
可参考
OpenWrt TP-Link TL-WR703N

TX = TP_OUT
RX = TP_IN
GND = C55 Right pad
焊点区在图片右下角

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-26 17:32:14 | 显示全部楼层
本帖最后由 histamine 于 2013-8-26 17:34 编辑
chzhewl 发表于 2013-8-26 16:34
请问下路由器同arduino 是如何连接的? 据了解要下载arduino  程序 除了必顺的tx 和 tr 连线外还需要一条dtr ...


直接把arduino uno插到wr703n的usb口上就能下载了,根本不用自己把路由器ttl线引出来

web界面render的时候会检测/dev/ttyUSB0 ~ /dev/ttyUSB10以及/dev/ttyACM0 ~ /dev/ttyACM10 usb串口设备是否存在,若存在则显示在下拉菜单里面(注意图里面下拉菜单有两个usb串口设备,我利用一个usb hub同时插了arduino uno和arduino leonardo)
回复 支持 反对

使用道具 举报

发表于 2013-8-26 17:41:35 | 显示全部楼层
histamine 发表于 2013-8-26 17:32
直接把arduino uno插到wr703n的usb口上就能下载了,根本不用自己把路由器ttl线引出来

web界面rend ...

哈哈,原来如此,又学到了,多谢.
回复 支持 反对

使用道具 举报

发表于 2013-8-27 00:19:48 | 显示全部楼层
果然强悍,可以远程下载程序了 Luci不熟,看看先
回复 支持 反对

使用道具 举报

发表于 2013-8-27 13:36:34 | 显示全部楼层
这个可以有,看不懂 lua 的路过……
回复 支持 反对

使用道具 举报

发表于 2013-8-28 16:20:41 | 显示全部楼层
本帖最后由 agaonet 于 2013-8-28 16:23 编辑

哈哈,兄弟在这开贴了呀!我来给你摇旗助威!

上个周末,我无聊的把TTL引了出来。

具体的是:把路由器的大USB口上边的塑料给削掉了一些,然后用热熔胶把排针固定到USB口背上,再把TTL的/RX/TX/GND以及VCC引到这个排针上,方便以后调试和供电。

这里给大家说下,NANO与刷了OpenWrt的WR703通过USB口连接后,软件虚拟的出来的tty口的接口号是:ttyUSB0,或者ttyUSBx。  而WR703自己的TTL接口是:ttyACM0(???我记得不是太清楚了)。大家可以验证一下。(或许这里是因为安装了USB转TTL的驱动才是这样吧?)

请教兄弟一个问题:我开发试验用的是nano,生产准备用ProMini,ProMini你是知道的没有USB转TTL,所以必须使用WR703内部的TTL口来进行下载,不过这就有个问题了,没有DTR/RES接口,下载时需要手工按mini上的复位按钮。。。我曾想过调用WR703的GPIO接口来输出一个复位高电平,可惜我找不到详细的文档,试验了一下,没有成功。不知道你是有有研究啊?谢谢。

回复 支持 反对

使用道具 举报

发表于 2013-8-28 16:25:12 | 显示全部楼层
我还在出差,回家马上刷起!就等你这个出现,呵呵!非常棒!
回复 支持 反对

使用道具 举报

发表于 2013-8-28 18:41:35 | 显示全部楼层
可惜没早点看到帖子,这几天自己也做了一个通过wifi给MangoII(兼容UNO r3)烧写程序,
http://blog.pickbox.me/2013/08/28/通过wifi给arduino板烧写程序/
不过折腾一圈也学到不少东西
贴一张wifi上传烧录成功的界面吧


回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-28 22:09:09 | 显示全部楼层
更新一下,修正了不刷新上传页面,将会导致反复下载同一个hex的bug
现在每次下载完成后立即删除hex文件

顺便去掉了mjpg-streamer的libjpeg依赖,使得剩余空间增加了90k左右,不过摄像头必须要支持硬件jpeg输出
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-28 22:12:31 | 显示全部楼层
agaonet 发表于 2013-8-28 16:20
哈哈,兄弟在这开贴了呀!我来给你摇旗助威!

上个周末,我无聊的把TTL引了出来。

买一个基于ftdi的arduino pro mini下载器吧,比较方便
回复 支持 反对

使用道具 举报

发表于 2013-8-29 00:46:07 | 显示全部楼层
好例子,相当不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 18:24 , Processed in 0.045376 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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