DISCLAIMER: I TAKE NO RESPONSIBILITY
FOR ANYONE'S ACTIONS THAT LEAD TO LOST
EQUIPMENT, LIFE, LIMB, OR REAL PROPERTYWith the upcoming sale for Antminer S1 upgrade kits, I got to thinking:
what are people going to do with all those S1 blades?
And so i had the brilliant idea to begin designing 2 products to repurpose old S1 blades:
- a "hub" capable of controlling 4 S1 or 8 blades.
- a usb key, about the size of a Nanofury, capable of controlling 1 S1, or 2 blades.
designs coming shortly, once i finish them!!=========================================================
Anyway to help me design said items, i began poking around the S1 controller's filesystem
and managed to corrupt the two standard c library files used by normal operation. This had
the effect of rendering my S1 a several kilo brick.
So i was going: well, sh!t! what do i do now?
I tried everything i knew of to reset the S1 to no avail. I took a look at the schematics, and
behold the controller has a debug/serial port broken out on a (not so conveniently placed)
3 pin header which was (of F**king course) unpopulated.
My next thought was: do I even have a USB to UART adapter? NO!!!
To Ebay I went and purchased this lil guy:
CP2102 USB to UART moduleAbout a week later (Monday, Sept.
I got it in the mail, and promptly fired up my
windows machine for the first time in... wait was that date? 2012? dafuq?
anyway, I installed the drivers and opened it with putty using 115200,8,n,1,xon-xoff,
connected tx to rx and made sure it echoed.
Once that was set, I got to work preparing the controller by squeezing the four little
mounting clips to release it from the hashing board, disconnected all cables except power
(since i didnt have a 3.3V supply handy).
I searched through my parts drawer for a spare header of some sort. I ended up pulling
apart a 2x2 0.1" smd header to used the three pins at a 90deg angle. they dont need to be
soldered on, but it wouldn't hurt if you plan on doing a lot of poking around for whatever
reason like i am. I pressed the pins into the cables that came with the UART module,
hooked the module up and press fit the stubby part ( that would be soldered to a pad) of
the pins into the holes on the controller, minding the image above:
- module tx <---> controller rx
- module rx <---> controller tx
- module gnd <---> controller gnd
open putty with 115200,8,n,1,xon-xoff settings for the bridge, Flip the power switch on
the PSU for the S1, and a moment later text should go flying across the screen. This is
the controllers serial debug console. YAY!!!!!!!!!!!!
So I thought I was going to have to go through the tricky process of completely
reflashing the controller from the U-boot bootloader commandline using tftp and all
that bullsh!t.
But there is a much much easier solution using what is called fail-safe mode. It is a
special mode of the OpenWRT operating system loaded on the controller that boots from
a read-only partition of memory (which i obviously had not corrupted). To enter this mode
power cycle your S1 (no need to restart putty, all will be well) and watch closely as the
text scrolls by. It will pause once or twice. First time is almost immediately after power
is applied:
something like:
Autobooting in 1 second. Hit p to stop autoboot.
This is NOT what you want so let
The second time will be during the linux kernel boot sequence. there will be several
timestamps along the left edge of the screen. It will pause and directly mention
Fail-safe mode:
type F then enter/return to start into Failsafe mode.
then it should look like a "normal" linux command prompt (if you've ever seen one, I sure
hope so if you're following this story guide). From here on it is "relatively" easy.
Type:
firstboot
let it finish, this is a software "factory" reset to a basic openwrt configuration.
type:
vi /etc/config/network
make note of the IP address!!! More than likely it will be 192.168.1.99 or 192.168.2.99
depending on which revision of the S1 you have.
Type:
mtd -r erase rootfs_data
This erases some semi-permanent data that could be affecting boot sequence. This will
restart the controller as part of the erase procedure. Let it scroll by and continue booting.
There may be several "errors" about flash storage. thats typically ok, though. It will then
reflash the flash storage with the factory image, allowing is to boot into a clean environment.
after it seems like activity has calmed down/stopped on the screen, hit Enter/Return.
This should activate the Linux Serial console. If it does and it says something like:
root@antminer
then we are back in business and ALMOST back in business. Go ahead and turn everything
off, clip the controller board back onto its retainer posts, reattach all cables ( wi-fi, enet,
flat data cables, flat power cable). Power on the S1. If all has gone well, after ~20 seconds
the lights on the ethernet jack should light up. Use a web browser to navigate to the IP address
you wrote down earlier (if its on the same subnet as your network, otherwise Refer to
Section 3.1 in
AntMiner Manual)
Again, if all has gone well, after navigating to 192.168.1.99, LuCI should load and present
the AntMiner Login screen. Password is
root
In another tab download the most recent
S1 FirmwareLogin to the S1. Click System Tab. Click Backup / Flash Firmware. Down toward the bottom
is a file upload section. Click it and select the S1 Firmware file and upload it (this will take a few)
The next screen is just a verification. Apply it. This should take you to a spinny screen while
the S1 applies the Firmware update. After this finishes, it should redirect back to the login screen.
Login, go to Miner configuration, Enter your particular credentials, Apply & Save, Hash away!!!