How to recover any Seletek controller (any version, Armadillo, Platypus, Dragonfly...)
If for whatever cause, your controller has become "bricked" - the best sympthom is no LED is blinking, at any rate - then you can use the information here to recover it to a working state.
If you want to know why this is needed, there's an explanation at the end of the article.
First, let's erase the microprocessor and leave it as "from factory" (from Atmel's factory, not Lunatico's)
Remove any peripheral from the controller (unplug motor(s), sensors, whatever)
Then open the box (4 screws, easy to spot in the Dragonfly and Armadillo with aluminum box, and hidden behind 4 caps in all other models).
In every controller there is a pair of pins and a "recovery" USB plug:
Dragonfly, Platypus 1 y 2, Armadillo 2, Armadillo 1 (mini USB), original (the only USB doubles as recovery in the original).
We have to short both pins while the controller is powered - power can come from a power supply, or having the controller's recovery USB plug connected to a computer.
Shorting these pins will erase the microprocessor. Once done, unpower the unit (remove the USB or power supply).
• Next step is to download the SAM-BA package, from this link, then execute and install it in our PC. Last in the installer is the option to see the "USB notice" - please leave it checked, it will open some explanations about how to install the USB driver.
• Once installed, please connect your erased controller to the PC using the "recovery" USB:
• You may need to power the unit if windows recongnizes nothing - but please remember no motors or peripherals attached!
• Now comes first challenge. If Windows does not recognize the device automatically, please instruct it to search for drivers at the Atmel folder, usually:
c:\Program Files\Atmel\sam-ba_2.16\drv for 32 bit systems
c:\Program Files (x86)\Atmel\sam-ba_2.16\drv for 64 bit systems
... just follow the steps in the "USB notice" text from the installer.
• Funny enough, some windows versions recognize (erroneously!) the device as a "Bossa Program Port": even in this case you have to "update" the driver to Atmel's one as instructed here:
• Now launch the SAM-BA program from the newly added desktop icon or start menu (please ignore the version number):
• The program needs us to fill two fields: the connection: select the following one if available in the drop-down menu (format \usb\ARM0 or \USBSerial\COMn):
... if not available, or if in doubt, open your device and look for something like this to find out the correct port:
... and the board, select AT91SAM7X256-EK ! Any other board and it won't work.
If you can't see any "\usb\ARMXX" or "USBSerial\ARMXX" (ARM0, or ARM1...) option in the list shown to "Select the connection:", please check the USB cable is properly hooked, try another cable... and make sure you have erased the board correctly (the two-pin short above). If everything goes wrong, try Lunático.
In almost cases we will reach the following screen:
... here we must click where the mouse cursor is shown ("Flash" tab, open folder icon to the left of "Send file"), and then select the matching firmware file, please download clicking your model:
• Original Seletek (will be called "BLSeletek.bin")
• Armadillo (any model) ("BLArmadillo.bin")
• Platypus (any model) ("BLPlatypus.bin")
• Dragonfly ("BLDragonfly.bin")
Open the file from the download folder, and then click "Send file":
Very rarely (for very old Seletek controllers), you'll be asked "Do you want to unlock ..." please answer YES; doblue check it's asking to UNLOCK!:
and after the file is sent, when asked "Do you want to lock..." please answer NO:
In short, we want everything UNLOCKED.
Very important: if you are unsure of leaving everything unlocked, please repeat from the "Send file" step. If any memory region is left locked the controller won't work properly.
Also critical: the last step, select the script "Boot from flash (GPNVM2)", and click "Execute".
And this should be all. You can now close the Atmel program, power off / on your controller, hook it using your external USB plug or via network, launch the softare, and drag and drop the current operative firmware, again shortcuts here:
• Original Seletek (will be called "seletek.bin")
• Armadillo (any model) ("Armadillo.bin")
• Platypus (any model) ("Platypus.bin")
• Dragonfly ("Dragonfly.bin")
Once your controller is up to date, you can safely uninstall Atmel's program and close the controller box.
For network enabled controllers, remember the default factory address is 192.168.3.67 if DHCP is not available.
If not enough, please contact with Lunático Astronomía.
The promised addenda
What have we done, why is this necessary?
Microcontrollers (the brain of the Seletek) come "empty" from the manufacturer. There are tools, such as the one we've just used, to load them with a program (commonly called "firmware"). Problem is, these tools are not very friendly, or easy to integrate into friendly software, or documented...
So we have developed a special firmware (we call it Bootloader, hence the "BL" before the model name) that is capable of loading another firmware.
Being this the case, any current Seletek controller has 2 different firmwares installed:
- the bootloader one, that only becomes active during the update process
- the, let's say "operative" one, that's the one normally running and enabling us to control astronomical peripherals
Following this procedure, we have first left the Microcontroller "empty", as new from Atmel, same as when we receive them here at Lunatico. The we've loaded it with the bootloader firmware (same we do here), thus enabling it to update using our more user friendly software. In the last step, and now using our system, we've loaded the latest firmware, just dragging and dropping the file.