Difference between revisions of "User:Barray/PineFlash"
(Tagged with a "page under construction" note) |
(→Hardware: Small cleanups) |
||
Line 49: | Line 49: | ||
=== Hardware === | === Hardware === | ||
The initial prototype is to be a | The initial prototype is intended to be a "hat" for the community-driven [[Nutcracker]] project, based on the BL602 SoC. The CPU core is RISC-V (as the final controller is planned to be) and the SoC supports a quad-SPI flash interface. | ||
==== Schematic ==== | ==== Schematic ==== | ||
''' | '''TO-DO:''' The proposed schematic for the device. | ||
==== BOM ==== | ==== BOM ==== | ||
''' | '''TO-DO:''' The bill of materials used in the schematic. | ||
* [https://nz.mouser.com/ProductDetail/Winbond/W25N512GWFIG?qs=T3oQrply3y%2Fc2oXtef14%252Bg%3D%3D 512Mb serial NAND] @ $3.23 ([https://nz.mouser.com/datasheet/2/949/w25n512gw_rev_c_011419-1608377.pdf Datasheet]) | * [https://nz.mouser.com/ProductDetail/Winbond/W25N512GWFIG?qs=T3oQrply3y%2Fc2oXtef14%252Bg%3D%3D 512Mb serial NAND] @ $3.23 ([https://nz.mouser.com/datasheet/2/949/w25n512gw_rev_c_011419-1608377.pdf Datasheet]) | ||
Line 64: | Line 64: | ||
==== PCB ==== | ==== PCB ==== | ||
''' | '''TO-DO:''' The PCB design for the device. | ||
=== Software === | === Software === |
Revision as of 13:44, 1 April 2021
The following is the documentation draft for a proposed new PINE64 storage product, PineFlash. As such, PineFlash is proposed by the community and, as of April 2021, is neither endorsed nor acknowledged by PINE64 as a possible new official PINE64 product. This content is the result of initial discussions about this storage device, documented in this forum thread.
Please, consider joining us for discussion in IRC.
Goal
The aim of this project is to create an open-hardware USB flash drive, hence the name PineFlash, which can act as the basis of future projects in the area of open storage. An open-hardware flash device with open-source firmware would allow the community to address storage safety and information security. Additionally, issues such as speed, functionality and compatibility could also be addressed.
Requirements
Property | Minimum | Ideal |
---|---|---|
Read speed | 12 Mbit/s (Full-Speed USB 1.x) | 480 Mbit/s (High-Speed USB 2.0) |
Write speed | 12 Mbit/s (Full-Speed USB 1.x) | 480 Mbit/s (High-Speed USB 2.0) |
Road Map
This is intended to document the project direction towards a manufacturing-viable device.
Prototype
Hardware
The initial idea is for the storage device to be in form of a "hat" for one of the BL602 devices manufactured and sold by PINE64, such as the Nutcracker board.
TO-DO: Plan out hardware steps.
Software
- USB 1.x speed mass storage device, no real storage. Get the controller presenting itself as a mass storage device. Data read and written will just be placeholder data to prove that the USB communication is working correctly.
- Single flash chip selected for storage - quad-SPI. Prove out that we can select a single flash chip, store data to it and read it back. This proves our understanding of the quad-SPI interface and implement some basic interface for communicating with a single flash chip.
- Multiple flash chips selected for storage - quad-SPI. Prove that we can communicate with multiple flash chips via quad-SPI.
Prototyping
This is the documentation of the initial prototype design.
Hardware
The initial prototype is intended to be a "hat" for the community-driven Nutcracker project, based on the BL602 SoC. The CPU core is RISC-V (as the final controller is planned to be) and the SoC supports a quad-SPI flash interface.
Schematic
TO-DO: The proposed schematic for the device.
BOM
TO-DO: The bill of materials used in the schematic.
- 512Mb serial NAND @ $3.23 (Datasheet)
- USB-to-SPI converter
PCB
TO-DO: The PCB design for the device.
Software
The work on the BL602 is to be on-top of the documented work by Lupyuen.
Libraries
TODO Document the prototype's software stack.
- TinyUSB - An open source software stack for slave USB devices
Testing
TODO Figure out exactly how the prototype will be tested to ensure robustness and performance.
Suggested Features
This is a list of suggested features collated and attributed (where possible). This list is not meant to encapsulate every possible idea or suggestion, just a series of plausible ones that can be considered within the scope of this project.
- Type A & Type C USB interfaces (barray)
- RAID (barray)
- Dynamically adjusted wear leveling pool (Arwen)
- USB attached SCSI, (aka UASP) (Arwen)
- Fingerprint scanner (Julius_GU)
- Lit Pine logo on casing (Julius_GU)