https://linzhi.io/firmware/fw-test-20230404-0704.tar
https://linzhi.io/firmware/fw-test-20230404-0704-full.tar
Base system upgrade:
- Upgrade buildroot from 2021.02 to 2022.02.11 (released 2023-03-19)
- Upgrade kernel from 5.10.89 to 5.15.105 (released 2023-03-30). 5.10
is still maintained, but the newer buildroot needs at least 5.15.
https://linzhi.io/firmware/fw-rd-20230306-0558.tar
https://linzhi.io/firmware/fw-rd-20230306-0558-full.tar
Crew:
- The number of bad (disabled or misreporting) temperature channels is
now shared with the crew (Bad Tchan). If any channel pairs (both
channels of a chip) have failed, the entry in Crew > Miners is
highlighted.
- To make non-zero entries easier to spot, we show dashes (-) instead
of zeroes in Bad channels, I2C reset, Bad Tchan, and Board reset.
Bug fixes:
- The ZIL wallet was missing in the ETC+ZIL, POM+ZIL, and UBQ+ZIL pool
templates for Crazypool.
- In System > Daemons, the log of mined0 and mined1 showed shell
commands (of the launch-mined script), but the log of mined did not.
Now shell commands are shown in all modes.
- The DAG daemon (dagd) unnecessarily complained when the mining daemon
(mined) indicated it was not mining (and otherwise ignored these
messages, as it should). It also had a small memory leak.
- If SEPARATE_MINED was not set, dagd complained when receiving
messages with the topic /mine/pool/state, instead of just ignoring
them.
- If the ops switch was off, the crew daemon (crewd) set the "ops" flag
(0x0800), even if the ops switch was not enabled.
- coord and mined did not report the exit status of shell commands.
https://linzhi.io/firmware/fw-test-20221129-1327.tar
https://linzhi.io/firmware/fw-test-20221129-1327-full.tar
Pools:
- Added template for UBQ+ZIL mining on Crazypool.
- The DAG daemon supports DAGs as small as epoch 8 (e.g., for POM,
Proof of Memes.)
- Added templates for POM-only and POM+ZIL, both on Crazypool.
- In pool templates, unified the Crazypool regions.
Configuration:
- If, for configuration changes to become effective, daemons need to be
restarted, or the entire system rebooted, the Configuration page now
shows an indication (red circle).
- Pending configuration changes are indicated in the crew as "CONFIG".
- The configuration daemon (configd) supports a number of new MQTT
topics for automated updates. (/config/bulk, /config/bulk-set,
/config/accept, /config/restart-pending, /config/restart-perform)
Cleanup:
- Don't run the obsolete isl68127 daemon anymore.
Hardware support:
- Preliminary support for Dragon (E1500).
Bug fixes:
- In the crew daemon, the counter for non-zero page wrapped to zero.
This made crew update cycles 11% longer than necessary.
- The configuration daemon (configd) did not reject newlines in the
values of some variables, e.g., BANNER.
- When deleting a multiple-choice configuration variable, e.g., CREW,
the Web UI may have left all choices unselected, instead of selecting
the default choice.
- If the DAG daemon was given no indication what to do, it would
busy-loop;
- The coordination daemon did not set /fan/profile if using defaults.
- The fan profile on Temperature > Control was not drawn when receiving
new settings.
- Fan profiles outside 20-100 C were not clipped.
- If the destination currently used by the mining daemon was removed or
disabled, mined would continue mining there, until the connection had
to be reset, a change was explicitly commanded (e.g., by moving the
arrow on Configuration > Pool), or mined was restarted. Now mined
automatically switches to the next destination (if there is any)
after a timeout of 30 seconds.
- If disabling and then re-enabling a destination, mined would still
consider it to be disabled. It would (try to) continue using that
destination, but it would lose the ability to fail over to a
different destination.
- The crew daemon could try to overflow outbound crew messages, causing
an assertion violation (in unicast mode, which we normally don't
use.)
https://linzhi.io/firmware/fw-test-20221012-0128.tar
https://linzhi.io/firmware/fw-test-20221012-0128-full.tar
Dual-mining:
- Experimental support for ETC+ZIL dual-mining. For details, see
https://github.com/LinzhiChips/doc/blob/master/guide-zil.txt
Pools:
- 2Miners.com no longer supports Expanse. Added a template for
ExpansePool instead.
Command-line tools:
- "rr" to list reports, show files in them, and print their content.
Problem reporting:
- Reports now also include the console log.
- In Power > Dump, the first line (with the date) is now also shown if
using the "Status" filter.
Communication with pool:
- If using the EtherProxy protocol (stratum0), specifying a password
had no effect.
Bug fixes:
- SUB_EXTRANONCE was ignored. This bug was introduced in
fw-test-20220801-1821.
- "Harmless" CML errors were not ignored if any board had IGNORE set to
"ignore" or "ban".
- If a mining daemon was in the process of loading a DAG, and then was
stopped (e.g., by powering off a slot), then the board state remained
at the "loading" value, and caused the DAG daemon to hold, possibly
indefinitely.
The DAG daemon now listens to the mining daemon's "last will" topic,
and only considers information from slots with an active mining
daemon.
- A miner could fail to reboot if some resources were "stuck" in the
kernel. In this case, the Web UI would refresh continuously,
indicating "Rebooting".
We now force a hardware reboot without waiting for "stuck" resources
if the "clean" reboot attempt was unsuccessful.
https://linzhi.io/firmware/fw-test-20220924-1608.tar
https://linzhi.io/firmware/fw-test-20220924-1608-full.tar
Pools:
- Removed all ETH pool templates from Configuration > Pool.
Web UI:
- Show machine name in title bar.
On/off control:
- Avoid misleading "OFF" indications:
In order for a miner to show status OFF, not only does a power switch
have to be "off", but - if it is a per-slot switch - the
corresponding slot must have a board present and must not be ignored.
This applies both to the status display in the Web UI and the crew.
- On the status page, slot status is now "OFF" only if disabled by a
power switch, and "OFF (OPS)" if disabled by the ops switch.
- The status of the ops switch is now shared with the crew. If a miner
is "off" because of the ops switch, this is indicated in
Crew > Miners as "ops". (If it is powered off with the main/slot
switch, the indication is "OFF".)
Fan control:
- Changes to Configuration > Controller > General > FAN_PROFILE are now
applied immediately.
- MQTT topic /fan/profile now only reports the current profile but no
longer changes it. New /fan/profile-set changes the current profile,
overriding configuration.
- Graph on Temperature > Control now has labels and a grid.
- Input field on Temperature > Control now shows current profile.
Previous default value is now shown as "placeholder" (in grey).
Furthermore, commas are now used as separators, instead of spaces,
matching the syntax of
Configuration > Controller > General > FAN_PROFILE. (Note that the
messages on /fan/profile and /fan/profile-set still use spaces as
separators.)
Diagnostics:
- The dmesg diagnostic is now at Diagnostics > Logs > dmesg (was at
Diagnostics > dmesg)
- New Diagnostics > Logs > Console with the latest (non-kernel) console
messages. (This shows messages generated during the boot process and
by daemons that are not launched by kunai - e.g., kunai itself.)
- In Diagnostics > MBIST > Test: only show "Note: here we count
defective blocks. UI counts nodes." only if the MBIST run completed.
Bug fixes:
- When mining daemons are mining, the Web UI shows "Mining" next to the
per-slot progress bars. This indication is cleared when the mining
daemon exits (e.g., when powering down). However, the (now false)
indication would come back if reloading the page.
This is caused by the stale /mine/SLOT/state being retained, but
/mine/reset being designed in a way that makes it unsuitable for
retaining. This is now fixed, with new /mine/running and
/mine/SLOT/running replacing former /mine/reset. For details, see
https://github.com/LinzhiChips/doc/blob/master/MQTT.txt
- With all slots empty/ignored/powered down, a miner would sometimes
indicate "POOL" in the crew, even though not being connected to a
pool is perfectly normal in this situation.
- Fan profiles that end below 100% are continued with a step to 100%
at the last point. This was not shown correctly in
Temperature > Control.
- Diagnostics > ECB > Bits #3 ran the test on bus #1, not #3.
- When the list of pool destinations had entries with the same URI,
which an unexpected but valid configuration, the failover could fail,
and cycle between these duplicate entries, thus never selecting a
non-failing entry. The mining daemon now ignores duplicate entries.
Known bug (may have existed for a while):
- When powering down a slot with any of the switches in Power > On/Off,
killing the mining daemon (prior to cutting power) may fail. In this
case, the slot will be marked as "OFF", but remains operational.
Cycling the power switches has no effect while the slot is in this
abnormal state.
The reason why the killing fails is still under investigation.
As a work-around, manually killing the mining daemon(s)
(System > Daemons) will restore normal operation.
https://linzhi.io/firmware/fw-rd-20220904-1754.tar
https://linzhi.io/firmware/fw-rd-20220904-1754-full.tar
Pools:
- Added a template for NiceHash (ETChash):
https://www.nicehash.com/blog/post/etchash-is-now-available-at-nicehash
Web UI:
- Banners are now generated by coord, not the boot process. Changing
them has immediate effect, without requiring a reboot.
- The miner-wide "OFF" status (any master or slot switch is "off") is
also shown in the status area and the document title, not only in the
crew.
- Speed up UI initialization by generating complex Diagnostics > MBIST
pages only if accessed.
Diagnostics:
- While a diagnostic is running, MQTT topic /diag/running is set to its
name. (Else, it is set to "-".)
- While a diagnostic is running, diagnostics buttons are disabled on
all browsers connected to the miner, not just the one from which the
diagnostics were started.
Crew:
- Crew > Setup > IP to URL mapping now shows the correct example URL
(with https: if using HTTPS) for Default.
- Removed obsolete Werner-Tunnels from Crew > Setup > IP to URL
mapping.
- If an already existing IP address is added with another ID (MAC
address), mark the address of the new entry.
Bug fix:
- If a hashboard reported no total power input, pwrpolld sent an empty
string on /power/SLOT/total_input instead of a number (e.g., zero).
https://linzhi.io/firmware/fw-test-20220801-1821.tar
https://linzhi.io/firmware/fw-test-20220801-1821-full.tar
Temperature monitoring:
- Raised the default value for the thermal warning threshold from 85 C
to 90 C.
- The thermal shutdown threshold can now be configured in
Configuration > Slot N > General > TSHUT. The default is 95 C, which
was the fixed limit so far, the maximum is 100 C.
- The thermal shutdown temperature is now reported on MQTT topic
/temp/SLOT/shut (for each slot) instead of /temp/limit (for the whole
miner).
- The key on Temperature > Boards now also includes the colors for
unresponsive, skipped, and overdue channels.
Network monitoring:
- card-troubled now also detects Ethernet link up/down transitions, and
reports them on MQTT topic /sys/ether/up.
- coord reads /sys/ether/up, detects bouncing links (more than 10
up/down transitions in less than 20 minutes), and reports them on
/sys/ether/bounce. The bounce indication auto-clears after the link
has been stable for two minutes.
- The Web UI indicates link bounces as "ETHER BOUNCE". The crew shares
this information as well, and it is indicated as "ETHER".
- When the Ethernet link is down, the RGB LED blinks yellow.
Diagnostics:
- ASIC memory test (MBIST, Memory Built-In Self Test) data, which is
cached on the uSD card and used by mined, is now shown in
Diagnostics > MBIST > Current.
- An ASIC memory test can be started from Diagnostics > MBIST > Test.
The new MBIST data can then replace the one cached on the uSD card.
Mining:
- Experimental Configuration > Controller > Mining > DYNAMIC_MEMORY
to enable dynamic memory allocation, to skip nodes with uncorrectable
memory defects. (Default: use all nodes and pretend there are no
uncorrectable defects.)
On/off control:
- Power > On/Off now has an operations-defined switch in series with
the master on/off switch. The ops switch is intended for use with
site-specific sensors and policy controllers. For details, see
https://github.com/LinzhiChips/doc/blob/master/guide-on-off-ops.txt
Status display:
- Make message priorities on the Web UI match those of the crew: DCDC
SHUTDOWN gets higher priority than THERMAL SHUTDOWN, and SILENT gets
higher priority than BOOT.
Bug fix:
- In firmware fw-rd-20220706-2248, the title on Web UI pages only said
"Linzhi" instead of "Linzhi Phoenix". /sys/machine-type (MQTT) was
also wrong.
https://linzhi.io/firmware/fw-rd-20220706-2248.tar
https://linzhi.io/firmware/fw-rd-20220706-2248-full.tar
System status:
- The size of the controller RAM is shown on System > R&D. This can be
used to check whether the boot loader has been updated to a version
that supports 1 GB.
Pool interaction:
- Destinations/pool URIs can now also use the board name, with
${boardname}. This allows seeing individual boards at the pool if
SEPARATE_MINED is set. The wizard in Configuration > Pool supports
using the board name as rig name.
Bug fixes:
- Diagnostics > ECB > Clock reported the result for ECB #0 also for #1,
and the result for #2 also for #3.
- If the first slot was empty, ignored, etc., Diagnostics > ECB > Clock
would say it tested the second slot, but in reality used the
(probably unresponsive) first slot.
- mDNS did not publish the machine name.
- The temperature reporting daemon (trepd) tried to poll absent boards,
producing false errors in System > Problems > I2C bus reset count.
This bug was introduced in fw-test-20220117-2339
- Failure to read a voltage regulator register could lead to a data
formatting error inside pwrpolld, which could in turn corrupt the
value reported in /power/SLOT/total_input.
- Voltage and current reported by the voltage regulators can be
negative, but were treated as unsigned numbers. This caused stray
indications on Power > Telemetry of 65.553 V, or similar.
- With SEPARATE_MINED set, booting after a uSD card change or hashboard
swap could result in a "Boot failure" and failure to mine on one of
the boards.
https://linzhi.io/firmware/fw-rd-20220203-0007.tar
https://linzhi.io/firmware/fw-rd-20220203-0007-full.tar
Bug fix:
- Increase maximum ETC epoch from 240/480 (240th DAG size increase,
480th DAG content change) to 500/1000. Epoch 240/480 was reached on
2022-02-02 UTC.
https://linzhi.io/firmware/fw-test-20220117-2339.tar
https://linzhi.io/firmware/fw-test-20220117-2339-full.tar
Note: this update only has a *-full.tar version, since it makes several
changes to the early boot process. When upgrading, the upgrade needs to
be performed twice, since the upgrade process itself needs to be
updated for some of the changes.
Firmware updates:
- If the firmware tar contains a boot loader (i.e., if this is a
*-full version), the boot loader is updated.
Base system upgrade:
- Upgrade buildroot from 2020.05 to 2021.02. The update was needed
because the build process failed on recent Ubuntu versions.
- Upgrade kernel from 5.6.0 to 5.10.89. buildroot 2021.02 needs a newer
kernel. 5.10 is the first kernel that is modern enough, and it also
happens to be long-term supported until December 2026.
- Use all the RAM of the controller (1 GB), instead of only half of it.
Serial console:
- The serial console is now enabled when U-Boot starts, not later in
the boot process. This shows all the progress messages from U-Boot
and allows interacting with the boot loader.
Problem reporting:
- If enabled in Configuration > Controller > Reports > REPORT_OOM,
miners try to generate a report when the kernel signals an
out-of-memory condition.
Power monitoring:
- Power > Telemetry now shows rail names.
I2C:
- Added LB1002 (development board) I2C layout. This changes power
setting (setpwr) and monitoring (pwrpolld, Power > Telemetry),
temperature monitoring (Temperature > Boards, nomelt and trepd), I2C
diagnostics (Diagnostics > I2C), I2C monitoring (i2c-troubled,
System > Problems), and power dumps (dcdc-dump).
System status:
- If the FPGA bitstream (PL) is changed, /sys/pl-git and /sys/pl-t, and
thus also the PL data in System > Firmware are updated.
Bug fix:
- All non-zero values of
Configuration > Controller > General > POWER_POLL_INTERVAL were
interpreted as 5 seconds.
https://linzhi.io/firmware/fw-rd-20211223-1354.tar
https://linzhi.io/firmware/fw-rd-20211223-1354-full.tar
Note: we noticed that there are still memory problems that can make a
miner fail to accept a firmware update (if updating via the Web UI or
MQTT - updating the uSD card directly, with a PC, always works).
We have updated
https://github.com/LinzhiChips/doc/blob/master/guide-no-memory.txt
for the new symptoms, prevention, and remedies. We strongly recommend
rebooting miners shortly before the firmware update, to prevent
out-of-memory problems from occurring.
Web UI:
- If editing a note in Crew > Miners, incoming updates caused the
browser to stall for a few seconds. While editing, we now process
only the most important fields, and stop updating the miner list.
- The maximum number of destinations in Configuration > Pool has been
raised from 10 to 20.
Tuning:
- The logic voltage of hashboards can now be set in the range
800-900 mV. Previously, the range was 850-950 mV. The default remains
at 850 mV. The setting is at:
Configuration > Slot N > Tuning > VDD (reboot required).
We expect stable operation to be possible at 820 mV on most boards.
Diagnostics:
- Diagnostics > Fingerprints: retrieves patterns that can be used to
identify chips and hashboards. See also
https://github.com/LinzhiChips/doc/blob/master/guide-fingerprinting.txt
- Diagnostics > EEPROM: show space utilization of configuration
EEPROMs.
Bug fixes:
- Configuration > Access showed "true" instead of the user name in
"Change password of".
- Some buttons on the pages of Diagnostics were not disabled (greyed
out) while diagnostics were running.
- When booting, user space did not write diagnostics to the serial
console, nor did it properly start a shell. As a result, there were a
few (harmless) complaints in the boot process that should have been
avoided.
The incorrect handling of the console also prevented utmp from being
set up and used, making "w" (in shell sessions) fail silently.
- After moving (drag and drop) a destination in Configuration > Pool,
the URI displayed changed to a number (the row index). This was only
a display error, the data stored in the EEPROM and used by the mining
daemon was not affected.
Note: drag and drop seems to be broken in Chrome 98.0.4710.4, with
none of the drag and drop examples on Stack Exchange working either.
Firefox 94.0 works fine.
- If the (non-separated) mining daemon reset, this could switch the UI
to show system statistics as if the miner was operating with separate
mineds.
- The MQTT parameter max_queued_messages had a default value of 100,
not the 1000 it normally has. This caused message loss, which in turn
produced subtle and hard to track issues. We now use a limit of 1000
messages.
- The login status (relevant mainly in SECURE mode) was not always
updated when logging in/connecting. The authentication system, being
late among the subscriptions, was also affected by the MQTT message
queue limit.
https://linzhi.io/firmware/fw-rd-20211004-0038.tar
https://linzhi.io/firmware/fw-rd-20211004-0038-full.tar
Bug fix:
- dagd now suspends DAG operations while a mining daemon is loading a
DAG. This can speed up DAG uploads after a reboot by about 40%.
https://linzhi.io/firmware/fw-test-20211001-0239.tar
https://linzhi.io/firmware/fw-test-20211001-0239-full.tar
Bug fixes:
- The 2nd byte of the numerical address in /mine/pool/state was
sometimes off by one bit position, which could be observed mainly by
slightly wrong pool addresses being shown in the crew. (This is
related to a similar bug fixed in fw-rd-20210223-2105.)
- dagd now listens to (new) /mine/SLOT/epoch
- crewd now listens to /mine/SLOT/epoch, /mine/SLOT/pool/state,
/mine/SLOT/pool/statistics
- coord now listens to /mine/SLOT/pool/statistics
- Fixed a potential buffer overflow and an end-of-list overrun in dagd.
Diagnostics:
- Diagnostics > ECB > Bits #bus test if (and how) bit patterns get
altered on the ECB, e.g., because of cable/connector defects.
Known bug:
- dagd still tries to use the long gone /mine/mined-state topic, which
prevents holding DAG generation while mined loads a DAG, and can lead
to (slightly) increased load times. (Fixed in fw-rd-20211004-0038.)
https://linzhi.io/firmware/fw-test-20210915-0039.tar
https://linzhi.io/firmware/fw-test-20210915-0039-full.tar
Note: this is an experimental update that includes improvements but
also some regressions. Please read the description of changes before
deciding whether to try it.
Separate mining daemons:
What follows are long overdue improvements, mainly to the main status
page, when using separate mining daemons. The overall result should be
that indications no longer jump between each daemon's individual view,
but are either combined or shown side by side.
These changes also implied some rearranging of MQTT messages.
Note: these changes may still change. Also, some less important
displays, e.g., System > Quality, will still "jump". Furthermore, crew
data is still based on the old interface (/mine/epoch,
/mine/pool/state, and /mine/pool/statistics) and the columns "Coin",
"Epoch", "Pool address", "Accepted", "Stale %", and "Reject %", may
thus be less correct than they were before.
- /mine/reset can now indicate which slot is being reset. The Web UI
then only resets the respective parameter set.
- A mining daemon operating a single slot uses /mine/SLOT/pool/state
instead of /mine/pool/state. If mining demons connect to different
pools (or different endpoints of the same pool), both are shown in
the Web UI.
- A mining daemon operating a single slot uses /mine/SLOT/epoch instead
of /mine/epoch. If mining daemons disagree (which is possible but
probably not intended), both coins and epochs are shown in the Web
UI.
- A mining daemon operating a single slot uses
/mine/SLOT/pool/statistics instead of /mine/pool/statistics, and
/mine/SLOT/net-perf is used instead of /mine/net-perf. The main
status display rearranges for separate mining daemons and shows both
data sets. Furthermore, it shows the combined pool hash rate.
Bug fixes:
- Properly fix ignoring "harmless" CML errors.
https://linzhi.io/firmware/fw-rd-20210909-1344.tar
https://linzhi.io/firmware/fw-rd-20210909-1344-full.tar
Bug fixes:
- Starting with firmware fw-rd-20210828-0106, several configuration
variables (including per-slot variables used for mining) were not
used when daemons started, resulting in mis-configuration.
As work-around, a mining daemon restart (Stop/Start) would result in
the configuration to be used as expected.
- Starting with firmware fw-test-20210728-0952, "harmless" CML errors
(i.e., indicating no other abnormal condition) were no longer
ignored. (Note: this attempted fix wasn't successful.)
https://linzhi.io/firmware/fw-rd-20210908-1829.tar
https://linzhi.io/firmware/fw-rd-20210908-1829-full.tar
Release:
- This is the combination of fw-test-20210905-1749 and
fw-test-20210907-1735, plus the changes below.
Configuration:
- Limit Configuration > Controller > Mining > RESERVED_SPACE to
non-zero multiples of 1 GB. (configd also accepts multiples of 1 MB.)
Crew:
- Updates of the list on Crew > Miners are now stopped while a
selection is in progress. This prevents crew updates from disrupting
selections.
https://linzhi.io/firmware/fw-test-20210907-1735.tar
https://linzhi.io/firmware/fw-test-20210907-1735-full.tar
Configuration:
- The amount of uSD card space reserved for other things like DAGs
(i.e., the firmware, checksums, reports, etc.), can now be changed
from the default of 6 GB by setting
Configuration > Controller > Mining > RESERVED_SPACE.
(To make the change effective, restart dagd or reboot.)
Diagnostics:
- Diagnostics > ECB > Clock toggles the ECB bus clock and monitors its
propagation.
https://linzhi.io/firmware/fw-test-20210905-1749.tar
https://linzhi.io/firmware/fw-test-20210905-1749-full.tar
Diagnostics:
- Diagnostics > Logic clock measures the reference clock and the PLL
clock at each die.
- Diagnostics > SerDes clock measures the SerDes transmission rate
(open-loop) at each quad.
https://linzhi.io/firmware/fw-rd-20210828-0106.tar
https://linzhi.io/firmware/fw-rd-20210828-0106-full.tar
Configuration:
- If a board is set to IGNORE=ban, this now also stops the temperature
reporting daemon (trep) from polling the temperature sensors.
- If the controller EEPROM contains SLOTn_IGNORE=ban (with n being 0 or
1), this suppresses reading the EEPROM of the respective
hashboard(s).
This is useful for working around a somethat tricky (but rare) fault.
For details, see
https://github.com/LinzhiChips/doc/blob/master/guide-i2c-lockout.txt
- New per-slot configuration variable GEN_RATIO (1 to 100%) to lower
the task generation ratio (to reduce power consumption).
- Per-slot variables FORCE, SERDES_RATE, SKIP_DIES, and SERDES_TRIM now
only need cycling of mined (System > Daemons > mined "Stop", then
"Start") for changes to become effective, no reboot.
- Controller-level variable SUB_EXTRANONCE now only needs cycling of
mined for changes to become effective.
User interface:
- New sections System > R&D > Hardware details and ... > Zombie-mining,
showing the number of active dies, communication channels, clock
speeds, etc.
- In Crew > Miners, add columns "Dies", "Bad channels",
"SerDes (Gbps)", and "Task interval".
Bug fix:
- Fixed two memory leaks in mined. (Caused stable miners to run out of
memory after a few days of operation.)
https://linzhi.io/firmware/fw-rd-20210808-0031.tar
https://linzhi.io/firmware/fw-rd-20210808-0031-full.tar
Release:
- This is the combination of fw-test-20210711-1936,
fw-test-20210728-0952, fw-test-20210729-0536, and
fw-test-20210806-1024, plus the change below.
Crew:
- Consistently use -1 if the checksum files version is unknown, for the
crew JSON API, /crew/update, and the JSON export on Crew > Miners.
Known bug:
- The miner may run out of memory when trying to apply a firmware
update via MQTT. The symptoms are that the miner does not react to
the MQTT message, and does not reboot.
Work-around: go to System > Daemons and kill mined and dagd, then
retry the update.
https://linzhi.io/firmware/fw-test-20210806-1024.tar
https://linzhi.io/firmware/fw-test-20210806-1024-full.tar
Problem reporting:
- I2C resets of DCDC regulators are now reported on
System > Problems > I2C bus reset count
- If repeated I2C resets don't resolve a DCDC regulator problem, this
now causes an I2C warning.
- Power > Dump now also shows decoded STATUS_CML if the "Status" filter
is selected.
Diagnostics:
- Diagnostics > dmesg shows kernel messages, e.g., to diagnose card
problems.
- Diagnostics > I2C runs I2C bus scans (i2cdetect).
Configuration:
- Configuration > Slot n > General > IGNORE now has the option to "ban"
the board. This not only prevents mining but suppressed all
monitoring and processing of alerts (thermal shutdown, etc.)
If a board is "banned", the "IGNORE" on the status page changes to
"BANNED".
- The threshold for input undervoltage faults can now be set (raised
only) in Configuration > Slot n > Tuning > VIN_UV (reboot required).
Crew:
- The version of the checksum files is shared with the crew. (Column
"Checksums", "csum_version" in JSON.)
Bug fix:
- CREW_PORT didn't change the listening port for the multicast group.
Known bugs:
- If there is an uncleared fault and a reboot is commanded, the "Clear"
button will appear under the "Rebooting" indication (if clicked, it
tries to clear the fault, which the reboot will clear anyway, and
doesn't affect the reset.)
- If mined closes and re-opens a pool connection, it may not clear the
pending mining job, and crash if a result arrives from the ASICs.
Mined automatically restarts after such a crash.
https://linzhi.io/firmware/fw-test-20210729-0536.tar
https://linzhi.io/firmware/fw-test-20210729-0536-full.tar
Crew:
- Configuration option Configuration > Controller > Crew > CREW_PORT to
set the UDP port used for peer-to-peer communication. (Reboot or
crewd restart required.)
- Configuration option Configuration > Controller > Crew >
CREW_MCAST_ADDR to set the multicast group address used for
peer-to-peer communication. (Reboot or crewd restart required.)
- Also changes to configuration options CREW, CREW_API, and
CREW_API_PORT can now be applied by just restarting crewd, without a
reboot.
Problem reporting:
- A thermal, DCDC, and I2C shutdown now indicates in the title of the
report which slot(s) triggered it.
Temperature monitoring:
- Skipped channels (SKIP_TCHAN) are now shown with a white background
in Temperature > Boards.
- Unlikely temperatures (<= 10 C) are shown with a grey background,
instead of the "icy blue" we use up to 50 C.
Bug fixes:
- MQTT topic /temp/+/skip wasn't retained. This broke the indication of
skipped sensor channels in Temperature > Boards.
- SKIP_TCHAN failed to turn off most of the channels it was supposed to
skip.
https://linzhi.io/firmware/fw-test-20210728-0952.tar
https://linzhi.io/firmware/fw-test-20210728-0952-full.tar
Web UI:
- Major HTML cleanup, aided by "tidy". Visible changes should be
minimal (the most noticeable change should be that
Temperature > Boards now uses a bold font).
- The URL parameter mqtt_debug now accepts an optional value. This
value, if present, is a string that any MQTT message must contain
either in its topic or payload to be shown on the console.
- Configuration > Slot N now has sections instead of one long list of
options.
General features:
- mined reports the number of extranonce bits provided by the pool on
/mine/pool/extranonce. The extranonce bits are shown in the UI on
System > R&D > Extranonce.
This is available on MQTT topic /mine/pool/extranonce
- The version number of the checksum files is now shown in
System > Firmware > Checksums version. If no version information is
available, a dash (-) is shown.
The corresponding MQTT topic is /fw/checksums-version
- If installing new checksum files fails, the version information is
deleted. This will cause the installation to be retried when
installing an fw-*-full.tar, even if the version is the same.
Infrastructure:
- Recovered files ("lost cluster chains") on the uSD card are now
automatically deleted at boot time. This can be avoided by setting
Configuration > Controller > General > KEEP_FSCK
Ubiq:
- Pool templates for MaxHash, SoloPool, Ubiqpool.
- Ubiq has very long block times, which could cause the miner to run
out of nonce space to search, and lose an estimated 2% of hash rate.
The nonce space is now increased by one bit in some cases.
For further details, see
https://github.com/LinzhiChips/doc/blob/master/ubiq-blocktime.txt
Tuning:
- Hashboard voltages can now be adjusted in
Configuration > Slot N > Tuning (reboot required).
Bug fix:
- When loading the Web interface over a slow link, elements from
various tabs were briefly shown. They are now suppressed.
https://linzhi.io/firmware/fw-test-20210711-1936.tar
https://linzhi.io/firmware/fw-test-20210711-1936-full.tar
Zombie-mining:
- Support zombie-mining if DAG size exceeds available memory. See
https://github.com/LinzhiChips/doc/blob/master/zombie-mining.pdf
- Configuration variable Configuration > Slot N > ZOMBIE_COMPENSATION
to adjust speed.
- Updated checksums (only in fw-*-full.tar !) to include Ethash epochs
up to 479 (approximate end date 2022-03).
Ubiq:
- Support for Ubiq (UBQ), using the Ubiqhash algorithm, an Ethash
derivative. Contributed by Luke Williams (@iquidus).
- Pool template (for Crazypool) in Configuration > Pool > UBQ
- Updated checksums (only in fw-*-full.tar !) to include Ubqhash epochs
22 to 99 (approximate end date 2038-02).
Web UI:
- Reduced top margin in the Temperature > Control diagram, so that 100%
PWM no longer looks like 90%.
Instrumentation:
- Enabled nc (netcat)
Bug fixes:
- Updates of checksum files were not applied when updating the firmware
via Web / MQTT, even though the rest of the update went fine. Since
this firmware update is the first that contains new checksum files,
please update as follows:
- use the fw-...-full.tar file, version fw-test-20210710 or later.
- either:
- update by extracting the content of the tar file to the top-level
directory of the uSD card,
- or:
- install the update via Web / MQTT and wait for the miner to
reboot, then
- install the same update via Web / MQTT a second time.
The first update will install a corrected version of the firmware
update daemon, which will then be able to extract the archive with
the updates the checksum files.
- Reports did not include /temp/shutdown in messages.txt
https://linzhi.io/firmware/fw-rd-20210629-0704.tar
https://linzhi.io/firmware/fw-rd-20210629-0704-full.tar
Web UI:
- Configuration > Controller now has tabs for distinct parts of the
configuration, instead of putting everything on one long list.
Temperature monitoring:
- If the temperature sensor channels to both dies in the same package
fail to report, this is indicated in /temp/+/overdue. This causes:
- a "TSENSE FAULT" status indication,
- on Temperature > Boards, the affected die(s) to be marked with a
dark grey background,
- a TSENSE indication in the crew,
- the fan RPM to be set to 100%, and
- the RGB LED to turn yellow (unless there are more severe issues to
indicate).
The condition clears automatically if/when new temperature readings
arrive.
- Temperature reporting by trepd could sometimes (rarely) freeze,
causing Temperature > Charts to just stop updating. Applied a
work-around for the likely cause.
If the workaround should fail to work, the freeze would now be
indicated as a TSENSE fault affecting all channels.
Power monitoring:
- Periodic updates of Power > Telemetry can be enabled by setting
POWER_POLL_INTERVAL to a non-zero value (reboot required).
(Note: this is implemented as the wait time between polls. Since each
poll takes several seconds, the actual interval is longer.)
- Each time Power > Telemetry updates, total power to each hashboard
(excluding fan and controller power) is reported under the MQTT topic
/power/0/total_input and shared with the crew.
On/off control (experimental):
- Power to the hashboards is now controlled by the coordination daemon
(coord). The mined-launch scripts no longer enable power to the
boards, but depend on coord to do this for them.
- Power to the hashboards can now be switched on and off. There is one
switch per slot, and a master switch for both slots. If using one
mining daemon for both boards (SEPARATE_MINED not set), then
switching power to any slot on or off causes a restart of mined.
By default, all switches are "on" after booting, and don't retain
their state across reboots. This can be changed by setting
SWITCHES_ON_BOOT (see below).
The switches can be found in Power > On/off. Any "off" state is also
shown on the status page. If any switch is "off", this is indicated
in the crew flags as "OFF".
On/off control starts/stops mined and enables/cuts power to the
board. MQTT control is through /power/on/master and
/power/on/slotN.
Since turning a board off removes all power from the ASICs, a full
reload of firmware and DAG is performed after turning it on again.
- The setting of the power switches at boot time can be controlled by
setting Configuration > Controller > General > SWITCHES_ON_BOOT.
Default is "Power on".
- There are now two choices for restoring power and restarting mining
after a shutdown:
- if Configuration > Controller > General > TRIP_MASTER is not set
(default), clearing the shutdown restores power (unless any of the
power switches have been turned off)
- if TRIP_MASTER is set, the master switch acts like a circuit
breaker: is turned off when a shutdown occurs, and must be
explicitly turned on after clearing the shutdown.
No reboot is needed for changes of TRIP_MASTER to become effective.
Further details on resuming after a shutdown can be found in
https://github.com/LinzhiChips/doc/blob/master/shutdown-resume.txt
Instrumentation:
- New shell command "psreset" to force a system reset if even
/sbin/reboot -f won't save the day, e.g., when the kernel is
partially crashed.
Bug fixes:
- Clearing a fault ("Clear" button, MQTT /sys/clear-shutdown) did not
clear I2C warnings.
- Configuration > Controller > FAN_PROFILE accepted syntactically
invalid profiles (in particular: using spaces instead of commas,
which would then be silently rejected by configd.)
- When running under kunai, daemons configd, reportd, and statsd used
buffered stdout and stderr, which often prevented diagnostics from
being show.
https://linzhi.io/firmware/fw-rd-20210609-0326.tar
https://linzhi.io/firmware/fw-rd-20210609-0326-full.tar
Firmware signatures:
- Removed the (very insecure) R&D key from the list of accepted
signees. The evaluation key introduced with fw-rd-20210107-0600
(the build date of the firmware can be found in System > Firmware)
remains valid.
This firmware is still signed with the R&D key, but the key will be
retired soon.
This means:
- you can upgrade to this version from any older version,
- after upgrading, you will not be able to downgrade to any version
older than fw-rd-20210107-0600.
Problem reporting:
(Note: a few of the items below are about downloads. If using a pop-up
blocker, the miner may need to be whitelisted for downloads to work.
he access immediately after whitelisting may fail.)
- Power > Dump now has a download button.
- System > Problems > Boot problem now has a download button.
- All downloads (also the crew download) no longer include milliseconds
in the file name.
- New reporting system: a daemon (reportd) monitors all MQTT traffic
and generates a ZIP file containing the last messages when requested
(e.g., after a shutdown). Reports are stored on the uSD card.
The ZIP archive contains the following files:
- title.txt: timestamp and description,
- backlog.txt: a list of report requests that were received while
preparing the previous report. No separate reports were generated
for them. This file is only added if there were such reports.
- messages.txt: MQTT messages, with timestamp, sequence number, and
retain flag (may be several per topic),
- dmesg.txt: kernel messages,
- *.log: daemon logs,
- trace-*.txt: stack traces from core dumps.
Some MQTT messages are redacted to remove sensitive content, e.g.,
passwords.
System > Reports shows the list of available reports. Reports can be
downloaded, deleted, and generated by user request.
By default, up to ten reports are stored. This number can be changed
in Configuration > Controller > REPORTS_MAX. Then there are too many
reports, old ones are deleted to make room for new ones. This can be
changed with REPORTS_ROTATE.
Note: changes of REPORTS_MAX and REPORTS_ROTATE have an immediate
effect - no reboot required.
- When a segfault or abort of a mining, DAG, or crew daemon is
detected, a report is generated if the respective configuration
option is set (REPORT_MINED_CRASH, REPORT_DAGD_CRASH, or
REPORT_CREWD_CRASH, respectively.)
These options are disabled by default to prevent repeated crashes
from replacing all other reports.
- In the event of a thermal shutdown, the last reported temperatures
and the fan state are shown on System > Snapshot. (This duplicates
information that can be obtained from reports as well, but is much
easier to access.)
- If there are reports or if one of the events below is pending, the
path to further information is indicated by red circles ("badges").
Events:
- Boot problem,
- thermal shutdown,
- DCDC shutdown,
- I2C shutdown.
The badges disappear when the reports are deleted and the event
indications are cleared.
- Temperature > Snapshot and Power > Dump tabs are disabled if they
have no information to show. (They stay enabled also after the
condition is cleared.)
Crew:
- Crew-to-crew communication can be authenticated by setting a shared
secret (Configuration > Controller > CREW_SHARED_SECRET, no reboot
required).
If a secret is set, all outbound messages are signed and only
messages having the correct signature are accepted. If no secret is
set, all messages, signed or unsigned, are accepted.
- The date of the latest report is shared with the crew, field "Latest
report" in the Web UI.
- The tacho readings (RPM) of the fans are shared with the crew, field
"Fan RPM" in the Web UI.
- The speed settings (PWM) of the fans are shared with the crew, field
"Fan PWM" in the Web UI.
Customization:
- If the USER button is pressed for more than 2 seconds, coord runs the
script in /etc/linzhi/coord.d/user-long
The default script does nothing, but it can be replaced at boot time
by an rc script (e.g., rc.pl) on the uSD card.
Infrastructure:
- Configuration variables are now mirrored in files under /run/config
(on the miner). E.g., if a static IP address is set, it would appear
in /run/config/IP.
These files are meant to be read-only. Configuration changes still
have to be commanded through MQTT.
- Some MQTT messages are now recorded in files under /run/mqtt.
So far, we record anything that ends in /shutdown, e.g.,
/temp/shutdown is recorded in /run/mqtt/temp/shutdown.
These files are meant to be read-only.
Hardware tuning:
- Per-slot variable SKIP_TCHAN to disable temperature sensor channels.
Changes require a reboot to become effective.
If a channel is skipped:
- it generates no thermal warnings or shutdowns,
- it is excluded from Temperature > Charts (graph and statistics),
- it is not colorized in Temperature > Boards,
- but the temperature it reports (if it does) is still shown,
- its temperature is not considered for fan speed control.
- its temperature is not considered for the peak temperature shared
with the crew.
SKIP_TCHAN is sent on /temp/+/skip at boot time, when nomelt picks up
the setting.
Bug fixes:
- The RGB LED stayed lit even if DARK_TIMEOUT was set. (Due to two
separate bugs.)
- Various shell scripts would print stray errors under some conditions,
since test -a was used to guard expressions, but test -a does not
perform short-circuit evaluation. Now using && where -a was wrong.
https://linzhi.io/firmware/fw-rd-20210513-0316.tar
https://linzhi.io/firmware/fw-rd-20210513-0316-full.tar
Mining:
- Added optional support for the mining.extranonce.subscribe protocol
extension. Enable by setting Configuration > Controller >
SUB_EXTRANONCE.
- Highly experimental mining mode in which two completely separate
mining daemons run, each with independent recovery and with its own
connection to the pool. This mode can be selected with
Configuration > Controller > SEPARATE_MINED
This mode is intended to improve overall performance with boards
that often reset, since it allows the "good" board to continue
mining while the other recovers.
Since each mining daemons decides individually when a failover is
needed, they may connect to different pools. Note that both
connections use the same wallet/account and rig name.
In this mode, the following indications and statistics flip between
results for individual boards, instead of showing summaries for the
entire miner:
- Status: everything in the Miner and Pool columns,
- Status: if one mining daemon dies (and indicates this by sending a
"last will" on /mine/reset), the firmware/DAG indications for the
other mined briefly become confused,
- System > Quality
- MQTT: /mine/dest, /mine/net-perf, /mine/pool/difficulty,
/mine/pool/state, /mine/pool/statistics, /mine/quality,
/mine/reset,
- in /crew/update: A, DW, PA, PP, RR, SR,
- in the crew display: Accepted, Pool address, Reject %, Stale %,
Wallet/account.
Web UI:
- When the miner is about to reboot, the status indication in the
upper right now changes to "Rebooting".
Machine name:
- If the new option Configuration > Controller > DHCP_NAME is set and
the DHCP server provides a host name, use the name from DHCP instead
of NAME. (This name is shown on the status page, to the crew, as a
suggestion for the rig name, and in the shell prompt.)
- If a destination/pool URI contains the string "${name}", it is
replaced with the miner name. If the miner name changes, the pool
connection is closed and reopened.
On MQTT, /mine/dest contains the unexpanded URI, and the new
/mine/dest-actual contains the URI after variable expansion.
Configuration:
- If the list of keys in associative arrays (/config/user/DEST,
/config/user/USER, and /account/users) is empty, send a dash (-)
instead of an empty string. The latter would delete the topic, and
an application trying to read the (retained) list of keys could not
tell whether the list was empty or the response was just taking a
long time.
Diagnostics:
- Diagnostics > My IP can now also query ipify.org and icanhazip.com,
in case ifconfig.co is down.
Bug fixes:
- When rebooting, a "0" was sent on the MQTT topic /sys/shutdown
instead of "1".
- If access access to the crew HTTP/JSON API was enabled, it was only
local, even if CREW_API was set to "remote".
- A safeguard in place to remove implausibly high performance data
received from the ASICs was set to a threshold more than 500 times
to high, rendering the safeguard ineffective. Under the suitable
rare circumstances, this could cause the reported hash rate to
temporarily become very large.
- The last output (typically a line or less) of processes that have
exited was not always available in the logs in System > Daemons.
- If /mine/epoch lacks coin name and algorithm, dagd now uses the
default algorithm (ethash), instead of ignoring the epoch change.
- Hover and selected indications only appeared on grey but not white
rows in the daemon table on System > Daemons.
Known bug:
- After receiving a new job, if a result that has been found and
verified before the job change was executed is submitted, this result
will have the new job ID, which may cause the pool to consider the
submission to be invalid (some pools correct this sort of mistake and
accept the submission regardless.)
https://linzhi.io/firmware/fw-rd-20210421-1947.tar
https://linzhi.io/firmware/fw-rd-20210421-1947-full.tar
Configuration:
- Controller and slot configuration now use UI elements for each
variable, instead of editing a (fake) configuration file.
- At the MQTT interface, configuration items now have per-variable
granularity (before, all variables of an area were sent/changed at
once.)
- The format in which lists (DEST and USER) are stored in the EEPROM
has changed. When the new firmware boots, it converts all old entries
to the new format. The old entries are preserved (for now), allowing
downgrades to older firmware versions.
A backup of the user area of the configuration EEPROM on the
controller (the only area that is modified by the conversion) is
stored on the uSD card in the file "cfgdb-user.old".
To restore the old database, run
cfgdb -w Network page.
Accounts:
- Account creation and management is now available under
Configuration > Account.
Note that most operations only work if an account has a SHA-256
password hash. If accounts with other types of password hash have
been set up, either delete them, or force a password change as
administrator.
- The list of current access rights has moved from System > R&D >
Authentication tests > Access to Configuration > Account.
- New MQTT hierarchy /account for account management. (The USER_*
variables are now hidden from users.)
Networking:
- MAC address, configuration source (DHCP or static/defaults), and
parameters obtained from DHCP are shown on the new System > Network
page.
- New MQTT hierarchy /net for network status.
Daemons:
- System > Daemons: now shows each daemon's uptime.
- It can be difficult to copy the content of the log window if the
daemon produces lots of output (e.g., mined). The log window now has
a download button that is easier to use.
(If using a pop-up blocker, the miner may need to be whitelisted for
the download to work. The access immediately after whitelisting may
fail.)
Crew:
- Access to the HTTP/JSON service is now controlled through the
variable CREW_API, and CREW_API_PORT now only provides the port
number.
- The HTTP/JSON service is now disabled by default. CREW_API=local
enables local access, CREW_API=remote enabled network access.
Note: if the API was already enabled for remote access, it will be
disabled after the upgrade. To enable it again, set CREW_API in
Configuration > Controller and then reboot the miner.
- If a PSU fails, this causes a DCDC shutdown and makes the whole
board inoperable. Therefore, if a DCDC shutdown is accompanied by an
I2C shutdown, indicate it as "PSHUT" and not as multi-causal failure
("SHUT").
Command-line tools:
- "where" now also reports the MAC address.
https://linzhi.io/firmware/fw-rd-20210317-0344.tar
https://linzhi.io/firmware/fw-rd-20210317-0344-full.tar
Crew:
- crewd now has a HTTP-based JSON API. Access locally (on the miner)
with: curl localhost:81/miners
Remote access can be enabled by setting the configuration variable
CREW_API_PORT to the desired port number, e.g.,
- in Configuration > Controller, set CREW_API_PORT=81
- reboot with System > Firmware > Reboot
- then run, from any place on the network that is allowed to reach
the miner:
curl MINER:81/miners
(MINER is the miner's address)
- The I2C shutdown flag is now treated like any other flag when sorting
by flags. Before, it was ignored.
- Highlighting is now shared with the crew, and indicated in the Flags
column of Crew > Miners.
Power shutdown, temperature warning/shutdown:
- The corresponding MQTT messages (/power/shutdown, /temp/warning,
/temp/shutdown, etc.) now contain a bit mask indicating which slot(s)
signaled the condition.
- The indicated slots are shown in the Web UI, and are included in
Power > Dump.
Temperature:
- The stylized boards on Temperature > Boards how have orientation
markers.
Timekeeping (Network Time Protocol:
- Use time.cloudflare.com instead of time.google.com, to avoid blocking
issues.
- Remove ptbtime2.ptb.de as "fallback" server.
- NTP could not be turned off through configuration (in Configuration >
Controller). Now setting NTP=off disables NTP.
Bug fixes:
- The short-term average ("short") in the JSON export of Crew > Miners
was divided to 1/100 of the real GH/s value.
- If the "Default" mapping was selected in Crew > Setup, http URLs were
lacking the colon and thus didn't work.
https://linzhi.io/firmware/fw-rd-20210223-2105.tar
https://linzhi.io/firmware/fw-rd-20210223-2105-full.tar
Web UI:
- A user-configured banner (text) can be set on a controller and
hashboard basis (variable BANNER). This banner is shown at the bottom
of the top status bar. This can be used as the UI equivalent of
putting a sticker on a miner. (E.g., "Jim's machine", "Replace board
1", etc.)
- Clarified description of Configuration > Pool > Templates and
System > R&D > Mined destination.
Temperature:
- The threshold for temperature warnings can now be configured on a
per-slot level, through the variable TWARN. This temperature is
published on MQTT with the topics /temp/SLOT/warn, and shown on the
side of the temperature charts.
- Temperature > Boards now uses a table, shows both slots (if present),
matches the physical layout of the boards, and indicates temperature
ranges with colors.
Power:
- If a DCDC shutdown was triggered multiple times, both the first and
the latest register dump are sent on /power/dump, and shown in the
UI.
Crew:
- The "SILENT" flag is now treated like any other flag when sorting by
flags. Before, it was ignored.
- Occasionally refresh entries of silent miners. That way, they are
still shows if the Web UI is started or reloaded.
- In a busy farm (> 100 miners), the high rate of crew updates could
overwhelm the browser, making it unresponsive. To counter this, we
now update the crew list at most once per second.
Experimental:
- Diagnostics now have "My IP", to obtain the IP address at which the
miner is seen by the pool. (Used by some pools for authenticating
configuration changes.)
Bug fixes:
- The 2nd byte of the pool IPv4 address in /mine/pool/state was
incorrectly shifted, making the address look plausible but wrong.
This incorrect information was also used by the crew.
- /daemon/NAME/cycle caused the "stop" and the "run" event on
/daemon/NAME/time to be reported in the wrong order, leaving the UI
confused about the daemon's state.
Known bug:
- (Fixed in fw-rd-)
If a destination (pool) URI lacks the coin name, mined will send
epoch changes notifications without coin and algorithm. This in turn
causes dagd to reject the epoch changes, and thus fail to start
computing new DAGs. This eventually causes mined to run out of
pre-computed DAGs.
Work-around: specify coin name and stratum protocol, e.g.,
eth.stratum1://0x...
Coin name and the stratum protocol are automatically included in the
URI if using the wizard.
https://linzhi.io/firmware/fw-test-20210201-1933.tar
https://linzhi.io/firmware/fw-test-20210201-1933-full.tar
Experimental:
- If set, the value of the controller configuration variable
NONCE_OFFSET is added to the start value of the nonce search. This
can be used to search ranges not starting at the low end of the
range. Extranonce and random padding are still applied, before
adding this offset.
A typical setting would be
NONCE_OFFSET=0x8000000000
- Fan speed can now be regulated as a function of the temperature of
the hottest die in the miner. To set a profile, enter a
space-separate list of degC:duty% pairs in Temperature > Control.
Example: 50:30 80:100
This sets a duty cycle of 30% until 50 C, ramps up linearly to 100%
at 80 C, and stays at 100% for higher temperatures.
The profile can also be set through the controller configuration
variable FAN_PROFILE. In instead of spaces, commas are used as
separators. E.g.,
FAN_PROFILE=50:30,80:100
- Authentication may now work for SECURE=y (although with some issues
remaining). Note that authentication can be used with or without TLS,
but the latter only works with Chrome/Chromium.
See https://almesberger.net/linzhi/AUTH.txt for details.
- Diagnostics tab with mtr (ping/traceroute), disc (bus presence and
length discovery), and ecbt (ECB data integrity test).
Command-line tools:
- added mtr (advanced traceroute-type program)
Bug fixes:
- crewd could fail with the error "no interface found" (in the log at
System > Daemons, crewd) if trying to obtain the IP address at a bad
moment, probably during renewal of the DHCP lease.
https://linzhi.io/firmware/fw-rd-20210115-1704.tar
https://linzhi.io/firmware/fw-rd-20210115-1704-full.tar
General:
- If a hashboard signals a CML error, we avoid shutting down if this
was the only abnormal condition reported by the voltage regulators.
Firmware updates:
- Firmware tar can now include all files needed to create a bootable
uSD card. (fw-rd-*-full.tar)
- A csum*.tar file in the top-level directory of the uSD card is
extracted into /mnt/boot/csum/ if it has a more recent version
than the existing collection of checksum files.
Command-line tools:
- Removed tunecb (obsoleted by fclk)
- Added tripisl (create fault conditions in an ISL68127)
Bug fixes:
- crewd had a race condition that could cause a segfault when starting.
- mined could crash if trying to send a zero-length hex string to the
pool. Note: the cause why it was trying to send a zero-length hex
string is still unknown. This fix may thus hide another problem.
https://linzhi.io/firmware/fw-rd-20210107-0600.tar
General:
- Use the space on uSD cards greater than 16 GB.
- System > R&D > CID now contains partial decoding of the card ID.
- If MBIST fails when bringing up a new machine, retry. Report
persistent failure as boot problem.
Firmware releases:
- Begin deploying new key for evaluation releases.
- Support firmware packages that contain additional files.
Crew:
- ID in JSON export would normally be a number, but for stale entries
it became be a string. Now it's always a number.
Bug fixes:
- Unpopulated slots caused a false boot warning to be raised and
SMBus errors to be reported in System > Problems > Boot problem.
- In the reporting path, the nonce was passed as 16 bits instead of
64. This showed on MQTT in /mine/results and in the Web UI in
System > Results, column Nonce. Results sent to the pool were not
affected.
Known bugs:
- If switching coins, dagd may crash. It may also crash again when
restarted.
Work-around: delete the content of the DAG cache, directory dag/
on the uSD card.
Fix: planned for the dagd redesign.
https://linzhi.io/firmware/fw-rd-20210102-0409.tar
General features:
- Factory reset on Configuration > Reset. Erases the user settings on
all EEPROMs in the system (controller and any installed hashboards.)
- Boot problems may now be reported in System > Problems. They are
indicated in the status area ("BOOT"), activate yellow blinking
(warning), and are shown in the crew as flag "BOOT".
Web UI:
- Cleaned up several JavaScript issues closure-compiler complained
about. This should cause no user-visible changes.
Pool templates:
- Removed Crazypool/SOLO (closed)
- Changed Crazypool ETC URL from pps-etc.crazypool.org to
etc.crazypool.org
- Changed F2pool ETH and ETC from wallet.miner to account.miner
Hardware tuning:
- Adjust hashboard voltages for better stability (may increase power
consumption by ~5 W per board.)
Bug fixes:
- Don't show RPC (needed if setting up as NFS client) to the outside
world.
- If the first destination URI attempted by mined specified no coin,
mined would segfault.
Known bugs:
- (Fixed in fw-rd-20210421-1947)
If making changes to the configuration in rapid succession, the
miner (the configd process) may fail to receive an update if still
processing part of the previous one. This is especially visible on
the destination table, which remains in the inactive state if an
update is not answered.
Work-around: wait at least 5 seconds after the destination has
become active before making another change.
Work-around: if the destination table is stuck, reload the Web
page and repeat the previously attempted change.
Fix: planned as part of a comprehensive redesign of the
configuration system (required for proper access control.)
- (Fixed in fw-rd-20210107-0600)
If only one slot is populated, errors
smbus_read_buffer_pec: Input/output error, addr 0x60, reg 0xAD
will be generated when setting up the hashboard. This is reported
in System > Problems > Boot problem.
Work-around: verify that only "addr 0x60, reg 0xAD" are present
in the problem report, then clear the notification and ignore
the report.
Fix: expected for the next firmware update.
https://linzhi.io/firmware/fw-rd-20201228-1906.tar
General features:
- Reset counters in System > Problems now only reset when the miner
restarts (before, they were zeroed on each page (re)load.)
- Reset action counters (System > Problems) indicate which type of
reset was performed.
- Added a "quick" reset mode without loading the firmware. This mode
is used for most resets, and more costly resets are only performed
infrequently.
- Dark mode: if the configuration variable DARK_TIMEOUT is set to a
non-zero number of seconds, all LEDs are turned off after this time
if they were showing constant green.
- After a DCDC shutdown, a register dump is now available under
Power > Dump.
- mined reports the share difficulty requested by the pool on
/mine/pool/difficulty. The difficulty is shown in the UI on
System > R&D.
- SerDes speeds of up to 31875 Mbps can now be configured (previous
maximum was 28750 Mbps).
Web UI:
- Show the destination table as inactive while an update is in
progress. This is to discourage changes that would be superseded
when the miner returns the updated configuration.
Pool templates:
- Added the following ETH pools: 2Miners/SOLO, Beepool, Ethermine,
f2pool, FirePool, Hiveon, MiningPoolHub, Nanopool, SpiderPool.
- Added the following ETC pool: f2pool.
- Removed the following ETC pools: 1stpool (has no active miners),
AntPool (no longer supports ETC), Anyhash.net (no pool at domain).
- Moved CLO (Callisto) after ETH.
Crew:
- The serial numbers of hashboards are now shared with the crew.
- The wallet/account and rig name of the mining destination are now
shared with the crew.
Bug fixes:
- DCDC shutdowns were not reported on the Web UI or the crew. This was
due to incorrectly set MQTT permissions. The shutdown itself, i.e.,
powering down the hashboards, was not affected.
- SERDES_TRIM was incorrectly processed, producing an invalid
connection map that crashed mined.
- The pool configuration wizard generated incorrect URIs in some
cases, e.g., the EU region in 2Miners.com templates.


Family
public enum Family : String, CaseIterable, Equatable, Hashable, CustomStringConvertible
Available color familes. All material colors belong to a family.
-
Red Colors
Declaration
Swift
case red
-
Pink Colors
Declaration
Swift
case pink
-
Purple Colors
Declaration
Swift
case purple
-
Deep Purple Colors
Declaration
Swift
case deepPurple
-
Indigo Colors
Declaration
Swift
case indigo
-
Blue Colors
Declaration
Swift
case blue
-
Light Blue Colors
Declaration
Swift
case lightBlue
-
Cyan Colors
Declaration
Swift
case cyan
-
Teal Colors
Declaration
Swift
case teal
-
Green Colors
Declaration
Swift
case green
-
Light Green Colors
Declaration
Swift
case lightGreen
-
Lime Colors
Declaration
Swift
case lime
-
Yellow Colors
Declaration
Swift
case yellow
-
Amber Colors
Declaration
Swift
case amber
-
Oragne Colors
Declaration
Swift
case orange
-
Deep Orange Colors
Declaration
Swift
case deepOrange
-
Brown Colors
Declaration
Swift
case brown
-
Grey Colors
Declaration
Swift
case grey
-
Blue Grey Colors
Declaration
Swift
case blueGrey
-
Declaration
Swift
public var description: String { get }
-
Declaration
Swift
public static func == (lhs: Family, rhs: Family) -> Bool
-
Declaration
Swift
public func hash(into hasher: inout Hasher)


Player will show here
Paused
Play
Pause
Toggle mute
Player will show here
Paused
Play
Pause
Toggle mute
Player will show here
Paused
Play
Pause
Toggle mute


C/C++ Development User Guide
The C/C++ Development Toolkit (CDT) is a collection of Eclipse-based features that provides the capability to create, edit, navigate, build, and debug projects that use C and/or C++ as a programming language.
The CDT does not include the necessary compilers and debuggers to convert C/C++ code into executable programs and to debug those programs, but it does provide the frameworks that allow such tools to be integrated in a consistent fashion. This allows you to mix and match such tools depending on your project requirements.
Often, commercial distributions of the CDT include the necessary tools and integrations. If yours does not, the base CDT does provide support for integration with the GNU tools for build and debug. Please see the Before you begin section for installation instructions
Before you beginGetting Started
Concepts
Tasks
Reference
What's new


Conservation prioritization using integer programming techniques. To solve large-scale problems, users should install the 'gurobi' optimizer (available from <http://www.gurobi.com/>).
| Version: | 4.0.2 |
| Depends: | R (≥ 3.4.0), raster, sp, proto |
| Imports: | utils, methods, assertthat (≥ 0.2.0), data.table, uuid, Matrix, igraph, ape, rgeos, plyr, parallel, doParallel, magrittr, tibble (≥ 1.4.2) |
| LinkingTo: | Rcpp, RcppArmadillo, BH |
| Suggests: | testthat, knitr, roxygen2, shiny, xtable, rhandsontable, RandomFields, velox, maptools, PBSmapping, spdep, gurobi, lpsymphony, Rsymphony, rmarkdown, prioritizrdata |
| Published: | 2018-06-28 |
| Author: | Jeffrey O Hanson [aut], Richard Schuster [aut, cre], Nina Morrell [aut], Matthew Strimas-Mackey [aut], Matthew E Watts [aut], Peter Arcese [aut], Joeseph Bennett [aut], Hugh P Possingham [aut] |
| Maintainer: | Richard Schuster <mail at richard-schuster.com> |
| BugReports: | https://github.com/prioritizr/prioritizr/issues |
| License: | GPL-3 |
| URL: | https://prioritizr.net, https://github.com/prioritizr/prioritizr |
| NeedsCompilation: | yes |
| SystemRequirements: | C++11 |
| Materials: | README |
| CRAN checks: | prioritizr results |
| Reference manual: | prioritizr.pdf |
| Vignettes: |
Gurobi Installation Guide prioritizr Publication Record Salt Spring Island Tutorial Tasmania Tutorial Management Zones |
| Package source: | prioritizr_4.0.2.tar.gz |
| Windows binaries: | r-devel: prioritizr_4.0.2.zip, r-release: prioritizr_4.0.2.zip, r-oldrel: prioritizr_4.0.2.zip |
| OS X binaries: | r-release: prioritizr_4.0.2.tgz, r-oldrel: prioritizr_4.0.2.tgz |
| Old sources: | prioritizr archive |
Please use the canonical form https://CRAN.R-project.org/package=prioritizr to link to this page.


My name is Marcin (Martin). I'm from Poland.
Where is it?
http://goo.gl/maps/gStXb
I play chess on
FICS
Do you know
GIT
?
Think for yourself:
The Virus of Faith - Richard Dawkins
Question Everything!


Tree Diagram Menu Options
To access tree diagram specific options, select Call Tree and one of the following menu options:
• Display Arguments
• Hide Arguments
• Prune Paths hides functions whose name matches a specified string or hides defined-in files.
The Prune Tree Diagram dialog box appears.
a In the Prune Functions Matching and/or Prune Functions Defined in the Files Matching fields, specify the desired string.
Note: Both fields are case-sensitive and accept wildcard characters such as * to prune multiple occurrences of the specified strings.
b Click OK.
DIScover hides all functions below the selected function, marking them with triangular tabs at the lower corners of the functions immediately above or below them.
• Show Paths
The Show Tree Diagram Paths dialog box appears.
a In the Find Entities Matching and/or Find Entities Defined in Files Matching fields, specify the desired string.
Note: Both fields are case-sensitive and accept wildcard characters such as * to find multiple occurrences of the specified strings.
b Select a path display option:
• Show Paths to the Right Only
• Show Paths to the Left Only
• Show Paths to Both Left and Right
c Click OK.


| AutotunerPID Toolkit |
PID_STRUCTURE Structure selection for a ISA PID regulator. REGSTRUCT = PID_STRUCTURE(MODEL,REQSTRUCT) returns the ``best'' structure for the regulator, assuming that the controlled plant can be described with a FOPDT model. MODEL is a structure with the description of the process model with the fields {m L T} (parameters of a FOPDT model M(s) = m*exp(-sL)/(1+s*T)). The structure may be computed through the function setting the flag REQSTRUCT to 'AUTO', or may be constrained to a particular one by setting the flag REQSTRUCT to 'PI' or 'PID' respectively. The structure selection is performed only if a FOPDT model of the process is given, otherwise the PID structure is selected. If the control problem is intrinsically difficult the PID structure is selected, and a warning message is prompted. Author: William Spinelli<EMAIL_ADDRESS>Copyright 2004 W.Spinelli $Revision: 1.0 $ $Date: 2004/02/27 12:00:00 $
0001 function regStruct = pid_structure(model,reqStruct) 0002 %PID_STRUCTURE Structure selection for a ISA-PID regulator. 0003 % 0004 % REGSTRUCT = PID_STRUCTURE(MODEL,REQSTRUCT) returns the ``best'' 0005 % structure for the regulator, assuming that the controlled plant can be 0006 % described with a FOPDT model. 0007 % MODEL is a structure with the description of the process model with the 0008 % fields {m L T} (parameters of a FOPDT model M(s) = m*exp(-sL)/(1+s*T)). 0009 % The structure may be computed through the function setting the flag 0010 % REQSTRUCT to 'AUTO', or may be constrained to a particular one by 0011 % setting the flag REQSTRUCT to 'PI' or 'PID' respectively. 0012 % 0013 % The structure selection is performed only if a FOPDT model of the 0014 % process is given, otherwise the PID structure is selected. If the 0015 % control problem is intrinsically difficult the PID structure is 0016 % selected, and a warning message is prompted. 0017 % 0018 % Author: William Spinelli<EMAIL_ADDRESS>0019 % Copyright 2004 W.Spinelli 0020 % $Revision: 1.0 $ $Date: 2004/02/27 12:00:00 $ 0021 0022 if nargin < 2 0023 reqStruct = 'AUTO'; 0024 end 0025 0026 switch reqStruct 0027 case 'PI' 0028 % override selection 0029 regStruct = 'PI'; 0030 0031 case 'PID' 0032 % override selection 0033 regStruct = 'PID'; 0034 0035 case 'AUTO' 0036 if isfield(model,'m') 0037 % selection performed only if a FOPDT model is provided 0038 m = model.m; L = model.L; T = model.T; 0039 0040 % compute the ultimate frequency 0041 wmin = (-pi/2)/L; % lower bound 0042 wmax = (-pi)/L; % upper bound 0043 w = real(logspace(log10(wmin),log10(wmax),1024)); 0044 phaseM = angle(m*exp(-j*L*w)./(1+j*w*T)); 0045 wu = w(find(phaseM==min(phaseM))); 0046 0047 k1 = 1/abs(m*exp(-j*L*wu)/(1+j*wu*T)); 0048 th1 = L/T; 0049 0050 if th1>1 & k1<1.5 0051 regStruct = 'PI'; 0052 msgbox('Bad results expected','AutotunerPID','warn'); 0053 elseif (th1>0.6 & th1<1) & (k1>1.5 & k1<2.25) 0054 regStruct = 'PI'; 0055 elseif th1<0.6 & k1>2.25 0056 regStruct = 'PID'; 0057 else 0058 regStruct = 'PID'; 0059 msgbox('Bad results expected','AutotunerPID','warn'); 0060 end 0061 else 0062 regStruct = 'PID'; 0063 end 0064 0065 otherwise 0066 msgbox('Unknown structure','AutotunerPID','warn'); 0067 regStruct = 'PID'; 0068 end
| pid_isatd | pid_tuning |


Emma really likes to play peekaboo. The video below, besides demonstrating how a baby can make an adult sound silly, shows off her peekaboo skills .. and her ability to take down the paparazzi. A star is born!
--- layout: post title: Emma Likes to Play Peekaboo categories: [] tags: [] status: publish type: post published: true meta: _original_post_id: '' _original_import_author: John Duprey author: ---
Emma really likes to play peekaboo. The video below, besides demonstrating how a baby can make an adult sound silly, shows off her peekaboo skills .. and her ability to take down the paparazzi. A star is born!


Destroy babel
Number of shapes:
Surface area occupied by shapes:
+
-
Number of shapes per sec
+
-
Gravity value


Comes with a range of triggers and effects to create limitless UX possibilities.
Animations that work beautifully on desktop and mobile devices.
Works on all modern browsers and degrades gracefully on the old ones.
No more wrangling Javascript code libraries to accomplish simple interactions.
Choose how your element will appear before the page loads. (Optional)
Decide what kind of event or action has to take place to initiate an animation.
Combine CSS styles and transitions for an animation when the trigger is initiated.
Select any element, go to the element settings and apply the interaction.
Touch devices have limited resources to allow animations while scrolling.
According to Wikipedia, a cactus is a member of the plant family Cactaceae within the order Caryophyllales.
When a user scrolls down the page and this element comes into view, an animation is triggered. Then a different set of effects are triggered when the element is scrolled out of view.
Touch devices have limited resources to allow animations while scrolling.
When an element is scrolled into view, an interaction can be applied to another element, or elements, by choosing a class. In this example the interaction is set on this section, so when it is scrolled into view the effects are applied to the Footer Flyout class . The initial appearance is set on the affected element via a different interaction, not on this section’s interaction.
Here is some more hidden text! More and more of it. I love hidden text. It’s so awesome. I wish there was a tree with hidden text growing on it. I’m not exactly sure how that would be possible, but I can dream!
Clicking on an element can affect another element on the page. In this example a click interaction is set on the blue button. Once it is clicked the effects are applied on the Hidden Text class. A different set of effects can be applied to Hidden Text class when the button is clicked a second time (toggle). In this case the height of the element goes back to 0.
The click trigger can affect any element on your site. Here is an example of a click trigger on a button that affects the Sidebar class, which is a fixed on the right side of the page. A different interaction is set on a button inside the sidebar. Clicking on this button will transition the Sidebar element. The sidebar element has its own interaction with just an initial appearance.
Touch devices don't have a concept of mouse hover.
Hovering over an element can trigger an interaction that can affect any element on the page. Also, more than one trigger can be added to the same interaction. In this example hovering over the Album Art element above will trigger an interaction that has 3 different hover triggers. Each hover trigger affects a different class. One trigger fades in the Action Icons, another fades in the pink Album Gradient, and another fades in the Album Info. Each has unique effects and transitions.
Let’s see what unique interactions you build inside of Webflow.
Interaction starts as soon as the page begins to load.
Triggered when your element scrolls into view.
Activates an interaction with a single or toggle click.
Mouse hover over an element. Degrades on touch devices.
Initiates when new slide (from slider) comes into view.
Increments an effect as a user scrolls (like parallax).
Specify any type of event as a trigger for your interactions.
Move, rotate, and scale your element or selector.
Make an element or selector more transparent or opaque.
Change the dimensions of the current or target element.
Switch your element's display to block, inline-block or inline.
Add delays and alter durations of individual animation steps.
Add unique transitions at any step of your interaction.
Make your animation steps repeat until the end of time.
Change the whole look and feel with any trigger.


--- title: Places category: Features order: 706 ---
For place search results, click the link Places under the search box.
To find places near a location, search for the place type and the location. (e.g. barcelona hotels or pizza near philadelphia)
Place search results are powered by Yelp.


?B
O
T
A
N
I
C
A
SsV®4
R
D
NEW
YORK
BOTANICAL
GARDEN
ACADEMY
OF
NATURAL
SCIENCES
OF
PHILADELPHIA
.
.
EXPLORATION
of
BERMUDA
New
York
Botanical
Garden
ibcmtn
STEWARDSON
BROWN
)
_
N.
L.
BRITTON
|
Collectors
Aug.
27—sept.
21,1912
det.
confirm.
U.ScholZ
Apr«
78
MUS.
BOT.
BEROL.
1604409
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Simulation = For analysis and study
Emulation = For usage as a substitute
A simulator is an environment which models but an emulator is one that replicates the usage as on the original device or system.
Simulator mimics the activity of something that it is simulating. It "appears"(a lot can go with this "appears", depending on the context) to be the same as the thing being simulated. For example the flight simulator "appears" to be a real flight to the user, although it does transport you from one place to another.
Emulator, on the other hand, actually "does" what the thing being emulated does, and in doing so it too "appears to be doing the same thing". An emulator may use different set of protocols for mimicking the thing being emulated, but the result/outcome is always the same as the original object. For example, EMU8086 emulates the 8086 microprocessor on your computer, which obviously is not running on 8086(=different protocols), but the output it gives is what a real 8086 would give.


{% include "accounts/_account_header_item.html" with permission_required='modify' tab_id='profile' url_name='account_profile' icon_class='inbox' tab_name='Profile' %}
{% include "accounts/_account_header_item.html" with permission_required='administer' tab_id='members' url_name='account_access' icon_class='user' tab_name='Members' %}
{% include "accounts/_account_header_item.html" with permission_required='modify' tab_id='teams' url_name='account_team_list' icon_class='users' tab_name='Teams' %}
{% include "accounts/_account_header_item.html" with permission_required='administer' tab_id='settings' url_name='account_settings' icon_class='cog' tab_name='Settings' %}


We consider a new single-arm study with two arms:
In a typical analysis, we use this study to estimate the log hazard ratio of the novel treatment arm relative to the external control, \(\hat\lambda_{TRTvEC}^{new}\). However, the non-randomized design may result in additional bias and variability. It what follows, we describe a meta-analytic approach that uses historical (i.e., reference) studies to incorporate this additional bias and variability.
In a randomized clinical trial, we estimate the treatment effect in an unbiased manner by comparing the novel treatment arm to an internal control arm. Since there is no internal control arm in a single-arm trial, we adjust the hazard ratio from the single-arm study to obtain a hazard ratio that we would have obtained had an internal control existed. Specifically, letting \(\lambda\) denote the true log hazard ratio of a treatment comparison (i.e., if we could observe the outcome in an infinite sized population), we have,
\[ \lambda_{TRTvIC}^{new} = \lambda_{TRTvEC}^{new} - \lambda_{ICvEC}^{new}. \]
Under the assumption of proportional hazards, this relationship holds exactly for the true underlying hazard ratios. Note that with observed hazard ratios, due to the nature of hazard ratios being estimated from non-linear optimization, the corresponding relationship is an approximation with a small error attached to it.
We cannot estimate of \(\lambda_{ICvEC}^{new}\) in a single-arm study, but we can predict its probability distribution using a set of reference studies.
We consider \(n\) reference studies and a model for the treatment, external control, and internal control arms. As shown in the Appendix, outcomes among the reference studies for the treatment arm are irrelevant and model estimation can focus solely on comparisons of the external and internal controls. That is, we model estimates of the hazard ratio of the internal control relative to the external control as,
\[ \hat\lambda_{ICvEC,j} \sim N (\lambda_{ICvEC,j}, V_j), \]
where \(j\) indexes a study and \(V_j\) is the sampling variance. We assume that the true log hazard ratio is distributed with mean \(\mu\) and variance \(\sigma^2\),
\[ \lambda_{ICvEC,j} \sim N ( \mu , \sigma^2), \] so that \(\mu\) is a measure of the average bias in the external control arms across studies and \(\sigma^2\) is a measure of between study variability. It follows that the estimated log hazard ratio is distributed as,
\[ \hat\lambda_{ICvEC,j} \sim N ( \mu , \sigma^2 + V_j). \]
Our primary estimation methodology uses Bayesian techniques to estimate \(\mu\) and \(\sigma\), with priors given by,
\[
\mu \sim N(0, A) \\
1/\sigma^2 \sim \rm{Gamma}(a, b),
\] By default, we set \(A = 1/0.0001\) so that the prior for \(\mu\) is relatively uninformative. Similarly, \(a = 0.001\) and \(b = 0.001\) by default, implying that the precision, \(1/\sigma^2\), has a prior mean of \(a/b=1\) and variance of \(a/b^2 = 1000\). Markov Chain Monte Carlo (MCMC) sampling is performed using the JAGS software and implemented in the function ecmeta()
.
The Appendix details an alternative non-Bayesian approach based on maximum likelihood. This technique can be helpful when running Monte Carlo simulations and there is a need for a faster implementation or to assess the influence of the priors.
For the new single-arm study, we first estimate the log hazard ratio, \(\hat{\lambda}_{TRTvEC}^{new}\), and its variance \(V^{new}\) (e.g., using propensity score techniques). We can then obtain the sampling distribution for \(\lambda_{TRTvEC}^{new}\) with the model,
\[ \lambda_{TRTvEC}^{new} \sim N(0, A), \\ \hat{\lambda}_{TRTvEC}^{new} ~ N(\lambda_{TRTvEC}^{new}, V^{new}), \] and, by default, using a diffuse prior with \(A = 1/0.0001\). Sampling is again implemented using the JAGS software.
We then sample \(\lambda_{ECvIC}^{new}\) using posterior draws of \(\mu\) and \(\sigma\) as,
\[ \lambda_{ICvEC}^{new} ~ \sim N ( \mu , \sigma^2). \] Combining posterior draws of \(\lambda_{TRTvEC}^{new}\) and \(\lambda_{ICvEC}^{new}\), we obtain samples of our quantity of interest,
\[ \lambda_{TRTvIC}^{new} = \lambda_{TRTvEC}^{new} - \lambda_{ICvEC}^{new}. \]
We can visualise a model with treatment, internal control, and external control arms as a directed acyclic graph (DAG). In the figure below, the nodes with a suffix TRUE represent the outcomes within a population and the nodes with a suffix OBS represent the observed outcomes in the study. The lighter coloured nodes are those which are not observed, the darker coloured nodes are observed and the darkest nodes in the outcomes for the treatment and the internal controls in the test are what we are ultimately interested in. \(\mu\) and \(\sigma\) describe the level of similarity between the outcomes in the internal and external control arms.
It is clear that the true and observed treatment outcome for the reference studies plays no part in these calculations and so can be discarded. We can therefore reformulate our problem as an alternative DAG expressed in terms of the observed hazard ratios.
\(\mu\) and \(\sigma\) can be estimated by maximizing the log-likelihood function. In particular, given a set of reference studies indexed by \(j\), estimated log HRs between the internal and external controls, \(\hat\lambda_{ICvEC,j}\), and estimated standard errors \(V_j\), it is not hard to show that we can estimate \(\mu\) and \(\sigma\) by optimization of the log-likelihood function,
\[ \text{log } l(\mu,\sigma) = 0.5 \times \sum{log(\sigma^2+V_j)} + 0.5 \times \sum{ \frac{(\hat\lambda_j-\mu)^2}{(\sigma^2+V_j)} }. \]
We note (see Gelman et al. 2020, p. 66) that the posterior predictive distribution for a new observation \(y^{new}\) follows a t distribution with location \(\overline{y}\), scale \(s\sqrt{(1 + 1/n)}\), and \(n-1\) degrees of freedom where \(\overline{y}\) is the mean and \(s^2=1/(n-1)\sum (y_i - \overline{y})^2\) is the variance from the \(n\) observations. In our setting it follows that \(\lambda_{ICvEC}^{new}\) follows a t distribution with mean \(\hat{\mu}\) and scale \(\hat{\sigma}\sqrt{(1 + 1/n)}\).
A simulation procedure for obtaining draws of \(\lambda_{TRTvIC}^{new}\) then proceeds as follows:
Draw \(\lambda_{TRTvEC}^{new} \sim N(\hat{\lambda}_{TRTvEC}^{new}, V^{new})\)
Draw \(\lambda_{ICvEC}^{new} \sim t_{n-1}(\hat{\mu}, \hat{\sigma}\sqrt{(1 + 1/n)})\) where \(t_v(a, b)\) is a student t distribution with \(v\) degrees of freedom, location \(a\), and scale \(b\)
Use the draws from 1 and 2 to compute \(\lambda_{TRTvIC}^{new} = \lambda_{TRTvEC}^{new} - \lambda_{ICvEC}^{new}\)


Instructions
Enter a website to receive a shortened link.
Once you have the shortened link, you can re-enter the link to be redirected to the site.
Alternatively you can use the site as an API, by inserting the website,
or shortened link after the https://link-shortener.glitch.me/


Antreminder - Login
A verification link has been sent to your email.
Your account has been successfully activated. Please login below.
Antreminder
Sign in
Create a New Account


|
Condition |
Commonly Used Drugs |
|
Acid Indigestion and Upset Stomach |
Antacids |
|
Acne |
Anti-acne Cleansing
(Topical) |
|
Actinic Keratoses |
Fluorouracil |
|
Acute Myocardial Infarction |
Antithrombotic
Agents |
|
Addison's Disease |
Adrenocorticoids (Systemic) |
|
Aging |
Dehydroepiandrosterone (DHEA) |
|
AIDS and HIV Infection |
Fusion
Inhibitors |
|
Alcohol Withdrawal |
Benzodiazepines |
|
Allergies and Allergic Reactions |
Adrenocorticoids (Nasal Inhalation, Oral Inhalation,
Systemic) |
|
Alopecia |
Dutasteride |
|
Altitube Illness |
Carbonic Anhydrase Inhibitors |
|
Alzheimer's Disease |
Cholinesterase
Inhibitors |
|
Amebiasis |
Chloroquine |
|
Amenorrhea |
Bromocriptine |
|
Amyotrophic Lateral Sclerosis (ALS) |
Riluzole |
|
Anemia |
Adrenocorticoids (Systemic) |
|
Angina |
Antiplatelet Agents |
|
Anorexia |
Calcium
Carbonate |
|
Anxiety |
Antidepressants (Tricyclic, SSRIs, SNRIs) |
|
Appetite Stimulant |
Antihistamines |
|
Arthritis (Osteoarthritis, Rheumatoid Arthritis) |
Acetaminophen |
|
Asthma |
Adrenocorticoids (Nasal Inhalation, Oral Inhalation,
Systemic) |
|
Athlete's Foot |
Antibacterials |
|
Attention Deficit Hyperactivity Disorder (ADHD) |
Amphetamines |
|
Autism |
Haloperidol |
|
Bacterial Infections |
Acetohydroxamic Acid (AHA) |
|
Benign Prostate Hyperplasia (BPH) |
Alpha Adrenergic
Receptor Blockers |
|
Bipolar Disorder |
Antipsychotics (Quetiapine, Olanzapine, Risperidone, Ziprasidone,
Haloperidol) |
|
Bites and Stings |
Adrenocorticoids (Topical) |
|
Bladder Inflammation |
Dimethyl Sulfoxide |
|
Bladder Spasms |
Clidinium |
|
Bleeding |
Antifibrinolytic Agents |
|
Blood Circulation |
Cyclandelate |
|
Blood Clots |
Anticoagulants
(Oral) |
|
Bronchial Spasms |
Anticholinergics |
|
Bronchitis |
Bronchodilators, Xanthine |
|
Bulimia |
Antidepressants, Tricyclic |
|
Burns |
Anesthetics (Topical) |
|
Bursitis |
Adrenocorticoids (Systemic) |
|
Cancer |
Adrenocorticoids (Systemic) |
|
Cancer Of The Skin |
Fluorouracil |
|
Canker Sores (Aphthous Ulcers) |
Amlexanox |
|
Chickenpox |
Acyclovir |
|
Cholesterol, High |
Cholestyramine |
|
Chronic Obstructive Pulmonary Disease (COPD) |
Adrenocorticoids (Systemic) |
|
Cirrhosis |
Colchicine |
|
Colds and Cough |
Acetaminophen |
|
Colic |
Hyoscyamine |
|
Congestion |
Bronchodilators,
Adrenergic |
|
Congestive Heart Failure |
Angiotensin-Converting Enzyme (ACE) Inhibitors |
|
Conjunctivitis (Pink Eye) |
Antibacterials (Ophthalmic) |
|
Conjunctivitis, Seasonal Allergic |
NSAIDs
(Ophthalmic) |
|
Constipation |
Laxatives,
Bulk-Forming (Psyllium) |
|
Contraception (Birth Control) |
Contraceptives, Oral
and Skin |
|
Convulsions (Epilepsy, Seizures) |
Anticonvulsants, Hydantoin |
|
Corneal Ulcers |
Antibacterials (Ophthalmic) |
|
Cushing's Disease |
Adrenocorticoids (Systemic) |
|
Cystitis |
Phenazopyridine |
|
Dandruff |
Antifungals (Topical) |
|
Dementia |
Buspirone |
|
Depression |
Antidepressants |
|
Dermatitis |
Adrenocorticoids (Systemic) |
|
Dermatomyositis |
Aminobenzoate Potassium |
|
Diabetes |
Antidiabetic Agents |
|
Diarrhea |
Attapulgite |
|
Dietary Supplements |
Calcium
Supplements |
|
Digestive Spasms |
Clidinium |
|
Diverticulitis |
|
|
Drowsiness |
Caffeine |
|
Dry Eyes |
Protectant (Ophthalmic) |
|
Ear Allergies |
Anti-Inflammatory
Drugs, Steroidal (Otic) |
|
Ear Infections (Otitis Media) |
Antibiotics for Otitis Media |
|
Ear Wax |
Antipyrine and Benzocaine (Otic) |
|
Eczema |
Adrenocorticoids (Topical) |
|
Emphysema |
Adrenocorticoids (Systemic) |
|
Endometriosis |
Danazol |
|
Erectile Dysfunction (Impotence) |
Alprostadil |
|
Esophagitis |
Histamine H2 Receptor
Antagonists |
|
Estrogen Deficiency |
Estrogen |
|
Eye Allergies |
Antiallergic Agents (Ophthalmic) |
|
Eye Conditions |
Antibacterials (Ophthalmic) |
|
Fatigue |
Caffeine |
|
Fever |
Acetaminophen |
|
Fibrocystic Breast Disease |
Danazol |
|
Fluid Retention (Edema, Swelling) |
Angiotensin Converting Enzyme (ACE) Inhibitors and
Hydrochlorothiazide |
|
Fungal Infections (Ringworm) |
Antifungals, Azoles |
|
Gallstones |
Ursodiol |
|
Gastroesophageal Reflux |
Histamine H2 Receptor
Antagonists |
|
Genital Warts (Condyloma Acuminatum) |
Podofilox |
|
Giardiasis |
Furazolidone, Quinacrine, Metronidazole, Nitazoxanide, Tinidazole |
|
Gingivitis and Gum Disease |
Chlorhexidine |
|
Glaucoma |
Antiglaucoma, Adrenergic Antagonists |
|
Gonorrhea |
Cephalosporins |
|
Gout |
Adrenocorticoids (Systemic) |
|
Hair Loss (Baldness) |
Antharil (Topical) |
|
Hay Fever |
Antiallergic Agents (Ophthalmic) |
|
Headache (Cluster, Migraine, Sinus, Tension, Vascular) |
Acetaminophen, Fioricet |
|
Heart Rhythm Disorders (Irregular Heartbeat) |
Amiodarone |
|
Heartburn (Indigestion) |
Antacids |
|
Hemorrhoids |
Adrenocorticoids (Topical) |
|
Herpes |
Antivirals (Topical) |
|
Hives (Urticaria) |
Antihistamines |
|
Huntington's |
Haloperidol |
|
Hypercalcemia |
Colesevelam |
|
Hyperglycemia |
Acarbose |
|
Hypertension (High Blood Pressure) |
|
|
Hyperthyroidism |
Antithyroid Drugs |
|
Hypertriglyceridemia |
Fibrates |
|
Hypoglycemia |
Glucagon |
|
Hypothyroidism |
Dextrothyroxine |
|
Incontinence |
Tolterodine |
|
Infertility |
Bromocriptine |
|
Inflammation |
Acetaminophen and Salicylates |
|
Inflammatory Bowel Disease (Colitis, Crohn's
Disease) |
Adrenocorticoids (Systemic) |
|
Influenza (Flu) |
Antivirals for Influenza |
|
Insomnia |
Belladonna Alkaloids
and Barbiturates |
|
Intermittent Claudication |
Intermittent Claudication Agents |
|
Irritable Bowel Syndrome |
Tegaserod |
|
Itching |
Adrenocorticoids (Topical) |
|
Jet Lag |
Melatonin |
|
Jock Itch |
Antifungals (Topical) |
|
Joint Pain |
NSAIDs |
|
Kidney Stones |
Allopurinol |
|
Labyrinthitis |
Antihistamines, Phenothiazine-Derivatives |
|
Leg Pain or Cramps |
Cyclandelate |
|
Leukemia |
Imatinib |
|
Lice |
|
|
Lupus (Skin and Systemic) |
NSAIDs |
|
Lyme Disease |
Cephalosporins |
|
Malabsorption |
Vitamin K |
|
Malaria |
Antimalarial |
|
Male Hormone Deficiency |
Androgens |
|
Melanoma |
Hydroxyurea |
|
Meniere's Disease |
Antihistamines |
|
Menopause |
Estrogens |
|
Menstrual Cramps (Dysmenorrhea) |
NSAIDs |
|
Menstruation, Excessive (Menorrhagia) |
Contraceptives,
Oral |
|
Mental and Emotional Disturbances |
Loxapine |
|
Motion Sickness |
Antihistamines |
|
Multiple Sclerosis |
Adrenocorticoids (Systemic) |
|
Muscle Cramp, Spasm, Strain |
Baclofen |
|
Myasthenia Gravis |
Adrenocorticoids (Systemic) |
|
Narcolepsy |
Amphetamines |
|
Narcotic Withdrawal |
Buprenorphine and Naloxone |
|
Nasal Allergy |
Adrenocorticoids (Nasal Inhalation) |
|
Nausea and Vomiting |
Antihistamines Phenothiazine-Derivative |
|
Neural Tube Defects (prevention) |
Folic Acid |
|
Night Blindness |
Beta Carotene |
|
Obesity |
Appetite
Suppressants |
|
Obsessive Compulsive Disorder |
Antidepressants, Tricyclic |
|
Ocular Hypertension |
Beta Adrenergic
Blocking Agents (Ophthalmic) |
|
Osteoporosis |
Alendronate |
|
Overactive Bladder |
Tolterodine, Oxybutynin, Trospium, Darifenacin, Solifenacin |
|
Overdose |
Ipecac |
|
Paget's Disease |
Alendronate |
|
Pain |
|
|
Pain In Mouth |
Anesthetics (Mucosal-Local) |
|
Panic Disorder |
Antidepressants, Tricyclic |
|
Parasites |
Anthelmintics |
|
Parkinson's Disease |
Antidyskinetics |
|
Parkinson's Tremors |
Antihistamines |
|
Peyronie's Disease |
Aminobenzoate Potassium |
|
Poisoning |
Charcoal
Activated |
|
Potassium Deficiency |
Potassium Supplements |
|
Premature Labor |
Isoxsuprine |
|
Premenstrual Syndrome (PMS) |
Antidepressants, Tricyclic |
|
Pressure Sores |
Benzoyl Peroxide |
|
Psoriasis |
Adrenocorticoids (Topical) |
|
Psychosis |
Thiothixene |
|
Psychotic Disorders |
Aripiprazole |
|
Rectal Fissures |
Anesthetics (Rectal) |
|
Respiratory Syncytial Virus (RSV) |
Ribavirin |
|
Rickets |
Vitamin D |
|
Rosacea |
Antibacterials (Topical) |
|
Scabies |
Pediculicides |
|
Schizophrenia |
Aripiprazole |
|
Scleroderma |
Aminobenzoate Potassium |
|
Shingles |
Antivirals (Topical) |
|
Sickle Cell Disease |
Hydroxyurea |
|
Sinusitis |
Cephalosporins |
|
Skin Disorders (Rashes) |
Antibacterials (Topical) |
|
Skin Lines and Wrinkles |
Botulinum Toxin (Type A) |
|
Sleep Apnea |
Antidepressants, Tricyclic |
|
Smoking Cessation |
Varenicline |
|
Sore Throat |
Anesthetics (Mucosal-Local) |
|
Stroke Prevention |
Platelet Inhibitors |
|
Sunburn |
Adrenocorticoids (Topical) |
|
Tonsillitis |
Cephalosporins |
|
Tourette's Syndrome |
Antidyskinetics |
|
Toxoplasmosis |
Pyrimethamine |
|
Transplantation, Organ (Antirejection) |
Azathioprine |
|
Tremors |
Benzodiazepines |
|
Trigeminal Neuralgia |
Baclofen |
|
Tuberculosis |
Cycloserine |
|
Ulcers |
Antacids |
|
Ulcerative Colitis |
Olsalazine |
|
Urethra Spasms |
Clidinium |
|
Urethritis |
Erythromycins |
|
Urinary Frequency |
Oxybutynin |
|
Urinary Retention |
Antimyasthenics |
|
Urinary Tract Infection |
Acetohydroxamic Acid |
|
Urine Acidity |
Citrates |
|
Uveitis |
Anti-Inflammatory
Drugs, Steroidal (Ophthalmic) |
|
Vaginal Infections or Irritation |
Clindamycin |
|
Vaginal Yeast Infections |
Antifungals (Vaginal) |
|
Vertigo |
Meclizine |
|
Virus Infections Of The Eye |
Antivirals (Ophthalmic) |
|
Vitamin Deficiency |
Pantothenic Acid |
|
Vitiligo |
Psoralens (Methoxsalen) |
|
Warts |
Keratolytics |
|
Wilson's Disease |
Penicillamine |
|
Worms |
Anthelmintics |
|
Zinc Deficiency |
Zinc Supplements |


Main Menu
FileOpen
- If the document is not already loaded:
- Preprocess special formats (Inkscape,SVG,Image,etc)
- Inkscape with GCodetool properties are converted to cncBuddy formats
- Finally it's added to the Recent Files menu list
- If the document is already loaded, it's WorkArea tab is selected
Operations
An easy access list of the Operation types supported. When clicked, the default properties for each type are pre-set before being added to the Job Planner
Startup options
cncBuddyCAD.EXE [/help|/?] [/reset]
/help|/? Show this help/usage information
/reset Create default software configuration


This is the official AtomicDEX mobile beta program channel -
Android: https://play.google.com/store/apps/details?id=com.komodoplatform.atomicdex - iOS: https://testflight.apple.com/join/c2mOLEoC - Please use https://github.com/KomodoPlatform/atomicdex/issues for bug reports and feature requests. For critical security bug reports please do send us your encrypted (https://pgp.mit.edu/pks/lookup?op=get&search=0x379287998EE6CF47) report to<EMAIL_ADDRESS>and allow up to 24h for reply. For atomicDEX API (mm2) related issue reports or feature requests please do use https://github.com/KomodoPlatform/atomicDEX-API/issues
100 messages
Before 05-Dec-19 12:00 AM
dudezmobi31-Oct-19 01:56 PM
No need to solve all.issues now lol
Its a stress test
Not a go live
vanity3331-Oct-19 01:56 PM
don't have any open orders ans still nothing
dogracer31-Oct-19 01:56 PM
Is 30s the expected time for matching to happen? I set up 6 swaps about 15min ago
@Alright , well im fked because its midnight here for me!
ŁATOSHI31-Oct-19 02:00 PM
@Alright id did the swap today morning 14 hours back and it was cool .
Only problen is the price list making me cinfused
Confusing
breaker31-Oct-19 02:00 PM
system is def stressed out
smk762 - dracocanis ominator31-Oct-19 02:01 PM
might help to target your swap with orderbook listings with higher max volume. I see a lot of small volume offers, which may be cancelled by people waiting to trade and trying again. larger volume also means more than one might match
CrisF31-Oct-19 02:01 PM
The BarterDEX 48 hour test was a marathon. I finally got 1 swap right near the end.
Found a bug, got abounty and got hooked on this stuff, haha.
infotech-al31-Oct-19 02:01 PM
I’ll try again in couple of hours have not completed any swaps
niko_O31-Oct-19 02:01 PM
Nothing is happening,
bishop31-Oct-19 02:01 PM
Like 0 for 200
niko_O31-Oct-19 02:02 PM
I did 4-5 swaps this morning ans it worked. Everything after 12pm isn't swapping at all
27aume31-Oct-19 02:02 PM
got one matched! 1/300(edited)
but incomplet for now
1
Dirty Moe31-Oct-19 02:02 PM
bugger
kmdkrazy31-Oct-19 02:02 PM
I have a bunch of ...timeouts and unlock funds
Some did this on purpose
Mark8131-Oct-19 02:03 PM
i also made around 20 swaps at this morning but once stress test time arrived there were no trades happened over an hour before that
TonyL31-Oct-19 02:03 PM
15
5
4
Artist31-Oct-19 02:03 PM
I have made over 50 orders not even 1 matched
I cancelled a few still
No match
27aume31-Oct-19 02:04 PM
@Alright
Artist31-Oct-19 02:04 PM
Lit
deniz07531-Oct-19 02:04 PM
@TonyL hahaha
smk762 - dracocanis ominator31-Oct-19 02:05 PM
too many makers, only one taker (edited)
kmdkrazy31-Oct-19 02:05 PM
Who want my log data
[deleted]31-Oct-19 02:05 PM
I don't know about you guys, but all my Ricks and Morties disappeared all the sudden...
smk762 - dracocanis ominator31-Oct-19 02:05 PM
they should return, may be electrum under load
kmdkrazy31-Oct-19 02:06 PM
I'm probably the one that broke it
I always break shit
Who wants my logs
[deleted]31-Oct-19 02:06 PM
I mean all transactions from faucet are still unconfirmed
Slyris31-Oct-19 02:06 PM
@kmdkrazy As @ca333 Mentioned you should send the log in DM as they say in the pinned message
TonyL31-Oct-19 02:07 PM
Faucet is bloated atm
Dirty Moe31-Oct-19 02:07 PM
wasnt me
[deleted]31-Oct-19 02:07 PM
I know, but I have been waiting for 3 hours now XD
Dirty Moe31-Oct-19 02:07 PM
i can send ya some
27aume31-Oct-19 02:07 PM
I there a tool to search by taker payement id
Slyris31-Oct-19 02:08 PM
Pinned a message.
@kmdkrazy I pinned the message that let you know to who address your log's.

RMvz4q6Q8J7VPaYqUDyaZCdrMGRWGh3o19
Thank you


FirstName:
LastName:
Email:
Password:
Birthday:
Gender:
Male
Female
Others
Pets:
Cat
Dog
Cars:
Volvo
Audi


| Trees | Indices | Help |
|
|---|
|
|
object --+ | SpeedCalc --+ | Time
Subclass for Time created for the purpose of organization within the SpeedCalc superclass; These are conversions commonly used for Time calculations.
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
Inherited from |
|||
| Inherited from SpeedCalc | |||
|---|---|---|---|
|
|
|||
|
Inherited from |
|
Initializes subclass Time
|
Converts seconds to minutes
|
Converts minutes to seconds
|
Converts minutes to hours
|
Converts hours to minutes
|
Converts seconds to hours
|
Converts hours to seconds
|
Converts seconds to days
|
Converts days to seconds
|
| Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sat Sep 26 00:18:54 2015 | http://epydoc.sourceforge.net |


I taught myself HTML and CSS during my second semester of my freshman year.
I wanted learn what I could do with my coding knowledge and use it in the real world.
I am on the sensor team on the BLUELab Yucatán Project team. Our project this year focuses on gathering air quality data through the use of sensors and Arduinos to ensure the biodigesters are working properly and their users are safe.
If you'd like to learn more about BLUELab, click here.