This looks like an awesome community project!
Come join us... the more the merrier!
We are working on the firmware.
The Wasp Firmware ArchitectureSummary
The Wasps are a collection of mining blades customized to individual hashing ASICs or FPGAs, all of which conform to a single architecture in firmware, communications protocols, and drivers. This document discusses the architecture and subsystems comprising the firmware on each Wasp. Any Wasp variant can be plugged into a Hive (backplane+power supply) beside other Wasps of different design, and all run simultaneously, communicating with one or more mining controller programs at the same time.
In addition, any Wasp can be the target of a remote debugger, or a maintenance program without affecting any other resident of the Hive.
Wasps are compound USB devices, with multiple endpoints in support of mining, configuration/management, In-System-Programming, field maintenance, diagnostics, and firmware debugging.
Firmware Objectives:1. Safely start up the Wasp, controlling bus voltage sequencing, on-board configuration, power-controllers, hashing engines, monitoring subsystems, and USB (full speed, 12 Mb/s) communications with the mining controller.
2. Safely shut down the Wasp in the event of various continuously monitored problems being detected, including temperature excursions or bus voltage failures, or as a result of commands from the mining controller or the hot-plug button.
3. Interact with the mining controller's USB system to identify the Wasp type and capabilities.
4. Interact over USB with the mining controller to characterize the on-board hashers with regards to functionality, range of clocking, and total output, and collect that configuration data into a block of information passed to the mining controller as an opaque data block, as well as storing the parameters in resident non-volatile memory. On startup, we must be able to detect a valid configuration, or its lack, and adjust the various on-board resources accordingly.
5. Interact over USB with a program on the mining controller to provide diagnostic, logging, and maintenance operations.
6. Download and install firmware updates and hot-patches, and firmware "overlays" - temporary programs sent to the Wasp for specific, non-mining purposes.
7. Configure, command, and monitor the power-controllers on the Wasp.
8. Configure, command, and monitor the hashers on the Wasp.
9. Configure and monitor the environmental sensors on the Wasp.
10. Maintain a non-volatile log of actions and events, which can be requested by the mining controller or maintenance program, or which can be reported on a regular basis to those programs.
11. Perform comprehensive diagnostics and Built-In-Self-Test, displaying the summary results on LEDs and communicating those results through the USB connection.
12. Interact with the mining controller to generate staged local work items for the hashers, and present them over the SPI ports to the hashers. Queueing the local work items for those hashers able to maintain an internal queue must be supported.
13. Regularly poll the hashers for nonces found to meet the presentation criteria, re-construct the local work that resulted in those hashes, and present the resulting share submissions to the mining controller.
14 Interact with the mining controller to shift to new work items, once the controller has commanded a shift in the local work configuration. Introduce these new work items to the hashers with as little latency as possible.
15. Manage a cryptographically signed device certificate, for use in compatibility checking on firmware updates, as well as for licensing protection.
Firmware Subsystems:... to see the rest on the document become a member on the Zoho Project Page.
-------------------------
Do you want to help work out the Firmware with us? PM or email me to join The Wasp Project Collective today.