Difference between revisions of "User:Barray/PineFlash"

From PINE64
Jump to navigation Jump to search
(Improved the opening paragraph)
(A few more cleanups)
Line 1: Line 1:
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 [https://forum.pine64.org/showthread.php?tid=13301 this forum thread].
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 [https://forum.pine64.org/showthread.php?tid=13301 this forum thread].


Please, consider joining us for discussion in [https://kiwiirc.com/nextclient/coffeespace.org.uk#pineflash IRC].
Please, consider joining us for discussion in [https://kiwiirc.com/nextclient/coffeespace.org.uk#pineflash IRC].
Line 5: Line 5:
== Goal ==
== Goal ==


The aim of this project is to create a Pine64 open source USB flash drive (hence the name ''PineFlash''), that can act as the basis of future projects in this area. An open source flash device would allow the community to address storage information security ([https://en.wikipedia.org/wiki/CIA_triad CIA]). Additionally, issues such as speed and compatibility can also be addressed.
The aim of this project is to create an open-hardware USB flash drive (hence the name ''PineFlash''), that can act as the basis of future projects in this area. An open source flash device would allow the community to address storage information security ([https://en.wikipedia.org/wiki/CIA_triad CIA]). Additionally, issues such as speed and compatibility can also be addressed.


== Requirements ==
== Requirements ==

Revision as of 13:05, 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), that can act as the basis of future projects in this area. An open source flash device would allow the community to address storage information security (CIA). Additionally, issues such as speed and compatibility can also be addressed.

Requirements

Property Minimum Ideal
Read speed 12Mbit/s (Full speed USB 1.x) 480Mbit/s (High speed USB 2.0)
Write speed 12Mbit/s (Full speed USB 1.x) 480Mbit/s (High speed USB 2.0)

Road Map

This is intended to document the project direction towards a manufacturing-viable device.

Prototype

Hardware

TODO Plan out hardware steps.

Software

  1. 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.
  2. 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.
  3. 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 to be a 'hat' for the community driven Nutcracker project, specifically the BL602. The controller is RISC-V (as the final controller is planned to be) and supports quad-SPI.

Schematic

TODO The proposed schematic for the device.

BOM

TODO The bill of materials used in the schematic.

PCB

TODO 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.

Additional Resources