├── README.md ├── anavi-dev-mic ├── anavi-dev-mic.md └── images │ ├── anavi-dev-mic-coin.jpg │ ├── anavi-dev-mic-components.jpg │ ├── anavi-dev-mic-step1.jpg │ ├── anavi-dev-mic-step2.jpg │ ├── anavi-dev-mic-step3.jpg │ └── anavi-dev-mic.jpg ├── anavi-flex-hat └── anavi-flex-hat.md ├── anavi-fume-extractor └── anavi-fume-extractor.md ├── anavi-gardening-uhat ├── anavi-gardening-uhat-datasheet.md ├── anavi-gardening-uhat-datasheet.pdf ├── anavi-gardening-uhat.md └── images │ ├── anavi-gardening-uhat-advanced.jpg │ ├── anavi-gardening-uhat-capacitive-soil-moisture-sensor.jpg │ ├── anavi-gardening-uhat-developer.jpg │ ├── anavi-gardening-uhat-rpi.jpg │ ├── anavi-gardening-uhat-sensors.jpg │ ├── anavi-gardening-uhat-starter.jpg │ └── anavi-gardening-uhat.jpg ├── anavi-gas-detector └── anavi-gas-detector.md ├── anavi-handle └── anavi-handle.md ├── anavi-info-uhat ├── anavi-info-uhat-datasheet.md ├── anavi-info-uhat-datasheet.pdf ├── anavi-info-uhat.md └── images │ ├── anavi-info-uhat-advanced.jpg │ ├── anavi-info-uhat-developer.jpg │ ├── anavi-info-uhat-rpi4.jpg │ ├── anavi-info-uhat-rpi400.jpg │ ├── anavi-info-uhat-sensors.jpg │ ├── anavi-info-uhat-starter.jpg │ └── anavi-info-uhat.jpg ├── anavi-infrared-phat ├── anavi-infrared-phat-de.md └── anavi-infrared-phat.md ├── anavi-light-controller └── anavi-light-controller.md ├── anavi-light-phat └── anavi-light-phat.md ├── anavi-macro-pad-10-knobs-3-knob-1 └── anavi-macro-pad-10-knobs-3-knob-1.md ├── anavi-macro-pad-12-arrows └── anavi-macro-12-arrows.md ├── anavi-macro-pad-2 ├── anavi-macro-pad-2-datasheet.md ├── anavi-macro-pad-2-datasheet.pdf ├── anavi-macro-pad-2.md └── images │ ├── anavi-macro-pad-2-01.jpg │ ├── anavi-macro-pad-2-02.jpg │ ├── anavi-macro-pad-2-03.jpg │ ├── anavi-macro-pad-developer-kit.jpg │ └── anavi-macro-pad-maker-kit.jpg ├── anavi-macro-pad-8 ├── anavi-macro-pad-8-datasheet.md ├── anavi-macro-pad-8-datasheet.pdf ├── anavi-macro-pad-8.md └── images │ ├── anavi-macro-pad-01.jpg │ ├── anavi-macro-pad-02.jpg │ ├── anavi-macro-pad-developer-kit.jpg │ └── anavi-macro-pad-maker-kit.jpg ├── anavi-miracle-controller └── anavi-miracle-controller.md ├── anavi-miracle-emitter └── anavi-miracle-emitter.md ├── anavi-miracle-uhat └── anavi-miracle-uhat.md ├── anavi-play-phat └── anavi-play-phat.md └── anavi-thermometer ├── anavi-thermometer-de.md └── anavi-thermometer.md /README.md: -------------------------------------------------------------------------------- 1 | # anavi-docs 2 | 3 | Documents for ANAVI products 4 | 5 | # License 6 | 7 | The project is released under the [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). 8 | 9 | Note: This is a human-readable summary of (and not a substitute for) the [license](https://creativecommons.org/licenses/by-sa/4.0/legalcode). 10 | 11 | You are free to: 12 | 13 | Share — copy and redistribute the material in any medium or format Adapt — remix, transform, and build upon the material for any purpose, even commercially. The licensor cannot revoke these freedoms as long as you follow the license terms. Under the following terms: 14 | 15 | Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Notices: 16 | 17 | You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation. No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. 18 | 19 | You will have to provide a link to the original creator of the project http://www.anavi.technology on any documentation or website. 20 | 21 | Credit can be attributed through a link to the creator website: http://www.anavi.technology 22 | -------------------------------------------------------------------------------- /anavi-dev-mic/anavi-dev-mic.md: -------------------------------------------------------------------------------- 1 | # ANAVI Dev Mic 2 | 3 | **Maker friendly open source USB-C computer microphone with AI and ML in mind** 4 | 5 | ![ANAVI Dev Mic](images/anavi-dev-mic.jpg) 6 | 7 | --- 8 | 9 | # DISCLAIMER 10 | 11 | ANAVI, the ANAVI logo and combinations thereof, are registered trademarks of Leon Anavi. Other product names may be trademarks of others and the rights belong to their respective owners. 12 | 13 | The information in this document is provided in connection with ANAVI Technology products. No license, express or implied or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Anavi products. 14 | 15 | This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://www.creativecommons.org/licenses/by-sa/3.0/. 16 | 17 | ANAVI Dev Mic hardware designs are licensed under [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). 18 | 19 | The software examples are released under MIT and the rest of the software is available under GPLv3. 20 | 21 | It is possible that the pictures in this manual differ from the latest revision of the board. 22 | 23 | The product described in this document is subject to continuous development and improvements. All particulars of the product and its use contained in this document are given by ANAVI Technology in good faith. However all warranties implied or expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This document is intended only to assist the reader in the use of the product. ANAVI Technology shall not be liable for any loss or damage arising from the use of any information in this document or any error or omission in such information or any incorrect use of the product. 24 | 25 | This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only and is not considered by ANAVI Technology to be a finished end-product fit for general consumer use. People handling the product must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. 26 | 27 | There is no warranty for the design materials and the components used to create ANAVI Dev Mic. They are considered suitable only for ANAVI Dev Mic. 28 | 29 | --- 30 | 31 | # CHAPTER 1: Overview 32 | 33 | ## Introduction 34 | 35 | **ANAVI Dev Mic** is a compact, affordable, exceptionally adaptable open-source microphone designed with machine learning in mind. At its core are the Seeed Studio XIAO RP2040 module and an omnidirectional digital microphone that work together to ensure high-quality sound capture and processing. 36 | 37 | For artificial intelligence (AI) and machine learning (ML) voice applications, reliable audio capture hinges on the clarity of the microphone. Despite their wide availability, affordable USB microphones can face certain limitations, such as a tendency to pick up excessive environmental noise, inflexible hardware, and proprietary firmware that cannot be updated or improved. 38 | 39 | ## Features 40 | 41 | ANAVI Dev Mic boasts a compact design with a black, gold-plated printed circuit board with the cutting-edge Seeed Studio XIAO RP2040 module. Here are the technical specifications: 42 | 43 | - **Module**: [Seeed Studio XIAO RP2040](https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html) 44 | - **Microcontroller**: Raspberry Pi RP2040 45 | - **Microphone**: [STMicroelectronics MP23DB01HP PDM Micro Electro-Mechanical System (MEMS) omnidirectional digital mic](https://eu.mouser.com/datasheet/2/389/mp23db01hp-1849718.pdf) 46 | - **Connectivity**: USB Type-C 47 | - **Firmware**: Open source based on Raspberry Pi Pico C/C++ SDK 48 | - **Sample Rate**: 16 kHz 49 | - **Compatibility**: Windows, macOS, and Linux support 50 | - **Dimensions**: 35.0 x 34.5 mm (1.38 x 1.36 inches) 51 | 52 | ![ANAVI Dev Mic](images/anavi-dev-mic-coin.jpg) 53 | 54 | ## Board Version 55 | 56 | Revision 1.0 of ANAVI Dev Mic was used while writing this document. It is possible that it is outdated so it is always recommended to check the latest sources from the GitHub page of the board. 57 | 58 | # CHAPTER 2: Getting Started 59 | 60 | ## Electrostatic Warning 61 | 62 | ANAVI Dev Mic is shipped as a do-it-yourself (DIY) kit, with all parts enclosed in protective bags. To prevent damage, ensure the board is **NOT** exposed to high electrostatic potentials. Always wear a grounding strap or a similar protective device when handling the board, and avoid touching the component pins or any other metallic elements. 63 | 64 | ## Requirements 65 | 66 | In order to setup ANAVI Dev Mic the following items are required: 67 | 68 | * Personal Computer with MS Windows, Mac OS or GNU/Linux distribution 69 | * USB-C cable 70 | 71 | Getting started with ANAVI Dev Mic is easy. Just connected it to the computer. By default the device comes pre-installed with [open source firmware](https://github.com/AnaviTechnology/microphone-library-for-pico/tree/anavi_dev_mic) written in [the C programming language using Raspberry Pi Pico Pico C/C++ SDK](https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf). 72 | 73 | ## Assembly 74 | 75 | ANAVI Dev Mic is available as a DIY kit, which includes: 76 | 77 | * Printed circuit board 78 | * Two-part acrylic enclosure 79 | * Four 10mm M2.5 screws 80 | * Eight M2.5 nuts 81 | 82 | ![ANAVI Dev Mic Kit](images/anavi-dev-mic-components.jpg) 83 | 84 | Please follow [the video](https://youtu.be/65bSOuASYaw?si=hii2ADXjtzrV7aNe) and the steps below to assemble the kit. 85 | 86 | ### Step 1: Peel Off Protective Film 87 | 88 | ![ANAVI Dev Mic step 1](images/anavi-dev-mic-step1.jpg) 89 | 90 | The acrylic enclosures are made from laser-cut parts, each covered with a protective film on both sides. Carefully peel off the film from all surfaces to reveal the crystal-clear acrylic underneath. 91 | 92 | ### Step 2: Attach Top Acrylic Enclosure 93 | 94 | ![ANAVI Dev Mic step 2](images/anavi-dev-mic-step2.jpg) 95 | 96 | Locate the printed circuit board (PCB) and the top part of the acrylic enclosure, which has a circular opening for the microphone. Align the acrylic enclosure with the white silkscreen circle on the black PCB. Insert a screw into each of the four mounting holes and secure them with the provided nuts. 97 | 98 | ### Step 3: Install Bottom Acrylic Enclosure 99 | 100 | ![ANAVI Dev Mic step 3](images/anavi-dev-mic-step3.jpg) 101 | 102 | Place the bottom acrylic enclosure over the side of the PCB where the XIAO RP2040 module is located. Fasten the bottom enclosure securely by tightening it with the remaining four nuts. 103 | 104 | ### Step 4: Connect and Enjoy 105 | 106 | Once you have completed these simple steps, your new microphone is ready to use. Just connect ANAVI Dev Mic to your computer using a USB-C cable and you’re all set! 107 | 108 | Please note that a USB to USB-C cable is **not** included in any of the kits. Re-use a cable from an old electronic device or purchase a cable according to your taste. Make sure that the cable supports both power and data transfer over USB. 109 | 110 | --- 111 | 112 | # CHAPTER 3: Software 113 | 114 | ## Open Source Firmware 115 | 116 | Out of the box ANAVI Dev Mic comes with [open source firmware](https://github.com/AnaviTechnology/microphone-library-for-pico/tree/anavi_dev_mic) written in [the C programming language using Raspberry Pi Pico Pico C/C++ SDK](https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf). 117 | Follow these steps to build the firmware from source and flash it onto your ANAVI Dev Mic: 118 | 119 | * Download the Raspberry Pi Pico C/C++ SDK: 120 | 121 | ``` 122 | cd ~ 123 | git clone https://github.com/raspberrypi/pico-sdk.git 124 | cd pico-sdk 125 | git submodule update --init 126 | ``` 127 | 128 | * Install Raspberry Pi Pico C/C++ SDK dependencies: 129 | 130 | ``` 131 | sudo apt update 132 | sudo apt install cmake gcc-arm-none-eabi build-essential 133 | ``` 134 | 135 | * Set the PICO_SDK_PATH: 136 | 137 | ``` 138 | export PICO_SDK_PATH=/path/to/pico-sdk 139 | ``` 140 | 141 | * Download the firmware for ANAVI Dev Mic based on "Microphone library for Pico": 142 | 143 | ``` 144 | cd ~ 145 | git clone -b anavi_dev_mic https://github.com/AnaviTechnology/microphone-library-for-pico.git 146 | ``` 147 | 148 | * Create the build directory, run CMake, and make: 149 | 150 | ``` 151 | cd microphone-library-for-pico 152 | mkdir build 153 | cd build 154 | cmake .. -DPICO_BOARD=pico 155 | make 156 | ``` 157 | 158 | Follow the steps below to flash the firmware: 159 | 160 | * Long press the **BOOT** button (marked **B** on the board). 161 | * While holding the button, connect the Seeed Studio XIAO PR2040 to your computer. A disk drive will appear on your computer. 162 | * Copy `build/examples/anavi_dev_mic/anavi_dev_mic.uf2` file to the ANAVI Dev Mic while it is in BOOT mode. 163 | 164 | ## Speech-to-Text Recognition 165 | 166 | Follow the steps below to do offline speech-to-text recognition using ANAVI Dev Mic in Python3 with [SpeechRecognition library](https://pypi.org/project/SpeechRecognition/) and OpenAI's [Whisper ASR system](https://github.com/openai/whisper) on a Linux computer, for example Raspberry Pi: 167 | 168 | * Launch Raspberry Pi OS and open a terminal. 169 | * Create a Python3 virtual environment: 170 | ``` 171 | python -m venv test 172 | cd test 173 | source bin/activate 174 | ``` 175 | * Update your system and install necessary dependencies: 176 | ``` 177 | sudo apt update 178 | sudo apt install portaudio19-dev 179 | ``` 180 | * Install the required Python libraries: 181 | ``` 182 | pip install SpeechRecognition pyaudio openai-whisper 183 | ``` 184 | * Download the source code from GitHub: 185 | ``` 186 | git clone https://github.com/AnaviTechnology/anavi-examples.git 187 | ``` 188 | * Run the script: 189 | ``` 190 | cd anavi-examples/speech-to-text 191 | python3 stt.py 192 | ``` 193 | * Follow the onscreen instructions to start speaking when the script is listening. 194 | 195 | The script is tailored for the ANAVI Dev Mic and will automatically select it from the available microphones. If the ANAVI Dev Mic isn't found, an error will be reported. A [video demonstration](https://youtu.be/XzCWIGtRq4g) featuring the Raspberry Pi 5 running Raspberry Pi OS, which is based on the Debian Linux distribution, is [available on YouTube](https://youtu.be/XzCWIGtRq4g). 196 | 197 | --- 198 | 199 | # CHAPTER 4: Hardware Schematics 200 | 201 | The ANAVI Dev Mic is a fully open-source project that integrates open-source hardware with free and open-source software. The [printed circuit board and its acrylic enclosure](https://github.com/AnaviTechnology/anavi-dev-mic) were designed in [KiCad](https://www.kicad.org/), an open-source software suite for electronic design automation (EDA) that runs on Windows, MacOS, and GNU Linux distributions. 202 | 203 | ## Pinout 204 | 205 | ANAVI Dev Mic utilizes the following pins on [Seeed Studio XIAO RP2040](https://wiki.seeedstudio.com/XIAO-RP2040/): 206 | 207 | | Component | Pins | 208 | | ------------------- |:-------------------------------------- | 209 | | MP23DB01HPTR | D8 (DATA), D10 (CLOCK) | 210 | 211 | The ANAVI Dev Mic is a maker-friendly microphone designed for customization. It offers extra pins for 5V, 3.3V, GND, and 9 GPIOs (General Purpose Input/Output). You can flash your own firmware to tailor it to specific applications, and expand its functionality by attaching additional components like LED indicators, a mute switch, and other buttons using its GPIO pins. 212 | 213 | --- 214 | 215 | # CHAPTER 5: Frequently Asked Questions (FAQ) 216 | 217 | * What is the sample rate of ANAVI Dev Mic? 218 | 219 | The sample rate is 16 kHz. 220 | 221 | # CHAPTER 6: Revision History 222 | 223 | ## Document Revision 224 | 225 | | Date | Changes | Modified pages | Author | 226 | | ----------------- |:---------------------------:| :---------------| :------------------| 227 | | 21 July 2024 | Initial manual release | All | Leon Anavi | 228 | | 27 August 2024 | Add images | All | Leon Anavi | 229 | 230 | 231 | ## ANAVI Dev Mic 232 | 233 | | Revision| Notable changes | 234 | | ------- |:-------------------------------------------------------------| 235 | | 1.0 | Stable version | 236 | 237 | ## See Also 238 | 239 | For more information please visit [anavi.technology](https://anavi.technology/) and our [GitHub repositories](https://github.com/AnaviTechnology). If you have any questions or enquiries please contact us through [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) or [email](mailto:info@anavi.technology). 240 | 241 | --- 242 | -------------------------------------------------------------------------------- /anavi-dev-mic/images/anavi-dev-mic-coin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-dev-mic/images/anavi-dev-mic-coin.jpg -------------------------------------------------------------------------------- /anavi-dev-mic/images/anavi-dev-mic-components.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-dev-mic/images/anavi-dev-mic-components.jpg -------------------------------------------------------------------------------- /anavi-dev-mic/images/anavi-dev-mic-step1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-dev-mic/images/anavi-dev-mic-step1.jpg -------------------------------------------------------------------------------- /anavi-dev-mic/images/anavi-dev-mic-step2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-dev-mic/images/anavi-dev-mic-step2.jpg -------------------------------------------------------------------------------- /anavi-dev-mic/images/anavi-dev-mic-step3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-dev-mic/images/anavi-dev-mic-step3.jpg -------------------------------------------------------------------------------- /anavi-dev-mic/images/anavi-dev-mic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-dev-mic/images/anavi-dev-mic.jpg -------------------------------------------------------------------------------- /anavi-gardening-uhat/anavi-gardening-uhat-datasheet.md: -------------------------------------------------------------------------------- 1 | --- 2 | fontfamily: dejavu 3 | header-includes: 4 | - \exhyphenpenalty=10000 5 | - \hyphenpenalty=10000 6 | - \hypersetup{colorlinks=false, 7 | allbordercolors={0 0 0}, 8 | pdfborderstyle={/S/U/W 1}} 9 | --- 10 | 11 | # ANAVI Gardening uHAT 12 | 13 | ## DATASHEET 14 | 15 | ![ANAVI Gardening uHAT](images/anavi-gardening-uhat.jpg?raw=true "ANAVI Gardening uHAT") 16 | 17 | **ANAVI Gardening uHAT** is a low-cost, open source Raspberry Pi add-on board that helps you develop smart solutions for monitoring and growing plants. 18 | 19 | ANAVI Gardening uHAT supports multiple sensors for soil moisture, temperature, humidity, 20 | barometric pressure, and light. No soldering is required. Getting started is easy. You just plug it into a Raspberry Pi with your bare hands (no tools needed) and follow the steps from the user manual. 21 | 22 | ## Features & Specifications 23 | 24 | ![ANAVI Gardening uHAT with sensors](images/anavi-gardening-uhat-sensors.jpg?raw=true "ANAVI Gardening uHAT with sensors") 25 | 26 | * Slots for up to two capacitive soil moisture sensors 27 | * Slot for waterproof temperature sensor 28 | * Slots for up to two plug-and-play I2C sensors 29 | * UART pins for serial communication 30 | * GPIO pins for controlling irrigation systems and peripherals 31 | * Green and red indication LEDs 32 | * Microchip MCP3002 Analog-to-Digital Converter (ADC) 33 | * Follows uHAT mechanical specification with a valid ID EEPROM 34 | * Excellent software support, documentation, and open source examples 35 | 36 | \pagebreak 37 | 38 | Each kit contains two capacitive soil moisture sensors operating at 5V with analog output in the range 0 ~ 3V and made of corrosion resistant material. 39 | 40 | ![Capacitive Soil Moisture Sensor](images/anavi-gardening-uhat-capacitive-soil-moisture-sensor.jpg?raw=true "Capacitive Soil Moisture Sensor") 41 | 42 | ANAVI Gardening uHAT follows Raspberry Pi Foundation [HAT and uHAT design guides and requirements](https://github.com/raspberrypi/hats). ANAVI Gardening uHAT dimensions are 65x30mm with 3mm radius corners and 4 M2.5 mounting holes. 43 | 44 | ANAVI Gardening uHAT is made in Plovdiv, Bulgaria, EU by [ANAVI Technology Ltd](https://anavi.technology/). 45 | 46 | \pagebreak 47 | 48 | ## **Compatibility:** 49 | 50 | ANAVI Gardening uHAT works with any Raspberry Pi single board computer model and version with 40-pin header, including Raspberry Pi 4 and Raspberry Pi 0 W. 51 | 52 | ![ANAVI Gardening uHAT for Raspberry Pi](images/anavi-gardening-uhat-sensors.jpg?raw=true "ANAVI Gardening uHAT for Raspberry Pi") 53 | 54 | ANAVI Gardening uHAT officially supports the following sensor modules with: 55 | 56 | * Capacitive soil moisture sensors 57 | * Waterproof DS18B20 temperature sensor 58 | * HTU21D sensor for temperature and humidity 59 | * BH1750 sensor for light 60 | * BMP180 sensor for barometric pressure 61 | 62 | *You may also attach any other I2C devices and sensors, but you will have to take care of their software integration.* 63 | 64 | \pagebreak 65 | 66 | ## Kit Configurations 67 | 68 | ANAVI Gardening uHAT is available in three do-it-yourself kits. 69 | 70 | | | Starter Kit | Advanced Kit | Developer Kit | 71 | | ------------------------------------ | ------------ | ------------ | ------------- | 72 | | **ANAVI Gardening uHAT** | Yes | Yes | Yes | 73 | | **Capacitive soil moisture sensors** | Yes | Yes | Yes | 74 | | **Light sensor** | No | Yes | Yes | 75 | | **Temperature and humidity sensor** | No | Yes | Yes | 76 | | **Waterproof temperature sensor** | No | No | Yes | 77 | | **USB to serial debug cable** | No | No | Yes | 78 | 79 | #### ANAVI Gardening uHAT Stater Kit (CS-ANAVI-GRDN-1) 80 | 81 | ![ANAVI Gardening uHAT Starter Kit](images/anavi-gardening-uhat-starter.jpg?raw=true "ANAVI Gardening uHAT Starter Kit") 82 | 83 | The perfect kit to get started with gardening. Includes one ANAVI Gardening uHAT (1) and two capacitive soil moisture sensors (2). 84 | 85 | \pagebreak 86 | 87 | #### ANAVI Gardening uHAT Advanced Kit (CS-ANAVI-GRDN-2) 88 | 89 | ![ANAVI Gardening uHAT Advanced Kit](images/anavi-gardening-uhat-advanced.jpg?raw=true "ANAVI Gardening uHAT Advanced Kit") 90 | 91 | Take your gardening skills to next level. Includes one ANAVI Gardening uHAT, two capacitive soil moisture sensors (2), I2C sensor for light (1), I2C sensor for temperature and humidity (1). 92 | 93 | \pagebreak 94 | 95 | #### ANAVI Gardening uHAT Developer Kit (CS-ANAVI-GRDN-3) 96 | 97 | ![ANAVI Gardening uHAT Developer Kit](images/anavi-gardening-uhat-developer.jpg?raw=true "ANAVI Gardening uHAT Developer Kit") 98 | 99 | Everything a developer needs to master gardening! Includes one ANAVI Gardening uHAT, two capacitive soil moisture sensors (2), one waterproof DS18B20 temperature sensor (1), I2C sensor for light (1), I2C sensor for temperature and humidity (1). Also comes with one USB-to-serial debug cable (1). 100 | 101 | \pagebreak 102 | 103 | ## Hardware Schematics 104 | 105 | ANAVI Gardening uHAT [schematics are available at GitHub](https://github.com/AnaviTechnology/anavi-gardening). It utilizes the following pins on Raspberry Pi: 106 | 107 | | Feature | Raspberry Pins | 108 | | ------------------- |:------------------------------- | 109 | | LED D1 | GPIO22 | 110 | | LED D2 | GPIO23 | 111 | | 1-wire terminal | GPIO4 | 112 | | MCP3002 ADC | GPIO10, GPIO9, GPIO11, GPIO8 | 113 | | UART | GPIO14, GPIO15 | 114 | | I2C slots | GPIO2, GPIO3 | 115 | | I2C EEPROM | ID_SC, ID_SD | 116 | 117 | ## Resources 118 | 119 | * [KiCad board schematics](https://github.com/AnaviTechnology/anavi-gardening) 120 | * [Documentation](https://github.com/AnaviTechnology/anavi-docs/anavi-gardening-uhat) 121 | * [Software](https://github.com/AnaviTechnology/anavi-examples/tree/master/anavi-gardening-uhat) 122 | * For more information visit [https://anavi.technology/](https://anavi.technology/) 123 | -------------------------------------------------------------------------------- /anavi-gardening-uhat/anavi-gardening-uhat-datasheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-gardening-uhat/anavi-gardening-uhat-datasheet.pdf -------------------------------------------------------------------------------- /anavi-gardening-uhat/images/anavi-gardening-uhat-advanced.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-gardening-uhat/images/anavi-gardening-uhat-advanced.jpg -------------------------------------------------------------------------------- /anavi-gardening-uhat/images/anavi-gardening-uhat-capacitive-soil-moisture-sensor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-gardening-uhat/images/anavi-gardening-uhat-capacitive-soil-moisture-sensor.jpg -------------------------------------------------------------------------------- /anavi-gardening-uhat/images/anavi-gardening-uhat-developer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-gardening-uhat/images/anavi-gardening-uhat-developer.jpg -------------------------------------------------------------------------------- /anavi-gardening-uhat/images/anavi-gardening-uhat-rpi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-gardening-uhat/images/anavi-gardening-uhat-rpi.jpg -------------------------------------------------------------------------------- /anavi-gardening-uhat/images/anavi-gardening-uhat-sensors.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-gardening-uhat/images/anavi-gardening-uhat-sensors.jpg -------------------------------------------------------------------------------- /anavi-gardening-uhat/images/anavi-gardening-uhat-starter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-gardening-uhat/images/anavi-gardening-uhat-starter.jpg -------------------------------------------------------------------------------- /anavi-gardening-uhat/images/anavi-gardening-uhat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-gardening-uhat/images/anavi-gardening-uhat.jpg -------------------------------------------------------------------------------- /anavi-handle/anavi-handle.md: -------------------------------------------------------------------------------- 1 | # ANAVI Handle 2 | 3 | **Open source USB adapter for Nunchuk compatible controller with Raspberry Pi RP2040 MCU** 4 | 5 | --- 6 | 7 | # DISCLAIMER 8 | 9 | ANAVI, the ANAVI logo and combinations thereof, are registered trademarks of Leon Anavi. Other product names may be trademarks of others and the rights belong to their respective owners. 10 | 11 | The information in this document is provided in connection with ANAVI Technology products. No license, express or implied or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Anavi products. 12 | 13 | This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://www.creativecommons.org/licenses/by-sa/3.0/. 14 | 15 | ANAVI Handle hardware designs are licensed under [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). 16 | 17 | The software examples are released under MIT and the rest of the software is available under GPLv3. 18 | 19 | It is possible that the pictures in this manual differ from the latest revision of the board. 20 | 21 | The product described in this document is subject to continuous development and improvements. All particulars of the product and its use contained in this document are given by ANAVI Technology in good faith. However all warranties implied or expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This document is intended only to assist the reader in the use of the product. ANAVI Technology shall not be liable for any loss or damage arising from the use of any information in this document or any error or omission in such information or any incorrect use of the product. 22 | 23 | This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only and is not considered by ANAVI Technology to be a finished end-product fit for general consumer use. People handling the product must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. 24 | 25 | There is no warranty for the design materials and the components used to create ANAVI Handle. They are considered suitable only for ANAVI Handle. 26 | 27 | --- 28 | 29 | # CHAPTER 1: Overview 30 | 31 | ## Introduction 32 | 33 | ANAVI Handle lets you easily connect a Wii Nunchuk-compatible controller to any USB-equipped computer. It features Seeed Studio’s XIAO RP2040 module, which offers a USB Type-C connector along with a Raspberry Pi RP2040 microcontroller. 34 | 35 | ## Features 36 | 37 | ANAVI Handle boasts a compact design with a black, gold-plated printed circuit board with the cutting-edge Seeed Studio XIAO RP2040 module. Here are the technical specifications: 38 | 39 | * **MCU:** Raspberry Pi RP2040 40 | * **Connectivity:** USB-C 41 | * **Firmware:** open-source based on CircuitPython 42 | * **Compatibility:** Windows, macOS, and Linux support 43 | * **Dimensions:** 35.0 mm x 33.3 mm (1.38 x 1.31 inches) 44 | 45 | ## Board Version 46 | 47 | Revision 1.0 of ANAVI Handle was used while writing this document. It is possible that it is outdated so it is always recommended to check the latest sources from the GitHub page of the board. 48 | 49 | # CHAPTER 2: Getting Started 50 | 51 | ## Electrostatic Warning 52 | 53 | ANAVI Handle is shipped as a do-it-yourself (DIY) kit, with all parts enclosed in protective bags. To prevent damage, ensure the board is **NOT** exposed to high electrostatic potentials. Always wear a grounding strap or a similar protective device when handling the board, and avoid touching the component pins or any other metallic elements. 54 | 55 | ## Requirements 56 | 57 | In order to setup ANAVI Handle the following items are required: 58 | 59 | * Personal Computer with MS Windows, Mac OS or GNU/Linux distribution 60 | * USB to USB-C cable 61 | * Nunchuk or a compatible controller 62 | 63 | Getting started with ANAVI Handle is easy. By default the device comes pre-installed with [open source firmware](https://github.com/AnaviTechnology/anavi-handle-sw) written in [CircuitPython](https://circuitpython.org/). 64 | 65 | ## Hardware 66 | 67 | 68 | The ANAVI Dev Mic is a user-friendly, easy-to-assemble kit that includes: 69 | 70 | * Printed circuit board (PCB) 71 | * Acrylic enclosure with two laser-cut acrylic parts (top and bottom) 72 | * Four DIN8975 M2.5 x 10mm (height) screws 73 | * Eight DIN934 M2.5 nuts 74 | 75 | ## Assembly 76 | 77 | ### Step 1: Peel Off Protective Film 78 | 79 | The acrylic enclosure consists of two laser-cut parts, each covered with protective film on both sides. Carefully remove the film from all surfaces to reveal the crystal-clear acrylic. 80 | 81 | ### Step 2: Align Acrylic Enclosure 82 | 83 | Take the top part of the acrylic enclosure, which features a knob that fits into the notch of the Nunchuk connector. Insert a screw into each of the four mounting holes and secure each one with a nut. 84 | 85 | ### Step 3: Printed Circuit Board 86 | 87 | The ANAVI Handle features a gold-plated printed circuit board with a black solder mask. It has four mounting holes, one in each corner. Position the PCB onto the four screws beneath the nuts securing the top part of the acrylic enclosure. 88 | 89 | ### Step 4: Affix the Enclosure 90 | 91 | Secure the bottom part of the acrylic enclosure by fastening it tightly with four nuts. 92 | 93 | ### Step 5: Connect 94 | 95 | Connect your Wii Nunchuk controller to your computer using the ANAVI Handle, which features firmware written in CircuitPython. Currently, it supports three modes: joystick, keyboard, and mouse. The default open-source firmware uses an RGB LED to indicate the connection status: 96 | 97 | * Green light: Nunchuk controller is connected correctly. 98 | 99 | * Blue light: The Nunchuk controller is disconnected from the ANAVI Handle. 100 | 101 | * Red light: The Nunchuk controller is absent or improperly connected. 102 | 103 | Please note that a USB to USB-C cable is **not** included in any of the kits. Re-use a cable from an old electronic device or purchase a cable according to your taste. Make sure that the cable supports both power and data transfer over USB. 104 | 105 | --- 106 | 107 | # CHAPTER 3: Software 108 | 109 | Out of the box ANAVI Handle comes with [open source firmware](https://github.com/AnaviTechnology/anavi-handle-sw) written in [CircuitPython](https://circuitpython.org/). 110 | 111 | If you need to reset ANAVI Handle and restore it to factory defaults, follow the steps below to install CircuitPython and the open source firmware: 112 | 113 | * Download [CircuitPython for XIAO RP2040](https://circuitpython.org/board/seeeduino_xiao_rp2040/) 114 | 115 | * Press and hold **B** button on XIAO RP2040 and ANAVI Handle. 116 | 117 | * Copy the downloaded CircuitPython file to XIAO RP2040 and ANAVI Handle. 118 | 119 | * Wait until ANAVI Handle and XIAO RP2040 installs CircuitPython. 120 | 121 | * Copy [firmware files from GitHub](https://github.com/AnaviTechnology/anavi-handle-sw) to XIAO RP2040 122 | 123 | * Install CircuitPython dependencies on XIAO RP2040 installs CircuitPython: 124 | 125 | Make sure that you have ``circup`` installed in your Python environment. 126 | Install it with the following command if necessary: 127 | 128 | ``` 129 | pip3 install circup 130 | ``` 131 | 132 | With ``circup`` installed and your CircuitPython device connected use the following command to install: 133 | 134 | ``` 135 | circup install adafruit_bus_device adafruit_hid adafruit_nunchuk adafruit_seesaw neopixel 136 | ``` 137 | 138 | Or the following command to update an existing version: 139 | 140 | ``` 141 | circup update 142 | ``` 143 | 144 | --- 145 | 146 | # CHAPTER 4: Hardware Schematics 147 | 148 | ANAVI Handle is an entirely open source project that harmonizes open-source hardware with free and open-source software. The [printed circuit board and its acrylic enclosure](https://github.com/AnaviTechnology/anavi-handle) were designed in [KiCad](https://www.kicad.org/), an open-source software suite for electronic design automation (EDA) that runs on Windows, MacOS, and GNU Linux distributions. 149 | 150 | The [Open Source Hardware Association (OSHWA)](https://www.oshwa.org/) has officially granted certification to ANAVI Handle. OSHWA, a renowned non-profit organization based in the United States, oversees the Certified Projects Directory and hosts the esteemed Open Hardware Summit annually. OSHWA’s certification program ensures that a project’s conception of "open source hardware" harmonizes with the broader community’s definition, thus guaranteeing transparency and accessibility. 151 | 152 | Each certified hardware version is distinguished by a unique identification number (UID) comprising a country code and a numerical sequence. On April 19th, ANAVI Handle version 1.0 received certification with the [UID BG000134](https://certification.oshwa.org/bg000134.html). The OSHW Certification Mark showcases the project’s unique certification ID and streamlines navigation and information retrieval for interested parties. The "BG" prefix signifies Bulgaria, indicating that ANAVI Handle originates from the historic city of Plovdiv, Bulgaria’s second-largest city and Europe’s oldest continually inhabited city, boasting over 6000 years of rich history. 153 | 154 | ## Pinout 155 | 156 | ANAVI Handle utilizes the following pins on [Seeed Studio XIAO RP2040](https://wiki.seeedstudio.com/XIAO-RP2040/): 157 | 158 | | Component | Pins | 159 | | ------------------- |:-------------------------------------- | 160 | | I2C | D4 (SDA), D5 (SCL) | 161 | 162 | --- 163 | 164 | # CHAPTER 5: Frequently Asked Questions (FAQ) 165 | 166 | * Does the ANAVI Handle work with the Wii Classic Controller? 167 | 168 | The hardware connector on ANAVI Handle is compatible with the Wii Classic Controller. Currently, the [open-source firmware written in CircuitPython](https://github.com/AnaviTechnology/anavi-handle-sw) supports only Nunchuk-compatible controllers. However, it can be extended to support the Classic Controller using [libraries from Adafruit](https://github.com/adafruit/Adafruit_CircuitPython_Wii_Classic). 169 | 170 | * Does the ANAVI Handle support the gyroscope in the Nunchuck controller? 171 | 172 | Yes, with the ANAVI Handle and the [Adafruit CircuitPython Nunchuk library](https://docs.circuitpython.org/projects/nunchuk/en/latest/index.html), you can read acceleration values from the gyroscope inside the controller. Here is a [simple example of how to do it](https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk/blob/main/examples/nunchuk_simpletest.py). 173 | 174 | # CHAPTER 6: Revision History 175 | 176 | ## Document Revision 177 | 178 | | Date | Changes | Modified pages | Author | 179 | | ----------------- |:---------------------------:| :---------------| :------------------| 180 | | 24 May 2024 | Initial manual release | All | Leon Anavi | 181 | | 20 July 2024 | Frequently Asked Questions | All | Leon Anavi | 182 | | 03 August 2024 | gyroscope and acceleration | FAQ | Leon Anavi | 183 | 184 | 185 | ## ANAVI Handle 186 | 187 | | Revision| Notable changes | 188 | | ------- |:-------------------------------------------------------------| 189 | | 1.0 | Stable version | 190 | 191 | ## See Also 192 | 193 | For more information please visit [anavi.technology](https://anavi.technology/) and our [GitHub repositories](https://github.com/AnaviTechnology). If you have any questions or enquiries please contact us through [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) or [email](mailto:info@anavi.technology). 194 | 195 | --- 196 | -------------------------------------------------------------------------------- /anavi-info-uhat/anavi-info-uhat-datasheet.md: -------------------------------------------------------------------------------- 1 | --- 2 | fontfamily: dejavu 3 | header-includes: 4 | - \exhyphenpenalty=10000 5 | - \hyphenpenalty=10000 6 | - \hypersetup{colorlinks=false, 7 | allbordercolors={0 0 0}, 8 | pdfborderstyle={/S/U/W 1}} 9 | --- 10 | 11 | # ANAVI Info uHAT 12 | 13 | ## DATASHEET 14 | 15 | ![ANAVI Info uHAT](images/anavi-info-uhat.jpg?raw=true "ANAVI Info uHAT") 16 | 17 | **ANAVI Info uHAT** is a low-cost, open source Raspberry Pi add-on board with mini OLED display, 3 buttons, red and green indication LEDs as well as slots for various sensors. Each kit includes 0.96" yellow-blue I²C OLED display with resolution of 128x64 individual white OLED pixels. This is a low power consumption display that makes its own light abd therefore no additional backlight is required. Additional slots allows attaching various I²C sensors for temperature, humidity, light and barometric pressure as well as a UART pins for easy serial communication. ANAVI Info uHAT follows the official Raspberry Pi uHAT mechanical specification with a valid ID EEPROM. 18 | 19 | ![ANAVI Info uHAT on Raspberry Pi 400](images/anavi-info-uhat-rpi400.jpg?raw=true "ANAVI Info uHAT and Raspberry Pi 400") 20 | 21 | ## Features & Specifications 22 | 23 | ![ANAVI Info uHAT with sensors](images/anavi-info-uhat-sensors.jpg?raw=true "ANAVI Info uHAT with sensors") 24 | 25 | * Replaceable 0.96" yellow-blue I²C OLED display 26 | * Slots for up to 3 plug-and-play I²C sensors 27 | * UART pins for serial communication 28 | * Green and red indication LEDs 29 | * 3 buttons 30 | * Follows uHAT mechanical specification with a valid ID EEPROM 31 | * Excellent software support, documentation, and open source examples 32 | 33 | \pagebreak 34 | 35 | ![ANAVI Info uHAT](images/anavi-info-uhat-rpi4.jpg?raw=true "ANAVI Info uHAT with sensors") 36 | 37 | ANAVI Info uHAT follows Raspberry Pi Foundation [HAT and uHAT design guides and requirements](https://github.com/raspberrypi/hats). ANAVI Info uHAT dimensions are 65x30mm with 3mm radius corners and 4 M2.5 mounting holes. 38 | 39 | ANAVI Info uHAT is made in Plovdiv, Bulgaria, EU by [ANAVI Technology Ltd](https://anavi.technology/). 40 | 41 | \pagebreak 42 | 43 | ## **Compatibility:** 44 | 45 | ANAVI Info uHAT works with any Raspberry Pi single board computer model and version with 40-pin header, including Raspberry Pi 4 and Raspberry Pi 0 W. 46 | 47 | ![ANAVI Info uHAT for Raspberry Pi](images/anavi-info-uhat-sensors.jpg?raw=true "ANAVI Info uHAT for Raspberry Pi") 48 | 49 | ANAVI Info uHAT officially supports the following sensor modules and peripherals: 50 | 51 | * Mini 0.96" OLED I2C display 52 | * HTU21D sensor for temperature and humidity 53 | * BH1750 sensor for light 54 | * BMP180 sensor for barometric pressure 55 | 56 | *You may also attach any other I2C devices and sensors, but you will have to take care of their software integration.* 57 | 58 | \pagebreak 59 | 60 | ## Kit Configurations 61 | 62 | ANAVI Info uHAT is available in three do-it-yourself kits. 63 | 64 | 65 | 66 | #### ANAVI Info uHAT Stater Kit (CS-ANAVI-INFO-1) 67 | 68 | ![ANAVI Info uHAT Starter Kit](images/anavi-info-uhat-starter.jpg?raw=true "ANAVI Info uHAT Starter Kit") 69 | 70 | The perfect kit to get started. Includes one ANAVI Info uHAT (1) and one mini 0.96" OLED I2C display, yellow-blue (1). 71 | 72 | \pagebreak 73 | 74 | #### ANAVI Info uHAT Advanced Kit (CS-ANAVI-INFO-2) 75 | 76 | ![ANAVI Info uHAT Advanced Kit](images/anavi-info-uhat-advanced.jpg?raw=true "ANAVI Info uHAT Advanced Kit") 77 | 78 | Take your project to the next level. Includes one ANAVI Info uHAT (1), one mini 0.96" OLED I2C display, yellow-blue (1), one temperature and humidity sensor (1) and one light sensor (1). 79 | 80 | \pagebreak 81 | 82 | #### ANAVI Info uHAT Developer Kit (CS-ANAVI-INFO-3) 83 | 84 | ![ANAVI Info uHAT Developer Kit](images/anavi-info-uhat-developer.jpg?raw=true "ANAVI Info uHAT Developer Kit") 85 | 86 | Everything a developer needs! Includes ANAVI Info uHAT (1), one mini 0.96" OLED I2C display, yellow-blue (1), one temperature and humidity sensor (1), one light sensor (1), one barometric pressure and temperature sensor (1) and one USB-to-serial debug cable (1). 87 | 88 | \pagebreak 89 | 90 | ## Hardware Schematics 91 | 92 | ANAVI Info uHAT [schematics are available at GitHub](https://github.com/AnaviTechnology/anavi-gardening). It utilizes the following pins on Raspberry Pi: 93 | 94 | | Component | Raspberry Pi Pins | 95 | | ------------ |:------------------------------- | 96 | | I2C | 3, 5 | 97 | | EEPROM | 27, 28 | 98 | | UART | 1, 8, 9, 10 | 99 | | LED D1 | 29 | 100 | | LED D2 | 31 | 101 | | Button SW1 | 15 | 102 | | Button SW2 | 13 | 103 | | Button SW3 | 11 | 104 | 105 | ## Resources 106 | 107 | * [KiCad board schematics](https://github.com/AnaviTechnology/anavi-info-uhat) 108 | * [Documentation](https://github.com/AnaviTechnology/anavi-docs/anavi-info-uhat) 109 | * [Software](https://github.com/AnaviTechnology/anavi-examples/) 110 | * For more information visit [https://anavi.technology/](https://anavi.technology/) 111 | -------------------------------------------------------------------------------- /anavi-info-uhat/anavi-info-uhat-datasheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-info-uhat/anavi-info-uhat-datasheet.pdf -------------------------------------------------------------------------------- /anavi-info-uhat/images/anavi-info-uhat-advanced.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-info-uhat/images/anavi-info-uhat-advanced.jpg -------------------------------------------------------------------------------- /anavi-info-uhat/images/anavi-info-uhat-developer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-info-uhat/images/anavi-info-uhat-developer.jpg -------------------------------------------------------------------------------- /anavi-info-uhat/images/anavi-info-uhat-rpi4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-info-uhat/images/anavi-info-uhat-rpi4.jpg -------------------------------------------------------------------------------- /anavi-info-uhat/images/anavi-info-uhat-rpi400.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-info-uhat/images/anavi-info-uhat-rpi400.jpg -------------------------------------------------------------------------------- /anavi-info-uhat/images/anavi-info-uhat-sensors.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-info-uhat/images/anavi-info-uhat-sensors.jpg -------------------------------------------------------------------------------- /anavi-info-uhat/images/anavi-info-uhat-starter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-info-uhat/images/anavi-info-uhat-starter.jpg -------------------------------------------------------------------------------- /anavi-info-uhat/images/anavi-info-uhat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-info-uhat/images/anavi-info-uhat.jpg -------------------------------------------------------------------------------- /anavi-light-controller/anavi-light-controller.md: -------------------------------------------------------------------------------- 1 | # ANAVI Light Controller 2 | 3 | **The open source hardware development board with WiFi for controlling 12V RGB LED strip** 4 | 5 | --- 6 | 7 | # DISCLAIMER 8 | 9 | ANAVI, the ANAVI logo and combinations thereof, are registered trademarks of Leon Anavi. Other product names may be trademarks of others and the rights belong to their respective owners. 10 | 11 | The information in this document is provided in connection with Anavi products. No license, express or implied 12 | or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Anavi products. 13 | 14 | This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). 15 | this license, visit https://creativecommons.org/licenses/by-sa/4.0/. 16 | 17 | ANAVI Light Controller hardware design is licensed under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). 18 | 19 | The software examples are released under MIT and the rest of the software is available under GPLv3. 20 | 21 | It is possible that the pictures in this manual differ from the latest revision of the board. 22 | 23 | The product described in this document is subject to continuous development and improvements. All particulars of the product and its use contained in this document are given by Anavi in good faith. However all warranties implied or expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This document is intended only to assist the reader in the use of the product. Anavi shall not be liable for any loss or damage arising from the use of any information in this document or any error or omission in such information or any incorrect use of the product. 24 | 25 | This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only and is not considered by Anavi to be a finished end-product fit for general consumer use. People handling the product must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. 26 | 27 | There is no warranty for the design materials and the components used to create ANAVI Light Controller. There are considered suitable only for ANAVI Light Controller. 28 | 29 | --- 30 | 31 | # CHAPTER 1: Overview 32 | 33 | ## Introduction 34 | 35 | ANAVI Light Controller is a certified open source hardware WiFi device for controlling a 12 V RGB LED strip. It also supports sensors for light, temperature, humidity, and gesture recognition. 36 | 37 | ANAVI Light Controller is fully compliant with the popular open source platform, Home Assistant. That means that when paired with Amazon Alexa, the device can be turned on and off with voice commands. 38 | 39 | ANAVI Light Controller is designed with the free and open source electronics design automation suite [KiCAD](http://kicad.org/). No soldering is required. You can assemble ANAVI Light Controller with your bare hands and a screwdriver to attach 12V RGB LED strip. 40 | 41 | ## Features & Specifications 42 | 43 | * **CPU:** Tensilica L106 32-bit processor 44 | * **Connectivity:** WiFi 802.11 b/g/n 45 | * **Input voltage:** 12 V 46 | * **Peripherals:** Terminal block for 12 V RGB LED strip, UART pins, button, three slots for sensors 47 | * **Compatibility:** Arduino IDE, Home Assistant, MQTT, and any modern web browser 48 | * **Certification:** Open Source Hardware Association (OSHWA) BG000005 49 | * **Dimensions:** 75 mm x 40 mm 50 | 51 | ## Target Market 52 | 53 | ANAVI Light Controller is a certified open source hardware development board for customers interested in home automation, software development and Internet of Things. The board is appropriate for embedded programming enthusiasts, open source supporters, students as well as web and/or mobile app developers. The main usage of the board is home automation of lights with RGB LED strip, sensors and the popular open source software Home Assistant. 54 | 55 | ## Board Version 56 | 57 | Revision 1.3 of ANAVI Light Controller was used while writing this document. It is possible that it is outdated so it is always recommended to check the latest sources from the GitHub page of the board. 58 | 59 | # CHAPTER 2: Getting Started 60 | 61 | ## Electrostatic Warning 62 | 63 | ANAVI Light Controller is shipped in a protective bag. It must **NOT** be exposed to high electrostatic potentials. A grounding strap or similar protective device should be worn when handling the board. Avoid touching the component pins or any other metallic element. 64 | 65 | ## Requirements 66 | 67 | In order to setup ANAVI Light Controller the following items are required: 68 | 69 | * 12V RGB LED strip 70 | * 12V power supply 71 | 72 | It is recommended to use 1A (1000mA) or higher power supply. 73 | 74 | ## Supported Peripherals 75 | 76 | ANAVI Light Controller has a terminal block for attaching 12V RGB LED strip, a slot for attaching PIR motion sensor as well as up to 3 slots I2C sensors. 77 | 78 | ### Sensors 79 | 80 | ANAVI Light Controller supports PIR motion sensor. The officially supported I2C sensor modules are for: 81 | 82 | * Light (BH1750) 83 | * Temperature and humidity (HTU21D) 84 | * Color and gesture recognition (APDS-9960) 85 | * Temperature and barometric pressure (BMP180) 86 | 87 | You may also attach any other I2C sensors but you will have to take care of their software integration. 88 | 89 | #### Light Sensor 90 | 91 | The official light I2C sensor for ANAVI Light Controller is BH1750. 92 | 93 | Using 4 Dupont jumper wires connect BH1750 to one of the 5 I2C slots on ANAVI Light Controller as follows: 94 | 95 | | BH1750 | ANAVI Light Controller | 96 | | -------- |:-------------- | 97 | | VCC | 3.3V | 98 | | GND | GND | 99 | | SCL | SCL | 100 | | SDA | SDA | 101 | 102 | 103 | #### Temperature & Humidity Sensor 104 | 105 | The official temperature and humidity sensor for ANAVI Light Controller is HTU21 (SHT21). This is I2C sensor capable of measuring both humidity and temperature. 106 | 107 | Using 4 Dupont jumper wires connect HTU21 to one of the 5 I2C slots on ANAVI Light Controller as follows: 108 | 109 | | HTU21 | ANAVI Light Controller | 110 | | -------- |:-------------- | 111 | | VIN | 3.3V | 112 | | GND | GND | 113 | | SCL | SCL | 114 | | SDA | SDA | 115 | 116 | #### Light Sensor 117 | 118 | The official I2C sensor for RGB color and gesture detection on ANAVI Ligth pHAT is APDS-9960. 119 | 120 | Using 4 Dupont jumper wires connect APDS-9960 to one of the 5 I2C slots on ANAVI Light Controller as follows: 121 | 122 | | APDS-9960 | ANAVI Light Controller | 123 | | ---------- |:-------------- | 124 | | VIN | 3.3V | 125 | | GND | GND | 126 | | SCL | SCL | 127 | | SDA | SDA | 128 | 129 | #### Temperature & Barometric Pressure Sensor 130 | 131 | The official temperature and barometric pressure sensor for ANAVI Light Controller is BMP180. This is I2C sensor capable of measuring both temperature and barometric pressure. 132 | 133 | Using 4 Dupont jumper wires connect BMP180 to one of the 5 I2C slots on ANAVI Light Controller as follows: 134 | 135 | | BMP180 | ANAVI Light Controller | 136 | | -------- |:-------------- | 137 | | VIN | 3.3V | 138 | | GND | GND | 139 | | SCL | SCL | 140 | | SDA | SDA | 141 | 142 | ## Assembly 143 | 144 | You can assemble ANAVI Light Controller with your bare hands and a screw driver following the steps below: 145 | 146 | * Using a screw driver connect 12V RGB LED strip to the terminal blocks. 147 | * Add sensors to your ANAVI Light Controller. 148 | * Optionally, you may also assemble the simple acrylic case by removing the protective film and mounting all standoffs and screws. 149 | * Insert the 2.1x.5.5 DC jack of the power supply in ANAVI Light Controller to turn on the board. 150 | 151 | ## Powering ANAVI Light Controller 152 | 153 | ANAVI Light Controller requires 12V power supply for the RGB LED strip. 154 | 155 | 156 | ANAVI Light Controller has been tested using 12V power supplies from SUNNY Computer Technology Europe such as [SYS1530-1212-W2E](https://www.sunny-euro.com/en/products/sys1530-1212-w2e-europe-2-1x5-5x11-s-2wc-1-4m-4-5ft). The output current depends on the leght of the RGB LED strip and the number of LEDs in it. ANAVI Light Controller has been tested with power supplies with output current in the range from 1A to 5A. Using power supplies and RGB LED stip that requires higher output current than 5A is not recommended. Make sure that you are using a 12V power supply from a trusted supplier. Cheap, untested power supplies can be risky and unreliable. 157 | 158 | ## Configure ANAVI Light Controller 159 | 160 | [Video tutorial for getting started with ANAVI Light Controller](https://www.youtube.com/watch?v=Y_81CuuGm0Y) 161 | 162 | Turn on ANAVI Light Controller by plugging an appropriate 12V power supply. As soon as the board is turned on for the very first time it will create a temporary WiFi access point. Connect to it from your computer, smartphone or tablet. 163 | 164 | The default software of ANAVI Light Controller has a captive portal which guides you through the configurations. As you see in the video you have to select your WiFi network and enter a password if it is not open. 165 | 166 | Our open source software relies on the machine to machine communication protocol MQTT to control the lights and to report data from the sensors. You can connect to your own MQTT broker or just leave the default configurations and connect to the public broker as shown in the video. 167 | 168 | It very important to copy the machine ID. Later it is needed to identify your device. 169 | 170 | When you are ready just click save. If you have entered valid credentials in a moment ANAVI Light Controller will connect to your WiFi network and the configured MQTT broker. This way the configuration is complete and ANAVI Light Controller will turn off its temporary WiFi access point. After that your device, for example smartphone as in the video, will automatically connect again to your WiFi network. 171 | 172 | To verify that ANAVI Light Controller is up and running open a modern web browser and visit demo.anavi.technology. Enter your machine ID. Check the advanced settings only if you are not using the default public MQTT broker. Click connect. 173 | 174 | From this web page you can turn on and off as well as to change the colors of the RGB LED strip. 175 | 176 | The strip can also be controlled from the command line with a client such as [mosquitto_pub](https://mosquitto.org/man/mosquitto_pub-1.html). For example: 177 | 178 | mosquitto_pub -h iot.eclipse.org -d -t "cmnd/####/color" -m '{"color":{ "r":0, "g":255, "b":0 }}' 179 | mosquitto_pub -h iot.eclipse.org -d -t "cmnd/####/color" -m '{"brightness":128}' 180 | 181 | with '####' replaced with the machine ID and color and brightness values between 0 and 256. 182 | 183 | 184 | ## Reset to Factory Defaults 185 | 186 | If you decide to change the settings of ANAVI Light Controller you need to reset the board and configure it again. 187 | 188 | To reset ANAVI Light Controller press the button and hold it for 10 seconds until the red light is blinking. After resetting the board there will be a steady red light that indicates that the temporary WiFi access point is on and you can proceed with the configuration again. 189 | 190 | --- 191 | 192 | # CHAPTER 3: Software Development 193 | 194 | ## Default Firmware 195 | 196 | By default ANAVI Light Controller comes with [this free and open source Arduino sketch](https://github.com/AnaviTechnology/anavi-light-controller-sw). 197 | 198 | ## USB to UART Module 199 | 200 | For uploading firmware to ANAVI Light Controller you need USB to UART module. All kits include CP2102 which out of the box on GNU/Linux distributions. Drivers for MS Windows and Mac OS X are [available at silabs.com](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers). 201 | 202 | ## Setting up the Arduino IDE 203 | 204 | 1. Install the Arduino IDE following the instructions from from https://www.arduino.cc/en/Main/Software 205 | 206 | 2. Add the ESP8266 board package: In **File > Preferences** input http://arduino.esp8266.com/stable/package_esp8266com_index.json into the Additional Board Manager URLs field. 207 | 208 | 3. In **Tools > Board ... > Boards manager** find and add the **ESP8266** package. Now "Generic ESP8266" should be an option in the **Tools > Boards** menu. 209 | 210 | 4. Go to **Sketch > Include Library > Manage Libraries...** and include the following dependencies of the default firmware for ANAVI Light Controller: 211 | 212 | * WiFiManager by tzapu 213 | * ArduinoJson by Benoit Blanchon 214 | * PubSubClient by Nick O'Leary 215 | * Adafruit HTU21DF Library by Adafruit 216 | * Adafruit APDS9960 Library by Adafruit 217 | 218 | ## Flashing Custom Firmware 219 | 220 | Follow the steps below to compile and flash custom firmware on ANAVI Light Controller from Arduino IDE: 221 | 222 | 1. To flash the firmware from Arduino IDE select Tools > Generic ESP8266 Module 223 | and set the following parameters. 224 | 225 | * **Flash mode**: DIO 226 | * **Flash frequency**: 40MHz 227 | * **CPU frequency**: 80MHz 228 | * **Flash size**: 512K 229 | * **Debug port**: Disabled 230 | * **Debug level**: None 231 | * **Reset method**: ck 232 | * **Upload speed**: 115200 233 | * **Port**: /dev/ttyUSB0 234 | You might need to adjust the port if your USB to serial debug cable is connected on a different port. 235 | 236 | 2. After that press load an Arduino sketch. [A simple blinking LED example is available at GitHub](https://github.com/AnaviTechnology/anavi-examples/blob/master/anavi-light-controller/anavi-blinking-led/anavi-blinking-led.ino) 237 | 238 | 3. In Arduino IDE click Verify/Compile (Ctrl+R) 239 | 240 | 4. Connect ANAVI Light Controller to the USB to serial debug board: GND to GND, TX cable to RX of ANAVI Light Controller and RX cable to TX of ANAVI Light Controller. 241 | 242 | 5. In Arduino IDE click Upload (Ctrl+U) 243 | 244 | 6. Press and **hold** SW1 on ANAVI Light Controller. Plug the 12V power supply in the jack of ANAVI Light Controller (without releasing SW1). 245 | 246 | 7. In Arduino IDE verify that the upload has been started. Then you can release SW1 on ANAVI Light Controller (the upload will not be interrupted and it will continue once it has started). 247 | 248 | The output in Arduino IDE for successful flashing is: 249 | 250 | ``` 251 | Archiving built core (caching) in: /tmp/arduino_cache_954939/core/core_esp8266_esp8266_generic_CpuFrequency_80,FlashFreq_40,FlashMode_dio,UploadSpeed_115200,FlashSize_512K64,ResetMethod_ck,Debug_Disabled,DebugLevel_None_____1c2aa2b3da66da225b39c9bfab6531e5.a 252 | Sketch uses 224949 bytes (51%) of program storage space. Maximum is 434160 bytes. 253 | Global variables use 31756 bytes (38%) of dynamic memory, leaving 50164 bytes for local variables. Maximum is 81920 bytes. 254 | Uploading 229104 bytes from /tmp/arduino_build_904122/anavi-blinking-led.ino.bin to flash at 0x00000000 255 | ................................................................................ [ 35% ] 256 | ................................................................................ [ 71% ] 257 | ................................................................ [ 100% ] 258 | ``` 259 | 260 | If you have flashed the blinking LED example, D1 on ANAVI Light Controller with start blinking. 261 | 262 | **Note:** you have to be quick between step 5 and 6. Remember to press and **hold** SW1 until the upload starts. 263 | 264 | # CHAPTER 4: Home Assistant 265 | 266 | [Home Assistant](https://home-assistant.io/) is a free and open-source home automation platform running on Python 3 with more than 1200 components for integration with popular Internet of Things. 267 | 268 | ANAVI Light Controller can be easily integrated in Home Assistant using the component [MQTT Light](https://www.home-assistant.io/components/light.mqtt/). This component supports JSON in the payload of the MQTT messages. To use it, in **configuration.yaml** specify MQTT broker and register the device with the corresponding MQTT topic, for example: 269 | 270 | * Configure MQTT broker: 271 | 272 | ``` 273 | mqtt: 274 | broker: 127.0.0.1 275 | ``` 276 | 277 | * Register ANAVI Light Controller, remember to replace **device-id** with the actual md5 hash of your ANAVI Light Controller which is shown at initial setup and in the serial console output on boot: 278 | 279 | ``` 280 | light: 281 | - platform: mqtt 282 | schema: json 283 | name: "ANAVI Light Controller" 284 | state_topic: "stat/device-id/#" 285 | command_topic: "cmnd/device-id/color" 286 | brightness: true 287 | rgb: true 288 | ``` 289 | 290 | 291 | --- 292 | 293 | # CHAPTER 5: Schematics 294 | 295 | ## Pinout 296 | 297 | The components of ANAVI Light Controller relies on ESP8266 (ESP-12 module) and utilizes the following pins: 298 | 299 | | Component | Pins | Arduino Pin ID | 300 | | ------------------- |:------------------------------- |-----------------| 301 | | I2C | 13, 14 | | 302 | | RGB LED connector | 5, 6, 7 | 12, 13, 14 | 303 | | Indication LED (D1) | 7 | 16 | 304 | | Reset button (SW1) | 12 | 0 | 305 | | UART | 15, 16 | | 306 | 307 | ## I2C 308 | 309 | The sensors that can be connected to ANAVI Light Controller communicate with a host microcontroller via a communications standard called **I2C** (Inter-Integrated-Circut). I2C uses two wires, labelled SDA (Serial Data) and SCL (Serial Clock). To function properly, I2C requires a pullup resistor on each of those lines therefore ANAVI Light Controller includes two 4.7kohm resistors labelled as R6 and R7. If for one reason or another you need to disable the I2C pullup resistors remove R6 and R7. 310 | 311 | --- 312 | 313 | # CHAPTER 6: Frequently Asked Questions (FAQ) 314 | 315 | 316 | #### Which 12 V RGB LED strip is included in the kits? 317 | 318 | All kits include a one meter 12 V RGB LED strip with 30 LEDs (size 5050), IP 20, and power consumption of 7.2W. 319 | 320 | #### What power supply do I need? 321 | 322 | You need a 12 V power supply with a standard 2.1x5.5 mm DC jack for your light strip. Select a power supply with sufficient output current and power depending on the length and specifications of your RGB LED strip. 323 | 324 | #### Is there a recommended 12 V power supply? 325 | 326 | ANAVI Light Controller has been tested using 12 V power supplies from SUNNY Computer Technology Europe such as [SYS1530-1212-W2E](https://www.sunny-euro.com/en/products/sys1530-1212-w2e-europe-2-1x5-5x11-s-2wc-1-4m-4-5ft). 327 | 328 | Make sure that you are using a 12 V power supply from a trusted supplier. Cheap, untested power supplies can be risky and unreliable. 329 | 330 | #### Why isn't a power supply included? 331 | 332 | We were unable to source power supplies with universal plugs for the US/EU/UK at an acceptable price and, further, power needs will vary based on application. Nowadays, 12 V power supplies with a 2.1x5.5 mm DC jack are a commodity item, so you should be able to easily find a suitable unit online or at your local electronics store. 333 | 334 | #### Can I remotely control ANAVI Light Controller from a web browser on my smartphone, tablet, or laptop? 335 | 336 | Yes, you can use our [demo website](http://demo.anavi.technology/) or easily integrate ANAVI Light Controller in your instance of the popular open source platform [Home Assistant](https://home-assistant.io/) as an MQTT JSON Light component. 337 | 338 | #### Is ANAVI Light Controller an open source project? 339 | 340 | Yes, ANAVI Light Controller is an open source hardware project powered and created with free and open source software. The hardware designs are available at [GitHub under CC BY-SA 4.0 license](https://github.com/AnaviTech/anavi-light-controller). All schematics, documents, and source code files are available at [our GitHub repositories](https://github.com/AnaviTech/). 341 | 342 | #### Is ANAVI Light Controller certified? 343 | 344 | Yes, ANAVI Light Controller revision 1.3 has been [certified by the Open Source Hardware Association under UID BG000005](http://certificate.oshwa.org/certification-directory/). 345 | 346 | #### Does ANAVI Light Controller use the ESP8266? 347 | 348 | Yes, ANAVI Light Controller is based on the ESP8266. 349 | 350 | #### Can I flash different firmware to ANAVI Light Controller? 351 | 352 | Yes, using a USB to serial cable, you can flash custom firmware built from your own source code. 353 | 354 | #### Is ANAVI Light Controller compatible with Arduino IDE? 355 | 356 | Yes, ANAVI Light Controller is compatible with Arduino IDE. You can easily upload your own Arduino sketches to the board. 357 | 358 | #### How can I get involved and help? 359 | 360 | Buy any of the available perks, get your hands on the ANAVI Light Controller, contribute to our GitHub repositories, and become part of our open source community! 361 | 362 | 363 | --- 364 | 365 | # CHAPTER 7: Revision History 366 | 367 | ## Document Revision 368 | 369 | | Date | Changes | Modified pages | Author | 370 | | ----------------- |:---------------------------:| :---------------| :---------------| 371 | | 20 June 2018 | Initial release | All | Leon Anavi | 372 | 373 | ## ANAVI Light Controller Revision 374 | 375 | | Revision| Notable changes | 376 | | ------- |:-------------------------------------------------------------| 377 | | 1.1 | Prototype Alpha | 378 | | 1.2 | Prototype Beta | 379 | | 1.3 | Stable product | 380 | 381 | ## See Also 382 | 383 | For more information please visit [anavi.technology](http://anavi.technology/) and our [GitHub repositories](https://github.com/AnaviTechnology). If you have any questions or enquiries please contact us through [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) or [email](mailto:info@anavi.technology). 384 | 385 | --- 386 | -------------------------------------------------------------------------------- /anavi-macro-pad-10-knobs-3-knob-1/anavi-macro-pad-10-knobs-3-knob-1.md: -------------------------------------------------------------------------------- 1 | # ANAVI Macro Pad 10, ANAVI Knobs 3 and ANAVI Knob 1 2 | 3 | **Small, programmable, open source input devices with clickable rotary encoders** 4 | 5 | --- 6 | 7 | # DISCLAIMER 8 | 9 | ANAVI, the ANAVI logo and combinations thereof, are registered trademarks of Leon Anavi. Other product names may be trademarks of others and the rights belong to their respective owners. 10 | 11 | The information in this document is provided in connection with ANAVI Technology products. No license, express or implied or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Anavi products. 12 | 13 | This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://www.creativecommons.org/licenses/by-sa/3.0/. 14 | 15 | ANAVI Macro Pad 10, ANAVI Knobs 3 and ANAVI Knob 1 hardware designs are licensed under [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). 16 | 17 | The software examples are released under MIT and the rest of the software is available under GPLv3. 18 | 19 | It is possible that the pictures in this manual differ from the latest revision of the board. 20 | 21 | The product described in this document is subject to continuous development and improvements. All particulars of the product and its use contained in this document are given by ANAVI Technology in good faith. However all warranties implied or expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This document is intended only to assist the reader in the use of the product. ANAVI Technology shall not be liable for any loss or damage arising from the use of any information in this document or any error or omission in such information or any incorrect use of the product. 22 | 23 | This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only and is not considered by ANAVI Technology to be a finished end-product fit for general consumer use. People handling the product must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. 24 | 25 | There is no warranty for the design materials and the components used to create ANAVI Macro Pad 10. They are considered suitable only for ANAVI Macro Pad 8. 26 | 27 | --- 28 | 29 | # CHAPTER 1: Overview 30 | 31 | ## Introduction 32 | 33 | ANAVI Macro Pad 10 offers a rotary encoder with clickable switch and nine hot-swappable Gateron red mechanical switches with translucent keycaps. The black, gold-plated PCB features yellow backlighting under each key, RGB LED on the front and four WS2812B LEDs for under-lighting. The hot-swappable sockets allow you to change the mechanical switches easily, with no soldering required. 34 | 35 | ANAVI Knobs 3 offers three rotary encoders with clickable switches and a RGB LED. The black, gold-plated PCB also features an I²C slot for adding peripherals such as a mini OLED display. 36 | 37 | ANAVI Knob 1 is a tiny input device with a single rotary encoder with a clickable switch and a RGB LED. You can turn it left, you can turn it right, and you can click it. It is fully programmable and there is an I²C slot you can use to add peripherals. 38 | 39 | ## Features 40 | 41 | ### ANAVI Macro Pad 10 42 | 43 | A kit with ANAVI Macro Pad 10 includes: 44 | 45 | * **Inputs**: Rotary encoder with clickable switch and nine hot-swappable Cherry MX-style switches 46 | * **Keys**: Nine Gateron red, linear, non-clicky mechanical switches and transparent keycaps with yellow LED backlighting 47 | * **Peripherals:** RGB LED on top, WS2812B addressable LED strip for bottom-lighting 48 | * **MCU**: Raspberry Pi RP2040 49 | * **Connectivity**: USB-C 50 | * **Firmware**: KMK firmware 51 | * **Compatibility**: Windows, macOS, and Linux support 52 | * **Dimensions**: 73.0 x 91.0 mm (2.87 x 3.58 inches) 53 | 54 | ### ANAVI Knobs 3 55 | 56 | A kit with ANAVI Knobs 3 includes: 57 | 58 | * **Inputs**: Three rotary encoders with clickable switches 59 | * **Peripherals:** RGB LED, I²C slot 60 | * **MCU**: Raspberry Pi RP2040 61 | * **Connectivity**: USB-C 62 | * **Firmware**: KMK firmware 63 | * **Compatibility**: Windows, macOS, and Linux support 64 | * **Dimensions**: 35.0 x 90.0 mm (1.38 x 3.54 inches) 65 | 66 | ### ANAVI Knob 1 67 | 68 | A kit with ANAVI Knob 1 includes: 69 | 70 | * **Inputs**: Rotary encoder with clickable switch 71 | * **Peripherals:** RGB LED, I²C slot 72 | * **MCU**: Raspberry Pi RP2040 73 | * **Connectivity**: USB-C 74 | * **Firmware**: KMK firmware 75 | * **Compatibility**: Windows, macOS, and Linux support 76 | * **Dimensions**: 35.0 x 49.0 mm (1.38 x 1.93 inches) 77 | 78 | ## Target Market 79 | 80 | ANAVI Macro Pad 10, ANAVI Knobs 3 and ANAVI Knob 1 can be customized to fit multiple use cases across various industries: video or audio editing, video conferencing software, entertainment broadcasting, product and graphic design, gaming, engineering, programming, etc. It boosts your daily productivity by providing amazing level of control with gorgeous light effects on your fingertips! 81 | 82 | ## Board Version 83 | 84 | Revision 1.1 of ANAVI Macro Pad 10 and revisions 1.0 of ANAVI Knobs 3 and ANAVI Knob 1 were used while writing this document. It is possible that it is outdated so it is always recommended to check the latest sources from the GitHub page of the board. 85 | 86 | # CHAPTER 2: Getting Started 87 | 88 | ## Electrostatic Warning 89 | 90 | ANAVI Macro Pad 10, ANAVI Knobs 3 and ANAVI Knob 1 are shipped in protective bags. The board must **NOT** be exposed to high electrostatic potentials. A grounding strap or similar protective device should be worn when handling the board. Avoid touching the component pins or any other metallic element. 91 | 92 | ## Requirements 93 | 94 | In order to setup ANAVI Macro Pad 10, ANAVI Knobs 3 or ANAVI Knob 1 the following items are required: 95 | 96 | * Personal Computer with MS Windows, Mac OS or GNU/Linux distribution 97 | * USB to USB-C cable 98 | 99 | Getting started with and assembled ANAVI Macro Pad 10, ANAVI Knobs 3 or ANAVI Knob 1 is easy. Just connect it to your GNU/Linux, Windows, or macOS computer, and use a browser to configure and load your keyswitch macro or shortcut settings. 100 | 101 | By default ANAVI Macro Pad 10, ANAVI Knobs 3 or ANAVI Knob 1 come with the open source [KMK firmware: Clackety Keyboards Powered by CircuitPython](http://kmkfw.io/). Furthermore they also support the open source the [Quantum Mechanical Keyboard (QMK) firmware](https://docs.qmk.fm/#/), To configure and modify the keyboard layouts you can use QMK Configurator, an online graphical user interface that generates QMK firmware hex files directly in a web browser or use the source code. Press the RESET button on ANAVI Macro Pad 8 to enter flash mode and upload the new firmware. 102 | 103 | ANAVI Macro Pad 10, ANAVI Knobs 3 and ANAVI Knob 1 are powered by [Seeed Studio XIAO RP2040](https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html) with Raspberry Pi RP2040 MCU. 104 | 105 | ## Supported Peripherals 106 | 107 | ANAVI Knobs 3 and ANAVI Knob 1 support I2C peripheral devices such as a mini OLED display. Configure the firmware to use the peripherals. Plug the display before turning on the board. 108 | 109 | ## Assembly 110 | 111 | ### ANAVI Macro Pad 10, ANAVI Knobs 3, ANAVI Knob 1 112 | 113 | Follow the steps below to assemble ANAVI Macro Pad 10, ANAVI Knobs 3 and ANAVI Knob 1. Although you can do it with your bare hands, simple tools like a screwdriver, tweezers and a keycap puller might be useful. 114 | 115 | * Stickers 116 | 117 | *This step is optional.* Each kit includes a set of stickers. Feel free to add them to the translucent keycaps included in ANAVI Macro Pad 10 developer kit. You can do it with your bare hands or eventually with the help of tweezers. 118 | 119 | You can place a sticker on the top or on the side of the keycap. If you like retro electronics you may find some similarities in this approach to the famous keyboard of the best selling personal computer of the 20th century Commodore 64. 120 | 121 | ANAVI Macro Pad 10 is powered by the popular open source firmware QMK which allows you to create various layouts. You can make a keymap with 2 or more layouts. A sticker on the side of the keycap might be useful as a visual aid to indicate the additional function of the key. 122 | 123 | * Peel Off Protective Films from the Acrylic Enclosure 124 | 125 | Peel off the protective films from both sides of the three laser cut transparent acrylic parts. The removal of the protective films is quite annoying but once you get rid of them, the acrylic enclosure will be crystal clear and fully transparent. 126 | 127 | * Assemble the Acrylic Enclosure 128 | 129 | Assemble the acrylic enclosures. In the cardboard box you also will find four M3 screws and eight M3 nuts. Although you can assemble them with your bare hands a screw driver might be handy. 130 | 131 | First place 4 screws up through the solid acrylic bottom plate. Fasten the screws to the bottom plate with 4 M3 nuts. 132 | 133 | Next, place the ANAVI Macro Pad 10 PCB on top of of the bottom plate with the XIAO-RP2040 and knob facing away from the bottom plate passing the screws through the 4 mounting holes in the PCB. 134 | 135 | Add the U-shaped acrylic spacer plate on top of the PCB with the cutout leaving room for the USB port on the XIAO-RP2040. 136 | 137 | Place the top acrylic part and gently fasten it with the 4 M3 nuts. 138 | 139 | Finally add the foam protective pads to the screws on the bottom. 140 | 141 | * Keycaps 142 | 143 | Place all keycaps on the mechanical switches of ANAVI Macro Pad 10. You can easily do this with your bare hands. It takes just a few seconds. 144 | 145 | A keycap puller might be useful if you make a mistake and want to pull off a keycap and place it on another location. 146 | 147 | * Mini OLED Display 148 | 149 | *This step is optional and only for ANAVI Knobs 3 or ANAVI Knob 1* The open source QMK firmware for ANAVI Knobs 3 and ANAVI Knob 1 supports mini OLED display connected over the communication bus I2C. 150 | 151 | It is recommended to use yellow-blue 0.96" I2C OLED display. It comes with 4 jumper wires which might be useful for debugging purposes or if you plan to make a custom 3D printed case. However for the default acrylic enclosure the wires are not needed. 152 | 153 | Peel off the protected film and place the mini OLED display as shown in the video to ANAVI Macro Pad 10. Pay attention to the labels that indicated the pin connectors of the display. They must match the labels on the keyboard. 154 | 155 | * Turn On ANAVI Macro Pad 10 156 | 157 | Gently use a USB to USB-C cable to connect ANAVI Macro Pad 10 to a personal computer. Please be careful with the USB-C connector, because a harsh bending of the USB cable may damage the USB-C connector. 158 | 159 | Thanks to the KMK firmware, ANAVI Macro Pad 10 will be detected as human interface device and should work out of the box. Furthermore with KMK you have the freedom to fully customize each key. 160 | 161 | Please note that a USB to USB-C cable is **not** included in any of the kits. Re-use a cable from an old electronic device or purchase a cable according to your taste. Make sure that the cable supports both power and data transfer over USB. 162 | 163 | --- 164 | 165 | # CHAPTER 3: Software 166 | 167 | *This step is optional and is provided in case you want to use QMK firmware.* 168 | 169 | Out of the box ANAVI Macro Pad 10, ANAVI Knobs 3 and ANAVI Knob 1 all come with [the popular open source firmware KMK](https://github.com/KMKfw/kmk_firmware). Alternatively, [QMK firmware](https://qmk.fm/) is also supported. Several different keymaps are available. 170 | 171 | ## Compile QMK for ANAVI Macro Pad 10 172 | 173 | After installing QMK software on your computer, from the command line you can compile QMK firmware with the `default` keymap for ANAVI Macro Pad 10, ANAVI Knobs 3, ANAVI Knob 1 using the following command: 174 | 175 | ``` 176 | qmk compile -kb anavi/macropad10 -km default 177 | ``` 178 | 179 | ## Flash QMK on ANAVI Macro Pad 10, ANAVI Knobs 3 and ANAVI Knob 1 180 | 181 | Follow the steps below to flash the compiled QMK firmware to ANAVI Macro Pad 10, ANAVI Knobs 3 and ANAVI Knob 1: 182 | 183 | * Connect ANAVI Macro Pad 10, ANAVI Knobs 3 or ANAVI Knob 1 to your personal computer with USB to USB-C cable and upload the firmware 184 | 185 | --- 186 | 187 | # CHAPTER 4: Hardware Schematics 188 | 189 | ## Pinout 190 | 191 | ### ANAVI Macro Pad 10 192 | 193 | ANAVI Macro Pad 10 utilizes the following pins on Raspberry Pi RP2040: 194 | 195 | | Component | Pins | 196 | | ------------------- |:-------------------------------------- | 197 | | I2C | PD0, PD1 | 198 | | Mechanical switches | PD4, PF6, PB5, PE6, PF5, PF7, PB4, PC6 | 199 | | LEDs (backlit) | PD7 | 200 | | WS2812B LED strip | PF4 | 201 | 202 | ### ANAVI Knobs 3 203 | 204 | ANAVI Knobs 3 utilizes the following pins on Raspberry Pi RP2040: 205 | 206 | | Component | Pins | 207 | | ------------------- |:-------------------------------------- | 208 | | I2C | PD0, PD1 | 209 | | Rotary Encoders | PD4, PF6, PB5, PE6, PF5, PF7, PB4, PC6 | 210 | 211 | ### ANAVI Knob 1 212 | 213 | ANAVI Knob 1 utilizes the following pins on Raspberry Pi RP2040: 214 | 215 | | Component | Pins | 216 | | ------------------- |:-------------------------------------- | 217 | | I2C | PD0, PD1 | 218 | | Rotary Encoders | PD4, PF6, PB5, PE6, PF5, PF7, PB4, PC6 | 219 | 220 | ## I2C 221 | 222 | A mini OLED display that can be connected to ANAVI Knob 1 or ANAVI Knobs 3 communicate with a host microcontroller via a communications standard called **I2C** (Inter-Integrated-Circut). I2C uses two wires, labeled SDA (Serial Data) and SCL (Serial Clock). To function properly, I2C requires a pullup resistor on each of those lines therefore ANAVI Macro Pad 8 includes two 4.7kohm resistors labeled as R13 and R14. If for one reason or another you need to disable the I2C pullup resistors remove R13 and R14. 223 | 224 | --- 225 | 226 | # CHAPTER 5: Frequently Asked Questions (FAQ) and Troubleshooting 227 | 228 | * How to fix `The firmware is too large! 28866/28672 (194 bytes over)`? 229 | 230 | The easiest way to reduce the size of QMK firmware with your custom new keymap for ANAVI Macro Pad 10 is to cut some of the RGB lighting animations and effects. 231 | 232 | For example, in your custom keymap you can create `config.h` in the keymap directory that overwrites the main `config.h` with a reduced number of supported RGB lighting animations and effects: 233 | 234 | ``` 235 | #pragma once 236 | 237 | #undef RGBLIGHT_ANIMATIONS 238 | #define RGBLIGHT_EFFECT_BREATHING 239 | #define RGBLIGHT_EFFECT_CHRISTMAS 240 | #define RGBLIGHT_EFFECT_RAINBOW_MOOD 241 | #define RGBLIGHT_EFFECT_SNAKE 242 | ``` 243 | --- 244 | 245 | # CHAPTER 6: Revision History 246 | 247 | ## Document Revision 248 | 249 | | Date | Changes | Modified pages | Author | 250 | | ----------------- |:---------------------------:| :---------------| :---------------| 251 | | 21 October 2022 | Initial manual release | All | Leon Anavi | 252 | 253 | ## ANAVI Macro Pad 10 Revision 254 | 255 | | Revision| Notable changes | 256 | | ------- |:-------------------------------------------------------------| 257 | | 1.1 | Stable version | 258 | 259 | ## ANAVI Knob 1 Revision 260 | 261 | | Revision| Notable changes | 262 | | ------- |:-------------------------------------------------------------| 263 | | 1.0 | Stable version | 264 | 265 | ## ANAVI Knobs 3 Revision 266 | 267 | | Revision| Notable changes | 268 | | ------- |:-------------------------------------------------------------| 269 | | 1.0 | Stable version | 270 | 271 | ## See Also 272 | 273 | For more information please visit [anavi.technology](http://anavi.technology/) and our [GitHub repositories](https://github.com/AnaviTechnology). If you have any questions or enquiries please contact us through [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) or [email](mailto:info@anavi.technology). 274 | 275 | --- 276 | -------------------------------------------------------------------------------- /anavi-macro-pad-12-arrows/anavi-macro-12-arrows.md: -------------------------------------------------------------------------------- 1 | # ANAVI Macro Pad 12 and ANAVI Arrows 2 | 3 | **Compact, open-source, hot-swappable mechanical keyboards featuring back-lighting, under-lighting and an OLED display** 4 | 5 | --- 6 | 7 | # DISCLAIMER 8 | 9 | ANAVI, the ANAVI logo and combinations thereof, are registered trademarks of Leon Anavi. Other product names may be trademarks of others and the rights belong to their respective owners. 10 | 11 | The information in this document is provided in connection with ANAVI Technology products. No license, express or implied or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Anavi products. 12 | 13 | This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://www.creativecommons.org/licenses/by-sa/3.0/. 14 | 15 | ANAVI Macro Pad 12 and ANAVI Arrows hardware designs are licensed under [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/). 16 | 17 | The software examples are released under MIT and the rest of the software is available under GPLv3. 18 | 19 | It is possible that the pictures in this manual differ from the latest revision of the board. 20 | 21 | The product described in this document is subject to continuous development and improvements. All particulars of the product and its use contained in this document are given by ANAVI Technology in good faith. However all warranties implied or expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This document is intended only to assist the reader in the use of the product. ANAVI Technology shall not be liable for any loss or damage arising from the use of any information in this document or any error or omission in such information or any incorrect use of the product. 22 | 23 | This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only and is not considered by ANAVI Technology to be a finished end-product fit for general consumer use. People handling the product must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. 24 | 25 | There is no warranty for the design materials and the components used to create ANAVI Macro Pad 12 and ANAVI Arrows. They are considered suitable only for ANAVI Macro Pad 12 and ANAVI Arrows. 26 | 27 | --- 28 | 29 | # CHAPTER 1: Overview 30 | 31 | ## Introduction 32 | 33 | Unleash your typing potential with our new small, fully programmable, open source mechanical keyboards with hot-swappable sockets: **ANAVI Macro Pad 12** and **ANAVI Arrows**. Both are powered by the Raspberry Pi RP2040 microcontroller at the heart of the [Seeed XIAO RP2040](https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html), which provides support for USB Type-C. Each kit includes a mini yellow-blue OLED display for the dedicated I2C connector. Out of the box the keyboards are powered by the open source KMK firmware, written in CircuitPython. 34 | 35 | ANAVI Macro Pad 12 keyboard offers twelve fully programmable, hot-swappable, Gateron red mechanical switches with translucent keycaps. The black, gold-plated PCB features yellow back-lighting under each key, RGB LED on front and six WS2812B LEDs for under lighting effects. The hot-swappable sockets allow you to change the mechanical switches easily, with no soldering required. The device has a I²C slot for adding peripherals, such as a mini OLED display, which is included in the kit. 36 | 37 | ANAVI Arrows offers single rotary encoder with a clickable switch and a RGB LED and four Gateron red, linear, non-clicky mechanical switches with transparent keycaps and yellow LED back-lighting. You can easily turn the rotary encoder left or right, and you also can click it! It is fully programmable! ANAVI Arrows is black, gold-plated PCB features with yellow back-lighting under each key and with four WS2812B LEDs for under lighting effect. It also has a I²C slot for adding peripherals, such as mini OLED display, which is included in the kit. 38 | 39 | ## Features 40 | 41 | ### ANAVI Macro Pad 12 42 | 43 | A kit with ANAVI Macro Pad 12 includes: 44 | 45 | * **Keys**: Twelve Gateron red, linear, non-clicky hot-swap mechanical switches and transparent keycaps with yellow LED backlighting 46 | * **Peripherals:** RGB LED on top, six WS2812B addressable LED strip for bottom-lighting, I²C slot for mini OLED display or other peripherals 47 | * **MCU**: Raspberry Pi RP2040 48 | * **Connectivity**: USB-C 49 | * **Firmware**: KMK firmware 50 | * **Compatibility**: Windows, macOS, and Linux support 51 | * **Dimensions**: 73.0 x 116.7 mm (2.87 x 4.60 inches) 52 | 53 | ### ANAVI Arrows 54 | 55 | A kit with ANAVI Arrows includes: 56 | 57 | **Keys**: Four Gateron red, linear, non-clicky hot-swap mechanical switches and transparent keycaps with yellow LED back-lighting 58 | * **Inputs**: One rotary encoder with clickable switch 59 | * **Peripherals:** RGB LED on front and four addressable WS2812B LED strip for bottom-lighting, I²C slot for mini OLED display or other peripherals 60 | * **MCU**: Raspberry Pi RP2040 61 | * **Connectivity**: USB-C 62 | * **Firmware**: KMK firmware 63 | * **Compatibility**: Windows, macOS, and Linux support 64 | * **Dimensions**: 80.0 x 63.2 mm (3.15 x 2.49 inches) 65 | 66 | ## Mini OLED Display 67 | 68 | Each kit of ANAVI Macro Pad 12 and ANAVI Arrows contains a mini yellow-blue I2C OLED display. I2C, short for Inter-Integrated Circuit, is a widely used serial communication protocol. There is a dedicated connector on the printed circuit board of each keyboard to plug the mini OLED display. Eventually, it is technically possible to add other I2C devices, for example a gesture sensor, to the same connector. The open source firmware KMK has support for OLED display. 69 | 70 | ## Target Market 71 | 72 | ANAVI Macro Pad 12 and ANAVI Arrows can be customized to fit multiple use cases across various industries: video or audio editing, video conferencing software, entertainment broadcasting, product and graphic design, gaming, engineering, programming, etc. It boosts your daily productivity by providing amazing level of control with gorgeous light effects on your fingertips! 73 | 74 | ## Board Version 75 | 76 | Revision 1.0 of ANAVI Macro Pad 12 and revisions 1.0 of ANAVI Arrows were used while writing this document. It is possible that it is outdated so it is always recommended to check the latest sources from the GitHub page of the board. 77 | 78 | # CHAPTER 2: Getting Started 79 | 80 | ## Electrostatic Warning 81 | 82 | ANAVI Macro Pad 12 and ANAVI Arrows are shipped in protective bags. The board must **NOT** be exposed to high electrostatic potentials. A grounding strap or similar protective device should be worn when handling the board. Avoid touching the component pins or any other metallic element. 83 | 84 | ## Requirements 85 | 86 | In order to setup ANAVI Macro Pad 12 or ANAVI Arrows the following items are required: 87 | 88 | * Personal Computer with MS Windows, Mac OS or GNU/Linux distribution 89 | * USB to USB-C cable 90 | 91 | Getting started with and assembled ANAVI Macro Pad 12 or ANAVI Arrows is easy. Just connect it to your GNU/Linux, Windows, or macOS computer, and use a browser to configure and load your keyswitch macro or shortcut settings. 92 | 93 | By default ANAVI Macro Pad 12 and ANAVI Arrows come with the open source [KMK firmware: Clackety Keyboards Powered by CircuitPython](http://kmkfw.io/). Furthermore they also support the open source the [Quantum Mechanical Keyboard (QMK) firmware](https://docs.qmk.fm/#/), To configure and modify the keyboard layouts you can use QMK Configurator, an online graphical user interface that generates QMK firmware hex files directly in a web browser or use the source code. Press the RESET button on ANAVI Macro Pad 12 or ANAVI Arrows to enter flash mode and upload the new firmware. 94 | 95 | ANAVI Macro Pad 12 and ANAVI Arrows are powered by [Seeed Studio XIAO RP2040](https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html) with Raspberry Pi RP2040 MCU. 96 | 97 | ## Supported Peripherals 98 | 99 | Each kit of ANAVI Macro Pad 12 and ANAVI Arrows contains a mini yellow-blue I2C OLED display. I2C, short for Inter-Integrated Circuit, is a widely used serial communication protocol. There is a dedicated connector on the printed circuit board of each keyboard to plug the mini OLED display. Eventually, it is technically possible to add other I2C devices, for example a gesture sensor, to the same connector. The open source firmware KMK has support for OLED display. 100 | 101 | ## Assembly 102 | 103 | ### ANAVI Macro Pad 12 and ANAVI Arrows 104 | 105 | Follow the steps below to assemble ANAVI Macro Pad 12 and ANAVI Arrows. Although you can do it with your bare hands, simple tools like a screwdriver, tweezers and a keycap puller might be useful. 106 | 107 | * Stickers 108 | 109 | *This step is optional.* Each kit includes a set of stickers, which can be add to the translucent keycaps. You can do it with your bare hands or eventually with the help of tweezers. 110 | 111 | You can place a sticker on the top or on the side of the keycap. If you like retro electronics you may find some similarities in this approach to the famous keyboard of the best selling personal computer of the 20th century Commodore 64. 112 | 113 | ANAVI Macro Pad 12 and ANAVI Arrows are powered by the popular open source firmware QMK which allows you to create various layouts. You can make a keymap with 2 or more layouts. A sticker on the side of the keycap might be useful as a visual aid to indicate the additional function of the key. 114 | 115 | * Peel Off Protective Films from the Acrylic Enclosure 116 | 117 | Peel off the protective films from both sides of the three laser cut transparent acrylic parts. The removal of the protective films is quite annoying but once you get rid of them, the acrylic enclosure will be crystal clear and fully transparent. 118 | 119 | * Assemble the Acrylic Enclosure 120 | 121 | Assemble the acrylic enclosures. In the cardboard box you also will find four M3 screws and eight M3 nuts. Although you can assemble them with your bare hands a screw driver might be handy. 122 | 123 | First place 4 screws up through the solid acrylic bottom plate. Fasten the screws to the bottom plate with 4 M3 nuts. 124 | 125 | Next, place the ANAVI Macro Pad 12 or ANAVI Arrows PCB on top of of the bottom plate with the XIAO-RP2040 and knob facing away from the bottom plate passing the screws through the 4 mounting holes in the PCB. 126 | 127 | Add the U-shaped acrylic spacer plate on top of the PCB with the cutout leaving room for the USB port on the XIAO-RP2040. 128 | 129 | Place the top acrylic part and gently fasten it with the 4 M3 nuts. 130 | 131 | Finally add the foam protective pads to the screws on the bottom. 132 | 133 | * Keycaps 134 | 135 | Place all keycaps on the mechanical switches of ANAVI Macro Pad 12 or ANAVI Arrows. You can easily do this with your bare hands. It takes just a few seconds. 136 | 137 | A keycap puller might be useful if you make a mistake and want to pull off a keycap and place it on another location. 138 | 139 | * Mini OLED Display 140 | 141 | The open source QMK firmware for ANAVI Macro Pad 12 and ANAVI Arrows supports mini OLED display connected over the communication bus I2C. 142 | 143 | It is recommended to use yellow-blue 0.96" I2C OLED display. It comes with 4 jumper wires which might be useful for debugging purposes or if you plan to make a custom 3D printed case. However for the default acrylic enclosure the wires are not needed. 144 | 145 | Peel off the protected film and place the mini OLED display as shown in ANAVI Macro Pad 12 and ANAVI Arrows videos. Pay attention to the labels that indicated the pin connectors of the display. They must match the labels on the keyboard. 146 | 147 | * Turn On ANAVI Macro Pad 12 148 | 149 | Gently use a USB to USB-C cable to connect ANAVI Macro Pad 12 or ANAVI Arrows to a personal computer. Please be careful with the USB-C connector, because a harsh bending of the USB cable may damage the USB-C connector. 150 | 151 | Thanks to the KMK firmware, ANAVI Macro Pad 12 or ANAVI Arrows will be detected as human interface device and should work out of the box. Furthermore with KMK you have the freedom to fully customize each key. 152 | 153 | Please note that a USB to USB-C cable is **not** included in any of the kits. Re-use a cable from an old electronic device or purchase a cable according to your taste. Make sure that the cable supports both power and data transfer over USB. 154 | 155 | --- 156 | 157 | # CHAPTER 3: Software 158 | 159 | Out of the box ANAVI Macro Pad 12 and ANAVI Arrows come with the open source firmware KMK written in CircuitPython. 160 | 161 | ## KMK firmware 162 | 163 | [![Watch the video](https://img.youtube.com/vi/clngc4eI7y8/maxresdefault.jpg)](https://youtu.be/clngc4eI7y8) 164 | 165 | [KMK](http://kmkfw.io/) is a free and open source firmware for mechanical keyboards written in CircuitPython. 166 | 167 | [CircuitPython](https://circuitpython.org/) is an open-source programming language that runs on microcontrollers used in various embedded applications, including mechanical keyboards like ANAVI Macro Pad 12 and ANAVI Arrows. It is derived from the Python programming language and tailored to the needs of constrained embedded devices with a microcontroller. One of the key advantages of CircuitPython is its simplicity and ease of use, especially for beginners who lack extensive programming experience. 168 | 169 | The KMK source code can be accessed on [GitHub](https://github.com/KMKfw/kmk_firmware), where it is released under the GPLv3 license. The development of KMK started in 2018. KMK source code employs the Python code formatter known as Black and utilizes single quotes in its coding style. 170 | 171 | KMK is designed to be compatible with microcontrollers that have a minimum of 256KB of flash storage, support HID over USB and/or Bluetooth, and can run CircuitPython version 7.0 or newer. With its impressive hardware capabilities, the Raspberry Pi RP2040 microcontroller is a perfect fit for CircuitPython and KMK. ANAVI Macro Pad 12 and ANAVI Arrows are designed around [Seeed Studio’s XIAO module with RP2040](https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html). 172 | 173 | KMK provides numerous amazing key features, including: 174 | 175 | * **Key Mapping:** Customize key assignments to suit individual preferences 176 | * **Macros:** Create and assign macros for automating tasks or executing commands 177 | * **Layers:** Define multiple virtual layers for accessing different functions or modes 178 | * **LED Control:** Customize backlighting and LED behavior 179 | * **Rotary Encoder:** Rotary encoders for various functions like volume control or scrolling. 180 | * **Mini OLED Display:** Compatibility with mini OLED displays, allowing users to display custom information or visuals on their keyboards. 181 | 182 | ## QMK firmware 183 | 184 | *This step is optional and is provided in case you want to use QMK firmware.* 185 | 186 | Out of the box ANAVI Macro Pad 12 and ANAVI Arrows all come with [the popular open source firmware KMK](https://github.com/KMKfw/kmk_firmware). Alternatively, [QMK firmware](https://qmk.fm/) is also supported. Several different keymaps are available. 187 | 188 | ## Compile QMK for ANAVI Macro Pad 12 189 | 190 | After installing QMK software on your computer, from the command line you can compile QMK firmware with the `default` keymap for ANAVI Macro Pad 12 or ANAVI Arrows using the following command: 191 | 192 | ``` 193 | qmk compile -kb anavi/macropad12 -km default 194 | ``` 195 | 196 | ## Flash QMK on ANAVI Macro Pad 12 197 | 198 | Follow the steps below to flash the compiled QMK firmware to ANAVI Macro Pad 12: 199 | 200 | * Connect ANAVI Macro Pad 12 or ANAVI Arrows to your personal computer with USB to USB-C cable and upload the firmware 201 | 202 | --- 203 | 204 | # CHAPTER 4: Hardware Schematics 205 | 206 | ## Pinout 207 | 208 | ### ANAVI Macro Pad 12 209 | 210 | ANAVI Macro Pad 12 utilizes the following pins on [Seeed Studio XIAO RP2040](https://wiki.seeedstudio.com/XIAO-RP2040/): 211 | 212 | | Component | Pins | 213 | | ------------------- |:-------------------------------------- | 214 | | I2C | D4 (SDA), D5 (SCL) | 215 | | Mechanical switches | D1, D2, D3, D6, D7, D8, D9 | 216 | | LEDs (backlit) | D0 | 217 | | WS2812B LED strip | D10 | 218 | 219 | 220 | ### ANAVI Arrows 221 | 222 | ANAVI Arrows utilizes the following pins on [Seeed Studio XIAO RP2040](https://wiki.seeedstudio.com/XIAO-RP2040/): 223 | 224 | | Component | Pins | 225 | | ------------------- |:-------------------------------------- | 226 | | I2C | D4 (SDA), D5 (SCL) | 227 | | Mechanical switches | D1, D2, D3, D6 | 228 | | Rotary encoder | D7, D8, D9 | 229 | | LEDs (backlit) | D0 | 230 | | WS2812B LED strip | D10 | 231 | 232 | ## I2C 233 | 234 | A mini OLED display that can be connected to ANAVI Macro Pad 12 or ANAVI Arrows communicate with a host microcontroller via a communications standard called **I2C** (Inter-Integrated-Circut). I2C uses two wires, labeled SDA (Serial Data) and SCL (Serial Clock). To function properly, I2C requires a pullup resistor on each of those lines therefore ANAVI Macro Pad 8 includes two 4.7kohm resistors labeled as R13 and R14. If for one reason or another you need to disable the I2C pullup resistors remove R13 and R14. 235 | 236 | --- 237 | 238 | # CHAPTER 5: Revision History 239 | 240 | ## Document Revision 241 | 242 | | Date | Changes | Modified pages | Author | 243 | | ----------------- |:---------------------------:| :---------------| :------------------| 244 | | 05 June 2023 | Initial manual release | All | Desislava Angelova | 245 | | 03 November 2023 | KMK, QMK and schematics | All | Leon Anavi | 246 | 247 | ## ANAVI Macro Pad 12 Revision 248 | 249 | | Revision| Notable changes | 250 | | ------- |:-------------------------------------------------------------| 251 | | 1.0 | Stable version | 252 | 253 | ## ANAVI Arrows Revision 254 | 255 | | Revision| Notable changes | 256 | | ------- |:-------------------------------------------------------------| 257 | | 1.0 | Stable version | 258 | 259 | 260 | ## See Also 261 | 262 | For more information please visit [anavi.technology](https://anavi.technology/) and our [GitHub repositories](https://github.com/AnaviTechnology). If you have any questions or enquiries please contact us through [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) or [email](mailto:info@anavi.technology). 263 | 264 | --- 265 | -------------------------------------------------------------------------------- /anavi-macro-pad-2/anavi-macro-pad-2-datasheet.md: -------------------------------------------------------------------------------- 1 | --- 2 | fontfamily: dejavu 3 | header-includes: 4 | - \exhyphenpenalty=10000 5 | - \hyphenpenalty=10000 6 | - \hypersetup{colorlinks=false, 7 | allbordercolors={0 0 0}, 8 | pdfborderstyle={/S/U/W 1}} 9 | --- 10 | 11 | # ANAVI Macro Pad 2 12 | 13 | ## DATASHEET 14 | 15 | ![ANAVI Macro Pad 2](images/anavi-macro-pad-2-01.jpg?raw=true "ANAVI Macro Pad 2") 16 | 17 | ANAVI Macro Pad 2 is a tiny open source, programmable two-key mechanical keypad with backlighting. Each of the two keys allows you to reprogram and use it as macro keypad or even dedicated shortcut keys. 18 | 19 | ANAVI Macro Pad 2 is certified by the Open Source Hardware Association under [UID 20 | BG000077](https://certification.oshwa.org/bg000077.html). Designed with [KiCad](https://kicad.org/), [OpenSCAD](https://openscad.org/) and [Inkscape](https://inkscape.org/). Made in Plovdiv, Bulgaria, EU. 21 | 22 | ANAVI Macro Pad 2 can be customized for multiple use cases across various industries. It is the perfect fit for copy and paste as well as video conferencing applications. You can easily turn the camera or microphone on or off. Various keymaps are available, including for Zoom, Jitsi, Skype, Microsoft Teams, Google Meet, and Git. 23 | 24 | ANAVI Macro Pad 2 boosts your daily productivity by providing an amazing level 25 | of control with gorgeous light effects at your fingertips! 26 | 27 | \pagebreak 28 | 29 | ## Features & Specifications 30 | 31 | * **Keys:** 2 Gateron red mechanical switches with 3 mm LED backlit and translucent keycaps 32 | * **CPU:** [Microchip ATtiny85](https://www.microchip.com/wwwproducts/en/ATtiny85) 33 | * **Connectivity:** microUSB 34 | * **Firmware:** Quantum Mechanical Keyboard (QMK) open source firmware 35 | * **Compatibility:** Windows, MacOS, and GNU/Linux support 36 | * **Dimensions:** 40x38 mm (1.60x1.50 inches) 37 | 38 | ANAVI Macro Pad 2 relies on [QMK firmware](https://github.com/qmk/qmk_firmware), [Micronucleus](https://github.com/micronucleus/micronucleus) bootloader and [V-USB](https://www.obdev.at/products/vusb/index.html), an open source software-only implementation of a low-speed USB device for Microchip’s AVR® microcontrollers. There is 5 second boot delay during which the Microchip ATtiny85 microcontroller on ANAVI Macro Pad 2 can be reprogrammed. 39 | 40 | ![ANAVI Macro Pad 2](images/anavi-macro-pad-2-02.jpg?raw=true "ANAVI Macro Pad 2") 41 | 42 | ANAVI Macro Pad 2 is made in Plovdiv, Bulgaria, EU by [ANAVI Technology Ltd](https://anavi.technology/). 43 | 44 | \pagebreak 45 | 46 | ## Kit Configurations 47 | 48 | ANAVI Macro Pad 2 is available in two do-it-yourself kits. USB to Micro USB cable is **not** included in any of the kits. 49 | 50 | ||Maker Kit|Developer Kit| 51 | |----|----|----| 52 | |**ANAVI Macro Pad 2**|Yes|Yes| 53 | |**2 Gateron red mechanical switches**|Yes|Yes| 54 | |**2 translucent keycaps**|Yes|Yes| 55 | |**Keyswitch red backlighting**|Yes|Yes| 56 | |**Acrylic enclosure**|Yes|Yes| 57 | |**Requires Soldering**|Yes|No| 58 | 59 | ![ANAVI Macro Pad 2](images/anavi-macro-pad-2-03.jpg?raw=true "ANAVI Macro Pad 2") 60 | 61 | \pagebreak 62 | 63 | #### ANAVI Macro Pad 2 Developer Kit (CS-ANAVI-MP2-1) 64 | 65 | ![ANAVI Macro Pad 2 Developer Kit](images/anavi-macro-pad-developer-kit.jpg?raw=true "ANAVI Macro Pad 2 Developer Kit") 66 | 67 | The Developer Kit does **not** require any soldering. It features Gateron red mechanical switches and translucent keycaps with red backlighting. The Developer Kit is easy to get started with, and it is perfect even for newbies. Just pop the keycaps on, and you're ready to go. 68 | 69 | \pagebreak 70 | 71 | #### ANAVI Macro Pad 2 Maker Kit (CS-ANAVI-MP2-2) 72 | 73 | ![ANAVI Macro Pad 2 Maker Kit](images/anavi-macro-pad-maker-kit.jpg?raw=true "ANAVI Macro Pad 2 Maker Kit") 74 | 75 | The Maker Kit is for advanced users only. It requires soldering, but provides you the opportunity to pick your own mechanical switches (compatible with Cherry MX plate or PCB footprint) and color of 3 mm backlit LEDs. 76 | 77 | ## Hardware Schematics 78 | 79 | ANAVI Macro Pad 2 [schematics are available at GitHub](https://github.com/AnaviTechnology/anavi-macro-pad-2). It utilizes the following pins on Microchip ATtiny85: 80 | 81 | | Component | Pins | 82 | | ------------------- |:------------------------------- | 83 | | USB | PB3, PB4 | 84 | | Mechanical Switches | PB0, PB2 | 85 | | 3mm LEDs | PB1 | 86 | 87 | ## Resources 88 | 89 | * [User's manual](https://github.com/AnaviTechnology/anavi-docs/tree/master/anavi-macro-pad-2) 90 | * [Quantum Mechanical Keyboard (QMK) configurations](https://github.com/qmk/qmk_firmware/tree/master/keyboards/anavi/macropad2) 91 | * For more information visit [https://anavi.technology/](https://anavi.technology/) 92 | -------------------------------------------------------------------------------- /anavi-macro-pad-2/anavi-macro-pad-2-datasheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-2/anavi-macro-pad-2-datasheet.pdf -------------------------------------------------------------------------------- /anavi-macro-pad-2/anavi-macro-pad-2.md: -------------------------------------------------------------------------------- 1 | # ANAVI Macro Pad 2 2 | 3 | **Open source, programmable two-key mechanical keypad with backlighting** 4 | 5 | --- 6 | 7 | # DISCLAIMER 8 | 9 | ANAVI, the ANAVI logo and combinations thereof, are registered trademarks of Leon Anavi. Other product names may be trademarks of others and the rights belong to their respective owners. 10 | 11 | The information in this document is provided in connection with ANAVI Technology products. No license, express or implied or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Anavi products. 12 | 13 | This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://www.creativecommons.org/licenses/by-sa/3.0/. 14 | 15 | ANAVI Macro Pad 2 hardware design is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. 16 | 17 | The software examples are released under MIT and the rest of the software is available under GPLv3. 18 | 19 | It is possible that the pictures in this manual differ from the latest revision of the board. 20 | 21 | The product described in this document is subject to continuous development and improvements. All particulars of the product and its use contained in this document are given by ANAVI Technology in good faith. However all warranties implied or expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This document is intended only to assist the reader in the use of the product. ANAVI Technology shall not be liable for any loss or damage arising from the use of any information in this document or any error or omission in such information or any incorrect use of the product. 22 | 23 | This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only and is not considered by ANAVI Technology to be a finished end-product fit for general consumer use. People handling the product must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. 24 | 25 | There is no warranty for the design materials and the components used to create ANAVI Macro Pad 2. They are considered suitable only for ANAVI Macro Pad 2. 26 | 27 | --- 28 | 29 | # CHAPTER 1: Overview 30 | 31 | ## Introduction 32 | 33 | ANAVI Macro Pad 2 is an open source, custom programmable, tiny 2% mechanical keyboard/keypad. Each of the two keys allows you to reprogram and use it as macro keypad or even dedicated shortcut keys. 34 | 35 | ANAVI Macro Pad 2 can be customized for multiple use cases across various industries. It is the perfect fit for copy and paste as well as video conferencing applications. You can easily turn the camera or microphone on or off. Various keymaps are available, including for Zoom, Jitsi, Skype, Microsoft Teams, Google Meet, and Git. 36 | 37 | ANAVI Macro Pad 2 boosts your daily productivity by providing an amazing level 38 | of control with gorgeous light effects at your fingertips! 39 | 40 | ANAVI Macro Pad 2 is an entirely open source project that combines open source hardware with free and open source software. 41 | 42 | Only free and open source software tools like KiCad, OpenSCAD, and Inkscape were used to design ANAVI Macro Pad 2. [Quantum Mechanical Keyboard (QMK)](https://qmk.fm/) with V-USB is the default open source firmware. Source code and schematics are [available on GitHub](https://github.com/anavitechnology/). 43 | 44 | ANAVI Macro Pad 2 runs thanks to [Microchip ATtiny85](https://www.microchip.com/wwwproducts/en/ATtiny85). This is a low-cost reliable 8-bit AVR RISC-based microcontroller. Although ATtiny85 is not as robust as ATmega32U4 or ATmega328P, the affordable price, reliability and small package makes ATtiny85 popular among both enthusiasts and professionals. ANAVI Macro Pad 2 uses the open source project V-USB that provides a software-only implementation of a low-speed USB device. 45 | 46 | ANAVI Macro Pad 2 is made in Plovdiv, Bulgaria, EU and packaged in a eco-friendly recyclable cardboard box. 47 | 48 | ## Features & Specifications 49 | 50 | ANAVI Macro Pad 2 features: 51 | 52 | * **Keys:** 2 Gateron red mechanical switches with 3 mm LED backlit and translucent keycaps 53 | * **CPU:** [Microchip ATtiny85](https://www.microchip.com/wwwproducts/en/ATtiny85) 54 | * **Connectivity:** microUSB 55 | * **Firmware:** Quantum Mechanical Keyboard (QMK) open source firmware 56 | * **Compatibility:** Windows, MacOS, and GNU/Linux support 57 | * **Dimensions:** 40x38 mm (1.60x1.50 inches) 58 | 59 | Further technical specifications are available at [ANAVI Macro Pad 2 datasheet](https://github.com/AnaviTechnology/anavi-docs/blob/master/anavi-macro-pad-2/anavi-macro-pad-2-datasheet.pdf). 60 | 61 | ## Target Market 62 | 63 | ANAVI Macro Pad 2 can be customized to fit multiple use cases across various industries: video conferencing software, video or audio editing, entertainment broadcasting, product and graphic design, gaming, engineering, programming, etc. It boosts your daily productivity by providing amazing level of control with gorgeous light effects on your fingertips! 64 | 65 | ## Board Version 66 | 67 | Revision 1.0 of ANAVI Macro Pad 2 was used while writing this document. It is possible that it is outdated so it is always recommended to check the latest sources from the GitHub page of the board. 68 | 69 | # CHAPTER 2: Getting Started 70 | 71 | ## Electrostatic Warning 72 | 73 | ANAVI Macro Pad 2 is shipped in a protective bag. The board must **NOT** be exposed to high electrostatic potentials. A grounding strap or similar protective device should be worn when handling the board. Avoid touching the component pins or any other metallic element. 74 | 75 | ## Requirements 76 | 77 | In order to setup ANAVI Macro Pad 2 the following items are required: 78 | 79 | * Computer 80 | * USB to microUSB cable 81 | 82 | Getting started with and assembled ANAVI Macro Pad 2 is easy. Just connect it to your Linux, Windows, or macOS computer, and use a browser to configure and load your keyswitch macro or shortcut settings. 83 | 84 | ANAVI Macro Pad 2 relies on the Quantum Mechanical Keyboard (QMK) firmware, To configure and modify the keyboard layouts you can use QMK Configurator, an online graphical user interface that generates QMK firmware hex files directly in a web browser or use the source code. Connect ANAVI Macro Pad 2 to a computer with USB to microUSB cable to enter flash mode and upload the new firmware. 85 | 86 | Furthermore, ANAVI Macro Pad 2 is powered by a Microchip ATtiny85 microcontroller, so it is possible to use as an Adafruit Trinket-compatible development board and upload Arduino sketches through Arduino IDE or PlatformIO. 87 | 88 | ## Assembly 89 | 90 | ### ANAVI Macro Pad 2 Maker Kit 91 | 92 | **NOTE:** The **maker** kit is for advanced users and requires soldering skills. If you have a developer kit chip this chapter. 93 | 94 | The maker kit provides the printed circuit board and an addressable LED strip. There are also some nice stickers. Other accessories have to be purchased separately. You can use any mechanical switches compatible with Cherry MX plate footprint and 3mm LEDs. 95 | 96 | **NOTE:** With the maker kit you can also perform [a hot-swap upgrade of ANAVI Macro 8](https://www.youtube.com/watch?v=lnFSAm9R4j0). It requires a very specific procedure explained in [this video](https://www.youtube.com/watch?v=lnFSAm9R4j0). If you have in mind a hot-swap upgrade do not solder anything and have a look at [the video](https://www.youtube.com/watch?v=lnFSAm9R4j0). 97 | 98 | For soldering and a standard assembly of the **maker kit** several tools are required: a soldering iron, a screwdriver, scissors, tweezers and a keycap puller might be also useful. It is also a good idea to stay safe and get a smoke absorber while soldering, for example [ANAVI Fume Extractor](https://anavi.technology/#products). 99 | 100 | Please have [a look at the video](https://www.youtube.com/watch?v=AlH5sLEsoNc) and follow the steps below to assemble ANAVI Macro Pad 2 **Maker** Kit. 101 | 102 | * Solder mechanical switches to the printed circuit board 103 | 104 | Any mechanical switches compatible with Cherry MX plate or PCB footprint are suitable for ANAVI Macro Pad 2. The developer kit comes with Gateron red mechanical switches. The maker kits allows you to choose another brand, type and color. 105 | 106 | Choosing the most appropriate switch for your needs is a matter of personal preference. There are many different brands and colors. For example, the blue mechanical switches are more noisy which could be sometimes fun but also annoying during daily work. The red switches are fast and not very noisy therefore they are often proffered by gamers. 107 | 108 | There are two pins on each mechanical switch that must be soldered to the printed circuit board. That makes 4 pins in total for the 2 keys on ANAVI Macro Pad 2. The position of the each of the pins is very specific and you can easily recognize it. One of the pins for the signal coming from the Microchip ATtiny85 microcontroller, the other pin is for ground. 109 | 110 | * Solder 3mm LED 111 | 112 | This step is actually optional depending on the the type of the mechanical switch. Some mechanical switches may not have a hole in the plastic enclosure for a 3mm LED. For example, the Gateron red switches have a dedicated place specially for 3mm LEDs. 113 | 114 | Each 3mm LED for through-hole soldering has 2 legs. The longer leg is the positive terminal, also known as anode. The shorter leg is negative and also known as cathode. 115 | 116 | The shorter leg that indicates the negative terminal must go into the square hole of the PCB. ANAVI Macro Pad 2 has 2 mechanical switches therefore 2 LEDs are required. If you want you can use different color of the LEDs. You can even mix colors. 117 | 118 | Once you are ready with these 2 steps your ANAVI Macro Pad 2 should looks just like a developer kit having all accessories soldered. Therefore the next steps are the same as for both the developer and the maker kit. 119 | 120 | ### ANAVI Macro Pad 2 Developer Kit 121 | 122 | [![ANAVI Macro Pad 2 Developer Kit Assembly Guide](https://img.youtube.com/vi/gZUdU3ZXAq8/0.jpg)](https://www.youtube.com/watch?v=gZUdU3ZXAq8) 123 | 124 | Please have [a look at the video](https://www.youtube.com/watch?v=gZUdU3ZXAq8) and follow the steps below to assemble ANAVI Macro Pad 2 **Developer** Kit. Although you can do it with your bare hands, simple tools like a screwdriver, tweezers and a keycap puller might be useful. 125 | 126 | * Peel Off Protective Films from the Acrylic Enclosure 127 | 128 | Peel off the protective films from both sides of the two laser cut transparent acrylic parts. The removal of the protective films is quite annoying but once you get rid of them, the acrylic enclosure will be crystal clear and fully transparent. 129 | 130 | * Assemble the Top Acrylic Enclosure 131 | 132 | Start with the top acrylic enclosure. Please note the it is not symmetric and make sure the position is correct according to the place of the C1 10uF capacitor. 133 | 134 | The kit includes M2.5 screws, nuts and washers. Although you can assemble them with your bare hands a screw driver will be very handy. 135 | 136 | Use the two longer screws for the two mounting holes near the microUSB connector. 137 | 138 | * Assemble the Bottom Acrylic Enclosure 139 | 140 | Use 6 nuts and 3 washers to attach the bottom acrylic enclosure to the printed circuit board. Use the shorter screw for the mounting hole between the two mechanical switches as it should hold only the bottom acrylic enclosure. Place 3 washers between the bottom acrylic enclosure and the last 3 nuts. 141 | 142 | * Add Protective Pads 143 | 144 | Stick the silicon protective pads to the bottom. There are 8 pads. Add two of them on top of each other to the 4 corners of the bottom acrylic plate. 145 | 146 | * Stickers 147 | 148 | *This step is optional.* Each kit includes a set of stickers. Feel free to add them to the translucent keycaps. You can do it with your bare hands or eventually with the help of tweezers. 149 | 150 | You can place a sticker on the top or on the side of the keycap. If you like retro electronics you may find some similarities in this approach to the famous keyboard of the best selling personal computer of the 20th century Commodore 64. 151 | 152 | ANAVI Macro Pad 2 is powered by the popular open source firmware QMK which allows you to create various layouts. You can make a keymap with 2 or more layouts. A sticker on the side of the keycap might be useful as a visual aid to indicate the additional function of the key. 153 | 154 | * Add Keycaps 155 | 156 | Place the translucent keycaps on the 2 mechanical switches of ANAVI Macro Pad 2. You can easily do this with your bare hands. It takes just a few seconds. 157 | 158 | Please note that a keycap puller might be useful if you make a mistake and want to pull off a keycap and place it on another location. 159 | 160 | * Turn On ANAVI Macro Pad 2 161 | 162 | Gently plug USB to microUSB cable and connect ANAVI Macro Pad 2 to a personal computer. Please be careful with the microUSB connector, because a harsh bending of the USB cable may damage it. 163 | 164 | ANAVI Macro Pad 2 relies on QMK firmware, [Micronucleus](https://github.com/micronucleus/micronucleus) bootloader and [V-USB](https://www.obdev.at/products/vusb/index.html), an open source software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers. There is 5 second boot delay during which the Microchip ATtiny85 microcontroller on ANAVI Macro Pad 2 can be reprogrammed. 165 | 166 | Thanks to the QMK firmware, ANAVI Macro Pad 2 will be detected as human interface device and should work out of the box. Furthermore with QMK you have the freedom to fully customize each key. 167 | 168 | Please note that a USB to microUSB cable is **not** included in any of the kits. Reuse a cable from an old electronic device or purchase a cable according to your taste. Make sure that the cable supports both power and data transfer over USB. 169 | 170 | --- 171 | 172 | # CHAPTER 3: Software 173 | 174 | Out of the box ANAVI Macro Pad 2 comes with [the popular open source firmware QMK](https://github.com/qmk/qmk_firmware/blob/0.13.19/keyboards/anavi/macropad2). Several different keymaps are supported. For details how to build and flash QMK firmware on ANAVI Macro Pad 2 please have a look at the [README](https://github.com/qmk/qmk_firmware/blob/0.13.19/keyboards/anavi/macropad2/readme.md). 175 | 176 | Please note that on [Fri Aug 6 2021 the support for all keyboards using Microchip ATtiny85, including ANAVI Macro Pad 2, was dropped from QMK](https://github.com/qmk/qmk_firmware/commit/0dafd83f72ba2ae79c2ca754a120b1de8b4dbfe8) due to the increased size of the firmware following the implementation of a features to [process combos earlier and overlapping combos](https://github.com/qmk/qmk_firmware/pull/8591). Therefore support for ANAVI Macro Pad 2 is available in older versions, for example QMK firmware version 0.13.19. 177 | 178 | The steps in this chapter may vary across different operating systems and versions of Linux distributions. If you are using [Ubuntu 24.04](#ubuntu-2404-lts), please follow [the exact steps provided for this version](#ubuntu-2404-lts). 179 | 180 | ## Flashing 181 | 182 | ### Prerequisites 183 | 184 | * Install [Micronucleus](https://github.com/micronucleus/micronucleus), an open source ATTiny usb bootloader with a strong emphasis on bootloader compactness. Follow the [usage guidelines from the README](https://github.com/micronucleus/micronucleus#usage) as there are specific steps if you are using Windows 10. 185 | 186 | On GNU/Linux distributions, for example Debian or Ubuntu, Micronucleus can be installed with the following commands: 187 | 188 | ```bash 189 | sudo apt-get install libusb-dev git 190 | git clone https://github.com/micronucleus/micronucleus.git 191 | cd micronucleus/commandline/ 192 | sudo make install 193 | ``` 194 | 195 | On GNU/Linux distributions, you will need proper privileges to access the MCU. You can either use `sudo` when flashing firmware, or place [these files](https://github.com/micronucleus/micronucleus/blob/master/commandline/49-micronucleus.rules) in `/etc/udev/rules.d/`. Once added run the following: 196 | 197 | ```bash 198 | sudo udevadm control --reload-rules 199 | sudo udevadm trigger 200 | ``` 201 | 202 | ### Instructions 203 | 204 | * [Setup QMK](https://docs.qmk.fm/#/newbs_getting_started). 205 | 206 | * Download QMK firmware version 0.13.19, for example: 207 | 208 | ```bash 209 | git clone -b 0.13.19 https://github.com/qmk/qmk_firmware.git qmk-01319 210 | cd qmk-01319 211 | git submodule update --init 212 | ``` 213 | 214 | * Build QMK firmware for ANAVI Macro Pad 2 using the `default` keymap: 215 | 216 | ``` 217 | make anavi/macropad2:default 218 | ``` 219 | 220 | * Run one of the following commands to flash the firmware on ANAVI Macro Pad 2: 221 | 222 | ```bash 223 | make anavi/macropad2:default:flash 224 | ``` 225 | 226 | or alternatively with micronucleus: 227 | 228 | ```bash 229 | micronucleus --run anavi_macropad2_default.hex 230 | ``` 231 | 232 | **NOTE**: If you want to build another QMK keymap for ANAVI Macro Pad 2 replace `default` with its name. All existing keymaps are in directory `keyboards/anavi/macropad2/keymaps/`. 233 | 234 | * Plug ANAVI Macro Pad 2 to the USB port and the flashing procedure should start 235 | 236 | ### Recovery 237 | 238 | * [Original Firmware](https://github.com/AnaviTechnology/anavi-macro-pad-2/tree/main/bootloader) 239 | * [Bootloader Repair](https://digistump.com/wiki/digispark/tutorials/proisp) 240 | 241 | --- 242 | 243 | ## Ubuntu 24.04 LTS 244 | 245 | Ubuntu 24.04 LTS (Long-Term Support), released in April 2024, is a version of the popular Linux distribution by Canonical Ltd. As an LTS release, it offers five years of support, including security patches and updates until April 2029, ensuring stability and reliability for both desktop and server environments. 246 | 247 | **NOTE:** Ubuntu has adopted the Python standards defined in PEP-668. These changes prevent pip packages from being installed globally by default. For simplicity, this tutorial provides a straightforward fix for the "externally-managed" error when installing QMK. Generally, using virtual environments is the recommended approach. 248 | 249 | Follow the steps below to set up QMK for ANAVI Macro Pad 2 on Ubuntu 24.04 LTS: 250 | 251 | * Install dependencies: 252 | 253 | ``` 254 | sudo apt-get install -y libusb-dev git 255 | ``` 256 | 257 | * Download, build and install micronucleus: 258 | 259 | ``` 260 | git clone https://github.com/micronucleus/micronucleus.git 261 | cd micronucleus/commandline/ 262 | sudo make install 263 | sudo udevadm control --reload-rules 264 | sudo udevadm trigger 265 | ``` 266 | 267 | * Setup QMK 268 | 269 | ``` 270 | sudo apt install -y python3-pip 271 | sudo rm /usr/lib/python3.12/EXTERNALLY-MANAGED 272 | python3 -m pip install --user qmk 273 | ``` 274 | 275 | **NOTE**: Instead of removing EXTERNALLY-MANAGED consider the [other options](https://www.makeuseof.com/fix-pip-error-externally-managed-environment-linux/). 276 | 277 | * Install QMK 0.13.19 (version that works with ANAVI Macro Pad 2): 278 | 279 | ``` 280 | cd ~ 281 | ~/.local/bin/qmk setup -b 0.13.19 282 | ``` 283 | 284 | * Build QMK with default keymap for ANAVI Macro Pad 2: 285 | 286 | ``` 287 | cd ~/qmk_firmware/ 288 | make anavi/macropad2:default 289 | ``` 290 | 291 | * Flash firmware on ANAVI Macro Pad 2: 292 | 293 | ``` 294 | micronucleus --run anavi_macropad2_default.hex 295 | ``` 296 | 297 | # CHAPTER 4: Hardware Schematics 298 | 299 | ## Pinout 300 | 301 | ANAVI Macro Pad 2 utilizes the following pins on Microchip ATtiny85: 302 | 303 | | Component | Pins | 304 | | ------------------- |:------------------------------- | 305 | | USB | PB3, PB4 | 306 | | Mechanical Switches | PB0, PB2 | 307 | | 3mm LEDs | PB1 | 308 | 309 | --- 310 | 311 | # CHAPTER 5: Frequently Asked Questions (FAQ) and Troubleshooting 312 | 313 | --- 314 | 315 | # CHAPTER 6: Revision History 316 | 317 | ## Document Revision 318 | 319 | | Date | Changes | Author | 320 | | ----------------- |:-------------------------------:| :---------------| 321 | | 06 May 2021 | Initial manual release | Leon Anavi | 322 | | 24 May 2021 | Add a link to the datasheet | Leon Anavi | 323 | | 22 Sep 2021 | Update notes about QMK firmware | Leon Anavi | 324 | | 25 Oct 2021 | Update QMK notes | Leon Anavi | 325 | | 05 Jul 2024 | Ubuntu 24.04 LTS exact steps | Leon Anavi | 326 | 327 | ## ANAVI Macro Pad 2 Revision 328 | 329 | | Revision| Notable changes | 330 | | ------- |:-------------------------------------------------------------| 331 | | 1.0 | Stable version | 332 | 333 | ## See Also 334 | 335 | For more information please visit [anavi.technology](http://anavi.technology/) and our [GitHub repositories](https://github.com/AnaviTechnology). If you have any questions or enquiries please contact us through [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) or [email](mailto:info@anavi.technology). 336 | 337 | --- 338 | -------------------------------------------------------------------------------- /anavi-macro-pad-2/images/anavi-macro-pad-2-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-2/images/anavi-macro-pad-2-01.jpg -------------------------------------------------------------------------------- /anavi-macro-pad-2/images/anavi-macro-pad-2-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-2/images/anavi-macro-pad-2-02.jpg -------------------------------------------------------------------------------- /anavi-macro-pad-2/images/anavi-macro-pad-2-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-2/images/anavi-macro-pad-2-03.jpg -------------------------------------------------------------------------------- /anavi-macro-pad-2/images/anavi-macro-pad-developer-kit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-2/images/anavi-macro-pad-developer-kit.jpg -------------------------------------------------------------------------------- /anavi-macro-pad-2/images/anavi-macro-pad-maker-kit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-2/images/anavi-macro-pad-maker-kit.jpg -------------------------------------------------------------------------------- /anavi-macro-pad-8/anavi-macro-pad-8-datasheet.md: -------------------------------------------------------------------------------- 1 | --- 2 | fontfamily: dejavu 3 | header-includes: 4 | - \hypersetup{colorlinks=false, 5 | allbordercolors={0 0 0}, 6 | pdfborderstyle={/S/U/W 1}} 7 | --- 8 | 9 | # ANAVI Macro Pad 8 10 | 11 | ## DATASHEET 12 | 13 | ![ANAVI Macro Pad 8](images/anavi-macro-pad-01.jpg?raw=true "ANAVI Macro Pad 8") 14 | 15 | ANAVI Macro Pad 8 is an open source, custom-programmable, mini 8-key keyboard/keypad. Each key can be reprogrammed to activate a macro or even a dedicated shortcut - all without any coding experience! Powered by the advanced, but easy-to-use Quantum Mechanical Keyboard (QMK) open source firmware. 16 | 17 | ANAVI Macro Pad 8 is certified by the Open Source Hardware Association under [UID 18 | BG000072](https://certification.oshwa.org/bg000072.html). Designed with [KiCad](https://kicad.org/). Made in Plovdiv, Bulgaria, EU. 19 | 20 | ANAVI Macro Pad 8 can be customized to fit multiple use cases across various industries: video or audio editing, video conferencing software, entertainment broadcasting, product and graphic design, gaming, engineering, programming, etc. It boosts your daily productivity by providing amazing level of control with gorgeous light effects on your fingertips! 21 | 22 | ## Features & Specifications 23 | 24 | * **Keyswitches:** Eight Cherry MX-style pads 25 | * Developer Kit includes eight Gateron red, linear, non-clicky mechanical switches and transparent keycaps with red LED backlighting 26 | * **Peripherals:** 27 | * S2812B addressable LED strip for bottom-lighting 28 | * Optional 0.96" mini OLED display 29 | * **MCU:** Microchip ATmega32U4 30 | * **Connectivity:** Micro USB 31 | * **Firmware:** [Quantum Mechanical Keyboard (QMK)](https://github.com/qmk/qmk_firmware/tree/master/keyboards/anavi/macropad8) open source firmware and Arduino sketches 32 | * **Compatibility:** Windows, macOS, and Linux support 33 | * **Dimensions:** 135 x 47 mm (5.32 x 1.86 inches) 34 | 35 | ![ANAVI Macro Pad 8](images/anavi-macro-pad-02.jpg?raw=true "ANAVI Macro Pad 8") 36 | 37 | ## Kit Configurations 38 | 39 | ||Maker Kit|Developer Kit| 40 | |----|----|----| 41 | |**ANAVI Macro Pad 8**|Yes|Yes| 42 | |**WS2812B LED strip**|Yes|Yes| 43 | |**8 Gateron red mechanical switches**|Optional|Yes| 44 | |**8 translucent keycaps**|Optional|Yes| 45 | |**Keyswitch backlighting**|Optional|Yes, red LEDs| 46 | |**Acrylic enclosure**| Optional |Optional| 47 | |**Mini OLED display**| Optional |Optional| 48 | 49 | **NOTE:** USB to Micro USB cable is **not** included in any of the kits. 50 | 51 | #### Developer Kit (CS-ANAVI-MP8-1) 52 | 53 | ![ANAVI Macro Pad 8 Developer Kit](images/anavi-macro-pad-developer-kit.jpg?raw=true "ANAVI Macro Pad 8 Developer Kit") 54 | 55 | The Developer Kit does **not** require any soldering. It features Gateron red mechanical switches and translucent keycaps with red backlighting. The Developer Kit is easy to get started with, and it is perfect even for newbies. Just pop the keycaps on, and you're ready to go. 56 | 57 | #### Maker Kit (CS-ANAVI-MP8-2) 58 | 59 | ![ANAVI Macro Pad 8 Maker Kit](images/anavi-macro-pad-maker-kit.jpg?raw=true "ANAVI Macro Pad 8 Maker Kit") 60 | 61 | The Maker Kit is for advanced users only. It requires soldering, but provides you the opportunity to pick your own mechanical switches (compatible with Cherry MX plate footprint), color of 3 mm backlit LEDs, and keycaps. 62 | 63 | #### Acrylic Case (CS-ANAVI-MP8-3) 64 | 65 | This enclosure gives your ANAVI Macro Pad 8 a bit of protection, lifts the board off the table so the underlighting is maximally effective, and helps keep the board in place with four rubber bumpers. The acrylic panels are screwed together easily with included hardware. 66 | 67 | #### Mini OLED Display (CS-ANAVI-DISPLAY-1) 68 | 69 | A 0.96" mini OLED display that connects with the board over an I²C interface. A short extension cable is also included if you'd rather have the display slightly separate from the board. The display can be programmed with whatever information you want through Arduino IDE. 70 | 71 | #### Switches, keycaps and red LEDs (CS-ANAVI-MP8-4) 72 | 73 | 8 Gateron red switches, translucent keycaps and 3mm red LEDs as components for soldering. Suitable for ANAVI Macro Pad 8 Maker Kit (CS-ANAVI-MP8-2). 74 | 75 | ## Resources 76 | 77 | * [User's manual](https://github.com/AnaviTechnology/anavi-docs/tree/master/anavi-macro-pad-8) 78 | * [Quantum Mechanical Keyboard (QMK) configurations](https://github.com/qmk/qmk_firmware/tree/master/keyboards/anavi/macropad8) 79 | * For more information visit [https://anavi.technology/](https://anavi.technology/) 80 | -------------------------------------------------------------------------------- /anavi-macro-pad-8/anavi-macro-pad-8-datasheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-8/anavi-macro-pad-8-datasheet.pdf -------------------------------------------------------------------------------- /anavi-macro-pad-8/anavi-macro-pad-8.md: -------------------------------------------------------------------------------- 1 | # ANAVI Macro Pad 8 2 | 3 | **Open source, programmable, eight-key keypad with backlighting, underlighting, and OLED screen** 4 | 5 | --- 6 | 7 | # DISCLAIMER 8 | 9 | ANAVI, the ANAVI logo and combinations thereof, are registered trademarks of Leon Anavi. Other product names may be trademarks of others and the rights belong to their respective owners. 10 | 11 | The information in this document is provided in connection with ANAVI Technology products. No license, express or implied or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Anavi products. 12 | 13 | This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://www.creativecommons.org/licenses/by-sa/3.0/. 14 | 15 | ANAVI Macro Pad 8 hardware design is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. 16 | 17 | The software examples are released under MIT and the rest of the software is available under GPLv3. 18 | 19 | It is possible that the pictures in this manual differ from the latest revision of the board. 20 | 21 | The product described in this document is subject to continuous development and improvements. All particulars of the product and its use contained in this document are given by ANAVI Technology in good faith. However all warranties implied or expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This document is intended only to assist the reader in the use of the product. ANAVI Technology shall not be liable for any loss or damage arising from the use of any information in this document or any error or omission in such information or any incorrect use of the product. 22 | 23 | This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only and is not considered by ANAVI Technology to be a finished end-product fit for general consumer use. People handling the product must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. 24 | 25 | There is no warranty for the design materials and the components used to create ANAVI Macro Pad 8. They are considered suitable only for ANAVI Macro Pad 8. 26 | 27 | --- 28 | 29 | # CHAPTER 1: Overview 30 | 31 | ## Introduction 32 | 33 | ANAVI Macro Pad 8 is an open source, custom-programmable, mini 8-key keyboard/keypad. Each key can be reprogrammed to activate a macro or even a dedicated shortcut - all without any coding experience! Powered by the advanced, but easy-to-use Quantum Mechanical Keyboard (QMK) open source firmware. 34 | 35 | ANAVI Macro Pad 8 is an entirely open source project that combines open source hardware with free and open source software. It has been certified by [Open Source Hardware Association under UID BG000072](https://certification.oshwa.org/bg000072.html). 36 | 37 | Only free and open source software tools like KiCad, OpenSCAD, and Inkscape were used to design ANAVI Macro Pad 8. [Quantum Mechanical Keyboard (QMK)](https://qmk.fm/) is the default open source firmware. Arduino sketches will be available as examples for people interested in explore embedded development with a mini keyboard. Source code and schematics are [available on GitHub](https://github.com/anavitechnology/). 38 | 39 | ## Features 40 | 41 | ANAVI Macro Pad 8 includes: 42 | 43 | * **Keyswitches:** Eight Cherry MX-style pads 44 | * Developer Kit includes eight Gateron red, linear, non-clicky mechanical switches and transparent keycaps with red LED backlighting 45 | * **Peripherals:** 46 | * S2812B addressable LED strip for bottom-lighting 47 | * Optional 0.96" mini OLED display 48 | * **MCU:** [Microchip ATmega32U4](https://www.mouser.bg/ProductDetail/Microchip-Technology-Atmel/ATMEGA32U4-AU?qs=SSucg2PyLi7mKWjHIsNJ3w==) 49 | * **Connectivity:** Micro USB 50 | * **Firmware:** Quantum Mechanical Keyboard (QMK) open source firmware and Arduino sketches 51 | * **Compatibility:** Windows, macOS, and Linux support 52 | * **Dimensions:** 135 x 47 mm (5.32 x 1.86 inches) 53 | 54 | ## Target Market 55 | 56 | ANAVI Macro Pad 8 can be customized to fit multiple use cases across various industries: video or audio editing, video conferencing software, entertainment broadcasting, product and graphic design, gaming, engineering, programming, etc. It boosts your daily productivity by providing amazing level of control with gorgeous light effects on your fingertips! 57 | 58 | ## Board Version 59 | 60 | Revision 1.1 of ANAVI Macro Pad 8 was used while writing this document. It is possible that it is outdated so it is always recommended to check the latest sources from the GitHub page of the board. 61 | 62 | # CHAPTER 2: Getting Started 63 | 64 | ## Electrostatic Warning 65 | 66 | ANAVI Macro Pad 8 is shipped in a protective antistatic bag. The board must **NOT** be exposed to high electrostatic potentials. A grounding strap or similar protective device should be worn when handling the board. Avoid touching the component pins or any other metallic element. 67 | 68 | ## Requirements 69 | 70 | In order to setup ANAVI Macro Pad 8 the following items are required: 71 | 72 | * Computer 73 | * USB to microUSB cable 74 | 75 | Getting started with and assembled ANAVI Macro Pad 8 is easy. Just connect it to your Linux, Windows, or macOS computer, and use a browser to configure and load your keyswitch macro or shortcut settings. 76 | 77 | ANAVI Macro Pad 8 relies on the Quantum Mechanical Keyboard (QMK) firmware, To configure and modify the keyboard layouts you can use QMK Configurator, an online graphical user interface that generates QMK firmware hex files directly in a web browser or use the source code. Press the RESET button on ANAVI Macro Pad 8 to enter flash mode and upload the new firmware. 78 | 79 | Furthermore, ANAVI Macro Pad 8 is powered by a Microchip ATmega32U4 microcontroller, so it is possible to use as an Arduino Leonardo-compatible development board and upload Arduino sketches through Arduino IDE or PlatformIO. 80 | 81 | ## Supported Peripherals 82 | 83 | ANAVI Macro Pad 8 supports I2C mini OLED display. Plug the display before turing on the board. 84 | 85 | ## Assembly 86 | 87 | ### ANAVI Macro Pad 8 Maker Kit 88 | 89 | **NOTE:** The **maker** kit is for advanced users and requires soldering skills. If you have a developer kit skip this chapter. 90 | 91 | The maker kit provides the printed circuit board and an addressable LED strip. There are also some nice stickers. Other accessories have to be purchased separately. You can use any mechanical switches compatible with Cherry MX plate footprint and 3mm LEDs. 92 | 93 | **NOTE:** With the maker kit you can also perform [a hot-swap upgrade of ANAVI Macro 8](https://www.youtube.com/watch?v=lnFSAm9R4j0). It requires a very specific procedure explained in [this video](https://www.youtube.com/watch?v=lnFSAm9R4j0). If you have in mind a hot-swap upgrade do not solder anything and have a look at [the video](https://www.youtube.com/watch?v=lnFSAm9R4j0). 94 | 95 | For soldering and a standard assembly of the **maker kit** several tools are required: a soldering iron, a screwdriver, scissors, tweezers and a keycap puller might be also useful. It is also a good idea to stay safe and get a smoke absorber while soldering, for example [ANAVI Fume Extractor](https://anavi.technology/#products). 96 | 97 | Please have [a look at the video](https://www.youtube.com/watch?v=AlH5sLEsoNc) and follow the steps below to assemble ANAVI Macro Pad 8 **Maker** Kit. 98 | 99 | * Solder mechanical switches to the printed circuit board 100 | 101 | Any mechanical switches compatible with Cherry MX plate footprint are suitable for ANAVI Macro Pad 8. The developer kit comes with Gateron red mechanical switches. The maker kits allows you to choose another brand, type and color. 102 | 103 | Choosing the most appropriate switch for your needs is a matter of personal preference. There are many different brands and colors. For example, the blue mechanical switches are more noisy which could be sometimes fun but also annoying during daily work. The red switches are fast and not very noisy therefore they are often preferred by gamers. 104 | 105 | There are two pins on each mechanical switch that must be soldered to the printed circuit board. That makes 16 pins in total for the 8 keys on ANAVI Macro Pad 8. The position of the each of the pins is very specific and you can easily recognize it. One of the pins for the signal coming from the Microchip ATmega32U4 microcontroller, the other pin is for ground. 106 | 107 | * Solder 3mm LED 108 | 109 | This step is actually optional depending on the the type of the mechanical switch. Some mechanical switches may not have a hole in the plastic enclosure for a 3mm LED. For example, the Gateron red switches have a dedicated place specially for 3mm LEDs. 110 | 111 | Each 3mm LED for through-hole soldering has 2 legs. The longer leg is the positive terminal, also known as anode. The shorter leg is negative and also known as cathode. 112 | 113 | The shorter leg that indicates the negative terminal must go into the square hole of the PCB. ANAVI Macro Pad 8 has 8 mechanical switches therefore 8 LEDs are required. If you want you can use different color of the LEDs. You can even mix colors. 114 | 115 | * Solder WS2812B addressable LED strip to the back of the printed circuit board. 116 | 117 | Using scissors cut a little bit from both ends of the LED strip to make sure it will stretched when placed on the board. However it is tricky, be careful and make sure enough from the pads are available to make a good contact after soldering them. 118 | 119 | It is very important to properly set the direction of the WS2812B LED strip. On the LED strip you will notice small arrows indicating the direction. They should point from the microUSB connector towards the other end of the PCB as shown [in the video](https://www.youtube.com/watch?v=AlH5sLEsoNc). 120 | 121 | **NOTE:** It is very important to solder the addressable WS2812B LED strip in the correct direction as shown [in the video](https://www.youtube.com/watch?v=AlH5sLEsoNc). A mistake can severely damage the keyboard. 122 | 123 | Once you are ready with these 3 steps your ANAVI Macro Pad 8 should look just like a developer kit having all accessories soldered. Therefore the next steps are the same as for both the developer and the maker kit. 124 | 125 | ### ANAVI Macro Pad 8 Developer Kit 126 | 127 | Please have [a look at the video](https://www.youtube.com/watch?v=AlH5sLEsoNc) and follow the steps below to assemble ANAVI Macro Pad 8 **Developer** Kit. Although you can do it with your bare hands, simple tools like a screwdriver, tweezers and a keycap puller might be useful. 128 | 129 | * Stickers 130 | 131 | *This step is optional.* Each kit includes a set of stickers. Feel free to add them to the translucent keycaps included in ANAVI Macro Pad 8 developer kit. You can do it with your bare hands or eventually with the help of tweezers. 132 | 133 | You can place a sticker on the top or on the side of the keycap. If you like retro electronics you may find some similarities in this approach to the famous keyboard of the best selling personal computer of the 20th century Commodore 64. 134 | 135 | ANAVI Macro Pad 8 is powered by the popular open source firmware QMK which allows you to create various layouts. You can make a keymap with 2 or more layouts. A sticker on the side of the keycap might be useful as a visual aid to indicate the additional function of the key. 136 | 137 | * Keycaps 138 | 139 | Place all keycaps on the 8 mechanical switches of ANAVI Macro Pad 8. You can easily do this with your bare hands. It takes just a few seconds. 140 | 141 | As you can see [in the video](https://www.youtube.com/watch?v=AlH5sLEsoNc), a keycap puller might be useful if you make a mistake and want to pull off a keycap and place it on another location. 142 | 143 | * Peel Off Protective Films from the Acrylic Enclosure 144 | 145 | Peel off the protective films from both sides of the two laser cut transparent acrylic parts. The removal of the protective films is quite annoying but once you get rid of them, the acrylic enclosure will be crystal clear and fully transparent. 146 | 147 | * Assemble the Acrylic Enclosure 148 | 149 | Assemble the acrylic enclosures. In the cardboard box you also will find M3 black plastic screws, nuts and standoffs. Although you can assemble them with your bare hands a screw driver might be handy. 150 | 151 | First place 4 of the stand-offs with screws to the bottom acrylic part. After that, place ANAVI Macro Pad 8 on top of them. The printed circuit board has 4 mounting holes for this purpose. 152 | 153 | Add the rest of stand-offs on top of the ANAVI Macro Pad 8 to secure the printed circuit board to the bottom part as shown in the video. Place the top acrylic part and fasten it with the 4 M3 nuts. Finally add the silicon protective pads to the screws on the bottom. 154 | 155 | * Mini OLED Display 156 | 157 | *This step is optional.* The default open source QMK firmware for ANAVI Macro Pad 8 supports mini OLED display connected over the communication bus I2C. 158 | 159 | By default. the mini display is in yellow-blue 0.96" I2C OLED. It comes with 4 jumper wires which might be useful for debugging purposes or if you plan to make a custom 3D printed case. However for the default acrylic enclosure the wires are not needed. 160 | 161 | Peel off the protected film and place the mini OLED display as shown in the video to ANAVI Macro Pad 8. Pay attention to the labels that indicated the pin connectors of the display. They must match the labels on the keyboard. 162 | 163 | * Turn On ANAVI Macro Pad 8 164 | 165 | Gently use a USB to microUSB cable to connect ANAVI Macro Pad 8 to a personal computer. Please be careful with the microUSB connector, because a harsh bending of the USB cable may damage the microUSB connector. 166 | 167 | Thanks to the QMK firmware, ANAVI Macro Pad 8 will be detected as human interface device and should work out of the box. Furthermore with QMK you have the freedom to fully customize each key. 168 | 169 | Please note that a USB to microUSB cable is **not** included in any of the kits. Reuse a cable from an old electronic device or purchase a cable according to your taste. Make sure that the cable supports both power and data transfer over USB. 170 | 171 | --- 172 | 173 | # CHAPTER 3: Software 174 | 175 | Out of the box ANAVI Macro Pad 8 comes with [the popular open source firmware QMK](https://github.com/qmk/qmk_firmware/tree/master/keyboards/anavi/macropad8). Several different keymaps are supported. For details how to build and flash QMK firmware on ANAVI Macro Pad 8 please have a look at the [README](https://github.com/qmk/qmk_firmware/blob/master/keyboards/anavi/macropad8/readme.md). 176 | 177 | ## Compile QMK for ANAVI Macro Pad 8 178 | 179 | After installing QMK software on your computer, from the command line you can compile QMK firmware with the `default` keymap for ANAVI Macro Pad 8 using the following command: 180 | 181 | ``` 182 | qmk compile -kb anavi/macropad8 -km default 183 | ``` 184 | 185 | ## Flash QMK on ANAVI Macro Pad 8 186 | 187 | Follow the steps below to flash the compiled QMK firmware to ANAVI Macro Pad 8: 188 | 189 | * Connect ANAVI Macro Pad 8 to your personal computer with USB to micro USB cable 190 | * Execute the following command in a terminal to flash the `default` keymap: 191 | 192 | ``` 193 | qmk flash -kb anavi/macropad8 -km default 194 | ``` 195 | 196 | * Press the **RESET** button on ANAVI Macro Pad 8 when asked: 197 | 198 | ``` 199 | Detecting USB port, reset your controller now..... 200 | ``` 201 | * Wait until the firmware flashes successfully: 202 | 203 | ``` 204 | avrdude done. Thank you. 205 | ``` 206 | 207 | ANAVI Macro Pad 8 relies on Microchip ATmega32U4. It is an 8-bit microcontroller part of the AVR family. QMK uses `avrdude` as a utility to download, upload and manipulate the firmware of these microcontroller. 208 | 209 | --- 210 | 211 | # CHAPTER 4: Hardware Schematics 212 | 213 | ## Pinout 214 | 215 | ANAVI Macro Pad 8 utilize the following pins on ATmega32U4: 216 | 217 | | Component | Pins | 218 | | ------------------- |:-------------------------------------- | 219 | | I2C | PD0, PD1 | 220 | | Mechanical switches | PD4, PF6, PB5, PE6, PF5, PF7, PB4, PC6 | 221 | | 3mm LEDs (backlit) | PD7 | 222 | | WS2812B LED strip | PF4 | 223 | 224 | ## I2C 225 | 226 | The mini OLED display that can be connected to ANAVI Macro Pad 8 communicate with a host microcontroller via a communications standard called **I2C** (Inter-Integrated-Circut). I2C uses two wires, labeled SDA (Serial Data) and SCL (Serial Clock). To function properly, I2C requires a pullup resistor on each of those lines therefore ANAVI Macro Pad 8 includes two 4.7kohm resistors labeled as R13 and R14. If for one reason or another you need to disable the I2C pullup resistors remove R13 and R14. 227 | 228 | --- 229 | 230 | # CHAPTER 5: Frequently Asked Questions (FAQ) and Troubleshooting 231 | 232 | * How to fix `The firmware is too large! 28866/28672 (194 bytes over)`? 233 | 234 | The easiest way to reduce the size of QMK firmware with your custom new keymap for ANAVI Macro Pad 8 is to cut some of the RGB lighting animations and effects. 235 | 236 | For example, in your custom keymap you can create `config.h` in the keymap directory that overwrites the main `config.h` with a reduced number of supported RGB lighting animations and effects: 237 | 238 | ``` 239 | #pragma once 240 | 241 | #undef RGBLIGHT_ANIMATIONS 242 | #define RGBLIGHT_EFFECT_BREATHING 243 | #define RGBLIGHT_EFFECT_CHRISTMAS 244 | #define RGBLIGHT_EFFECT_RAINBOW_MOOD 245 | #define RGBLIGHT_EFFECT_SNAKE 246 | ``` 247 | 248 | * How to fix `avrdude` if it not responding properly on GNU/Linux distributions? 249 | 250 | On some GNU/Linux distributions, for example Ubuntu 18.04.4 LTS, the following errors might appear when uploading from with avrdude through QMK CLI or Arduno IDE: 251 | 252 | ``` 253 | avrdude: error: programmer did not respond to command: set addr 254 | ``` 255 | or 256 | ``` 257 | avrdude: Expected signature for ATmega32U4 is 1E 95 87 258 | ``` 259 | 260 | This is frequently caused by ModemManager, a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections. The solution is to stop `modemmanager` systemd service: 261 | 262 | ``` 263 | systemctl stop ModemManager 264 | ``` 265 | 266 | This affects all devices with Microchip ATmega32U4, including Arduino Leonardo. For more details have a look at [this GitHub issue](https://github.com/arduino/Arduino/issues/7690). 267 | 268 | --- 269 | 270 | # CHAPTER 6: Revision History 271 | 272 | ## Document Revision 273 | 274 | | Date | Changes | Modified pages | Author | 275 | | ----------------- |:---------------------------:| :---------------| :---------------| 276 | | 09 December 2020 | Initial manual release | All | Leon Anavi | 277 | | 03 April 2021 | Assembly guidelines | All | Leon Anavi | 278 | | 04 April 2021 | Troubleshooting | All | Leon Anavi | 279 | | 07 May 2021 | Add details | All | Leon Anavi | 280 | 281 | ## ANAVI Macro Pad 8 Revision 282 | 283 | | Revision| Notable changes | 284 | | ------- |:-------------------------------------------------------------| 285 | | 1.1 | Stable version | 286 | 287 | ## See Also 288 | 289 | For more information please visit [anavi.technology](http://anavi.technology/) and our [GitHub repositories](https://github.com/AnaviTechnology). If you have any questions or enquiries please contact us through [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) or [email](mailto:info@anavi.technology). 290 | 291 | --- 292 | -------------------------------------------------------------------------------- /anavi-macro-pad-8/images/anavi-macro-pad-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-8/images/anavi-macro-pad-01.jpg -------------------------------------------------------------------------------- /anavi-macro-pad-8/images/anavi-macro-pad-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-8/images/anavi-macro-pad-02.jpg -------------------------------------------------------------------------------- /anavi-macro-pad-8/images/anavi-macro-pad-developer-kit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-8/images/anavi-macro-pad-developer-kit.jpg -------------------------------------------------------------------------------- /anavi-macro-pad-8/images/anavi-macro-pad-maker-kit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AnaviTechnology/anavi-docs/a0e21d5b57f4d66368ed1bfa103edb98e6e4b0ee/anavi-macro-pad-8/images/anavi-macro-pad-maker-kit.jpg -------------------------------------------------------------------------------- /anavi-miracle-emitter/anavi-miracle-emitter.md: -------------------------------------------------------------------------------- 1 | # ANAVI Miracle Emitter 2 | 3 | ***A RISC-V-based development board ready for home automation and NeoPixel LEDs*** 4 | 5 | --- 6 | 7 | # DISCLAIMER 8 | 9 | ANAVI, the ANAVI logo and combinations thereof, are registered trademarks of Leon Anavi. Other product names may be trademarks of others and the rights belong to their respective owners. 10 | 11 | The information in this document is provided in connection with Anavi products. No license, express or implied 12 | or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Anavi products. 13 | 14 | This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). 15 | this license, visit https://creativecommons.org/licenses/by-sa/4.0/. 16 | 17 | ANAVI Miracle Emitter hardware design is licensed under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). 18 | 19 | The software examples are released under MIT and the rest of the software is available under GPLv3. 20 | 21 | It is possible that the pictures in this manual differ from the latest revision of the board. 22 | 23 | The product described in this document is subject to continuous development and improvements. All particulars of the product and its use contained in this document are given by Anavi in good faith. However all warranties implied or expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This document is intended only to assist the reader in the use of the product. Anavi shall not be liable for any loss or damage arising from the use of any information in this document or any error or omission in such information or any incorrect use of the product. 24 | 25 | This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only and is not considered by Anavi to be a finished end-product fit for general consumer use. People handling the product must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. 26 | 27 | There is no warranty for the design materials and the components used to create ANAVI Miracle Emitter. There are considered suitable only for ANAVI Miracle Emitter. 28 | 29 | --- 30 | 31 | # CHAPTER 1: Overview 32 | 33 | ## Introduction 34 | 35 | ANAVI Miracle Emitter is a compact, open-source Wi-Fi and Bluetooth development board powered by the ESP32-C3 microcontroller running at 160 MHz with the open standard instruction set RISC-V architecture. It is designed to control an addressable 5 V LED strip such as NeoPixels, which can be powered via the onboard USB Type-C port or externally. 36 | 37 | Compatible with popular LEDs like Neopixels, WS2811, WS2812B, and TM1809, Miracle Emitter also features a slot for a mini OLED I²C display, support for up to three additional I²C sensor modules, UART pins, and extra GPIO pins for external peripherals. This makes it ideal for developers, makers, students, and open-source enthusiasts interested in home automation. 38 | 39 | 40 | ANAVI Miracle Emitter is designed with the free and open source electronics design automation suite [KiCAD](http://kicad.org/). No soldering is required. You can assemble ANAVI Miracle Emitter with your bare hands and a screwdriver. 41 | 42 | ## Features & Specifications 43 | 44 | - **Module**: [Seeed Studio XIAO ESP32C3](https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/) 45 | - **Microcontroller**: 32-bit RISC-V ESP32-C3 @ 160 MHz 46 | - **Connectivity**: Wi-Fi IEEE 802.11 b/g/n and Bluetooth 5 (LE) 47 | - **Peripheral Support**: Mini OLED display, GPIO pins, UART pins, button, three slots for I²C sensors 48 | - **Power**: USB Type-C (max 5 V at 1 A, suitable for short runs of NeoPixels), 5 V screw terminal port 49 | - **Dimensions**: 32.77 x 65.29 mm (1.29 x 2.57 inches) 50 | 51 | ## Target Market 52 | 53 | ANAVI Miracle Emitter is a certified open source hardware development board for customers interested in home automation, software development and Internet of Things. The board is appropriate for embedded programming enthusiasts, open source supporters, students as well as web and/or mobile app developers. The main usage of the board is home automation. 54 | 55 | ## Board Version 56 | 57 | Revision 1.0 of ANAVI Miracle Emitter was used while writing this document. It is possible that it is outdated so it is always recommended to check the latest sources from the GitHub page of the board. 58 | 59 | --- 60 | 61 | # CHAPTER 2: Getting Started 62 | 63 | ## Electrostatic Warning 64 | 65 | ANAVI Miracle Emitter is shipped in a protective bag. It must **NOT** be exposed to high electrostatic potentials. A grounding strap or similar protective device should be worn when handling the board. Avoid touching the component pins or any other metallic element. 66 | 67 | ## Requirements 68 | 69 | In order to setup ANAVI Miracle Emitter the following items are required: 70 | 71 | * NeoPixel LED strip or 2D panel, supported by the popular FastLED Arduino library (with three wires), such as WS2812, WS2812b, WS2811, TM1804, etc. 72 | * 5V power supply. 73 | 74 | ## Supported Peripherals 75 | 76 | ANAVI Miracle Emitter has a terminal block for attaching a NeoPixel LED strip or 2D panel, I2C slot for mini OLED display as well as up to 3 slots I2C sensors. 77 | 78 | ### LED strips 79 | 80 | All addressable LED strips currently supported by the popular [FastLED Arduino library](http://fastled.io/) (with three wires) are supported by ANAVI Miracle Emitter, including WS2812, WS2812b, WS2811, and TM1804. To prevent spikes, a 300 to 500 Ohm choke resistor might be required at the data wire. Some LED strips, including those provided with our kits, already have this resistor built-in. 81 | 82 | Strips provided in ANAVI Miracle Emitter kits are WS2812B strips with ten LEDs each, appropriate connectors, and built-in 470 Ohm choke resistor. 83 | 84 | You can attach 1 or 2 addressable LED strips to ANAVI Miracle Emitter. Both attached strips must be of the same kind. 85 | 86 | Non-addressable LED strips are not appropriate for ANAVI Miracle Emitter. If you need to control 12V non-addressable RGB LED strip have a look at our other open source product ANAVI Light Controller. 87 | 88 | ### Sensors 89 | 90 | You can attach various I2C sensor modules to ANAVI Miracle Emitter. The officially supported I2C add-on sensor modules are for: 91 | 92 | * Light (BH1750) 93 | * Temperature and humidity (HTU21D) 94 | * Color and gesture recognition (APDS-9960) 95 | * Temperature and barometric pressure (BMP180) 96 | 97 | You may also attach any other I2C sensors but you will have to take care of their software integration. 98 | 99 | #### Light Sensor 100 | 101 | The official light I2C sensor for ANAVI Miracle Emitter is BH1750. 102 | 103 | Using 4 Dupont jumper wires connect BH1750 to one of the 3 I2C slots on ANAVI Miracle Emitter as follows: 104 | 105 | | BH1750 | ANAVI Miracle Emitter | 106 | | -------- |:-------------- | 107 | | VCC | 3.3V | 108 | | GND | GND | 109 | | SCL | SCL | 110 | | SDA | SDA | 111 | 112 | 113 | #### I2C External Temperature & Humidity Sensor 114 | 115 | The official external temperature and humidity add-on sensor for ANAVI Miracle Emitter is HTU21 (SHT21). This is I2C sensor capable of measuring both humidity and temperature. 116 | 117 | Using 4 Dupont jumper wires connect HTU21 to one of the 3 I2C slots on ANAVI Miracle Emitter as follows: 118 | 119 | | HTU21 | ANAVI Miracle Emitter | 120 | | -------- |:-------------- | 121 | | VIN | 3.3V | 122 | | GND | GND | 123 | | SCL | SCL | 124 | | SDA | SDA | 125 | 126 | #### Color & Gesture Recognition Sensor 127 | 128 | The official I2C sensor for RGB color and gesture detection on ANAVI Ligth pHAT is APDS-9960. 129 | 130 | Using 4 Dupont jumper wires connect APDS-9960 to one of the 3 I2C slots on ANAVI Miracle Emitter as follows: 131 | 132 | | APDS-9960 | ANAVI Miracle Emitter | 133 | | ---------- |:-------------- | 134 | | VIN | 3.3V | 135 | | GND | GND | 136 | | SCL | SCL | 137 | | SDA | SDA | 138 | 139 | #### Temperature & Barometric Pressure Sensor 140 | 141 | The official temperature and barometric pressure sensor for ANAVI Miracle Emitter is BMP180. This is I2C sensor capable of measuring both temperature and barometric pressure. 142 | 143 | Using 4 Dupont jumper wires connect BMP180 to one of the 3 I2C slots on ANAVI Miracle Emitter as follows: 144 | 145 | | BMP180 | ANAVI Miracle Emitter | 146 | | -------- |:-------------- | 147 | | VIN | 3.3V | 148 | | GND | GND | 149 | | SCL | SCL | 150 | | SDA | SDA | 151 | 152 | ## Assembly 153 | 154 | You can assemble ANAVI Miracle Emitter with your bare hands and a screw driver following the steps below: 155 | 156 | * Add addressable LED strips to your ANAVI Miracle Emitter. 157 | * Optionally, add I2C sensor modules. 158 | * Optionally, add I2C mini OLED display. 159 | * Optionally, you may also assemble the simple acrylic case included in the advanced and developer kit by removing the protective film and mounting screws. 160 | * Use appropriate 5V power supply. 161 | 162 | ## Configure ANAVI Miracle Emitter 163 | 164 | The default software of ANAVI Miracle Emitter has a captive portal which guides you through the configurations. As you see in the video you have to select your WiFi network and enter a password if it is not open. 165 | 166 | Our open source software relies on the machine to machine communication protocol MQTT to report data from the sensors. You can connect to your own MQTT broker or just leave the default configurations and connect to the public broker as shown in the video. 167 | 168 | Recent versions of the firmware support [Home Assistant MQTT Discovery](https://www.home-assistant.io/docs/mqtt/discovery/) which makes it very convenient to add ANAVI Miracle Emitter to Home Assistant. For this to work, you need to enter the sensor name (such as "Master Bedroom") that will be used for this Thermometer on the setup screen. See Chapter 5 for more details. 169 | 170 | Recent versions of the firmware support Over-the-Air upgrades of the software. To enable this, you need to specify the IP address or DNS domain name of a web server that hosts the firmware. See Chapter 3 for more details. 171 | 172 | It very important to copy the machine ID. Later it is needed to identify your device. 173 | 174 | When you are ready just click save. If you have entered valid credentials in a moment ANAVI Miracle Emitter will connect to your WiFi network and the configured MQTT broker. This way the configuration is complete and ANAVI Miracle Emitter will turn off its temporary WiFi access point. After that your device, for example smartphone as in the video, will automatically connect again to your WiFi network. 175 | 176 | To verify that ANAVI Miracle Emitter is up and running open a modern web browser and visit demo.anavi.technology. Enter your machine ID. Check the advanced settings only if you are not using the default public MQTT broker. Click connect. 177 | 178 | ## Reset to Factory Defaults 179 | 180 | If you decide to change the settings of ANAVI Miracle Emitter you need to reset the board and configure it again. 181 | 182 | To reset ANAVI Miracle Emitter press the button and hold it for approximately 6 seconds until the red light stops blinking. After resetting the board there will be a steady red light that indicates that the temporary WiFi access point is on and you can proceed with the configuration again. The reset button works once the ANAVI Miracle Emitter has successfully connected to a WiFi network. If you are running a recent enough version of the firmware, it also works for 2 seconds after you power on the device (while the red LED is blinking quickly). 183 | 184 | --- 185 | 186 | # CHAPTER 3: Software Development 187 | 188 | ## Default Firmware 189 | 190 | By default ANAVI Miracle Emitter comes with [this free and open source Arduino sketch](https://github.com/AnaviTechnology/anavi-miracle-emitter-sw). 191 | 192 | ## Setting up the Arduino IDE 193 | 194 | 1. Install the Arduino IDE following the instructions from from https://www.arduino.cc/en/Main/Software 195 | 196 | 2. Add the ESP32 board package: In **File > Preferences** input `https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json` into the Additional Board Manager URLs field. 197 | 198 | 3. In **Tools > Board ... > Boards manager** find and add the **ESP32** package. Now "XIAO ESP32C3" should be an option in the **Tools > Boards** menu. 199 | 200 | 4. In **Tools > Flash Size:** select **4M (1M SPIFFS)** 201 | 202 | 5. Go to **Sketch > Include Library > Manage Libraries...** and include the following dependencies of the default firmware for ANAVI Miracle Emitter: 203 | 204 | * WiFiManager by tzapu (version 0.12.0) 205 | * ArduinoJson by Benoit Blanchon (version 6.11.2) 206 | * PubSubClient by Nick O'Leary (version 2.7.0) 207 | * Adafruit HTU21DF Library by Adafruit (version 1.0.1) 208 | * Adafruit APDS9960 Library by Adafruit (version 1.0.5) 209 | * U8g2 by oliver (version 2.23.18) 210 | * Adafruit Unified Sensor by Adafruit (version 1.0.2) 211 | * Adafruit BMP085 Unified (version 1.0.0) 212 | * FastLED (version 3.2.6) 213 | 214 | *Note: Issues might be experienced if using different versions of the libraries.* 215 | 216 | ## Flashing Custom Firmware 217 | 218 | Follow the steps below to compile and flash custom firmware on ANAVI Miracle Emitter from Arduino IDE: 219 | 220 | 1. To flash the firmware from Arduino IDE select Tools > Generic ESP8266 Module (Flash mode: DIO, Flash frequency: 40MHz, CPU frequency: 80MHz, Flash size: 4M, Debug port: Disabled, Debug level: None, Reset method: ck, Upload speed: 115200, Port: /dev/ttyUSB0). Set the flash size to 4M (1M SPIFFS). You might need to adjust the port if your USB to serial debug cable is connected on a different port. 221 | 222 | 2. After that press load an Arduino sketch. [A simple blinking LED example is available at GitHub](https://github.com/AnaviTechnology/anavi-examples/blob/master/anavi-light-controller/anavi-blinking-led/anavi-blinking-led.ino) 223 | 224 | 3. In Arudino IDE click Verify/Compile (Ctrl+R) 225 | 226 | 4. Connect ANAVI Miracle Emitter to the USB to serial debug board: GND to GND, TX cable to RX of ANAVI Miracle Emitter and RX cable to TX of ANAVI Miracle Emitter. 227 | 228 | 5. In Arudino IDE click Upload (Ctrl+U) 229 | 230 | 6. Press and **hold** the RESET button on ANAVI Miracle Emitter. Plug the 5V power supply in the jack of ANAVI Miracle Emitter (without releasing the RESET button). 231 | 232 | 7. In Arduino IDE verify that the upload has been started. Hold RESET until the upload completes. 233 | 234 | The output in Arduino IDE for successful flashing is: 235 | 236 | ``` 237 | Archiving built core (caching) in: /tmp/arduino_cache_954939/core/core_esp8266_esp8266_generic_CpuFrequency_80,FlashFreq_40,FlashMode_dio,UploadSpeed_115200,FlashSize_512K64,ResetMethod_ck,Debug_Disabled,DebugLevel_None_____1c2aa2b3da66da225b39c9bfab6531e5.a 238 | Sketch uses 224949 bytes (51%) of program storage space. Maximum is 434160 bytes. 239 | Global variables use 31756 bytes (38%) of dynamic memory, leaving 50164 bytes for local variables. Maximum is 81920 bytes. 240 | Uploading 229104 bytes from /tmp/arduino_build_904122/anavi-blinking-led.ino.bin to flash at 0x00000000 241 | ................................................................................ [ 35% ] 242 | ................................................................................ [ 71% ] 243 | ................................................................ [ 100% ] 244 | ``` 245 | 246 | If you have flashed the blinking LED example, D1 on ANAVI Miracle Emitter with start blinking. 247 | 248 | Please have a look at [the YouTube video that shows the exact steps for compiling and uploading an Arduino sketch to ANAVI Miracle Emitter](https://www.youtube.com/watch?v=HMIkPuz0ZJs). 249 | 250 | **Note:** you have to be quick between step 5 and 6. Remember to press and **hold** RESET until the upload completes. 251 | 252 | --- 253 | 254 | # CHAPTER 4: Temperature scale: Celsius vs Fahrenheit 255 | 256 | The temperature scale of the default open source firmware of ANAVI Miracle Emitter can be configured at the initial setup of the device. By default it is set to Celsius. Manually type in **fahrenheit** to change it. 257 | 258 | After the initial setup the temperature scale can be still changed with a single MQTT message with topic **cmnd//tempformat** (where **** must be replaced with the 259 | unique value for your board) and a JSON payload: 260 | 261 | ``` 262 | { "scale": "fahrenheit" } 263 | ``` 264 | 265 | To switch back to Celsius, send the same message and just edit the JSON payload by changing **fahrenheit** to **celsius**. 266 | 267 | For example, if using the mosquitto_pub application from a command-line terminal and machine id 11111111111111111111111111111111: 268 | 269 | ``` 270 | mosquitto_pub -h iot.eclipse.org -d -p 1883 -t 271 | "cmnd/11111111111111111111111111111111/tempformat" -m '{ "scale": 272 | "fahrenheit" }' 273 | ``` 274 | 275 | # CHAPTER 5: Home Automation Platforms 276 | 277 | This chapter provide guidelines how to connect ANAVI Miracle Emitter to popular home automation platforms like Home Assistant, OpenHab 2, Thinkspeak, etc. 278 | 279 | ## Home Assistant 280 | 281 | [Home Assistant](https://home-assistant.io/) is a free and open-source home automation platform running on Python 3 with more than 1200 components for integration with popular Internet of Things. 282 | 283 | ANAVI Miracle Emitter can be easily integrated in Home Assistant using the component [MQTT Light Component](https://www.home-assistant.io/integrations/light.mqtt/). This component supports JSON in the payload of the MQTT messages. To use it, in **configuration.yaml** specify MQTT broker and register the sensor with the corresponding MQTT topic, for example: 284 | 285 | * Configure MQTT broker: 286 | 287 | ``` 288 | mqtt: 289 | broker: 127.0.0.1 290 | ``` 291 | 292 | * Register the MQTT component: 293 | 294 | ``` 295 | 296 | ``` 297 | 298 | MQTT Discovery can simplify this process. To use this, specify this in **configuration.yaml**: 299 | 300 | ``` 301 | mqtt: 302 | broker: 127.0.0.1 303 | discovery: true 304 | discovery_prefix: homeassistant 305 | ``` 306 | 307 | --- 308 | 309 | # CHAPTER 5: Schematics 310 | 311 | ## Pinout 312 | 313 | The components of ANAVI Miracle Emitter relies on ESP8266 (ESP-12 module) and utilizes the following pins: 314 | 315 | | Component | Pins | Arduino Pin ID | 316 | | ------------------- |:------------------------------- |-----------------| 317 | | I2C | 6, 7 | D4, D5 | 318 | | Indication LED (D1) | 3 | D3 | 319 | | LED data | 10 | D10 | 320 | | Reset button (SW1) | 8 | D8 | 321 | | Extra GPIO | 2, 3, 4 | D0, D1, D2 | 322 | | UART | 20, 21 | D7, D6 | 323 | 324 | ## I2C 325 | 326 | The sensors that can be connected to ANAVI Miracle Emitter communicate with a host microcontroller via a communications standard called **I2C** (Inter-Integrated-Circut). I2C uses two wires, labelled SDA (Serial Data) and SCL (Serial Clock). To function properly, I2C requires a pullup resistor on each of those lines therefore ANAVI Miracle Emitter includes two 4.7kohm resistors labelled as R2 and R3. If for one reason or another you need to disable the I2C pullup resistors remove R2 and R3. 327 | 328 | --- 329 | 330 | # CHAPTER 6: Frequently Asked Questions (FAQ) 331 | 332 | #### Why isn't a power supply included? 333 | 334 | We were unable to source power supplies with universal plugs for the US/EU/UK at an acceptable. Nowadays, 5V power supplies with a USB-C connector are a commodity item because of most smartphone and tables, so you should be able to easily find a suitable unit online or at your local electronics store. 335 | 336 | #### Which addressable LED strips are included in the kits? 337 | 338 | The strip provided in ANAVI Miracle Emitter kits is 5V WS2812B strip with ten NeoPixel LEDs each and an appropriate connector. 339 | 340 | #### Is ANAVI Miracle Emitter an open source project? 341 | 342 | Yes, ANAVI Miracle Emitter is an open source hardware project powered and created with free and open source software. The hardware designs are available at [GitHub under CC BY-SA 4.0 license](https://github.com/AnaviTechnology/anavi-miracle-emitter). All schematics, documents, and source code files are available at [our GitHub repositories](https://github.com/AnaviTechnology/). 343 | 344 | #### Does ANAVI Miracle Emitter use the ESP32-C3? 345 | 346 | Yes, ANAVI Miracle Emitter is based on the ESP32-C3. 347 | 348 | #### Is ANAVI Miracle Emitter compatible with Arduino IDE? 349 | 350 | Yes, ANAVI Miracle Emitter is compatible with Arduino IDE. You can easily upload your own Arduino sketches to the board. 351 | 352 | #### How can I get involved and help? 353 | 354 | Buy any of the available perks, get your hands on the ANAVI Miracle Emitter, contribute to our GitHub repositories, and become part of our open source community! 355 | 356 | 357 | --- 358 | 359 | # CHAPTER 7: Revision History 360 | 361 | ## Document Revision 362 | 363 | | Date | Changes | Modified pages | Author | 364 | | ----------------- |:---------------------------:| :---------------| :---------------| 365 | | 20 April 2025 | Initial release | All | Leon Anavi | 366 | 367 | ## ANAVI Miracle Emitter Revision 368 | 369 | | Revision| Notable changes | 370 | | ------- |:-------------------------------------------------------------| 371 | | 1.0 | Stable product | 372 | 373 | ## See Also 374 | 375 | For more information please visit [anavi.technology](http://anavi.technology/) and our [GitHub repositories](https://github.com/AnaviTechnology). If you have any questions or enquiries please contact us through [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) or [email](mailto:info@anavi.technology). 376 | 377 | --- 378 | -------------------------------------------------------------------------------- /anavi-play-phat/anavi-play-phat.md: -------------------------------------------------------------------------------- 1 | # ANAVI Play pHAT 2 | 3 | **Put Your Raspberry Pi to Work: IoT hub during the day and retro gaming machine during the night!** 4 | 5 | --- 6 | 7 | # DISCLAIMER 8 | 9 | Raspberry Pi and the Raspberry Pi logo are registered trademarks of the Raspberry Pi Foundation. ANAVI, the ANAVI logo and combinations thereof, are registered trademarks of Leon Anavi. Other product names may be trademarks of others and the rights belong to their respective owners. 10 | 11 | The information in this document is provided in connection with Anavi products. No license, express or implied or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Anavi products. 12 | 13 | This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/4.0/. 14 | 15 | ANAVI Play pHAT hardware design is licensed under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). 16 | 17 | The software examples are released under MIT and the rest of the software is available under GPLv3. 18 | 19 | It is possible that the pictures in this manual differ from the latest revision of the board. 20 | 21 | The product described in this document is subject to continuous development and improvements. All particulars of the product and its use contained in this document are given by Anavi in good faith. However all warranties implied or expressed including but not limited to implied warranties of merchantability or fitness for purpose are excluded. This document is intended only to assist the reader in the use of the product. Anavi shall not be liable for any loss or damage arising from the use of any information in this document or any error or omission in such information or any incorrect use of the product. 22 | 23 | This evaluation board/kit is intended for use for engineering development, demonstration, or evaluation purposes only and is not considered by Anavi to be a finished end-product fit for general consumer use. People handling the product must have electronics training and observe good engineering practice standards. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. 24 | 25 | There is no warranty for the design materials and the components used to create ANAVI Play pHAT. There are considered suitable only for ANAVI Play pHAT. 26 | 27 | --- 28 | 29 | # CHAPTER 1: Overview 30 | 31 | ## Introduction 32 | 33 | ANAVI Play pHAT is an open source hardware Raspberry Pi add-on board with 8 buttons, EEPROM and 3 I2C slots for sensors. ANAVI Play pHAT is useful as a gamepad for low cost retro gaming and/or IoT hub with buttons and sensors. It was started as a hobby project by Leon Anavi in the summer of 2018. It is certified by the [Open Source Hardware Association under UID BG000007](http://certificate.oshwa.org/certification-directory/). 34 | 35 | ANAVI Play pHAT is designed with the free and open source electronics design automation suite [KiCAD](http://kicad-pcb.org/). 36 | 37 | Anavi is fully compatible with the Raspbian GNU/Linux distribution and open source sample applications are provided. It is also compatible with RetroPie. 38 | 39 | ## Features 40 | 41 | ANAVI Play pHAT Raspberry Pi HAT includes: 42 | 43 | * 8 buttons 44 | * Slots for up to 3 plug and play I2C sensors 45 | * EEPROM with device tree binary overlay 46 | 47 | ## Supported Raspberry Pi Versions and Models 48 | 49 | ANAVI Play pHAT is compatible with the following Raspberry Pi versions and models: 50 | 51 | * [Raspberry Pi 5](https://www.raspberrypi.com/products/raspberry-pi-5/) 52 | * [Raspberry Pi 400](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) 53 | * [Raspberry Pi 4 Model B](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) 54 | * [Raspberry Pi 3 Model A+](https://www.raspberrypi.com/products/raspberry-pi-3-model-a-plus/) 55 | * [Raspberry Pi 3 Model B+](https://www.raspberrypi.com/products/raspberry-pi-3-model-b-plus/) 56 | * [Raspberry Pi 3 Model B](https://www.raspberrypi.com/products/raspberry-pi-3-model-b/) 57 | * [Raspberry Pi 2 Model B](https://www.raspberrypi.com/products/raspberry-pi-2-model-b/) 58 | * [Raspberry Pi Zero](https://www.raspberrypi.com/products/raspberry-pi-zero/) 59 | * [Raspberry Pi Zero W](https://www.raspberrypi.com/products/raspberry-pi-zero-w/) 60 | * [Raspberry Pi Zero 2 W](https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/) 61 | * [Raspberry Pi Model B+](https://www.raspberrypi.com/products/raspberry-pi-1-model-b-plus/) 62 | * [Raspberry Pi Model A+](https://www.raspberrypi.com/products/raspberry-pi-1-model-a-plus/) 63 | 64 | ANAVI Play pHAT is **NOT** compatible with the earlier 26-pin models of Raspberry Pi 1 Model B & A's. 65 | 66 | ## Target Market 67 | 68 | ANAVI Play pHAT is a Raspberry Pi HAT suitable for existing Raspberry Pi customers interested in retro gaming, home automation, software development and Internet of Things. The board is appropriate for embedded programming enthusiasts, GNU/Linux gadget fans, students as well as web and/or mobile app developers. The main usage of the board is gaming and home automation without the urge of understanding perfectly the hardware. 69 | 70 | ## Board Version 71 | 72 | Revision 1.0 of ANAVI Play pHAT was used while writing this document. It is possible that it is outdated so it is always recommended to check the latest sources from the GitHub page of the board. 73 | 74 | # CHAPTER 2: Getting Started 75 | 76 | ## Electrostatic Warning 77 | 78 | ANAVI Play pHAT is shipped in a protective antistatic bag. The HAT as well as the Raspberry Pi must **NOT** be exposed to high electrostatic potentials. A grounding strap or similar protective device should be worn when handling the board. Avoid touching the component pins or any other metallic element. 79 | 80 | ## Requirements 81 | 82 | In order to setup ANAVI Play pHAT the following items are required: 83 | 84 | * Compatible Raspberry Pi 85 | * microSD card with compatible image 86 | * USB power supply 87 | 88 | Additionally you may attach USB mouse, keyboard, HDMI monitor or addition peripheral devices to your Raspberry Pi. It is recommended to use 2.5A (2500mA) power supply. 89 | 90 | ## Supported Peripherals 91 | 92 | ANAVI Play pHAT Raspberry Pi HAT has 8 buttons. Up to 3 I2C sensors can be also easily attached to the pHAT. 93 | 94 | ### Sensors 95 | 96 | The officially supported I2C sensor modules by ANAVI Play pHAT are: 97 | 98 | * Temperature and barometric pressure (BMP180) 99 | * Temperature and humidity (HTU21) 100 | * Light (BH1750) 101 | 102 | You may also attach any other I2C sensors but you will have to take care of their software integration. 103 | 104 | #### Temperature and Barometric Pressure Sensor (BMP180) 105 | 106 | The official temperature sensor for ANAVI Play pHAT is BMP180. This is I2C sensor capable of measuring both temperature and barometric pressure. 107 | 108 | Using 4 Dupont jumper wires connect BMP180 to one of the 3 I2C slots on ANAVI Play pHAT as follows: 109 | 110 | | BMP180 | ANAVI Play pHAT | 111 | | -------- |:-------------- | 112 | | VIN | 3.3V | 113 | | GND | GND | 114 | | SCL | SCL | 115 | | SDA | SDA | 116 | 117 | #### Temperature and Humidity Sensor (HTU21D) 118 | 119 | The official humidity temperature for ANAVI Play pHAT is HTU21 (SHT21). This is I2C sensor capable of measuring both humidity and temperature. 120 | 121 | Using 4 Dupont jumper wires connect HTU21 to one of the 3 I2C slots on ANAVI Play pHAT as follows: 122 | 123 | | HTU21 | ANAVI Play pHAT | 124 | | -------- |:-------------- | 125 | | VIN | 3.3V | 126 | | GND | GND | 127 | | SCL | SCL | 128 | | SDA | SDA | 129 | 130 | #### Light Sensor (BH1750) 131 | 132 | The official light I2C sensor for ANAVI Play pHAT is BH1750. 133 | 134 | Using 4 Dupont jumper wires connect BH1750 to one of the 3 I2C slots on ANAVI Play pHAT as follows: 135 | 136 | | BH1750 | ANAVI Play pHAT | 137 | | -------- |:-------------- | 138 | | VCC | 3.3V | 139 | | GND | GND | 140 | | SCL | SCL | 141 | | SDA | SDA | 142 | 143 | ## Assembly 144 | 145 | You can mount ANAVI Play pHAT on your Raspberry Pi with your bare hands following the steps below: 146 | 147 | * Ensure that you Raspberry Pi is compatible with ANAVI Play pHAT. 148 | * Power off your Raspberry Pi. 149 | * Gently mount ANAVI Play pHAT on the 40 pin header of your Raspberry Pi. 150 | * Add sensors to your ANAVI Play pHAT. 151 | * Optionally, you may also mount two or four brass M2.5 standoffs and the acrylic case to keep your Pi HAT snug on your Raspberry Pi while also keeping the two boards separated. 152 | * That's all, now you are ready to go! 153 | 154 | ## Powering ANAVI Play pHAT 155 | 156 | ANAVI Play pHAT is Raspberry Pi HAT therefore it is powered through Raspberry Pi. It is recommended to use the [official Raspberry Pi Power Supply](https://www.raspberrypi.org/products/universal-power-supply/) or another 2.5A USB power supply from reputable retailer. 157 | 158 | --- 159 | 160 | # CHAPTER 3: Software 161 | 162 | ## Installation 163 | 164 | In order to work correctly, ANAVI Play pHAT requires an up-to-date kernel, I2C to be enabled, and a few libraries to get started. After booting microSD card with **Raspbian**, open a terminal and follow the steps below: 165 | 166 | * Ensure your APT package list is up-to-date: 167 | 168 | ``` 169 | sudo apt-get update 170 | ``` 171 | 172 | * Install additional applications, libraries and other tools needed by ANAVI Play pHAT 173 | 174 | ``` 175 | sudo apt-get install -y git i2c-tools vim 176 | ``` 177 | 178 | ### Enable I2C 179 | 180 | Follow the steps below to enable I2C which is required by the sensors for ANAVI Play pHAT 181 | 182 | * Open a terminal or login remotely via SSH to your Raspberry Pi and type in the following command: 183 | 184 | ``` 185 | sudo raspi-config 186 | ``` 187 | 188 | * Select **Interfacing Options > I2C** and enable it. 189 | 190 | * Reboot the board. 191 | 192 | ## Examples 193 | 194 | Sample applications written in Python and the C programming language are provided for ANAVI Play pHAT under MIT license in GitHub. All examples have been tested on **Raspbian**. 195 | 196 | Open a terminal and execute the follow the steps by step instructions to install all dependencies and to get the source code: 197 | 198 | * Install dependencies: 199 | 200 | ``` 201 | sudo apt-get update 202 | sudo apt-get install -y git git-core vim python-dev python-rpi.gpio 203 | ``` 204 | 205 | * Install the GPIO interface library for Raspberry Pi called [wiringPi](http://wiringpi.com/): 206 | 207 | ``` 208 | cd ~ 209 | git clone git://git.drogon.net/wiringPi 210 | cd wiringPi 211 | ./build 212 | ``` 213 | 214 | * Download the examples for ANAVI Play pHAT Raspberry Pi HAT 215 | 216 | ``` 217 | cd ~ 218 | git clone https://github.com/AnaviTechnology/anavi-examples.git 219 | cd anavi-examples 220 | ``` 221 | 222 | ### Sensors 223 | 224 | It is mandatory to enable **I2C** to use any of the sensors supported by ANAVI Play pHAT Raspberry Pi HAT. 225 | 226 | #### Temperature Barometric Pressure Sensor (BMP180) 227 | 228 | Follow the steps below to use the BMP180 I2C temperature and barometric pressure sensor with ANAVI Play pHAT: 229 | 230 | * Connect BMP180 to any of the I2C slots on ANAVI Play pHAT using male to female Duport jumper wire. 231 | 232 | * Type in the following command and verify that the address of the sensor is listed: 233 | 234 | ``` 235 | sudo i2cdetect -y 1 236 | ``` 237 | 238 | * Type in the following commands to build and run the sample application that display temperature and barometric pressure: 239 | 240 | ``` 241 | cd ~/anavi-examples/sensors/BMP180/c/ 242 | make 243 | ./BMP180 244 | ``` 245 | 246 | * Verify that the output is similar to (the exact values depend on the atmospheric condition): 247 | 248 | ``` 249 | pi@raspberrypi:~/anavi-examples/sensors/BMP180/c $ ./BMP180 250 | BMP180 Sensor Module 251 | Temperature 28.6 C 252 | Pressure 991.57 hPa 253 | ``` 254 | 255 | #### Temperature and Humidity Sensor (HTU21D) 256 | 257 | Follow the steps below to use the HTU21D I2C temperature and humidity sensor with ANAVI Play pHAT: 258 | 259 | * Connect HTU21D to any of the I2C slots on ANAVI Play pHAT using male to female Duport jumper wire. 260 | 261 | * Type in the following command and verify that the address of the sensor is listed: 262 | 263 | ``` 264 | sudo i2cdetect -y 1 265 | ``` 266 | 267 | * Type in the following commands to build and run the sample application that display temperature and humidity: 268 | 269 | ``` 270 | cd ~/anavi-examples/sensors/HTU21D/c/ 271 | make 272 | ./HTU21D 273 | ``` 274 | 275 | * Verify that the output is similar to (the exact values depend on the atmospheric condition): 276 | 277 | ``` 278 | pi@raspberrypi:~/anavi-examples/sensors/HTU21D/c $ ./HTU21D 279 | HTU21D Sensor Module 280 | 25.64C 281 | 118.99%rh 282 | ``` 283 | 284 | #### BH1750 Light Sensor Module 285 | 286 | Follow the steps below to use the BH1750 I2C light sensor with ANAVI Play pHAT: 287 | 288 | * Connect BH1750 to any of the I2C slots on ANAVI Play pHAT using male to female Dupont jumper wires. 289 | 290 | * Type in the following command and verify that the address of the sensor is listed: 291 | 292 | ``` 293 | sudo i2cdetect -y 1 294 | ``` 295 | 296 | * Type in the following commands to build and run the sample application that display luminous emittance: 297 | 298 | ``` 299 | cd ~/anavi-examples/sensors/BH1750/c/ 300 | make 301 | ./BH1750 302 | ``` 303 | 304 | * Verify that the output is similar to (the exact values depend on the atmospheric condition): 305 | 306 | ``` 307 | pi@raspberrypi:~/anavi-examples/sensors/BH1750/c $ ./BH1750 308 | BH1750 Sensor Module 309 | Light: 418 Lux 310 | ``` 311 | 312 | ## Device Tree Overlays 313 | 314 | Device Tree (DT) in Linux is a description of the hardware in a system. The DT overlay adds a number of optional elements. 315 | 316 | The EEPROM of ANAVI Play pHAT contains DT overlay with description of the peripheral devices on the HAT. After adding Anavi to your Raspberry Pi and booting it you should have some new filesystem nodes at */proc/device-tree/hat*: 317 | 318 | ``` 319 | pi@raspberrypi:~ $ ls -l /proc/device-tree/hat/ 320 | total 0 321 | -r--r--r-- 1 root root 4 Feb 15 00:27 name 322 | -r--r--r-- 1 root root 20 Feb 15 00:27 product 323 | -r--r--r-- 1 root root 7 Feb 15 00:27 product_id 324 | -r--r--r-- 1 root root 7 Feb 15 00:27 product_ver 325 | -r--r--r-- 1 root root 37 Feb 15 00:27 uuid 326 | -r--r--r-- 1 root root 6 Feb 15 00:27 vendor 327 | ``` 328 | 329 | The information provided in these filesystem nodes helps you to identify ANAVI Play pHAT vendor, version, product name, etc. For example: 330 | 331 | ``` 332 | pi@raspberrypi:~ $ cat /proc/device-tree/hat/product 333 | ANAVI Play pHAT 334 | 335 | pi@raspberrypi:~ $ cat /proc/device-tree/hat/vendor 336 | ANAVI 337 | ``` 338 | 339 | More information about device trees, overlays and parameters are available at [the official Raspberry Pi documentation](https://www.raspberrypi.org/documentation/configuration/device-tree.md). 340 | 341 | --- 342 | 343 | # CHAPTER 4: RetroPie 344 | 345 | [RetroPie](https://retropie.org.uk/) is a free GNU/Linux distribution that turns Raspberry Pi into a retro-gaming machine. It builds upon popular open source projects such as Raspbian, EmulationStation, RetroArch and many other to enable you to play your favourite Arcade, home-console, and classic PC games with the minimum efforts for setup. 346 | 347 | Python script has to be launched to ensure that ANAVI Play pHAT will work with the emulators provided in RetroPie. Follow the steps below to install and configure it: 348 | 349 | * Download [RetroPie](https://retropie.org.uk/) and flash it on microSD card 350 | * Boot RetroPie, login as user **pi** via SSH or open a terminal to execute the following commands: 351 | ``` 352 | sudo apt-get update 353 | sudo apt-get install -y python-pip 354 | sudo pip install evdev 355 | ``` 356 | * Download the open source examples from GitHub that bring all needed scripts: 357 | ``` 358 | cd ~ 359 | git clone https://github.com/AnaviTechnology/anavi-examples.git 360 | ``` 361 | * Open file **/etc/rc.local** (using sudo) with you favorite text editor, for example nano, append the follow line at the end **before** *exit 0*: 362 | ``` 363 | sudo python /home/pi/anavi-examples/anavi-play-phat/anavi-play-gamepad.py & 364 | ``` 365 | * Reboot RetroPie 366 | 367 | # CHAPTER 5: Schematics 368 | 369 | ## Pinout 370 | 371 | The components of ANAVI Play pHAT utilize the following pins on Raspberry Pi: 372 | 373 | | Component | Pins | 374 | | ------------ |:------------------------------- | 375 | | I2C | 3, 5 | 376 | | EEPROM | 27, 28 | 377 | | Button UP | 15 | 378 | | Button DOWN | 13 | 379 | | Button LEFT | 7 | 380 | | Button RIGHT | 11 | 381 | | Button START | 29 | 382 | | Button SELECT| 31 | 383 | | Button A | 35 | 384 | | Button B | 37 | 385 | 386 | For more details have a look at [the KiCad project which is available in GitHub](https://github.com/AnaviTechnology/anavi-play-phat). 387 | 388 | ## I2C 389 | 390 | The sensors that can be connected to ANAVI Play pHAT communicate with a host microcontroller via a communications standard called **I2C** (Inter-Integrated-Circut). I2C uses two wires, labelled SDA (Serial Data) and SCL (Serial Clock). To function properly, I2C requires a pullup resistor on each of those lines therefore ANAVI Play pHAT includes two 4.7kohm resistors labelled as R6 and R7. If for one reason or another you need to disable the I2C pullup resistors remove R6 and R7. 391 | 392 | --- 393 | 394 | # CHAPTER 6: Frequently Asked Questions (FAQ) 395 | 396 | #### May I use ANAVI Play pHAT with other operating systems? 397 | 398 | Yes, you can use ANAVI Play pHAT with other GNU/Linux distributions and even other operating systems but some porting efforts might be required. 399 | 400 | #### May I use other I2C sensors with ANAVI Play pHAT? 401 | 402 | Yes, you can use other I2C sensors with ANAVI Play pHAT but you should take care for their drivers and software support. 403 | 404 | #### May I use non-I2C sensors with ANAVI Play pHAT? 405 | 406 | No. 407 | 408 | #### Is ANAVI Play pHAT software free and open source? 409 | 410 | Yes, the official ANAVI Play pHAT software is free and open source. The examples are available under MIT license and the rest is available under GPLv3. Please contact us if you are working on a commercial product and you would like to use the software under alternative commercial license. 411 | 412 | --- 413 | 414 | # CHAPTER 7: Revision History 415 | 416 | ## Document Revision 417 | 418 | | Date | Changes | Modified pages | Author | 419 | | ----------------- |:---------------------------:| :---------------| :---------------| 420 | | 28 July 2018 | Initial release | All | Leon Anavi | 421 | 422 | ## ANAVI Play pHAT Revision 423 | 424 | | Revision| Notable changes | 425 | | ------- |:-------------------------------------------------------------| 426 | | 1.0 | First version | 427 | 428 | ## See Also 429 | 430 | For more information please visit [anavi.technology](http://anavi.technology/) and our [GitHub repositories](https://github.com/AnaviTechnology). If you have any questions or enquiries please contact us through [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) or [email](mailto:info@anavi.technology). 431 | 432 | --- 433 | -------------------------------------------------------------------------------- /anavi-thermometer/anavi-thermometer-de.md: -------------------------------------------------------------------------------- 1 | # ANAVI Thermometer 2 | **Eine ESP8266-betriebene, open source Wi-Fi Entwicklungs-Platine mit Temperatur- und Feuchte-Sensoren** 3 | --- 4 | # HAFTUNGSAUSSCHLUSS 5 | 6 | ANAVI, das ANAVILogo und Kombinationen davon, sind registrierte Handelsmarken von Leon Anavi. Andere Produktnamen können Handelsmarken anderer sein und die Rechte daran ihren entsprechenden Besitzern gehören. 7 | 8 | Die Information in diesem Dokument bezieht sich ausschließlich auf Anavi-Produkte. Dieses Dokument oder der Verkauf von Anavi-Produkten führt zu keiner Erteilung irgendwelcher Lizenzen, weder ausdrücklich noch implizit oder auf eine andere Weise, an irgendwelchen geistigen Eigentumsrechten. 9 | 10 | Diese Arbeit ist lizensiert unter der Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) Lizenz. 11 | Um diese Lizenz zu sehen, besuchen sie https://creativecommons.org/licenses/by-sa/4.0/. 12 | 13 | Das Hardware-Design des ANAVI Thermometer steht unter der Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)-Lizenz. 14 | 15 | Die Software-Beispiele sind unter der MIT- und der Rest die restliche Software unter der GPLv3-Lizenz heraus gegeben. 16 | 17 | Die Bilder in dieser Anleitung können von der neuesten Version der Leiterplatte abweichen. 18 | 19 | Das Produkt, das dieser Beschreibung zu Grunde liegt, wird ständig weiter entwickelt und verbessert. Alle Einzelheiten des Produkts und seiner Anwendung, die in diesem Dokument genannt werden von Anavi in gutem Glauben veröffentlicht. Es sind jedoch alle Gewährleistungsansprüche, implizit oder ausdrücklich erwähnt, einschließlich, aber nicht beschränkt auf die implizierte Zusicherung der Marktfähigkeit und Gebrauchsfähigkeit, ausgeschlossen. Dieses Dokument dient nur dazu dem Anwender bei der Benutzung des Produktes zu helfen. Anavi kann nicht für Verluste oder Beschädigungen haftbar gemacht werden, die von der Verwendung der Informationen, von Irrtümern oder Weglassungen in diesem Dokument beziehungsweise durch unsachgemäße Verwendung des Produktes entstanden. 20 | 21 | Diese Entwicklungsplatine/Bausatz ist nur für die technische Entwicklung, Demonstration und Evaluierung gedacht und wird von Anavi nicht als fertiges Endprodukt für allgemeine Verwendung durch Konsumenten betrachtet. Verwender dieses Produktes müssen eine Ausbildung in Elektronik haben und nach dem Stand der Technik vorgehen. Somit sind die gelieferten Produkte nicht als fertiggestellt zu betrachten, weder in Betracht auf Entwicklungs- oder Marketing-, noch in Bezug auf herstellungsbezogene Schutzmaßnahmmen, einschließlich Produktsicherheits- und Umweltschutz-Maßnahmen wie sie für End-Produkte, die solche Halbleiter-Komponenten oder Leiterplatten enthalten, typisch sind. 22 | 23 | Für das Design-Material und die Komponenten die für das ANAVI Thermometer verwendet werden, wird keine Garantie übernommen, sie sind lediglich für das ANAVI Thermometer geeignet. 24 | 25 | --- 26 | 27 | # KAPITEL 1: Überblick 28 | 29 | ## Einleitung 30 | 31 | Das ANAVI Thermometer ist eine open source Hardware. Es ist eine Wi-Fi Entwicklungs-Platine mir einem ESP8266-Prozessor zum Messen von Temperaturen. Ein DHT22/AM2302 Temperatur- und Feuchte-Sensor ist eingebaut und es hat Anschlüsse für ein mini OLED-Display, einen wasserdichten DS18B20 Temperatur-Sensor und freie Verbinder für bis zu drei zusätzliche I2C Sensor-Module. Alle diese Eigenschaften machen das ANAVI Thermometer ideal für Entwickler, Bastler, Studenten und open source Enthusiasten, die an Haus-Automation interessiert sind. 32 | 33 | Das ANAVI Thermometer wurde mit der freien open source electronics design automation suite [KiCAD](href="http://kicad-pcb.org/) entwickelt. Es sind keine Lötarbeiten notwendig. Sie können das ANAVI Thermometer mit ihren Händen und einem Schraubenzieher zusammenbauen. 34 | 35 | ## Eigenschaften & Spezifikationen 36 | 37 | * **CPU**: Tensilica L106 32-bit Prozessor (ESP8266) 38 | * **Connectivity**: WiFi 802.11 b/g/n 39 | * **eingebauter Sensor**: Temperatur und Feuchte (AM2302/DHT22) 40 | * **Peripherie-Anschlüsse**: Mini OLED display, Klemmen für den wasserfesten Temperatursensor DS18B20, UART Stifte, Taster, drei Verbinder für I2C-Sensoren 41 | * **Kompatibilität**: Arduino-IDE, PlatformIO, Home Assistant, MQTT, und jeder moderne Web-Browser 42 | * **Zertifizierung**: Open Source Hardware Association (OSHWA) BG000017 43 | * **Abmessungen**: 75 mm x 40 mm 44 | 45 | ## Ziel-Markt 46 | 47 | Das ANAVI Thermometer ist eine zertifizierte open source Hardware Entwicklungs-Platine für Kunden, die an Haus-Automation, Software Entwicklung und dem Internet of Things interessiert sind. Die Möglichkeit einen wasserfesten DS18B20 Sensor anzuschließen macht auch die Temperaturmessung in Aquarien und Flüssigkeiten einfach. Die Platine ist für Enthusiasten des "embedded programming", für open source Unterstützer, für Studenten und/oder Entwickler mobiler Applikationen geeignet. Die Hauptanwendung der Platine ist die Haus-Automation. 48 | 49 | ## Platinen Version 50 | 51 | Revision 1.0 des ANAVI Thermometers wurde beim Schreiben dieses Dokuments verwendet. Da es daher möglich ist, dass es bereits überholt ist, wird empfohlen die neuesten sourcen von der GitHub-Seite der Platine zu überprüfen. 52 | 53 | # KAPITEL 2: Los geht es 54 | 55 | ## Warnung: Elektrostatik 56 | 57 | Das ANAVI Thermometer wird in einem Schutzbeutel geliefert. Es darf **KEINEN** hohen elektrostatischen Potentialen ausgesetzt werden. Beim Arbeiten mit der Platine sollte ein Erdungsband getragen werden. Vermeiden sie das Berühren der Bauteil-Anschlüsse oder anderer metallischer Teile. 58 | 59 | ## Voraussetzungen 60 | 61 | Um das ANAVI Thermometer in Betrieb zu nehmen, benötigen sie die folgenden Artikel: 62 | 63 | * 5V Stromversorgung mit einem microUSB-Stecker 64 | 65 | Es wird eine Stromversorgung mit 1A (1000mA) oder höherer Belastbarkeit empfohlen. 66 | 67 | ## unterstützte Peripherie 68 | 69 | Das ANAVI Thermometer hat Schraubklemmen zum Anschluss eines wasserfesten Temperaturfühlers DS18B20, einen I2C-Anschluss für ein mini OLED-Display sowie bis zu 3 Anschlüsse für I2C-Sensoren. 70 | 71 | ### Sensoren 72 | 73 | Das ANAVI Thermometer hat einen eingebauten DHT22/AM2303 Temperatur- und Feuchte-Sensor. Zusätzlich können sie einen externen wasserfesten Temperaturfühler DS18B20 anschließen. Die offiziell unterstützten I2C Zusatz-Sensormodule sind für: 74 | 75 | * Licht (BH1750) 76 | * Temperatur und Feuchte (HTU21D) 77 | * Farbe und Gestenerkennung (APDS-9960) 78 | * Temperatur und Luftdruck (BMP180) 79 | 80 | Sie können auch andere I2C-Sensoren anschließen, müssen sich aber selbst um die Software-Integration kümmern. 81 | 82 | #### Licht-Sensor 83 | 84 | Der offizielle I2C-Lichtsensor des ANAVI Thermometers ist der BH1750. 85 | 86 | Verbinden sie den BH1750 mit 4 Dupont jumper-Drähten mit einem der 3 I2C-Anschlüsse des ANAVI Thermometers wie folgt: 87 | 88 | | BH1750 | ANAVI Thermometer | 89 | | -------- |:-------------- | 90 | | VCC | 3.3V | 91 | | GND | GND | 92 | | SCL | SCL | 93 | | SDA | SDA | 94 | 95 | 96 | #### I2C Externer Temperatur- & Feuchte-Sensor 97 | 98 | Der offizielle Temperatur- und Feuchte-Zusatzsensor des ANAVI Thermometers ist der HTU21 (SHT21). Dieser I2C-Sensor misst sowohl Feuchte als auch Temperatur. 99 | 100 | Verbinden sie den HTU21 mit 4 Dupont jumper-Drähten mit einem der 3 I2C-Anschlüsse des ANAVI Thermometers wie folgt: 101 | 102 | | HTU21 | ANAVI Thermometer | 103 | | -------- |:-------------- | 104 | | VIN | 3.3V | 105 | | GND | GND | 106 | | SCL | SCL | 107 | | SDA | SDA | 108 | 109 | #### Farb- und Gestenerkennungs-Sensor 110 | 111 | Der offizielle I2C-Sensor zur RGB-Farb- und Gesten-Erkennung des ANAVI Ligth pHAT ist der APDS-9960. 112 | 113 | Verbinden sie den APDS-9960 mit 4 Dupont jumper-Drähten mit einem der 3 I2C-Anschlüsse des ANAVI Thermometers wie folgt: 114 | 115 | | APDS-9960 | ANAVI Thermometer | 116 | | ---------- |:-------------- | 117 | | VIN | 3.3V | 118 | | GND | GND | 119 | | SCL | SCL | 120 | | SDA | SDA | 121 | 122 | #### Temperatur- & Luftdruck-Sensor 123 | 124 | Der offizielle Temperatur- und Luftdruck-Sensor des ANAVI Thermometers ist der BMP180. Dieser I2C-Sensor kann sowohl Temperatur, als auch Luftdruck messen. 125 | 126 | Verbinden sie den BMP180 mit 4 Dupont jumper-Drähten mit einem der 3 I2C-Anschlüsse des ANAVI Thermometers wie folgt: 127 | 128 | | BMP180 | ANAVI Thermometer | 129 | | -------- |:-------------- | 130 | | VIN | 3.3V | 131 | | GND | GND | 132 | | SCL | SCL | 133 | | SDA | SDA | 134 | 135 | ## Zusammenbau 136 | 137 | Sie können das ANAVI Thermometer mit ihren bloßen Händen und einem Schraubenzieher anhand der folgenden Schritte zusammensetzen: 138 | 139 | * Schließen sie die Zusatz-Sensoren an ihr ANAVI Thermometer an. 140 | * Optional können sie es auch in das einfache Acryl-Gehäuse einbauen, indem sie den Schutzfilm abziehen und die Schrauben entfernen. 141 | * Verwenden sie eine 5V-Stromversorgung und stecken sie das entsprechende Kabel in die microUSB-Buchse des ANAVI Thermometers um es einzuschalten. 142 | 143 | ## Stromversorgung des ANAVI Thermometers 144 | 145 | Das ANAVI Thermometer wurde mit verschiedenen 5V-Netzteilen und mit USB zu microUSB Kabeln getestet. Eine 5V-Stromversorgung mit einem Ausgangsstrom von 1A oder mehr wird empfohlen. Stellen sie sicher, dass ihre Stromversorgung von einem seriösen Hersteller ist. Billige, ungetestete Stromversorgungen können riskant und unzuverlässig sein. 146 | 147 | ## Konfiguration des ANAVI Thermometers 148 | 149 | [Video-Anleitung für den Start mit dem ANAVI Light Controller (gleicher Vorgang beim ANAVI Thermometer](https://www.youtube.com/watch?v=Y_81CuuGm0Y) 150 | 151 | Schalten sie das ANAVI Thermometer durch das Anstecken der Stromversorgung ein. Wenn die Platine zum ersten mal eingeschaltet wird, startet sie einen temporären WiFi access point. Verbinden sie sich damit mit ihrem Computer, Smartphone oder Tablet. 152 | 153 | Die Standard-Software des ANAVI Thermometers hat ein Captive Portal, das sie durch die Konfiguration führt. Wie sie im Video sehen, müssen sie ihr WiFi-Netz wählen und ein Passwort angeben, falls es nicht offen ist. 154 | 155 | Unsere open source Software benutzt das Maschine zu Maschine Kommunikations-Protokoll MQTT um Daten von den Sersoren zu melden. Sie können sich zu ihrem eigenen MQTT-broker verbinden oder einfach die Standardkonfiguration belassen und sich mit dem öffentlichen broker verbinden, wie es im Video gezeigt wird. 156 | 157 | Es ist sehr wichtig, sich die Maschinen-ID aufzuschreiben. Sie wird später benötigt, um ihr Gerät zu identifizieren. 158 | 159 | Wenn sie fertig sind, klicken sie auf "Save". Wenn sie gültige Anmeldedaten eingegeben haben, wird sich ihr ANAVI Thermometer einen Moment später mit ihrem WiFi-Netz und dem konfigurierten MQTT-broker verbinden. Damit ist die Konfiguration abgeschlossen und das ANAVI Thermometer wird seinen temporären WiFi access point abschalten. Danach wird sich ihr Gerät, z.B. das Handy wie im Video, wieder automatisch mit ihrem WiFi-Netz verbinden. 160 | 161 | Um zu überprüfen, ob ihr ANAVI-Thermometer läuft, öffnen sie einen modernen Web-browser und gehen sie zu demo.anavi.technology. Geben sie ihre Maschinen-ID ein. Gehen sie zu den forgeschrittenen Einstellungen (advanced settings) nur wenn sie nicht den öffentlichen Standard-MQTT-broker verwenden. Klicken sie auf "connect". 162 | 163 | ## Rücksetzen auf Werkseinstellungen 164 | 165 | Wenn sie die Einstellungen des ANAVI Thermometers ändern wollen, müssen sie einen Reset der Platine machen und sie neu konfigurieren. 166 | 167 | Um das ANAVI Thermometer zurück zu setzen, drücken sie die Taste ca 10 Sekunden bis das rote LED zu blinken beginnt. Nach dem Zurücksetzen der platine leuchtet das rote LED ständig und zeigt damit an, dass der temporäre WiFi access-point eingeschaltet ist und sie mit der erneuten Konfiguration beginnen können. 168 | --- 169 | 170 | # KAPITEL 3: Software Entwicklung 171 | 172 | ## Standard Firmware 173 | 174 | Das ANAVI Thermometer wird mit [diesem freien open source Arduino sketch](https://github.com/AnaviTechnology/anavi-termometer-sw) geliefert. 175 | 176 | ## USB zu UART Modul 177 | 178 | Zum upload von Firmware in das ANAVI Thermometer benötigen sie ein USB zu UART Modul. Alle kits enthalten einen CP2102, der direkt auf GNU/Linux Distributionen funktionieren. Treiber für MS Windows und Mac OS X [finden sie auf silabs.com](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers) 179 | 180 | ## Einrichten der Arduino-IDE 181 | 1. Installieren sie die Arduino-IDE nach den Anweisungen von https://www.arduino.cc/en/Main/Software 182 | 183 | 2. Fügen sie das ESP8266 Paket hinzu: Schreiben sie im Menü **Datei > Voreinstellungen** http://arduino.esp8266.com/stable/package_esp8266com_index.json in das Feld "Zusätzliche Boardverwalter-URLs". 184 | 185 | 3. Suchen sie in **Werkzeuge > Board: ... > Boardverwalter** das ESP8266-Paket und installieren sie es. Jetzt sollte "Generic ESP8266 Module" eine Auswahlmöglichkeit im Menü **Werkzeuge > Board** sein. 186 | 187 | 4. Im Menü **Werkzeuge > Flash Size:** wählen sie **4M (1M SPIFFS)** 188 | 189 | 5. Gehen sie ins Menü **Sketch > Bibliothek einbinden > Bibliotheken verwalten...** und installieren sie die folgenden Abhängigkeiten der Standard-Firmware für das ANAVI Thermometer: 190 | 191 | * WiFiManager by tzapu (version 0.12.0) 192 | * ArduinoJson by Benoit Blanchon (version 5.11.1) 193 | * PubSubClient by Nick O'Leary (version 2.7.0) 194 | * Adafruit HTU21DF Library by Adafruit (version 1.0.1) 195 | * Adafruit APDS9960 Library by Adafruit (version 1.0.5) 196 | * DHT sensor library by Adafruit (version 1.3.4) 197 | * U8g2 by oliver (version 2.23.18) 198 | * OneWire (version 2.3.4) 199 | * DallasTemperature (version 3.8.0) 200 | * Adafruit Unified Sensor by Adafruit (version 1.0.2) 201 | 202 | *Bemerkung: Wenn sie andere Versionen der Bibliotheken verwenden, kann es zu Problemen kommen.* 203 | 204 | ## eigene Firmware flashen 205 | 206 | Folgen sie den unten stehenden Schritten und flashen sie mit der Arduino-IDE ihre eigene Firmware auf das ANAVI Thermometer: 207 | 208 | 1. Um die Firmware mit der Arduino-IDE zu flashen, wählen sie Werkzeuge > Generic ESP8266 Module (Flash mode: DIO, Flash frequency: 40MHz, CPU frequency: 80MHz, Flash size: 4M, Debug port: Disabled, Debug level: Keine, Reset method: ck, Upload speed: 115200, Port: /dev/ttyUSB0). Bei Bedarf müssen sie eine andere Port-Einstellung wählen, falls ihr USB-zu-seriell-Kabel mit einem anderen Anschluss verbunden ist. 209 | 210 | 2. Laden sie einen Arduino-sketch mit "Datei" > "Öffnen...". [Ein einfaches Beispiel einer blinkenden LED finden sie auf GitHub](https://github.com/AnaviTechnology/anavi-examples/blob/master/anavi-light-controller/anavi-blinking-led/anavi-blinking-led.ino) 211 | 212 | 3:Klicken sie auf "Sketch" > "Überprüfen/Kompilieren" in der Arudino-IDE (Ctrl+R) 213 | 214 | 4. Verbinden sie das ANAVI Thermometer mit der USB-zu-seriell debug-Platine: GND to GND, TX-Leitung an RX am ANAVI Thermometer und RXLeitung an TX am ANAVI Thermometer. 215 | 216 | 5. Klicken sie auf "Sketch" > "Hochladen" in der Arudino-IDE (Ctrl+U) 217 | 218 | 6. Drücken und **halten** sie SW1 am ANAVI Thermometer. Stecken sie die 5V-Stromversorgung in die Buchse am ANAVI Thermometer (ohne SW1 loszulassen). 219 | 220 | 7. Verifizieren sie in der Arduino-IDE, dass der Upload begonnen hat. Halten sie die RESET-Taste bis der upload fertig ist. 221 | 222 | In der Arduino-IDE sieht erfolgreiches Flashen so aus: 223 | 224 | ``` 225 | Archiving built core (caching) in: /tmp/arduino_cache_954939/core/core_esp8266_esp8266_generic_CpuFrequency_80,FlashFreq_40,FlashMode_dio,UploadSpeed_115200,FlashSize_512K64,ResetMethod_ck,Debug_Disabled,DebugLevel_None_____1c2aa2b3da66da225b39c9bfab6531e5.a 226 | Sketch uses 224949 bytes (51%) of program storage space. Maximum is 434160 bytes. 227 | Global variables use 31756 bytes (38%) of dynamic memory, leaving 50164 bytes for local variables. Maximum is 81920 bytes. 228 | Uploading 229104 bytes from /tmp/arduino_build_904122/anavi-blinking-led.ino.bin to flash at 0x00000000 229 | ................................................................................ [ 35% ] 230 | ................................................................................ [ 71% ] 231 | ................................................................ [ 100% ] 232 | ``` 233 | 234 | Wenn sie das Beispiel mit der blinkenden LED geflasht haben, sollte D1 am ANAVI Thermometer zu blinken beginnen. 235 | 236 | Bitte sehen sie sich das [YouTube Video an, das die genauen Schritte zum Kompilieren und Hochladen einer Arduino-Sketch auf das ANAVI Thermometer zeigt](https://www.youtube.com/watch?v=HMIkPuz0ZJs). 237 | 238 | **Bemerkung:** Sie müssen zwischen Punkt 5 und Punkt 6 schnell sein. Denken sie daran SW1 zu drücken und zu **halten** bis der Upload fertig ist. 239 | 240 | # Home Assistant 241 | 242 | [Home Assistant](https://home-assistant.io/) ist eine freie open-source Hausautomatisations-Plattform, die auf Python 3 läuft und mehr als 1200 Komponenten zur Integration mit dem populären Internet of Things unterstützt. 243 | 244 | Das ANAVI Thermometer kann unter Verwendung der Komponente [MQTT sensor](https://www.home-assistant.io/components/sensor.mqtt/) einfach in Home Assistant integriert werden. Diese Komponente unterstützt JSON in der Nutzlast der MQTT-Nachrichten. Um das zu verwenden, müssen sie in **configuration.yaml** den MQTT-broker angeben und den Sensor am korrespodierenden MQTT-Thema registrieren, zum Beispiel: 245 | * Konfiguration des MQTT-brokers: 246 | 247 | ``` 248 | mqtt: 249 | broker: 127.0.0.1 250 | ``` 251 | 252 | * Registrieren des MQTT-Sensors: 253 | 254 | ``` 255 | sensor: 256 | - platform: mqtt 257 | name: "Temperatur" 258 | unit_of_measurement: 'C' 259 | state_topic: "home/room/temperature" 260 | value_template: "{{value_json.temperature}}" 261 | - platform: mqtt 262 | name: "rel. Feuchte" 263 | unit_of_measurement: '%' 264 | state_topic: "home/room/humidity" 265 | value_template: "{{value_json.humidity}}" 266 | ``` 267 | 268 | --- 269 | 270 | # Schaltung 271 | 272 | ## Anschlüsse 273 | 274 | Die Komponenten des ANAVI Thermometer nutzen einen ESP8266 (ESP-12 Modul) und verwenden die folgenden pins: 275 | 276 | | Komponente | Pins | Arduino Pin ID | 277 | | ------------------ |:------------ |--------------- | 278 | | I2C | 13, 14 | | 279 | | DHT22/AM2302 | 11 | 2 | 280 | | DS18B20 | 6 | 12 | 281 | | LED-Anzeige (D1) | 7 | 16 | 282 | | Reset Taster (SW1) | 12 | 0 | 283 | | UART | 15, 16 | | 284 | 285 | ## I2C 286 | 287 | Die Sensoren, die mit dem ANAVI Thermometer verbunden werden können, kommunizieren mit dem Microcontroller mittels eines Kommunikationsstandards namens **I2C** (Inter-Integrated-Circut). I2C benutzt zwei Leitungen, SDA (Serial Data) und SCL (Serial Clock). Um richtig zu funktionieren, benötigt I2C pullup-Widerstände auf jeder dieser Leitungen weshalb das ANAVI Thermometer die zwei 4.7kOhm Widerstände R2 und R3 verwendet. Wenn sie aus irgend einem Grund die I2C-Schnittstelle ohne pullup-Widerstände benutzen wollen, entfernen sie R2 und R3. 288 | 289 | --- 290 | 291 | KAPITEL 6: Häufig gestellte Fragen (FAQ) 292 | 293 | #### Welche Stromversorgung brauche ich? 294 | 295 | Sie benötigen eine Standard-5V-Stromversorgung mit einem microUSB-Stecker. 296 | 297 | #### Warum wird keine Stromversorgung mitgeliefert? 298 | 299 | Wir konnten keine Stromversorgungen mit Steckern für US/EU/UK zu einem annehmbaren Preis finden. Heutzutage finden sie 5V-Stromversorgungen mit microUSB-Stecker allerorten (für smartphones und Tablets), sie sollten ein passendes Gerät daher mühelos online oder in ihrem örtlichen Elektronik-Geschäft erhalten. 300 | 301 | #### Kann ich das ANAVI Thermometer von einem web-browser auf meinem Smartphone, Tablet, oder Laptop steuern? 302 | 303 | Ja, sie können unsere [Demo Website](http://demo.anavi.technology/) benutzen, oder das ANAVI Thermometer einfach in die populäre open source Plattform [Home Assistant](https://home-assistant.io/) als einen MQTT-Sensor integrieren. 304 | 305 | #### Ist das ANAVI Thermometer ein open source Projekt? 306 | 307 | Ja, das ANAVI Thermometer ist ein open source Hardware-Projekt, das mit freier und open source Software geschaffen wurde und damit läuft. Die Hardware-Designs sind auf [GitHub unter der CC BY-SA 4.0 Lizenz](https://github.com/AnaviTechnology/anavi-thermometer) verfügbar. Alle Schaltpläne, Dokumente und die source-code Dateien sind auf [unseren GitHub-Repositories](https://github.com/AnaviTechnology/) verfügbar. 308 | 309 | #### Ist das ANAVI Thermometer zertifiziert? 310 | 311 | Ja, das ANAVI Thermometer Revision 1.0 wurde [zertifiziert von der Open Source Hardware Association unter UID BG000017](https://certification.oshwa.org/bg000017.html) 312 | 313 | #### Verwendet das ANAVI Thermometer den ESP8266? 314 | 315 | Ja, das ANAVI Thermometer basiert auf dem ESP8266. 316 | 317 | #### Kann ich andere Firmware auf das ANAVI Thermometer laden? 318 | 319 | Ja, mit dem USB-zu-seriell Kabel können sie beliebige Firmware, die sie aus ihrem eigenen Source-Code kompiliert haben, laden. 320 | 321 | #### Ist das ANAVI Thermometer kompatibel mit der Arduino-IDE? 322 | 323 | Ja, das ANAVI Thermometer ist mit der Arduino-IDE kompatibel. Sie können ganz einfach ihre eigenen Arduino-Sketches auf die Platine hochladen. 324 | 325 | #### Wie kann ich mitmachen und helfen? 326 | 327 | Kaufen sie eines der verfügbaren Angebote, arbeiten sie mit dem ANAVI Thermometer, tragen sie zu unseren GitHub-Repositories bei und werden sie Teil unserer open-source Community! 328 | 329 | --- 330 | 331 | # KAPITEL 7: Revisions-Geschichte 332 | 333 | ## Dokumenten Revision 334 | 335 | | Datum | Änderungen | geänderte Seiten | Autor | 336 | | --------------- |:-------------------------------------:| :-----------------| :--------------| 337 | |24 Jänner 2019 | erste Ausgabe | Alle | Leon Anavi | 338 | |24 April 2019 | Software Entwicklung - Abhängigkeiten | Kapitel 3 | Leon Anavi | 339 | 340 | 341 | ## ANAVI Thermometer Revision 342 | | Revision | bemerkenswerte Änderungen | 343 | | ------- |:-------------------------------------------| 344 | | 1.0 | Stabiles Produkt | 345 | 346 | ## Lesen sie auch 347 | 348 | Für weitere Informationen besuchen sie [anavi.technology](http://anavi.technology/) und unsere [GitHub-Repositories](https://github.com/AnaviTechnology). Wenn sie Fragen oder Unklarheiten haben, kontaktieren sie uns auf [Facebook](https://www.facebook.com/AnaviTechnology/), [Twitter](https://twitter.com/AnaviTechnology) oder mittels [email](href="mailto:info@anavi.technology). 349 | 350 | --- 351 | 352 | --------------------------------------------------------------------------------