diff --git a/README.md b/README.md index 15bcb1c..f357e64 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,113 @@ -# Relay_Tester +# FG004_A(Relay Tester) +## Description + +This embedded firmware for testing relay's, it uses an attiny404 to measure the +make and break time of a relay. + +### Micro Controller Pins + +**ATtiny404** + +1. VDD(+5v) +2. PA4(SW2/BREAK) +3. PA5(SW1/MAKE) +4. PA6(NC) +5. PA7(NC) +6. PB3(NC) +7. PB2(RELAY_OUT) +8. PB1(NC) +9. PB0(NC) +10. RST(NC) +11. PA1(EN) +12. PA2(NC) +13. PA3(NC) +14. VSS(GND) + +*key* +NC:: Not Connected +PBX:: Port B pin X +PAX:: Port A pin X +RST:: Reset pin + + +## Project Layout + +**Tree -L 1, output** +``` +. +├── avr-gcc-toolchain.cmake +├── build +├── CMakeLists.txt +├── compile_commands.json -> ./build/compile_commands.json +├── docs +├── Doxyfile +├── inc +├── mocks +├── otto.sh +├── README.md +├── setup.sh +├── src +└── tests + +6 directories, 7 files +``` + +The source code required to run/build the project is in the `/src` directory, +with the headers residing inside the `/inc` directory for most public modules. + +All other directories are for supporting the development cycle and are used for +testitng the code base to ensure accuracy and quality. These are contained in +the `tests` and `mocks` directories. + +Documentation that has been generated is inside the docs folder which contains +the html output that can be browswed via your regular web browser. + +PDF genreation from the doumentaiton is also possible if enabled through the +`Doxyfile` inside the projects root directory. + +The build directory contains the output and makefiles genrerated automatically +when using CMake. + +This build directory also holds the bin files genreated along with the hex and +elf files. + +## Build Requirements + +- AVR-GCC toolchain OR XC8 from microchip. +- Make OR CMAKE +- avrdude +- A AVR programmer, usbasp for older chips and UPDI for newer ones. + + +## Dev Requirements + +- ATtiny404 series micro-controller +- AVR-GCC toolchain. +- Cmake +- cpputest(Unit testing harness.) +- Doxygen(For documentation) +- Git(For version control) + + +## Running Unit Tests + +To run the cppunit tests you can use the included shell script inside a bash +shell. + +```sh +echo "1" | ./otto.sh +``` + +The command runs the otto script which automates parts of the development cycle +such as running and building tests, compiling hex files and flashing the code +to a micro-controller using arvdude. + + +## Roadmap + +Some stuff that still needs done. + +- [ ] Write Unit Tests for Serial Comunications. +- [ ] Write Unit Tests for Timer/Counter (10Khz) +- [ ]