111 lines
2.5 KiB
Markdown
111 lines
2.5 KiB
Markdown
# Combined Relay and Socket Protection
|
|
|
|
## Description
|
|
|
|
This embedded firmware is a combination of the Relay_Tester repo and the
|
|
sockets protection code.
|
|
|
|
*NOTE* The setup currently has the pickit powersupply option disabled, as
|
|
driving the circuit off it is a bad idea when you have relays being powered
|
|
on the circuit as well.
|
|
|
|
|
|
### Micro Controller Pins
|
|
|
|
**ATtiny404**
|
|
|
|
1. VDD(+5v)
|
|
2. PA4(SW2/BREAK)
|
|
3. PA5(SW1/MAKE)
|
|
4. PA6(RELAY_READ)
|
|
5. PA7(RELAY_OUT)
|
|
6. PB3(BIT6)
|
|
7. PB2(BIT5)
|
|
8. PB1(BIT4)
|
|
9. PB0(BIT3)
|
|
10. RST(NC)
|
|
11. PA1(BIT2)
|
|
12. PA2(BIT1)
|
|
13. PA3(BIT0)
|
|
14. VSS(GND)
|
|
|
|
*key*
|
|
NC:: Not Connected
|
|
PBX:: Port B pin X
|
|
PAX:: Port A pin X
|
|
RST:: Reset pin
|
|
BIT:: A bit place out of a byte of data for output
|
|
|
|
## 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.
|
|
|