this will describe how to generate the output files form the sources. requirements ============ 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](http://qeda.org/): to generate footprints for the parts - [Lepton EDA](https://github.com/lepton-eda/lepton-eda): for the schematic capture - [pcb-rnd](http://repo.hu/projects/pcb-rnd/): for the board layout the output generation is automatized. compiling ========= library ------- almost all of the symbols and footprints used in the schematic and board layout are defined in the [QEDA](http://qeda.org/) 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 https://github.com/qeda/qeda 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](http://wiki.geda-project.org/geda:gaf)/[Lepton EDA](https://github.com/lepton-eda/lepton-eda) symbols (.sym files) in the `geda/symbols` folder, and [coralEDA pcb-rnd](http://repo.hu/projects/pcb-rnd/) footprints (.lht files) in the `coraleda/subc` folder. only the QEDA parts in subfolders within `library` come from the [QEDA library](https://doc.qeda.org/library/), but the files are included in this project for simplicity and archiving purposes. all other parts are custom and written for this project. schematic --------- the `.sch` file is the schematic source file. it has been drawn using [Lepton EDA](https://github.com/lepton-eda/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 ~~~ BOM --- to export the bill of material (as CSV): ~~~ rake bom ~~~ board ----- the `.lht` file is the board layout source file. it has been drawn using [coralEDA pcb-rnd](http://repo.hu/projects/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 https://oshwlogo.cuvoodoo.info/. to export gerber files for PCB manufacturer (and photo preview + overview document): ~~~ rake fabrication ~~~ flashing ======== 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](https://gitlab.com/DavidGriffith/minipro/): ~~~ minipro --device "AT24C16@SOIC8" --write eeprom.bin -s ~~~