开发板安装
基础安装过程和一般的 arduino
开发板安装过程是一样的.官方文档给出了详细的教程,基本分以下几步:
配置开发板地址
Ardino IDE
中 在“文件” - “首选项”
中 附加板管理器URL
框中输入: http://digistump.com/package_digistump_index.json
安装开发板
转到 工具
菜单,然后选择 板
子菜单 - 选择 板管理器
然后搜索选择 Digistump AVR
软件包, 安装即可.
驱动安装
Ubuntu
系统是无需安装的驱动的, 多数 Windows
系统也可以自动安装驱动, 如果没有则需要自行安装.
另外 Ubuntu
系统需要修改配置文件, 在 Linux
中所有设备都是文件, 所以要正确识别 Digispark
板子, 就需要修改读取当前设备后如何识别.
编辑配置文件:
1 | sudo vim /etc/udev/rules.d/49-micronucleus.rules |
把内容修改为:
1 | SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666" |
修改完成后重新加载配置文件:
1 | sudo udevadm control --reload-rules |
报错问题
Digispark 找不到端口
一开始不懂事, 插入之后怎么也找不到端口. 经过搜索才知道, 这块板子接上电源只保持 5s
的连接, 然后自动运行板子内的程序. 所以正确的烧录方式是先点击上传, 等到终端提示接入设备的时候, 再接入设备烧录程序.
出现上述提示后再插入板子, 检测到板子后会自动上传, 如下图所示:
连接不上 USB
电脑接口是 USB 3.0
明明可以连接 ESP32
, ESP8266
, Arduino UNO
等开发板, 偏偏对这块板子不感冒, 测试了其他几台电脑, 有一些电脑也有这个问题且基本是 USB3.0
的口子有问题. 想象之中 USB3.0
是向下兼容的, 应该不会有问题…
最后的解决方案是插到 USB集线器
或者 type-c
转接头等 hub
设备上就可以正常识别了. 个人感觉应该还是驱动和兼容性哪里有问题, 暂时没有找到好的办法.
micronucleus 版本过低
具体表现为出现以下报错:
1 | This tool doesn't know how to upload to this new device. Updates may be available. Device reports version as: 2.2 |
Digispark
这块板子用到的引导程序是 micronucleus
, 之前安装板子的时候, 会自动安装这个程序. 但是由于自动安装的程序版本过低达不到板子的要求导致无法正常上传程序.
解决方法是使用开源代码自行编译一个最新版的 micronucleus
替代自动安装的程序. 具体方法如下:
安装依赖
编译安装需要 libusb-dev
, 当然还有 make
等编译 c++
程序必须的工具, 如果没有的话下面编译的时候会报错, 根据报错自行安装解决即可.
1 | sudo apt-get install libusb-dev |
下载&&编译源码
micronucleus
的源码可以在 github
上获得: https://github.com/micronucleus/micronucleus
1 | git clone https://github.com/micronucleus/micronucleus.git # 下载代码 |
如果编译正常会有以下输出, 并在目录下出现编译得到的程序: micronucleus
:
替换自动安装的程序
如果编译完成, 目录下会有 micronucleus
程序, 首先把程序赋予执行权限:
1 | sudo chmod 777 ./micronucleus |
然后找到 arduino ide
默认的开发板存放位置, 一般是 /home/zhou/.arduino15/packages
.
在 /home/zhou/.arduino15/packages
中找到 digistump/tools/micronucleus
, 在此路径下是目前自动安装的程序的版本:
将刚刚编译好的程序移动到目录下且替换原有的程序即可
1 | sudo cp micronucleus /home/zhou/.arduino15/packages/digistump/tools/micronucleus/2.0a4 |
替换完成后重新上传代码即可解决