Like this page? Donate with the QR code below!
Introduction - The morning after:
With about 24 hours passing since I brought the system, some things have become pretty obvious. First and foremost, a 100Ah battery is enough to support the two Jalapenos and Raspberry Pi, however it will only safely do this for about 18 hours. This could be due to the battery being second hand, the charge controller preventing excessive discharge of the battery, and how cloudy it was during the day when I first brought the system online. The charge controller cut off the units and Raspberry Pi at approximately 6:30am, just as the sun was rising.
Thanks to the foibles of the weather where I am located, I was lucky enough to enjoy pretty much an entire day of heavy cloud and rain, which dropped the panel efficiency considerably. As the battery is mostly discharged, I opted to take the two Jalapenos out of the circuit, put one on my desktop PC to keep mining towards getting me another 100Ah battery (as I will definitely be needing one!) and hopefully another panel to boost generation capacity too.
As for the other Jalapeno, it seemed like a great opportunity to play around with it and investigate the output from the various commands outlined in the BitForce SC communication protocol.
Under the (software) hood:
For starters, there are a few basic commands, which allow gathering information from the unit. These commands should be common across all of the BitForce SC series, but are no doubt likely to change as the firmware gets adjusted and modified (more on that later).
Commands take the form of a three letter string, terminated by a linefeed. For the moment I'll be focusing on the simple, single-stage commands that allow you to determine device information, rather than the double-stage ones used in queue handling. If you are interested in these, I highly recommend grabbing a copy of the communication protocol specification PDF from the Butterfly Labs website and reading through it.
For starters we have the following:
ZGX - Device identification
This command is used to identify the device to mining software. Output is pretty simple, usually consisting of "BitForce SHA256 SC 1.0" or similar.
ZCX - Device information
Much more interesting! This command returns information on the device type, firmware version, "minig" speed (I'm certain this is a typo for mining) and the number of functional engines and their clocking speed. Also includes data for the XLINK status, which isn't relevant for Jalapeno units. Output looks similar to the following (lucky me! I got almost perfect chips!):
DEVICE: BitFORCE SC
FIRMWARE: 1.0.0
MINIG SPEED: 7.61 GH/s
PROCESSOR 3: 15 engines @ 259 MHz
PROCESSOR 7: 14 engines @ 271 MHz
ENGINES: 29
FREQUENCY: 266 MHz
XLINK MODE: MASTER
CRITICAL TEMPERATURE: 0
XLINK PRESENT: NO
OK
ZMX - Physical identification
All this command does is cause the front LED to flash on the unit, allowing for easy physical identification. Wonderful if you love blinking lights, or have a room full of units and need to identify a problematic unit from all the rest. For people with one or two units its probably easier just to use a bit of logic :-)
ZTX - Get Voltages
Aha! a feature I can definitely find a big use for in the solar powered mining rig. This command returns three integers in the form of comma separated values. These are (currently) in the order of voltages on the 3.3v regulated line, 1.0v regulated line and most importantly, the supplied voltage from the external power supply. Output typically looks like the following (device idle):
3928,1004,12380
Integer values are the measured voltages in millivolts.
ZLX - Get Temperatures
This returns the temperatures from the two temperature sensors on the board. Where exactly these are located I'm not sure, but I would suspect one is for board temperature and the other is heatsink temperature. These values are derived from sensor that are external to the ASICs themselves. Interestingly enough, the ASICs do contain thermal sensors of their own, which are used in throttling to avoid things melting, however they are apparently not connected up. Pity! Output is two temperature values, formatted similar to below. Temperature is measured in degrees celcius, not fahrenheit.
Temp1: 23, Temp2: 29
ZJX - Get Firmware Version
Not much to say here, this simply returns the version of firmware on the device. For my Jalapenos, this is the stock firmware the units shipped with. Output is similar to the following:
1.0.0
The rest of the commands are related to queue control, so I won't be covering these here.
Connecting to the Jalapeno is as simple as firing up a serial terminal program (such as PuTTY, but be careful to configure the terminal options correctly). I opted to use the Arduino 1.0.4 SDK serial monitor, mainly because I just happened to have it running at the time, and I couldn't be bothered trying to get PuTTY to behave properly.
So where now?:
My next step will likely be to investigate loading the open sourced firmware that Butterfly Labs made available via Luke-Jr. To do this, I will need a suitable JTAG adapter (which I currently don't have). Possibilities include sourcing a suitable adapter such as the well known AVRDragon, however a more interesting approach I feel would be to try using the Raspberry Pi and its GPIO pins... A short bit of Googling later and I found the following: https://github.com/synthetos/PiOCD/wiki/Using-a-Raspberry-Pi-as-a-JTAG-Dongle
This definitely warrants further investigation! More to come...
UPDATE:
Success! I managed to reflash the firmware on one of my Jalapenos using only a Raspberry Pi and some suitable hookup wire between the GPIO pins and the JTAG1 header. Full instructions are available Here.
SECOND UPDATE:
Got to love the weather. Since activating the rig it has been solid storm clouds, rain and wind. No chance of getting the system to recharge enough to support the Jalapenos, so I've temporarily relocated them to a more traditionally powered machine and started working on the firmware while the batteries recharge. Once the main 100Ah battery has been recharged I'll be putting the two rejuvenated 26Ah batteries back in circuit and we'll see how things go. I might try running things with just the one Jalapeno too, until I can get the time to try modifying BFGMiner to support controlling the units based on their supply voltage.