The Edison is a tiny and amazing computer, and ideal prototyping tool for wearable and IoT experiments. Here are the steps I am currently following to set up the Edison.
Flashing the Edison
Like many developers I have Mac, Windows, and Linux laptops but I find that Linux is the best environment for flashing the Edison, even though I do most development on my Mac. I came to this conclusion after trying to recover an Edison with a lost password, the only platform that worked was Linux.
The only change I would recommend is to create a folder that contains the Edison images, and then unzip the downloaded folder into a sub directory named after the build number. Over time you may find yourself flashing to older or newer images based on the project needs.
Setting up WiFi
Sparkfun offers a great guide for Setting up WiFi on the Edison. This takes only a few minutes and even if you don’t plan to use WiFi in your projects it makes working with the Edison easier because you can use SCP and SSH to connect with the Edison over the network.
Connect to Edison
For OSX or Linux the best way to connect to the Edison is via SSH. On OSX you can use the name you gave the Edison in the step above. For example ssh firstname.lastname@example.org where edison2 is the name you gave your Edison. On Linux you will use the Edison’s IP address, for example ssh email@example.com.
If you are an Emacs user then once WiFi is setup you can use Emacs Tramp to work with files on the Edison. Just use C-x C-f as usual, but instead of a directory use firstname.lastname@example.org or use the ip address for Linux.
Emacs will present a directory of files on the Edison that you can open, or just keep typing the name for auto suggest feature. For example email@example.com/home/root/notes.md.
Bluetooth is available in the Edison, but in the default configuration is not enabled at boot. If you are using Bluetooth you will likely want to enable it on every reboot or power cycle.
Enable Bluetooth at Boot
Use the systemctl command to cause Bluetooth to start automatically
systemctl enable bluetooth
Create a BT startup script
Create a script file with the following five lines (/home/root/btup.sh).
#!/bin/sh /usr/sbin/rfkill unblock bluetooth /usr/bin/hciconfig hci0 up /usr/bin/hciconfig hci0 piscan /usr/bin/hciconfig hic0 sspmode 0
Make the script executable
chmod +x /home/root/btup.sh
Create a new service file (/lib/systemd/system/btup.service).
[Unit] Description=BTUP After=bluetooth.target Before=systemd-user-sessions.service [Service] Type=simple RemainAfterExit=true ExecStart=/home/root/btup.sh Environment="HOME=/home/root" WorkingDirectory=/home/root/ [Install] WantedBy=multi-user.target
Enable the service
systemctl enable /lib/systemd/system/btup.service
Reboot the Edison
Create a Backup
Now is a good time to create a backup of the Edison that can be recovered if you need to return to a clean install. For example you may want to update nodejs, or install node modules, or even other drivers that may cause an issue you want to start over from.
Place a MicroSD card with at least 4GB of available space into the MicroSD slot on the dev kit board where the Edison is installed. Backup the Edison to an image file on the MicroSD. In the example below it is named edison2_backup.img. Make sure the file name has a .img extension. If you have a large MicroSD card you can store multiple backup images from multiple Edisons, making it quick and easy to recover each of them. It is wise to consider a consistent naming system.
dd if=/dev/mmcblk0 of=/media/sdcard/edison2_bk.img
Restoring an Edison from Backup
If you need to restore the Edison from backup just reverse the process
dd if=/media/sdcard/edison2_bk.img of=/dev/mmcblk0