This project strives to build an open-source design for a USB NAND flash controller adapter board.
All components are open-source. The project includes:
- An open source hardware design, based on schematics and PCB files for the actual board manufacturing process.
- An open source firmware, for each microcontroller on the board.
- An open source Linux kernel module to integrate this as a product in a Linux kernel-based OS.
Everything is tightly coupled in this project; here's how -
- A custom printed circuit board contains two MCUs - one as the USB (master) controller and a (slave) controller connected to a NAND flash chip.
- A custom-made firmware for both microcontrollers (STM32-based ones) is programmed on each chip to serve its purpose.
- A custom-made Linux kernel module registers a new USB driver & attach a "matching" board.
Once this project is in its final stage and there's no longer a need to change USB descriptors or endpoints, a request will be sent to pid.codes repository to allocate a USB product ID.
- The entire
hwdirectory is licensed CERN-OHL-W-2.0 - including metadata, schematics, PCB files, etc. - Any other software components, except the Linux kernel module, is and will licensed under the MIT license.
- The Linux kernel module (will be) licensed under the known GPLv2-only license to keep it compatible with the rest of the Linux development ecosystem.