thermostat/README.md

115 lines
2.4 KiB
Markdown
Raw Normal View History

2024-09-18 19:48:01 +00:00
# Themostat Firmware
## Description
This embedded firmware is the thermostat mode.
### Micro Controller Pins
**ATtiny404**
1. VDD(+5v)
2. PA4(ADC_LOAD1)
3. PA5(ADC_LOAD2)
4. PA6(ADC_LOAD3)
5. PA7(zerocrossing)
6. PB3(EN2)
7. PB2(EN3)
8. PB1(SDA)
9. PB0(SCL)
10. RST(NC)
11. PA1(G1)
12. PA2(EN1)
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.
- [X] Add ADC Mocked interface.
- [X] Write tests for ADC Mock
- [X] Write ZCD using ADC Mock.
- [X] Write ADC version for ATtiny404
2024-09-18 19:21:39 +00:00