开发板安装

基础安装过程和一般的 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
2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1"

修改完成后重新加载配置文件:

1
sudo udevadm control --reload-rules

报错问题

Digispark 找不到端口

一开始不懂事, 插入之后怎么也找不到端口. 经过搜索才知道, 这块板子接上电源只保持 5s 的连接, 然后自动运行板子内的程序. 所以正确的烧录方式是先点击上传, 等到终端提示接入设备的时候, 再接入设备烧录程序.

upload

出现上述提示后再插入板子, 检测到板子后会自动上传, 如下图所示:

finish

连接不上 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
2
3
git clone https://github.com/micronucleus/micronucleus.git # 下载代码
cd micronucleus/commandline/ # 切换到 commandline 目录
sudo make install # 编译安装

如果编译正常会有以下输出, 并在目录下出现编译得到的程序: micronucleus:

make

替换自动安装的程序

如果编译完成, 目录下会有 micronucleus 程序, 首先把程序赋予执行权限:

1
sudo chmod 777 ./micronucleus

然后找到 arduino ide 默认的开发板存放位置, 一般是 /home/zhou/.arduino15/packages.

/home/zhou/.arduino15/packages 中找到 digistump/tools/micronucleus, 在此路径下是目前自动安装的程序的版本:

oldmicronucleus

将刚刚编译好的程序移动到目录下且替换原有的程序即可

1
sudo cp micronucleus /home/zhou/.arduino15/packages/digistump/tools/micronucleus/2.0a4

替换完成后重新上传代码即可解决