97 lines
3.0 KiB
Raw Normal View History

this will describe how to generate the output files form the sources.
to be able to generate the outputs you need following software:
- rake: the central script taking care of generating the output files (Makefile is too cumbersome to parse files)
- [QEDA]( to generate footprints for the parts
- [Lepton EDA]( for the schematic capture
- [pcb-rnd]( for the board layout
the output generation is automatized.
almost all of the symbols and footprints used in the schematic and board layout are defined in the [QEDA]( format and generated for the CAD software.
the `library` folder contains the QEDA parts definitions.
to install QEDA using NPM from the official repository:
sudo npm install -g qeda
to install QEDA from the sources:
git clone
cd qeda
npm install
sudo npm install --global
to generate the parts:
rake library
this will use the parts definition (.yaml files) in the `library` to generate [gEDA gschem]([Lepton EDA]( symbols (.sym files) in the `geda/symbols` folder, and [coralEDA pcb-rnd]( footprints (.lht files) in the `coraleda/subc` folder.
only the QEDA parts in subfolders within `library` come from the [QEDA library](, but the files are included in this project for simplicity and archiving purposes.
all other parts are custom and written for this project.
the `.sch` file is the schematic source file.
it has been drawn using [Lepton EDA](
it uses standard symbols, and the ones in the `geda/symbols/` folder.
most symbols are generated by QEDA as described above.
to export as pdf:
rake print
to export the bill of material (as CSV):
rake bom
the `.lht` file is the board layout source file.
it has been drawn using [coralEDA pcb-rnd](
it uses the symbols from the `coraleda/subc/` folder.
most symbols are generated by QEDA as described above.
`oshw_logo.lht` is just the Open Source Hardware Logo.
it been generated from
to export gerber files for PCB manufacturer (and photo preview + overview document):
rake fabrication
2022-06-16 18:14:01 +02:00
the USB hub gets its configuration from an external EEPROM.
running `eeprom.rb` will generate the EEPROM configuration in `eeprom.bin`.
this must then be flashed on the board EEPROM.
it is possible to flash it in circuit using the corresponding header, and by holding the RST signal low to prevent the USB hub from interfering with the communication.
to flash it using [minipro](
minipro --device "AT24C16@SOIC8" --write eeprom.bin -s