commit ef3ff63cb5a6a6e83082b9e1bd0d4fc93e438b5d Author: sergeyyarkov Date: Fri May 15 14:15:17 2026 +0300 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8a06c66 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +3d diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..b2d69ea --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,13 @@ +{ + "configurations": [ + { + "name": "Linux", + "compilerPath": "/usr/bin/avr-gcc", + "compilerArgs": ["-Wall", "-mmcu=atmega8a", "-Os"], + "includePath": ["${workspaceFolder}/firmware/**", "/usr/lib/avr/include"], + "cStandard": "c11", + "intelliSenseMode": "linux-gcc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..6ef9294 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug (bloom)", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/firmware/build/firmware.elf", + "MIMode": "gdb", + "miDebuggerPath": "/usr/bin/avr-gdb", + "miDebuggerServerAddress": "localhost:1234", + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + // "preLaunchTask": "Debug server (bloom)", + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..947c403 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "C_Cpp.default.compilerPath": "/usr/bin/avr-gcc", + "files.associations": {}, + "makefile.configureOnOpen": false, + "makefile.makefilePath": "./firmware/Makefile", + "makefile.makeDirectory": "./firmware", + "C_Cpp.formatting": "disabled" +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..58fdd8f --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,63 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Build (prod)", + "type": "shell", + "command": "make -C ${workspaceFolder}/firmware", + "problemMatcher": ["$gcc"], + "group": "build" + }, + { + "label": "Clean and build (prod)", + "type": "shell", + "command": "make -C ${workspaceFolder}/firmware clean && make -C ${workspaceFolder}/firmware", + "problemMatcher": ["$gcc"], + "group": "build", + "presentation": { + "close": true, + "showReuseMessage": false + } + }, + { + "label": "Clean and build (debug)", + "type": "shell", + "command": "make -C ${workspaceFolder}/firmware clean && make -C ${workspaceFolder}/firmware DEBUG=true", + "problemMatcher": ["$gcc"], + "group": "build", + "presentation": { + "close": true, + "showReuseMessage": false + } + }, + { + "label": "Debug server (bloom)", + "type": "shell", + "command": "bloom", + "presentation": { + "echo": true, + "reveal": "always", + "panel": "shared", + "focus": true, + "showReuseMessage": false, + "clear": false, + "close": true + }, + "problemMatcher": { + "owner": "custom", + "pattern": { + "regexp": "." + }, + "background": { + "activeOnStart": true, + "beginsPattern": "DebugServer ready", + "endsPattern": "DebugServer ready" + } + }, + "isBackground": true, + "dependsOn": "Clean and build (debug)" + } + ] +} \ No newline at end of file diff --git a/firmware/Makefile b/firmware/Makefile new file mode 100644 index 0000000..13df3d9 --- /dev/null +++ b/firmware/Makefile @@ -0,0 +1,104 @@ +TARGET=firmware + +# === Directories path ============================================================================= +SRC_DIR=./src +OBJ_DIR=./obj +ASM_DIR=./asm +OUT_DIR=./build +# ================================================================================================== + + + +# === Device configuration ========================================================================= +MCU=atmega8a +FUSE_HIGH=0xd9 +FUSE_LOW=0xff +# ================================================================================================== + + + +# === Toolchain ==================================================================================== +OBJCOPY=avr-objcopy +OBJDUMP=avr-objdump +SIZE=avr-size +CC=avr-gcc +# ================================================================================================== + + + +# === Programmer options =========================================================================== +# MPLAB SNAP: snap_jtag (or isp) +# USBtiny: usbtiny +AVRDUDE_DEVICE=m8a +AVRDUDE_PROGRAMMER=snap_isp +AVRDUDE_SPEED=128kHz +AVRDUDE_FLAGS=-c $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_DEVICE) -B $(AVRDUDE_SPEED) +# ================================================================================================== + + + +# === Compiler options ============================================================================= +CC_FLAGS=-Wall -Wextra +ifeq ($(DEBUG), true) +CC_FLAGS+=-ggdb -Og +CC_FLAGS+=-Wl,-Map=$(OUT_DIR)/$(TARGET).map +CC_FLAGS+=-DDEBUG_BUILD=TRUE +else +CC_FLAGS+=-Os +endif +CC_FLAGS+=-mmcu=$(MCU) +CC_FLAGS+=-std=c11 +# ================================================================================================== + +OBJS=$(subst $(SRC_DIR),$(OBJ_DIR),$(patsubst %.c,%.o,$(wildcard $(SRC_DIR)/*.c))) +ASMS=$(subst $(SRC_DIR),$(ASM_DIR),$(patsubst %.c,%.S,$(wildcard $(SRC_DIR)/*.c))) + +.PHONY: all asms hex clean size prog_flash prog_test prog_read_eep prog_read_fuses prog_flash_fuses + +all: hex size +hex: $(OUT_DIR)/$(TARGET).hex +asms: $(ASMS) +prog_flash: + avrdude $(AVRDUDE_FLAGS) -V -U flash:w:"$(OUT_DIR)/$(TARGET).hex":i +prog_test: + avrdude $(AVRDUDE_FLAGS) +prog_read_eep: + avrdude $(AVRDUDE_FLAGS) -U eeprom:r:"$(OUT_DIR)/eeprom.hex":i +prog_read_fuses: + avrdude $(AVRDUDE_FLAGS) -U hfuse:r:"$(OUT_DIR)/h_fuse.hex":h -U lfuse:r:"$(OUT_DIR)/l_fuse.hex":h +prog_flash_fuses: + avrdude $(AVRDUDE_FLAGS) -U hfuse:w:$(FUSE_HIGH):m -U lfuse:w:$(FUSE_LOW):m + +$(OUT_DIR)/$(TARGET).hex: $(OUT_DIR)/$(TARGET).elf $(OUT_DIR)/$(TARGET).S + $(OBJCOPY) -R .eeprom -R .fuse -R .lock -R .signature -O ihex $< $@ + +$(OUT_DIR)/$(TARGET).elf: $(OBJS) | $(OUT_DIR) + $(CC) $(CC_FLAGS) $^ -o $@ + +$(OUT_DIR)/$(TARGET).S: $(OBJS) | $(OUT_DIR) + $(OBJDUMP) -D $(OUT_DIR)/$(TARGET).elf > $@ + +## Compile to object files +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(SRC_DIR)/%.h | $(OBJ_DIR) + $(CC) $(CC_FLAGS) -c $(SRC_DIR)/$(patsubst %.o,%.c, $(notdir $@)) -o $@ + +## Compile to assembler files (optional) +$(ASM_DIR)/%.S: $(SRC_DIR)/%.c $(SRC_DIR)/%.h | $(ASM_DIR) + $(CC) -S -fverbose-asm $(CC_FLAGS) -c $(SRC_DIR)/$(patsubst %.S,%.c, $(notdir $@)) -o $@ + +$(OUT_DIR): + mkdir $@ + +$(OBJ_DIR): + mkdir $@ + +$(ASM_DIR): + mkdir $@ + +clean: + rm -rf $(OBJ_DIR) + rm -rf $(OUT_DIR) + rm -rf $(ASM_DIR) + +size: $(OUT_DIR)/$(TARGET).elf + $(SIZE) --mcu=$(MCU) --format=avr $< \ No newline at end of file diff --git a/firmware/build/firmware.S b/firmware/build/firmware.S new file mode 100644 index 0000000..b273560 --- /dev/null +++ b/firmware/build/firmware.S @@ -0,0 +1,3403 @@ + +./build/firmware.elf: file format elf32-avr + + +Disassembly of section .text: + +00000000 <__vectors>: + 0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end> + 2: 2c c0 rjmp .+88 ; 0x5c <__bad_interrupt> + 4: 2b c0 rjmp .+86 ; 0x5c <__bad_interrupt> + 6: 2a c0 rjmp .+84 ; 0x5c <__bad_interrupt> + 8: 29 c0 rjmp .+82 ; 0x5c <__bad_interrupt> + a: 28 c0 rjmp .+80 ; 0x5c <__bad_interrupt> + c: 27 c0 rjmp .+78 ; 0x5c <__bad_interrupt> + e: 26 c0 rjmp .+76 ; 0x5c <__bad_interrupt> + 10: 25 c0 rjmp .+74 ; 0x5c <__bad_interrupt> + 12: 24 c0 rjmp .+72 ; 0x5c <__bad_interrupt> + 14: 23 c0 rjmp .+70 ; 0x5c <__bad_interrupt> + 16: c1 c3 rjmp .+1922 ; 0x79a <__vector_11> + 18: 21 c0 rjmp .+66 ; 0x5c <__bad_interrupt> + 1a: 20 c0 rjmp .+64 ; 0x5c <__bad_interrupt> + 1c: 1f c0 rjmp .+62 ; 0x5c <__bad_interrupt> + 1e: 1e c0 rjmp .+60 ; 0x5c <__bad_interrupt> + 20: 1d c0 rjmp .+58 ; 0x5c <__bad_interrupt> + 22: 1c c0 rjmp .+56 ; 0x5c <__bad_interrupt> + 24: 1b c0 rjmp .+54 ; 0x5c <__bad_interrupt> + +00000026 <__ctors_end>: + 26: 11 24 eor r1, r1 + 28: 1f be out 0x3f, r1 ; 63 + 2a: cf e5 ldi r28, 0x5F ; 95 + 2c: d4 e0 ldi r29, 0x04 ; 4 + 2e: de bf out 0x3e, r29 ; 62 + 30: cd bf out 0x3d, r28 ; 61 + +00000032 <__do_copy_data>: + 32: 10 e0 ldi r17, 0x00 ; 0 + 34: a0 e6 ldi r26, 0x60 ; 96 + 36: b0 e0 ldi r27, 0x00 ; 0 + 38: e4 ef ldi r30, 0xF4 ; 244 + 3a: fd e0 ldi r31, 0x0D ; 13 + 3c: 02 c0 rjmp .+4 ; 0x42 <__SREG__+0x3> + 3e: 05 90 lpm r0, Z+ + 40: 0d 92 st X+, r0 + 42: a4 3f cpi r26, 0xF4 ; 244 + 44: b1 07 cpc r27, r17 + 46: d9 f7 brne .-10 ; 0x3e <__SP_H__> + +00000048 <__do_clear_bss>: + 48: 21 e0 ldi r18, 0x01 ; 1 + 4a: a4 ef ldi r26, 0xF4 ; 244 + 4c: b0 e0 ldi r27, 0x00 ; 0 + 4e: 01 c0 rjmp .+2 ; 0x52 <.do_clear_bss_start> + +00000050 <.do_clear_bss_loop>: + 50: 1d 92 st X+, r1 + +00000052 <.do_clear_bss_start>: + 52: a0 34 cpi r26, 0x40 ; 64 + 54: b2 07 cpc r27, r18 + 56: e1 f7 brne .-8 ; 0x50 <.do_clear_bss_loop> + 58: 8e d4 rcall .+2332 ; 0x976
+ 5a: ca c6 rjmp .+3476 ; 0xdf0 <_exit> + +0000005c <__bad_interrupt>: + 5c: d1 cf rjmp .-94 ; 0x0 <__vectors> + +0000005e : + 5e: 21 b3 in r18, 0x11 ; 17 + 60: 24 2b or r18, r20 + 62: 21 bb out 0x11, r18 ; 17 + 64: 32 b3 in r19, 0x12 ; 18 + 66: 24 2f mov r18, r20 + 68: 20 95 com r18 + 6a: 23 23 and r18, r19 + 6c: 32 b3 in r19, 0x12 ; 18 + 6e: 43 2b or r20, r19 + 70: 3f b7 in r19, 0x3f ; 63 + 72: f8 94 cli + 74: fc 01 movw r30, r24 + 76: 68 0f add r22, r24 + 78: 79 1f adc r23, r25 + 7a: a2 e3 ldi r26, 0x32 ; 50 + 7c: b0 e0 ldi r27, 0x00 ; 0 + 7e: e6 17 cp r30, r22 + 80: f7 07 cpc r31, r23 + 82: 19 f4 brne .+6 ; 0x8a + 84: 3f bf out 0x3f, r19 ; 63 + 86: 78 94 sei + 88: 08 95 ret + 8a: 81 91 ld r24, Z+ + 8c: 98 e0 ldi r25, 0x08 ; 8 + 8e: e8 94 clt + +00000090 : + 90: 4c 93 st X, r20 + 92: 00 00 nop + 94: 87 ff sbrs r24, 7 + 96: 2c 93 st X, r18 + 98: 88 0f add r24, r24 + 9a: 07 f4 brid .+0 ; 0x9c + 9c: 07 f4 brid .+0 ; 0x9e + 9e: 08 f4 brcc .+2 ; 0xa2 + a0: 2c 93 st X, r18 + +000000a2 : + a2: 9a 95 dec r25 + a4: a9 f7 brne .-22 ; 0x90 + a6: eb cf rjmp .-42 ; 0x7e + +000000a8 : + a8: 9b 01 movw r18, r22 + aa: 22 0f add r18, r18 + ac: 33 1f adc r19, r19 + ae: 62 0f add r22, r18 + b0: 73 1f adc r23, r19 + b2: d5 df rcall .-86 ; 0x5e + b4: 83 e8 ldi r24, 0x83 ; 131 + b6: 93 e0 ldi r25, 0x03 ; 3 + b8: 01 97 sbiw r24, 0x01 ; 1 + ba: f1 f7 brne .-4 ; 0xb8 + bc: 00 c0 rjmp .+0 ; 0xbe + be: 00 00 nop + c0: 08 95 ret + +000000c2 : + c2: 40 e8 ldi r20, 0x80 ; 128 + c4: f1 cf rjmp .-30 ; 0xa8 + +000000c6 : + c6: 66 0f add r22, r22 + c8: 77 1f adc r23, r23 + ca: 66 0f add r22, r22 + cc: 77 1f adc r23, r23 + ce: 40 e8 ldi r20, 0x80 ; 128 + d0: c6 df rcall .-116 ; 0x5e + d2: 83 e8 ldi r24, 0x83 ; 131 + d4: 93 e0 ldi r25, 0x03 ; 3 + d6: 01 97 sbiw r24, 0x01 ; 1 + d8: f1 f7 brne .-4 ; 0xd6 + da: 00 c0 rjmp .+0 ; 0xdc + dc: 00 00 nop + de: 08 95 ret + +000000e0 : + e0: 40 e8 ldi r20, 0x80 ; 128 + e2: bd cf rjmp .-134 ; 0x5e + +000000e4 : + e4: 80 91 f4 00 lds r24, 0x00F4 ; 0x8000f4 <__data_end> + e8: 81 11 cpse r24, r1 + ea: 10 92 f4 00 sts 0x00F4, r1 ; 0x8000f4 <__data_end> + ee: 08 95 ret + +000000f0 : + f0: 28 2f mov r18, r24 + f2: 80 91 11 01 lds r24, 0x0111 ; 0x800111 + f6: 28 9f mul r18, r24 + f8: c0 01 movw r24, r0 + fa: 11 24 eor r1, r1 + fc: ef ef ldi r30, 0xFF ; 255 + fe: f0 e0 ldi r31, 0x00 ; 0 + 100: bf 01 movw r22, r30 + 102: 69 d4 rcall .+2258 ; 0x9d6 <__udivmodhi4> + 104: 46 2f mov r20, r22 + 106: 80 91 10 01 lds r24, 0x0110 ; 0x800110 + 10a: 28 9f mul r18, r24 + 10c: c0 01 movw r24, r0 + 10e: 11 24 eor r1, r1 + 110: bf 01 movw r22, r30 + 112: 61 d4 rcall .+2242 ; 0x9d6 <__udivmodhi4> + 114: 36 2f mov r19, r22 + 116: 80 91 12 01 lds r24, 0x0112 ; 0x800112 + 11a: 28 9f mul r18, r24 + 11c: c0 01 movw r24, r0 + 11e: 11 24 eor r1, r1 + 120: bf 01 movw r22, r30 + 122: 59 d4 rcall .+2226 ; 0x9d6 <__udivmodhi4> + 124: 86 2f mov r24, r22 + 126: e5 ef ldi r30, 0xF5 ; 245 + 128: f0 e0 ldi r31, 0x00 ; 0 + 12a: 41 83 std Z+1, r20 ; 0x01 + 12c: 30 83 st Z, r19 + 12e: 82 83 std Z+2, r24 ; 0x02 + 130: 33 96 adiw r30, 0x03 ; 3 + 132: 91 e0 ldi r25, 0x01 ; 1 + 134: e0 31 cpi r30, 0x10 ; 16 + 136: f9 07 cpc r31, r25 + 138: c1 f7 brne .-16 ; 0x12a + 13a: 69 e0 ldi r22, 0x09 ; 9 + 13c: 70 e0 ldi r23, 0x00 ; 0 + 13e: 85 ef ldi r24, 0xF5 ; 245 + 140: 90 e0 ldi r25, 0x00 ; 0 + 142: bf cf rjmp .-130 ; 0xc2 + +00000144 : + 144: e5 ef ldi r30, 0xF5 ; 245 + 146: f0 e0 ldi r31, 0x00 ; 0 + 148: 81 83 std Z+1, r24 ; 0x01 + 14a: 60 83 st Z, r22 + 14c: 42 83 std Z+2, r20 ; 0x02 + 14e: 33 96 adiw r30, 0x03 ; 3 + 150: 91 e0 ldi r25, 0x01 ; 1 + 152: e0 31 cpi r30, 0x10 ; 16 + 154: f9 07 cpc r31, r25 + 156: c1 f7 brne .-16 ; 0x148 + 158: 69 e0 ldi r22, 0x09 ; 9 + 15a: 70 e0 ldi r23, 0x00 ; 0 + 15c: 85 ef ldi r24, 0xF5 ; 245 + 15e: 90 e0 ldi r25, 0x00 ; 0 + 160: b0 cf rjmp .-160 ; 0xc2 + +00000162 : + 162: cf 93 push r28 + 164: df 93 push r29 + 166: c5 ef ldi r28, 0xF5 ; 245 + 168: d0 e0 ldi r29, 0x00 ; 0 + 16a: 69 81 ldd r22, Y+1 ; 0x01 + 16c: 83 e0 ldi r24, 0x03 ; 3 + 16e: 90 e0 ldi r25, 0x00 ; 0 + 170: b0 d5 rcall .+2912 ; 0xcd2 + 172: 68 81 ld r22, Y + 174: 82 e0 ldi r24, 0x02 ; 2 + 176: 90 e0 ldi r25, 0x00 ; 0 + 178: ac d5 rcall .+2904 ; 0xcd2 + 17a: 6a 81 ldd r22, Y+2 ; 0x02 + 17c: 81 e0 ldi r24, 0x01 ; 1 + 17e: 90 e0 ldi r25, 0x00 ; 0 + 180: a8 d5 rcall .+2896 ; 0xcd2 + 182: 89 81 ldd r24, Y+1 ; 0x01 + 184: 8c 8f std Y+28, r24 ; 0x1c + 186: 88 81 ld r24, Y + 188: 8b 8f std Y+27, r24 ; 0x1b + 18a: 8a 81 ldd r24, Y+2 ; 0x02 + 18c: 8d 8f std Y+29, r24 ; 0x1d + 18e: df 91 pop r29 + 190: cf 91 pop r28 + 192: 08 95 ret + +00000194 : + 194: cf 93 push r28 + 196: df 93 push r29 + 198: 00 d0 rcall .+0 ; 0x19a + 19a: cd b7 in r28, 0x3d ; 61 + 19c: de b7 in r29, 0x3e ; 62 + 19e: 9a 83 std Y+2, r25 ; 0x02 + 1a0: 89 83 std Y+1, r24 ; 0x01 + 1a2: 89 81 ldd r24, Y+1 ; 0x01 + 1a4: 9a 81 ldd r25, Y+2 ; 0x02 + 1a6: 90 93 14 01 sts 0x0114, r25 ; 0x800114 + 1aa: 80 93 13 01 sts 0x0113, r24 ; 0x800113 + 1ae: 69 81 ldd r22, Y+1 ; 0x01 + 1b0: 7a 81 ldd r23, Y+2 ; 0x02 + 1b2: 80 e0 ldi r24, 0x00 ; 0 + 1b4: 90 e0 ldi r25, 0x00 ; 0 + 1b6: 0f 90 pop r0 + 1b8: 0f 90 pop r0 + 1ba: df 91 pop r29 + 1bc: cf 91 pop r28 + 1be: 89 c5 rjmp .+2834 ; 0xcd2 + +000001c0 : + 1c0: cf 92 push r12 + 1c2: df 92 push r13 + 1c4: ef 92 push r14 + 1c6: ff 92 push r15 + 1c8: 0f 93 push r16 + 1ca: 1f 93 push r17 + 1cc: cf 93 push r28 + 1ce: df 93 push r29 + 1d0: 00 d0 rcall .+0 ; 0x1d2 + 1d2: 00 d0 rcall .+0 ; 0x1d4 + 1d4: 00 d0 rcall .+0 ; 0x1d6 + 1d6: 1f 92 push r1 + 1d8: cd b7 in r28, 0x3d ; 61 + 1da: de b7 in r29, 0x3e ; 62 + 1dc: 19 82 std Y+1, r1 ; 0x01 + 1de: 1a 82 std Y+2, r1 ; 0x02 + 1e0: 1b 82 std Y+3, r1 ; 0x03 + 1e2: 1f 82 std Y+7, r1 ; 0x07 + 1e4: 1e 82 std Y+6, r1 ; 0x06 + 1e6: 6f e6 ldi r22, 0x6F ; 111 + 1e8: 70 e0 ldi r23, 0x00 ; 0 + 1ea: 0a d5 rcall .+2580 ; 0xc00 + 1ec: 8c 01 movw r16, r24 + 1ee: ce 01 movw r24, r28 + 1f0: 01 96 adiw r24, 0x01 ; 1 + 1f2: 6c 01 movw r12, r24 + 1f4: f1 2c mov r15, r1 + 1f6: ee 24 eor r14, r14 + 1f8: ea 94 dec r14 + 1fa: 01 15 cp r16, r1 + 1fc: 11 05 cpc r17, r1 + 1fe: b9 f5 brne .+110 ; 0x26e <__EEPROM_REGION_LENGTH__+0x6e> + 200: 4b 81 ldd r20, Y+3 ; 0x03 + 202: 6a 81 ldd r22, Y+2 ; 0x02 + 204: 89 81 ldd r24, Y+1 ; 0x01 + 206: 9e df rcall .-196 ; 0x144 + 208: ac df rcall .-168 ; 0x162 + 20a: 8e 2d mov r24, r14 + 20c: 71 df rcall .-286 ; 0xf0 + 20e: 8e 81 ldd r24, Y+6 ; 0x06 + 210: 9f 81 ldd r25, Y+7 ; 0x07 + 212: c0 df rcall .-128 ; 0x194 + 214: 88 ea ldi r24, 0xA8 ; 168 + 216: 90 e0 ldi r25, 0x00 ; 0 + 218: 2e d3 rcall .+1628 ; 0x876 + 21a: 80 91 f6 00 lds r24, 0x00F6 ; 0x8000f6 + 21e: 90 e0 ldi r25, 0x00 ; 0 + 220: 35 d3 rcall .+1642 ; 0x88c + 222: 8c e2 ldi r24, 0x2C ; 44 + 224: 24 d3 rcall .+1608 ; 0x86e + 226: 80 91 f5 00 lds r24, 0x00F5 ; 0x8000f5 + 22a: 90 e0 ldi r25, 0x00 ; 0 + 22c: 2f d3 rcall .+1630 ; 0x88c + 22e: 8c e2 ldi r24, 0x2C ; 44 + 230: 1e d3 rcall .+1596 ; 0x86e + 232: 80 91 f7 00 lds r24, 0x00F7 ; 0x8000f7 + 236: 90 e0 ldi r25, 0x00 ; 0 + 238: 29 d3 rcall .+1618 ; 0x88c + 23a: 85 ea ldi r24, 0xA5 ; 165 + 23c: 90 e0 ldi r25, 0x00 ; 0 + 23e: 1b d3 rcall .+1590 ; 0x876 + 240: 86 eb ldi r24, 0xB6 ; 182 + 242: 90 e0 ldi r25, 0x00 ; 0 + 244: 18 d3 rcall .+1584 ; 0x876 + 246: 8e 2d mov r24, r14 + 248: 90 e0 ldi r25, 0x00 ; 0 + 24a: 20 d3 rcall .+1600 ; 0x88c + 24c: 85 ea ldi r24, 0xA5 ; 165 + 24e: 90 e0 ldi r25, 0x00 ; 0 + 250: 12 d3 rcall .+1572 ; 0x876 + 252: 89 ec ldi r24, 0xC9 ; 201 + 254: 90 e0 ldi r25, 0x00 ; 0 + 256: 0f d3 rcall .+1566 ; 0x876 + 258: 8e 81 ldd r24, Y+6 ; 0x06 + 25a: 9f 81 ldd r25, Y+7 ; 0x07 + 25c: 17 d3 rcall .+1582 ; 0x88c + 25e: 8d e0 ldi r24, 0x0D ; 13 + 260: 06 d3 rcall .+1548 ; 0x86e + 262: 8a e0 ldi r24, 0x0A ; 10 + 264: 04 d3 rcall .+1544 ; 0x86e + 266: 81 e0 ldi r24, 0x01 ; 1 + 268: 80 93 f4 00 sts 0x00F4, r24 ; 0x8000f4 <__data_end> + 26c: 06 c0 rjmp .+12 ; 0x27a <__EEPROM_REGION_LENGTH__+0x7a> + 26e: 95 e0 ldi r25, 0x05 ; 5 + 270: f9 12 cpse r15, r25 + 272: 12 c0 rjmp .+36 ; 0x298 <__EEPROM_REGION_LENGTH__+0x98> + 274: 81 e7 ldi r24, 0x71 ; 113 + 276: 90 e0 ldi r25, 0x00 ; 0 + 278: fe d2 rcall .+1532 ; 0x876 + 27a: 27 96 adiw r28, 0x07 ; 7 + 27c: 0f b6 in r0, 0x3f ; 63 + 27e: f8 94 cli + 280: de bf out 0x3e, r29 ; 62 + 282: 0f be out 0x3f, r0 ; 63 + 284: cd bf out 0x3d, r28 ; 61 + 286: df 91 pop r29 + 288: cf 91 pop r28 + 28a: 1f 91 pop r17 + 28c: 0f 91 pop r16 + 28e: ff 90 pop r15 + 290: ef 90 pop r14 + 292: df 90 pop r13 + 294: cf 90 pop r12 + 296: 08 95 ret + 298: e2 e0 ldi r30, 0x02 ; 2 + 29a: ef 15 cp r30, r15 + 29c: a8 f0 brcs .+42 ; 0x2c8 <__EEPROM_REGION_LENGTH__+0xc8> + 29e: 4a e0 ldi r20, 0x0A ; 10 + 2a0: 50 e0 ldi r21, 0x00 ; 0 + 2a2: be 01 movw r22, r28 + 2a4: 6c 5f subi r22, 0xFC ; 252 + 2a6: 7f 4f sbci r23, 0xFF ; 255 + 2a8: c8 01 movw r24, r16 + 2aa: bc d3 rcall .+1912 ; 0xa24 + 2ac: f6 01 movw r30, r12 + 2ae: 60 83 st Z, r22 + 2b0: 8c 81 ldd r24, Y+4 ; 0x04 + 2b2: 9d 81 ldd r25, Y+5 ; 0x05 + 2b4: 80 17 cp r24, r16 + 2b6: 91 07 cpc r25, r17 + 2b8: 01 f5 brne .+64 ; 0x2fa <__EEPROM_REGION_LENGTH__+0xfa> + 2ba: f6 01 movw r30, r12 + 2bc: 80 81 ld r24, Z + 2be: 81 11 cpse r24, r1 + 2c0: 1c c0 rjmp .+56 ; 0x2fa <__EEPROM_REGION_LENGTH__+0xfa> + 2c2: 80 e9 ldi r24, 0x90 ; 144 + 2c4: 90 e0 ldi r25, 0x00 ; 0 + 2c6: d8 cf rjmp .-80 ; 0x278 <__EEPROM_REGION_LENGTH__+0x78> + 2c8: f3 e0 ldi r31, 0x03 ; 3 + 2ca: ff 12 cpse r15, r31 + 2cc: 09 c0 rjmp .+18 ; 0x2e0 <__EEPROM_REGION_LENGTH__+0xe0> + 2ce: 4a e0 ldi r20, 0x0A ; 10 + 2d0: 50 e0 ldi r21, 0x00 ; 0 + 2d2: be 01 movw r22, r28 + 2d4: 6c 5f subi r22, 0xFC ; 252 + 2d6: 7f 4f sbci r23, 0xFF ; 255 + 2d8: c8 01 movw r24, r16 + 2da: a4 d3 rcall .+1864 ; 0xa24 + 2dc: e6 2e mov r14, r22 + 2de: e8 cf rjmp .-48 ; 0x2b0 <__EEPROM_REGION_LENGTH__+0xb0> + 2e0: 84 e0 ldi r24, 0x04 ; 4 + 2e2: f8 12 cpse r15, r24 + 2e4: e5 cf rjmp .-54 ; 0x2b0 <__EEPROM_REGION_LENGTH__+0xb0> + 2e6: 4a e0 ldi r20, 0x0A ; 10 + 2e8: 50 e0 ldi r21, 0x00 ; 0 + 2ea: be 01 movw r22, r28 + 2ec: 6c 5f subi r22, 0xFC ; 252 + 2ee: 7f 4f sbci r23, 0xFF ; 255 + 2f0: c8 01 movw r24, r16 + 2f2: 98 d3 rcall .+1840 ; 0xa24 + 2f4: 7f 83 std Y+7, r23 ; 0x07 + 2f6: 6e 83 std Y+6, r22 ; 0x06 + 2f8: db cf rjmp .-74 ; 0x2b0 <__EEPROM_REGION_LENGTH__+0xb0> + 2fa: f3 94 inc r15 + 2fc: 6f e6 ldi r22, 0x6F ; 111 + 2fe: 70 e0 ldi r23, 0x00 ; 0 + 300: 90 e0 ldi r25, 0x00 ; 0 + 302: 80 e0 ldi r24, 0x00 ; 0 + 304: 7d d4 rcall .+2298 ; 0xc00 + 306: 8c 01 movw r16, r24 + 308: ff ef ldi r31, 0xFF ; 255 + 30a: cf 1a sub r12, r31 + 30c: df 0a sbc r13, r31 + 30e: 75 cf rjmp .-278 ; 0x1fa + +00000310 : + 310: cf 93 push r28 + 312: df 93 push r29 + 314: e1 99 sbic 0x1c, 1 ; 28 + 316: fe cf rjmp .-4 ; 0x314 + 318: 80 e0 ldi r24, 0x00 ; 0 + 31a: 90 e0 ldi r25, 0x00 ; 0 + 31c: d2 d4 rcall .+2468 ; 0xcc2 + 31e: 90 e0 ldi r25, 0x00 ; 0 + 320: 90 93 14 01 sts 0x0114, r25 ; 0x800114 + 324: 80 93 13 01 sts 0x0113, r24 ; 0x800113 + 328: c5 ef ldi r28, 0xF5 ; 245 + 32a: d0 e0 ldi r29, 0x00 ; 0 + 32c: 83 e0 ldi r24, 0x03 ; 3 + 32e: 90 e0 ldi r25, 0x00 ; 0 + 330: c8 d4 rcall .+2448 ; 0xcc2 + 332: 89 83 std Y+1, r24 ; 0x01 + 334: 82 e0 ldi r24, 0x02 ; 2 + 336: 90 e0 ldi r25, 0x00 ; 0 + 338: c4 d4 rcall .+2440 ; 0xcc2 + 33a: 88 83 st Y, r24 + 33c: 81 e0 ldi r24, 0x01 ; 1 + 33e: 90 e0 ldi r25, 0x00 ; 0 + 340: c0 d4 rcall .+2432 ; 0xcc2 + 342: 8a 83 std Y+2, r24 ; 0x02 + 344: 23 96 adiw r28, 0x03 ; 3 + 346: 81 e0 ldi r24, 0x01 ; 1 + 348: c0 31 cpi r28, 0x10 ; 16 + 34a: d8 07 cpc r29, r24 + 34c: 79 f7 brne .-34 ; 0x32c + 34e: 80 91 f6 00 lds r24, 0x00F6 ; 0x8000f6 + 352: 80 93 11 01 sts 0x0111, r24 ; 0x800111 + 356: 60 91 f5 00 lds r22, 0x00F5 ; 0x8000f5 + 35a: 60 93 10 01 sts 0x0110, r22 ; 0x800110 + 35e: 40 91 f7 00 lds r20, 0x00F7 ; 0x8000f7 + 362: 40 93 12 01 sts 0x0112, r20 ; 0x800112 + 366: ee de rcall .-548 ; 0x144 + 368: 80 91 13 01 lds r24, 0x0113 ; 0x800113 + 36c: 90 91 14 01 lds r25, 0x0114 ; 0x800114 + 370: 11 df rcall .-478 ; 0x194 + 372: 8c ed ldi r24, 0xDC ; 220 + 374: 90 e0 ldi r25, 0x00 ; 0 + 376: 7f d2 rcall .+1278 ; 0x876 + 378: 80 91 f6 00 lds r24, 0x00F6 ; 0x8000f6 + 37c: 90 e0 ldi r25, 0x00 ; 0 + 37e: 86 d2 rcall .+1292 ; 0x88c + 380: 80 ef ldi r24, 0xF0 ; 240 + 382: 90 e0 ldi r25, 0x00 ; 0 + 384: 78 d2 rcall .+1264 ; 0x876 + 386: 80 91 f5 00 lds r24, 0x00F5 ; 0x8000f5 + 38a: 90 e0 ldi r25, 0x00 ; 0 + 38c: 7f d2 rcall .+1278 ; 0x88c + 38e: 80 ef ldi r24, 0xF0 ; 240 + 390: 90 e0 ldi r25, 0x00 ; 0 + 392: 71 d2 rcall .+1250 ; 0x876 + 394: 80 91 f7 00 lds r24, 0x00F7 ; 0x8000f7 + 398: 90 e0 ldi r25, 0x00 ; 0 + 39a: 78 d2 rcall .+1264 ; 0x88c + 39c: 80 ef ldi r24, 0xF0 ; 240 + 39e: 90 e0 ldi r25, 0x00 ; 0 + 3a0: 6a d2 rcall .+1236 ; 0x876 + 3a2: 80 91 13 01 lds r24, 0x0113 ; 0x800113 + 3a6: 90 91 14 01 lds r25, 0x0114 ; 0x800114 + 3aa: 70 d2 rcall .+1248 ; 0x88c + 3ac: 85 ea ldi r24, 0xA5 ; 165 + 3ae: 90 e0 ldi r25, 0x00 ; 0 + 3b0: df 91 pop r29 + 3b2: cf 91 pop r28 + 3b4: 60 c2 rjmp .+1216 ; 0x876 + +000003b6 : + 3b6: cf 93 push r28 + 3b8: c8 ec ldi r28, 0xC8 ; 200 + 3ba: 94 de rcall .-728 ; 0xe4 + 3bc: 81 11 cpse r24, r1 + 3be: 30 c0 rjmp .+96 ; 0x420 <__DATA_REGION_LENGTH__+0x20> + 3c0: 8c 2f mov r24, r28 + 3c2: 96 de rcall .-724 ; 0xf0 + 3c4: 8f e5 ldi r24, 0x5F ; 95 + 3c6: 9a ee ldi r25, 0xEA ; 234 + 3c8: 01 97 sbiw r24, 0x01 ; 1 + 3ca: f1 f7 brne .-4 ; 0x3c8 + 3cc: 00 c0 rjmp .+0 ; 0x3ce + 3ce: 00 00 nop + 3d0: c1 50 subi r28, 0x01 ; 1 + 3d2: 98 f7 brcc .-26 ; 0x3ba + 3d4: c2 e3 ldi r28, 0x32 ; 50 + 3d6: 86 de rcall .-756 ; 0xe4 + 3d8: 81 11 cpse r24, r1 + 3da: 22 c0 rjmp .+68 ; 0x420 <__DATA_REGION_LENGTH__+0x20> + 3dc: 8f e2 ldi r24, 0x2F ; 47 + 3de: 95 e7 ldi r25, 0x75 ; 117 + 3e0: 01 97 sbiw r24, 0x01 ; 1 + 3e2: f1 f7 brne .-4 ; 0x3e0 + 3e4: 00 c0 rjmp .+0 ; 0x3e6 + 3e6: 00 00 nop + 3e8: c1 50 subi r28, 0x01 ; 1 + 3ea: a9 f7 brne .-22 ; 0x3d6 + 3ec: 7b de rcall .-778 ; 0xe4 + 3ee: 81 11 cpse r24, r1 + 3f0: 17 c0 rjmp .+46 ; 0x420 <__DATA_REGION_LENGTH__+0x20> + 3f2: 8c 2f mov r24, r28 + 3f4: 7d de rcall .-774 ; 0xf0 + 3f6: 8f e5 ldi r24, 0x5F ; 95 + 3f8: 9a ee ldi r25, 0xEA ; 234 + 3fa: 01 97 sbiw r24, 0x01 ; 1 + 3fc: f1 f7 brne .-4 ; 0x3fa + 3fe: 00 c0 rjmp .+0 ; 0x400 <__DATA_REGION_LENGTH__> + 400: 00 00 nop + 402: cf 5f subi r28, 0xFF ; 255 + 404: c9 3c cpi r28, 0xC9 ; 201 + 406: 91 f7 brne .-28 ; 0x3ec + 408: c4 e6 ldi r28, 0x64 ; 100 + 40a: 6c de rcall .-808 ; 0xe4 + 40c: 81 11 cpse r24, r1 + 40e: 08 c0 rjmp .+16 ; 0x420 <__DATA_REGION_LENGTH__+0x20> + 410: 8f e2 ldi r24, 0x2F ; 47 + 412: 95 e7 ldi r25, 0x75 ; 117 + 414: 01 97 sbiw r24, 0x01 ; 1 + 416: f1 f7 brne .-4 ; 0x414 <__DATA_REGION_LENGTH__+0x14> + 418: 00 c0 rjmp .+0 ; 0x41a <__DATA_REGION_LENGTH__+0x1a> + 41a: 00 00 nop + 41c: c1 50 subi r28, 0x01 ; 1 + 41e: a9 f7 brne .-22 ; 0x40a <__DATA_REGION_LENGTH__+0xa> + 420: cf 91 pop r28 + 422: 08 95 ret + +00000424 : + 424: cf 93 push r28 + 426: 88 ec ldi r24, 0xC8 ; 200 + 428: 63 de rcall .-826 ; 0xf0 + 42a: c5 e0 ldi r28, 0x05 ; 5 + 42c: 5b de rcall .-842 ; 0xe4 + 42e: 81 11 cpse r24, r1 + 430: 32 c0 rjmp .+100 ; 0x496 <__stack+0x37> + 432: 8f e2 ldi r24, 0x2F ; 47 + 434: 95 e7 ldi r25, 0x75 ; 117 + 436: 01 97 sbiw r24, 0x01 ; 1 + 438: f1 f7 brne .-4 ; 0x436 + 43a: 00 c0 rjmp .+0 ; 0x43c + 43c: 00 00 nop + 43e: c1 50 subi r28, 0x01 ; 1 + 440: a9 f7 brne .-22 ; 0x42c + 442: c8 ec ldi r28, 0xC8 ; 200 + 444: 4f de rcall .-866 ; 0xe4 + 446: 81 11 cpse r24, r1 + 448: 26 c0 rjmp .+76 ; 0x496 <__stack+0x37> + 44a: 8c 2f mov r24, r28 + 44c: 51 de rcall .-862 ; 0xf0 + 44e: 87 eb ldi r24, 0xB7 ; 183 + 450: 9b e0 ldi r25, 0x0B ; 11 + 452: 01 97 sbiw r24, 0x01 ; 1 + 454: f1 f7 brne .-4 ; 0x452 + 456: 00 c0 rjmp .+0 ; 0x458 + 458: 00 00 nop + 45a: c1 50 subi r28, 0x01 ; 1 + 45c: 98 f7 brcc .-26 ; 0x444 + 45e: 88 ec ldi r24, 0xC8 ; 200 + 460: 47 de rcall .-882 ; 0xf0 + 462: c8 ec ldi r28, 0xC8 ; 200 + 464: 3f de rcall .-898 ; 0xe4 + 466: 81 11 cpse r24, r1 + 468: 16 c0 rjmp .+44 ; 0x496 <__stack+0x37> + 46a: 8c 2f mov r24, r28 + 46c: 41 de rcall .-894 ; 0xf0 + 46e: 87 e0 ldi r24, 0x07 ; 7 + 470: 92 e5 ldi r25, 0x52 ; 82 + 472: 01 97 sbiw r24, 0x01 ; 1 + 474: f1 f7 brne .-4 ; 0x472 <__stack+0x13> + 476: 00 c0 rjmp .+0 ; 0x478 <__stack+0x19> + 478: 00 00 nop + 47a: c1 50 subi r28, 0x01 ; 1 + 47c: 98 f7 brcc .-26 ; 0x464 <__stack+0x5> + 47e: ce e1 ldi r28, 0x1E ; 30 + 480: 31 de rcall .-926 ; 0xe4 + 482: 81 11 cpse r24, r1 + 484: 08 c0 rjmp .+16 ; 0x496 <__stack+0x37> + 486: 87 ec ldi r24, 0xC7 ; 199 + 488: 9f ea ldi r25, 0xAF ; 175 + 48a: 01 97 sbiw r24, 0x01 ; 1 + 48c: f1 f7 brne .-4 ; 0x48a <__stack+0x2b> + 48e: 00 c0 rjmp .+0 ; 0x490 <__stack+0x31> + 490: 00 00 nop + 492: c1 50 subi r28, 0x01 ; 1 + 494: a9 f7 brne .-22 ; 0x480 <__stack+0x21> + 496: cf 91 pop r28 + 498: 08 95 ret + +0000049a : + 49a: 2f 92 push r2 + 49c: 3f 92 push r3 + 49e: 4f 92 push r4 + 4a0: 5f 92 push r5 + 4a2: 6f 92 push r6 + 4a4: 7f 92 push r7 + 4a6: 8f 92 push r8 + 4a8: 9f 92 push r9 + 4aa: af 92 push r10 + 4ac: bf 92 push r11 + 4ae: cf 92 push r12 + 4b0: df 92 push r13 + 4b2: ef 92 push r14 + 4b4: ff 92 push r15 + 4b6: 0f 93 push r16 + 4b8: 1f 93 push r17 + 4ba: cf 93 push r28 + 4bc: df 93 push r29 + 4be: 00 d0 rcall .+0 ; 0x4c0 + 4c0: 1f 92 push r1 + 4c2: cd b7 in r28, 0x3d ; 61 + 4c4: de b7 in r29, 0x3e ; 62 + 4c6: 80 91 17 01 lds r24, 0x0117 ; 0x800117 + 4ca: 90 e0 ldi r25, 0x00 ; 0 + 4cc: fc 01 movw r30, r24 + 4ce: ee 0f add r30, r30 + 4d0: ff 1f adc r31, r31 + 4d2: e8 0f add r30, r24 + 4d4: f9 1f adc r31, r25 + 4d6: e0 5a subi r30, 0xA0 ; 160 + 4d8: ff 4f sbci r31, 0xFF ; 255 + 4da: 20 81 ld r18, Z + 4dc: 29 83 std Y+1, r18 ; 0x01 + 4de: 31 80 ldd r3, Z+1 ; 0x01 + 4e0: 22 80 ldd r2, Z+2 ; 0x02 + 4e2: 01 96 adiw r24, 0x01 ; 1 + 4e4: 65 e0 ldi r22, 0x05 ; 5 + 4e6: 70 e0 ldi r23, 0x00 ; 0 + 4e8: 8a d2 rcall .+1300 ; 0x9fe <__divmodhi4> + 4ea: 80 93 17 01 sts 0x0117, r24 ; 0x800117 + 4ee: fc 01 movw r30, r24 + 4f0: ee 0f add r30, r30 + 4f2: ff 1f adc r31, r31 + 4f4: e8 0f add r30, r24 + 4f6: f9 1f adc r31, r25 + 4f8: e0 5a subi r30, 0xA0 ; 160 + 4fa: ff 4f sbci r31, 0xFF ; 255 + 4fc: 80 80 ld r8, Z + 4fe: 82 1a sub r8, r18 + 500: 99 08 sbc r9, r9 + 502: 61 80 ldd r6, Z+1 ; 0x01 + 504: 63 18 sub r6, r3 + 506: 77 08 sbc r7, r7 + 508: 42 80 ldd r4, Z+2 ; 0x02 + 50a: 42 18 sub r4, r2 + 50c: 55 08 sbc r5, r5 + 50e: 10 e0 ldi r17, 0x00 ; 0 + 510: 00 e0 ldi r16, 0x00 ; 0 + 512: f1 2c mov r15, r1 + 514: e1 2c mov r14, r1 + 516: d1 2c mov r13, r1 + 518: c1 2c mov r12, r1 + 51a: 85 e6 ldi r24, 0x65 ; 101 + 51c: 90 e0 ldi r25, 0x00 ; 0 + 51e: 9b 83 std Y+3, r25 ; 0x03 + 520: 8a 83 std Y+2, r24 ; 0x02 + 522: 44 e6 ldi r20, 0x64 ; 100 + 524: a4 2e mov r10, r20 + 526: b1 2c mov r11, r1 + 528: dd dd rcall .-1094 ; 0xe4 + 52a: 81 11 cpse r24, r1 + 52c: 35 c0 rjmp .+106 ; 0x598 + 52e: c8 01 movw r24, r16 + 530: b5 01 movw r22, r10 + 532: 51 d2 rcall .+1186 ; 0x9d6 <__udivmodhi4> + 534: 42 2d mov r20, r2 + 536: 46 0f add r20, r22 + 538: c7 01 movw r24, r14 + 53a: b5 01 movw r22, r10 + 53c: 4c d2 rcall .+1176 ; 0x9d6 <__udivmodhi4> + 53e: 23 2d mov r18, r3 + 540: 26 0f add r18, r22 + 542: c6 01 movw r24, r12 + 544: b5 01 movw r22, r10 + 546: 47 d2 rcall .+1166 ; 0x9d6 <__udivmodhi4> + 548: 86 2f mov r24, r22 + 54a: 62 2f mov r22, r18 + 54c: 99 81 ldd r25, Y+1 ; 0x01 + 54e: 89 0f add r24, r25 + 550: f9 dd rcall .-1038 ; 0x144 + 552: 8f e5 ldi r24, 0x5F ; 95 + 554: 9a ee ldi r25, 0xEA ; 234 + 556: 01 97 sbiw r24, 0x01 ; 1 + 558: f1 f7 brne .-4 ; 0x556 + 55a: 00 c0 rjmp .+0 ; 0x55c + 55c: 00 00 nop + 55e: 8a 81 ldd r24, Y+2 ; 0x02 + 560: 9b 81 ldd r25, Y+3 ; 0x03 + 562: 01 97 sbiw r24, 0x01 ; 1 + 564: 9b 83 std Y+3, r25 ; 0x03 + 566: 8a 83 std Y+2, r24 ; 0x02 + 568: c8 0c add r12, r8 + 56a: d9 1c adc r13, r9 + 56c: e6 0c add r14, r6 + 56e: f7 1c adc r15, r7 + 570: 04 0d add r16, r4 + 572: 15 1d adc r17, r5 + 574: 89 2b or r24, r25 + 576: c1 f6 brne .-80 ; 0x528 + 578: 92 e3 ldi r25, 0x32 ; 50 + 57a: 99 83 std Y+1, r25 ; 0x01 + 57c: b3 dd rcall .-1178 ; 0xe4 + 57e: 81 11 cpse r24, r1 + 580: 0b c0 rjmp .+22 ; 0x598 + 582: 8f e2 ldi r24, 0x2F ; 47 + 584: 95 e7 ldi r25, 0x75 ; 117 + 586: 01 97 sbiw r24, 0x01 ; 1 + 588: f1 f7 brne .-4 ; 0x586 + 58a: 00 c0 rjmp .+0 ; 0x58c + 58c: 00 00 nop + 58e: 99 81 ldd r25, Y+1 ; 0x01 + 590: 91 50 subi r25, 0x01 ; 1 + 592: 99 83 std Y+1, r25 ; 0x01 + 594: 91 11 cpse r25, r1 + 596: f2 cf rjmp .-28 ; 0x57c + 598: 0f 90 pop r0 + 59a: 0f 90 pop r0 + 59c: 0f 90 pop r0 + 59e: df 91 pop r29 + 5a0: cf 91 pop r28 + 5a2: 1f 91 pop r17 + 5a4: 0f 91 pop r16 + 5a6: ff 90 pop r15 + 5a8: ef 90 pop r14 + 5aa: df 90 pop r13 + 5ac: cf 90 pop r12 + 5ae: bf 90 pop r11 + 5b0: af 90 pop r10 + 5b2: 9f 90 pop r9 + 5b4: 8f 90 pop r8 + 5b6: 7f 90 pop r7 + 5b8: 6f 90 pop r6 + 5ba: 5f 90 pop r5 + 5bc: 4f 90 pop r4 + 5be: 3f 90 pop r3 + 5c0: 2f 90 pop r2 + 5c2: 08 95 ret + +000005c4 : + 5c4: 1f 93 push r17 + 5c6: cf 93 push r28 + 5c8: df 93 push r29 + 5ca: e8 2f mov r30, r24 + 5cc: 86 2f mov r24, r22 + 5ce: 6b e2 ldi r22, 0x2B ; 43 + 5d0: f6 d1 rcall .+1004 ; 0x9be <__udivmodqi4> + 5d2: 28 2f mov r18, r24 + 5d4: 89 2f mov r24, r25 + 5d6: 88 0f add r24, r24 + 5d8: 89 0f add r24, r25 + 5da: 38 2f mov r19, r24 + 5dc: 33 0f add r19, r19 + 5de: cf ef ldi r28, 0xFF ; 255 + 5e0: d0 e0 ldi r29, 0x00 ; 0 + 5e2: ae 01 movw r20, r28 + 5e4: 43 1b sub r20, r19 + 5e6: 51 09 sbc r21, r1 + 5e8: 1f ef ldi r17, 0xFF ; 255 + 5ea: 14 9f mul r17, r20 + 5ec: c0 01 movw r24, r0 + 5ee: 15 9f mul r17, r21 + 5f0: 90 0d add r25, r0 + 5f2: 11 24 eor r1, r1 + 5f4: be 01 movw r22, r28 + 5f6: ef d1 rcall .+990 ; 0x9d6 <__udivmodhi4> + 5f8: f6 2f mov r31, r22 + 5fa: 46 2f mov r20, r22 + 5fc: 31 9f mul r19, r17 + 5fe: c0 01 movw r24, r0 + 600: 11 24 eor r1, r1 + 602: be 01 movw r22, r28 + 604: e8 d1 rcall .+976 ; 0x9d6 <__udivmodhi4> + 606: 96 2f mov r25, r22 + 608: 22 30 cpi r18, 0x02 ; 2 + 60a: 19 f1 breq .+70 ; 0x652 + 60c: 40 f4 brcc .+16 ; 0x61e + 60e: 22 23 and r18, r18 + 610: 21 f0 breq .+8 ; 0x61a + 612: 21 30 cpi r18, 0x01 ; 1 + 614: 61 f0 breq .+24 ; 0x62e + 616: 2f 2f mov r18, r31 + 618: 90 e0 ldi r25, 0x00 ; 0 + 61a: 4f ef ldi r20, 0xFF ; 255 + 61c: 0a c0 rjmp .+20 ; 0x632 + 61e: 23 30 cpi r18, 0x03 ; 3 + 620: e1 f0 breq .+56 ; 0x65a + 622: 24 30 cpi r18, 0x04 ; 4 + 624: c1 f7 brne .-16 ; 0x616 + 626: 46 2f mov r20, r22 + 628: 2f ef ldi r18, 0xFF ; 255 + 62a: 90 e0 ldi r25, 0x00 ; 0 + 62c: 02 c0 rjmp .+4 ; 0x632 + 62e: 20 e0 ldi r18, 0x00 ; 0 + 630: 9f ef ldi r25, 0xFF ; 255 + 632: 6e 2f mov r22, r30 + 634: 70 e0 ldi r23, 0x00 ; 0 + 636: fb 01 movw r30, r22 + 638: ee 0f add r30, r30 + 63a: ff 1f adc r31, r31 + 63c: e6 0f add r30, r22 + 63e: f7 1f adc r31, r23 + 640: eb 50 subi r30, 0x0B ; 11 + 642: ff 4f sbci r31, 0xFF ; 255 + 644: 41 83 std Z+1, r20 ; 0x01 + 646: 90 83 st Z, r25 + 648: 22 83 std Z+2, r18 ; 0x02 + 64a: df 91 pop r29 + 64c: cf 91 pop r28 + 64e: 1f 91 pop r17 + 650: 08 95 ret + 652: 26 2f mov r18, r22 + 654: 9f ef ldi r25, 0xFF ; 255 + 656: 40 e0 ldi r20, 0x00 ; 0 + 658: ec cf rjmp .-40 ; 0x632 + 65a: 9f 2f mov r25, r31 + 65c: 2f ef ldi r18, 0xFF ; 255 + 65e: fb cf rjmp .-10 ; 0x656 + +00000660 : + 660: cf 93 push r28 + 662: df 93 push r29 + 664: d0 e0 ldi r29, 0x00 ; 0 + 666: c0 e0 ldi r28, 0x00 ; 0 + 668: 60 91 16 01 lds r22, 0x0116 ; 0x800116 + 66c: 6d 0f add r22, r29 + 66e: 8c 2f mov r24, r28 + 670: a9 df rcall .-174 ; 0x5c4 + 672: cf 5f subi r28, 0xFF ; 255 + 674: d4 5e subi r29, 0xE4 ; 228 + 676: c9 30 cpi r28, 0x09 ; 9 + 678: b9 f7 brne .-18 ; 0x668 + 67a: 69 e0 ldi r22, 0x09 ; 9 + 67c: 70 e0 ldi r23, 0x00 ; 0 + 67e: 85 ef ldi r24, 0xF5 ; 245 + 680: 90 e0 ldi r25, 0x00 ; 0 + 682: 1f dd rcall .-1474 ; 0xc2 + 684: 80 91 16 01 lds r24, 0x0116 ; 0x800116 + 688: 8e 5f subi r24, 0xFE ; 254 + 68a: 80 93 16 01 sts 0x0116, r24 ; 0x800116 + 68e: c3 e0 ldi r28, 0x03 ; 3 + 690: 29 dd rcall .-1454 ; 0xe4 + 692: 81 11 cpse r24, r1 + 694: 08 c0 rjmp .+16 ; 0x6a6 + 696: 8f e2 ldi r24, 0x2F ; 47 + 698: 95 e7 ldi r25, 0x75 ; 117 + 69a: 01 97 sbiw r24, 0x01 ; 1 + 69c: f1 f7 brne .-4 ; 0x69a + 69e: 00 c0 rjmp .+0 ; 0x6a0 + 6a0: 00 00 nop + 6a2: c1 50 subi r28, 0x01 ; 1 + 6a4: a9 f7 brne .-22 ; 0x690 + 6a6: df 91 pop r29 + 6a8: cf 91 pop r28 + 6aa: 08 95 ret + +000006ac : + 6ac: cf 93 push r28 + 6ae: df 93 push r29 + 6b0: 80 91 15 01 lds r24, 0x0115 ; 0x800115 + 6b4: 82 30 cpi r24, 0x02 ; 2 + 6b6: 51 f1 breq .+84 ; 0x70c + 6b8: 38 f4 brcc .+14 ; 0x6c8 + 6ba: 88 23 and r24, r24 + 6bc: 99 f1 breq .+102 ; 0x724 + 6be: 81 30 cpi r24, 0x01 ; 1 + 6c0: 59 f1 breq .+86 ; 0x718 + 6c2: 10 92 15 01 sts 0x0115, r1 ; 0x800115 + 6c6: 1f c0 rjmp .+62 ; 0x706 + 6c8: 83 30 cpi r24, 0x03 ; 3 + 6ca: 89 f0 breq .+34 ; 0x6ee + 6cc: cf ef ldi r28, 0xFF ; 255 + 6ce: d0 e0 ldi r29, 0x00 ; 0 + 6d0: 84 30 cpi r24, 0x04 ; 4 + 6d2: b9 f7 brne .-18 ; 0x6c2 + 6d4: 07 dd rcall .-1522 ; 0xe4 + 6d6: 81 11 cpse r24, r1 + 6d8: 16 c0 rjmp .+44 ; 0x706 + 6da: c2 df rcall .-124 ; 0x660 + 6dc: 8f e2 ldi r24, 0x2F ; 47 + 6de: 95 e7 ldi r25, 0x75 ; 117 + 6e0: 01 97 sbiw r24, 0x01 ; 1 + 6e2: f1 f7 brne .-4 ; 0x6e0 + 6e4: 00 c0 rjmp .+0 ; 0x6e6 + 6e6: 00 00 nop + 6e8: 21 97 sbiw r28, 0x01 ; 1 + 6ea: a1 f7 brne .-24 ; 0x6d4 + 6ec: 05 c0 rjmp .+10 ; 0x6f8 + 6ee: d5 de rcall .-598 ; 0x49a + 6f0: d4 de rcall .-600 ; 0x49a + 6f2: d3 de rcall .-602 ; 0x49a + 6f4: d2 de rcall .-604 ; 0x49a + 6f6: d1 de rcall .-606 ; 0x49a + 6f8: 80 91 15 01 lds r24, 0x0115 ; 0x800115 + 6fc: 8f 5f subi r24, 0xFF ; 255 + 6fe: 85 30 cpi r24, 0x05 ; 5 + 700: 00 f7 brcc .-64 ; 0x6c2 + 702: 80 93 15 01 sts 0x0115, r24 ; 0x800115 + 706: df 91 pop r29 + 708: cf 91 pop r28 + 70a: 08 95 ret + 70c: 8b de rcall .-746 ; 0x424 + 70e: 8a de rcall .-748 ; 0x424 + 710: 89 de rcall .-750 ; 0x424 + 712: 88 de rcall .-752 ; 0x424 + 714: 87 de rcall .-754 ; 0x424 + 716: f0 cf rjmp .-32 ; 0x6f8 + 718: 4e de rcall .-868 ; 0x3b6 + 71a: 4d de rcall .-870 ; 0x3b6 + 71c: 4c de rcall .-872 ; 0x3b6 + 71e: 4b de rcall .-874 ; 0x3b6 + 720: 4a de rcall .-876 ; 0x3b6 + 722: ea cf rjmp .-44 ; 0x6f8 + 724: 40 91 12 01 lds r20, 0x0112 ; 0x800112 + 728: 60 91 10 01 lds r22, 0x0110 ; 0x800110 + 72c: 80 91 11 01 lds r24, 0x0111 ; 0x800111 + 730: 09 dd rcall .-1518 ; 0x144 + 732: 8f ef ldi r24, 0xFF ; 255 + 734: dd dc rcall .-1606 ; 0xf0 + 736: c4 ef ldi r28, 0xF4 ; 244 + 738: d1 e0 ldi r29, 0x01 ; 1 + 73a: d4 dc rcall .-1624 ; 0xe4 + 73c: 81 11 cpse r24, r1 + 73e: e3 cf rjmp .-58 ; 0x706 + 740: 8f e2 ldi r24, 0x2F ; 47 + 742: 95 e7 ldi r25, 0x75 ; 117 + 744: 01 97 sbiw r24, 0x01 ; 1 + 746: f1 f7 brne .-4 ; 0x744 + 748: 00 c0 rjmp .+0 ; 0x74a + 74a: 00 00 nop + 74c: 21 97 sbiw r28, 0x01 ; 1 + 74e: a9 f7 brne .-22 ; 0x73a + 750: d3 cf rjmp .-90 ; 0x6f8 + +00000752 : + 752: 8f e2 ldi r24, 0x2F ; 47 + 754: 95 e7 ldi r25, 0x75 ; 117 + 756: 01 97 sbiw r24, 0x01 ; 1 + 758: f1 f7 brne .-4 ; 0x756 + 75a: 00 c0 rjmp .+0 ; 0x75c + 75c: 00 00 nop + 75e: 08 95 ret + +00000760 : + 760: 2f ef ldi r18, 0xFF ; 255 + 762: 8e e9 ldi r24, 0x9E ; 158 + 764: 94 e2 ldi r25, 0x24 ; 36 + 766: 21 50 subi r18, 0x01 ; 1 + 768: 80 40 sbci r24, 0x00 ; 0 + 76a: 90 40 sbci r25, 0x00 ; 0 + 76c: e1 f7 brne .-8 ; 0x766 + 76e: 00 c0 rjmp .+0 ; 0x770 + 770: 00 00 nop + 772: 72 d0 rcall .+228 ; 0x858 + 774: 80 ee ldi r24, 0xE0 ; 224 + 776: 90 e0 ldi r25, 0x00 ; 0 + 778: 5a d0 rcall .+180 ; 0x82e + 77a: 8f 9a sbi 0x11, 7 ; 17 + 77c: c9 dd rcall .-1134 ; 0x310 + 77e: 78 94 sei + 780: 08 95 ret + +00000782 : + 782: 87 b3 in r24, 0x17 ; 23 + 784: 8c 62 ori r24, 0x2C ; 44 + 786: 87 bb out 0x17, r24 ; 23 + 788: 70 9a sbi 0x0e, 0 ; 14 + 78a: 8d b1 in r24, 0x0d ; 13 + 78c: 80 65 ori r24, 0x50 ; 80 + 78e: 8d b9 out 0x0d, r24 ; 13 + 790: 08 95 ret + +00000792 : + 792: 8f b9 out 0x0f, r24 ; 15 + 794: 77 9b sbis 0x0e, 7 ; 14 + 796: fe cf rjmp .-4 ; 0x794 + 798: 08 95 ret + +0000079a <__vector_11>: + 79a: 1f 92 push r1 + 79c: 0f 92 push r0 + 79e: 0f b6 in r0, 0x3f ; 63 + 7a0: 0f 92 push r0 + 7a2: 11 24 eor r1, r1 + 7a4: 2f 93 push r18 + 7a6: 3f 93 push r19 + 7a8: 4f 93 push r20 + 7aa: 5f 93 push r21 + 7ac: 6f 93 push r22 + 7ae: 7f 93 push r23 + 7b0: 8f 93 push r24 + 7b2: 9f 93 push r25 + 7b4: af 93 push r26 + 7b6: bf 93 push r27 + 7b8: ef 93 push r30 + 7ba: ff 93 push r31 + 7bc: 8c b1 in r24, 0x0c ; 12 + 7be: 90 91 19 01 lds r25, 0x0119 ; 0x800119 + 7c2: 9f 31 cpi r25, 0x1F ; 31 + 7c4: 10 f0 brcs .+4 ; 0x7ca <__vector_11+0x30> + 7c6: 10 92 19 01 sts 0x0119, r1 ; 0x800119 + 7ca: e0 91 19 01 lds r30, 0x0119 ; 0x800119 + 7ce: 91 e0 ldi r25, 0x01 ; 1 + 7d0: 9e 0f add r25, r30 + 7d2: 90 93 19 01 sts 0x0119, r25 ; 0x800119 + 7d6: f0 e0 ldi r31, 0x00 ; 0 + 7d8: e2 5e subi r30, 0xE2 ; 226 + 7da: fe 4f sbci r31, 0xFE ; 254 + 7dc: 80 83 st Z, r24 + 7de: 84 30 cpi r24, 0x04 ; 4 + 7e0: 21 f0 breq .+8 ; 0x7ea <__vector_11+0x50> + 7e2: 8d 30 cpi r24, 0x0D ; 13 + 7e4: 11 f0 breq .+4 ; 0x7ea <__vector_11+0x50> + 7e6: 8a 30 cpi r24, 0x0A ; 10 + 7e8: 89 f4 brne .+34 ; 0x80c <__vector_11+0x72> + 7ea: e0 91 19 01 lds r30, 0x0119 ; 0x800119 + 7ee: f0 e0 ldi r31, 0x00 ; 0 + 7f0: e2 5e subi r30, 0xE2 ; 226 + 7f2: fe 4f sbci r31, 0xFE ; 254 + 7f4: 10 82 st Z, r1 + 7f6: 10 92 19 01 sts 0x0119, r1 ; 0x800119 + 7fa: e0 91 1a 01 lds r30, 0x011A ; 0x80011a + 7fe: f0 91 1b 01 lds r31, 0x011B ; 0x80011b + 802: 30 97 sbiw r30, 0x00 ; 0 + 804: 19 f0 breq .+6 ; 0x80c <__vector_11+0x72> + 806: 8e e1 ldi r24, 0x1E ; 30 + 808: 91 e0 ldi r25, 0x01 ; 1 + 80a: 09 95 icall + 80c: ff 91 pop r31 + 80e: ef 91 pop r30 + 810: bf 91 pop r27 + 812: af 91 pop r26 + 814: 9f 91 pop r25 + 816: 8f 91 pop r24 + 818: 7f 91 pop r23 + 81a: 6f 91 pop r22 + 81c: 5f 91 pop r21 + 81e: 4f 91 pop r20 + 820: 3f 91 pop r19 + 822: 2f 91 pop r18 + 824: 0f 90 pop r0 + 826: 0f be out 0x3f, r0 ; 63 + 828: 0f 90 pop r0 + 82a: 1f 90 pop r1 + 82c: 18 95 reti + +0000082e : + 82e: 90 93 1b 01 sts 0x011B, r25 ; 0x80011b + 832: 80 93 1a 01 sts 0x011A, r24 ; 0x80011a + 836: 08 95 ret + +00000838 : + 838: e0 91 1a 01 lds r30, 0x011A ; 0x80011a + 83c: f0 91 1b 01 lds r31, 0x011B ; 0x80011b + 840: 30 97 sbiw r30, 0x00 ; 0 + 842: 49 f0 breq .+18 ; 0x856 + 844: 80 91 18 01 lds r24, 0x0118 ; 0x800118 + 848: 88 23 and r24, r24 + 84a: 29 f0 breq .+10 ; 0x856 + 84c: 8e e1 ldi r24, 0x1E ; 30 + 84e: 91 e0 ldi r25, 0x01 ; 1 + 850: 09 95 icall + 852: 10 92 18 01 sts 0x0118, r1 ; 0x800118 + 856: 08 95 ret + +00000858 : + 858: 88 98 cbi 0x11, 0 ; 17 + 85a: 89 9a sbi 0x11, 1 ; 17 + 85c: 8a b1 in r24, 0x0a ; 10 + 85e: 88 69 ori r24, 0x98 ; 152 + 860: 8a b9 out 0x0a, r24 ; 10 + 862: 86 ea ldi r24, 0xA6 ; 166 + 864: 80 bd out 0x20, r24 ; 32 + 866: 10 bc out 0x20, r1 ; 32 + 868: 8d e4 ldi r24, 0x4D ; 77 + 86a: 89 b9 out 0x09, r24 ; 9 + 86c: 08 95 ret + +0000086e : + 86e: 5d 9b sbis 0x0b, 5 ; 11 + 870: fe cf rjmp .-4 ; 0x86e + 872: 8c b9 out 0x0c, r24 ; 12 + 874: 08 95 ret + +00000876 : + 876: cf 93 push r28 + 878: df 93 push r29 + 87a: ec 01 movw r28, r24 + 87c: 89 91 ld r24, Y+ + 87e: 81 11 cpse r24, r1 + 880: 03 c0 rjmp .+6 ; 0x888 + 882: df 91 pop r29 + 884: cf 91 pop r28 + 886: 08 95 ret + 888: f2 df rcall .-28 ; 0x86e + 88a: f8 cf rjmp .-16 ; 0x87c + +0000088c : + 88c: cf 93 push r28 + 88e: df 93 push r29 + 890: 00 d0 rcall .+0 ; 0x892 + 892: 00 d0 rcall .+0 ; 0x894 + 894: 00 d0 rcall .+0 ; 0x896 + 896: 1f 92 push r1 + 898: cd b7 in r28, 0x3d ; 61 + 89a: de b7 in r29, 0x3e ; 62 + 89c: 4a e0 ldi r20, 0x0A ; 10 + 89e: be 01 movw r22, r28 + 8a0: 6f 5f subi r22, 0xFF ; 255 + 8a2: 7f 4f sbci r23, 0xFF ; 255 + 8a4: d8 d1 rcall .+944 ; 0xc56 <__itoa_ncheck> + 8a6: ce 01 movw r24, r28 + 8a8: 01 96 adiw r24, 0x01 ; 1 + 8aa: e5 df rcall .-54 ; 0x876 + 8ac: 27 96 adiw r28, 0x07 ; 7 + 8ae: 0f b6 in r0, 0x3f ; 63 + 8b0: f8 94 cli + 8b2: de bf out 0x3e, r29 ; 62 + 8b4: 0f be out 0x3f, r0 ; 63 + 8b6: cd bf out 0x3d, r28 ; 61 + 8b8: df 91 pop r29 + 8ba: cf 91 pop r28 + 8bc: 08 95 ret + +000008be : + 8be: df 92 push r13 + 8c0: ef 92 push r14 + 8c2: ff 92 push r15 + 8c4: 0f 93 push r16 + 8c6: 1f 93 push r17 + 8c8: cf 93 push r28 + 8ca: df 93 push r29 + 8cc: cd b7 in r28, 0x3d ; 61 + 8ce: de b7 in r29, 0x3e ; 62 + 8d0: c0 5c subi r28, 0xC0 ; 192 + 8d2: d1 09 sbc r29, r1 + 8d4: 0f b6 in r0, 0x3f ; 63 + 8d6: f8 94 cli + 8d8: de bf out 0x3e, r29 ; 62 + 8da: 0f be out 0x3f, r0 ; 63 + 8dc: cd bf out 0x3d, r28 ; 61 + 8de: fe 01 movw r30, r28 + 8e0: 31 96 adiw r30, 0x01 ; 1 + 8e2: 90 ec ldi r25, 0xC0 ; 192 + 8e4: df 01 movw r26, r30 + 8e6: 1d 92 st X+, r1 + 8e8: 9a 95 dec r25 + 8ea: e9 f7 brne .-6 ; 0x8e6 + 8ec: 7f 01 movw r14, r30 + 8ee: df 01 movw r26, r30 + 8f0: 36 2f mov r19, r22 + 8f2: 50 ec ldi r21, 0xC0 ; 192 + 8f4: 27 e0 ldi r18, 0x07 ; 7 + 8f6: 90 e0 ldi r25, 0x00 ; 0 + 8f8: 74 e0 ldi r23, 0x04 ; 4 + 8fa: 16 e0 ldi r17, 0x06 ; 6 + 8fc: d1 2e mov r13, r17 + 8fe: 98 30 cpi r25, 0x08 ; 8 + 900: 81 f1 breq .+96 ; 0x962 + 902: 90 31 cpi r25, 0x10 ; 16 + 904: 89 f1 breq .+98 ; 0x968 + 906: 98 31 cpi r25, 0x18 ; 24 + 908: 89 f1 breq .+98 ; 0x96c + 90a: 03 2f mov r16, r19 + 90c: 10 e0 ldi r17, 0x00 ; 0 + 90e: 02 2e mov r0, r18 + 910: 02 c0 rjmp .+4 ; 0x916 + 912: 15 95 asr r17 + 914: 07 95 ror r16 + 916: 0a 94 dec r0 + 918: e2 f7 brpl .-8 ; 0x912 + 91a: 00 ff sbrs r16, 0 + 91c: 2a c0 rjmp .+84 ; 0x972 + 91e: dc 92 st X, r13 + 920: 9f 5f subi r25, 0xFF ; 255 + 922: 21 50 subi r18, 0x01 ; 1 + 924: 51 50 subi r21, 0x01 ; 1 + 926: 11 96 adiw r26, 0x01 ; 1 + 928: 51 11 cpse r21, r1 + 92a: e9 cf rjmp .-46 ; 0x8fe + 92c: f8 94 cli + 92e: 8f 01 movw r16, r30 + 930: 00 54 subi r16, 0x40 ; 64 + 932: 1f 4f sbci r17, 0xFF ; 255 + 934: f7 01 movw r30, r14 + 936: 81 91 ld r24, Z+ + 938: 7f 01 movw r14, r30 + 93a: 2b df rcall .-426 ; 0x792 + 93c: 0e 15 cp r16, r14 + 93e: 1f 05 cpc r17, r15 + 940: c9 f7 brne .-14 ; 0x934 + 942: 78 94 sei + 944: c0 54 subi r28, 0x40 ; 64 + 946: df 4f sbci r29, 0xFF ; 255 + 948: 0f b6 in r0, 0x3f ; 63 + 94a: f8 94 cli + 94c: de bf out 0x3e, r29 ; 62 + 94e: 0f be out 0x3f, r0 ; 63 + 950: cd bf out 0x3d, r28 ; 61 + 952: df 91 pop r29 + 954: cf 91 pop r28 + 956: 1f 91 pop r17 + 958: 0f 91 pop r16 + 95a: ff 90 pop r15 + 95c: ef 90 pop r14 + 95e: df 90 pop r13 + 960: 08 95 ret + 962: 38 2f mov r19, r24 + 964: 27 e0 ldi r18, 0x07 ; 7 + 966: d1 cf rjmp .-94 ; 0x90a + 968: 34 2f mov r19, r20 + 96a: fc cf rjmp .-8 ; 0x964 + 96c: 36 2f mov r19, r22 + 96e: 90 e0 ldi r25, 0x00 ; 0 + 970: cc cf rjmp .-104 ; 0x90a + 972: 7c 93 st X, r23 + 974: d5 cf rjmp .-86 ; 0x920 + +00000976
: + 976: f4 de rcall .-536 ; 0x760 + 978: 80 91 13 01 lds r24, 0x0113 ; 0x800113 + 97c: 90 91 14 01 lds r25, 0x0114 ; 0x800114 + 980: 82 30 cpi r24, 0x02 ; 2 + 982: 91 05 cpc r25, r1 + 984: b1 f0 breq .+44 ; 0x9b2 + 986: 30 f4 brcc .+12 ; 0x994 + 988: 00 97 sbiw r24, 0x00 ; 0 + 98a: 61 f0 breq .+24 ; 0x9a4 + 98c: 01 97 sbiw r24, 0x01 ; 1 + 98e: a1 f7 brne .-24 ; 0x978 + 990: 12 dd rcall .-1500 ; 0x3b6 + 992: f2 cf rjmp .-28 ; 0x978 + 994: 84 30 cpi r24, 0x04 ; 4 + 996: 91 05 cpc r25, r1 + 998: 81 f0 breq .+32 ; 0x9ba + 99a: 68 f0 brcs .+26 ; 0x9b6 + 99c: 05 97 sbiw r24, 0x05 ; 5 + 99e: 61 f7 brne .-40 ; 0x978 + 9a0: 85 de rcall .-758 ; 0x6ac + 9a2: ea cf rjmp .-44 ; 0x978 + 9a4: 8f e2 ldi r24, 0x2F ; 47 + 9a6: 95 e7 ldi r25, 0x75 ; 117 + 9a8: 01 97 sbiw r24, 0x01 ; 1 + 9aa: f1 f7 brne .-4 ; 0x9a8 + 9ac: 00 c0 rjmp .+0 ; 0x9ae + 9ae: 00 00 nop + 9b0: e3 cf rjmp .-58 ; 0x978 + 9b2: 38 dd rcall .-1424 ; 0x424 + 9b4: e1 cf rjmp .-62 ; 0x978 + 9b6: 71 dd rcall .-1310 ; 0x49a + 9b8: df cf rjmp .-66 ; 0x978 + 9ba: 52 de rcall .-860 ; 0x660 + 9bc: dd cf rjmp .-70 ; 0x978 + +000009be <__udivmodqi4>: + 9be: 99 1b sub r25, r25 + 9c0: 79 e0 ldi r23, 0x09 ; 9 + 9c2: 04 c0 rjmp .+8 ; 0x9cc <__udivmodqi4_ep> + +000009c4 <__udivmodqi4_loop>: + 9c4: 99 1f adc r25, r25 + 9c6: 96 17 cp r25, r22 + 9c8: 08 f0 brcs .+2 ; 0x9cc <__udivmodqi4_ep> + 9ca: 96 1b sub r25, r22 + +000009cc <__udivmodqi4_ep>: + 9cc: 88 1f adc r24, r24 + 9ce: 7a 95 dec r23 + 9d0: c9 f7 brne .-14 ; 0x9c4 <__udivmodqi4_loop> + 9d2: 80 95 com r24 + 9d4: 08 95 ret + +000009d6 <__udivmodhi4>: + 9d6: aa 1b sub r26, r26 + 9d8: bb 1b sub r27, r27 + 9da: 51 e1 ldi r21, 0x11 ; 17 + 9dc: 07 c0 rjmp .+14 ; 0x9ec <__udivmodhi4_ep> + +000009de <__udivmodhi4_loop>: + 9de: aa 1f adc r26, r26 + 9e0: bb 1f adc r27, r27 + 9e2: a6 17 cp r26, r22 + 9e4: b7 07 cpc r27, r23 + 9e6: 10 f0 brcs .+4 ; 0x9ec <__udivmodhi4_ep> + 9e8: a6 1b sub r26, r22 + 9ea: b7 0b sbc r27, r23 + +000009ec <__udivmodhi4_ep>: + 9ec: 88 1f adc r24, r24 + 9ee: 99 1f adc r25, r25 + 9f0: 5a 95 dec r21 + 9f2: a9 f7 brne .-22 ; 0x9de <__udivmodhi4_loop> + 9f4: 80 95 com r24 + 9f6: 90 95 com r25 + 9f8: bc 01 movw r22, r24 + 9fa: cd 01 movw r24, r26 + 9fc: 08 95 ret + +000009fe <__divmodhi4>: + 9fe: 97 fb bst r25, 7 + a00: 07 2e mov r0, r23 + a02: 16 f4 brtc .+4 ; 0xa08 <__divmodhi4+0xa> + a04: 00 94 com r0 + a06: 06 d0 rcall .+12 ; 0xa14 <__divmodhi4_neg1> + a08: 77 fd sbrc r23, 7 + a0a: 08 d0 rcall .+16 ; 0xa1c <__divmodhi4_neg2> + a0c: e4 df rcall .-56 ; 0x9d6 <__udivmodhi4> + a0e: 07 fc sbrc r0, 7 + a10: 05 d0 rcall .+10 ; 0xa1c <__divmodhi4_neg2> + a12: 3e f4 brtc .+14 ; 0xa22 <__divmodhi4_exit> + +00000a14 <__divmodhi4_neg1>: + a14: 90 95 com r25 + a16: 81 95 neg r24 + a18: 9f 4f sbci r25, 0xFF ; 255 + a1a: 08 95 ret + +00000a1c <__divmodhi4_neg2>: + a1c: 70 95 com r23 + a1e: 61 95 neg r22 + a20: 7f 4f sbci r23, 0xFF ; 255 + +00000a22 <__divmodhi4_exit>: + a22: 08 95 ret + +00000a24 : + a24: b0 e0 ldi r27, 0x00 ; 0 + a26: a0 e0 ldi r26, 0x00 ; 0 + a28: e7 e1 ldi r30, 0x17 ; 23 + a2a: f5 e0 ldi r31, 0x05 ; 5 + a2c: 9f c1 rjmp .+830 ; 0xd6c <__prologue_saves__+0x2> + a2e: 5c 01 movw r10, r24 + a30: 6b 01 movw r12, r22 + a32: 7a 01 movw r14, r20 + a34: 61 15 cp r22, r1 + a36: 71 05 cpc r23, r1 + a38: 19 f0 breq .+6 ; 0xa40 + a3a: fb 01 movw r30, r22 + a3c: 91 83 std Z+1, r25 ; 0x01 + a3e: 80 83 st Z, r24 + a40: e1 14 cp r14, r1 + a42: f1 04 cpc r15, r1 + a44: 49 f0 breq .+18 ; 0xa58 + a46: c7 01 movw r24, r14 + a48: 02 97 sbiw r24, 0x02 ; 2 + a4a: 83 97 sbiw r24, 0x23 ; 35 + a4c: 28 f0 brcs .+10 ; 0xa58 + a4e: 60 e0 ldi r22, 0x00 ; 0 + a50: 70 e0 ldi r23, 0x00 ; 0 + a52: cb 01 movw r24, r22 + a54: 9a c0 rjmp .+308 ; 0xb8a + a56: 5e 01 movw r10, r28 + a58: e5 01 movw r28, r10 + a5a: 21 96 adiw r28, 0x01 ; 1 + a5c: f5 01 movw r30, r10 + a5e: 10 81 ld r17, Z + a60: 81 2f mov r24, r17 + a62: 90 e0 ldi r25, 0x00 ; 0 + a64: c5 d0 rcall .+394 ; 0xbf0 + a66: 89 2b or r24, r25 + a68: b1 f7 brne .-20 ; 0xa56 + a6a: 1d 32 cpi r17, 0x2D ; 45 + a6c: 09 f0 breq .+2 ; 0xa70 + a6e: 55 c0 rjmp .+170 ; 0xb1a + a70: 21 96 adiw r28, 0x01 ; 1 + a72: f5 01 movw r30, r10 + a74: 11 81 ldd r17, Z+1 ; 0x01 + a76: 01 e0 ldi r16, 0x01 ; 1 + a78: e1 14 cp r14, r1 + a7a: f1 04 cpc r15, r1 + a7c: 09 f4 brne .+2 ; 0xa80 + a7e: ab c0 rjmp .+342 ; 0xbd6 + a80: f0 e1 ldi r31, 0x10 ; 16 + a82: ef 16 cp r14, r31 + a84: f1 04 cpc r15, r1 + a86: 09 f0 breq .+2 ; 0xa8a + a88: 8c c0 rjmp .+280 ; 0xba2 + a8a: 10 33 cpi r17, 0x30 ; 48 + a8c: 41 f4 brne .+16 ; 0xa9e + a8e: 88 81 ld r24, Y + a90: 8f 7d andi r24, 0xDF ; 223 + a92: 88 35 cpi r24, 0x58 ; 88 + a94: 09 f0 breq .+2 ; 0xa98 + a96: 81 c0 rjmp .+258 ; 0xb9a + a98: 19 81 ldd r17, Y+1 ; 0x01 + a9a: 22 96 adiw r28, 0x02 ; 2 + a9c: 02 60 ori r16, 0x02 ; 2 + a9e: e0 e1 ldi r30, 0x10 ; 16 + aa0: ee 2e mov r14, r30 + aa2: f1 2c mov r15, r1 + aa4: 88 24 eor r8, r8 + aa6: 8a 94 dec r8 + aa8: 98 2c mov r9, r8 + aaa: a8 2c mov r10, r8 + aac: ff e0 ldi r31, 0x0F ; 15 + aae: bf 2e mov r11, r31 + ab0: 20 e0 ldi r18, 0x00 ; 0 + ab2: 60 e0 ldi r22, 0x00 ; 0 + ab4: 70 e0 ldi r23, 0x00 ; 0 + ab6: cb 01 movw r24, r22 + ab8: 27 01 movw r4, r14 + aba: 0f 2c mov r0, r15 + abc: 00 0c add r0, r0 + abe: 66 08 sbc r6, r6 + ac0: 77 08 sbc r7, r7 + ac2: fe 01 movw r30, r28 + ac4: 50 ed ldi r21, 0xD0 ; 208 + ac6: 35 2e mov r3, r21 + ac8: 31 0e add r3, r17 + aca: 39 e0 ldi r19, 0x09 ; 9 + acc: 33 15 cp r19, r3 + ace: 38 f4 brcc .+14 ; 0xade + ad0: 3f eb ldi r19, 0xBF ; 191 + ad2: 31 0f add r19, r17 + ad4: 3a 31 cpi r19, 0x1A ; 26 + ad6: 98 f5 brcc .+102 ; 0xb3e + ad8: 49 ec ldi r20, 0xC9 ; 201 + ada: 34 2e mov r3, r20 + adc: 31 0e add r3, r17 + ade: 3e 14 cp r3, r14 + ae0: 1f 04 cpc r1, r15 + ae2: b4 f5 brge .+108 ; 0xb50 + ae4: 2f 3f cpi r18, 0xFF ; 255 + ae6: b1 f0 breq .+44 ; 0xb14 + ae8: 86 16 cp r8, r22 + aea: 97 06 cpc r9, r23 + aec: a8 06 cpc r10, r24 + aee: b9 06 cpc r11, r25 + af0: 68 f1 brcs .+90 ; 0xb4c + af2: a3 01 movw r20, r6 + af4: 92 01 movw r18, r4 + af6: fe d0 rcall .+508 ; 0xcf4 <__mulsi3> + af8: 23 2d mov r18, r3 + afa: 30 e0 ldi r19, 0x00 ; 0 + afc: 50 e0 ldi r21, 0x00 ; 0 + afe: 40 e0 ldi r20, 0x00 ; 0 + b00: 62 0f add r22, r18 + b02: 73 1f adc r23, r19 + b04: 84 1f adc r24, r20 + b06: 95 1f adc r25, r21 + b08: 62 17 cp r22, r18 + b0a: 73 07 cpc r23, r19 + b0c: 84 07 cpc r24, r20 + b0e: 95 07 cpc r25, r21 + b10: e8 f0 brcs .+58 ; 0xb4c + b12: 21 e0 ldi r18, 0x01 ; 1 + b14: 21 96 adiw r28, 0x01 ; 1 + b16: 10 81 ld r17, Z + b18: d4 cf rjmp .-88 ; 0xac2 + b1a: 1b 32 cpi r17, 0x2B ; 43 + b1c: 21 f4 brne .+8 ; 0xb26 + b1e: e5 01 movw r28, r10 + b20: 22 96 adiw r28, 0x02 ; 2 + b22: f5 01 movw r30, r10 + b24: 11 81 ldd r17, Z+1 ; 0x01 + b26: 00 e0 ldi r16, 0x00 ; 0 + b28: a7 cf rjmp .-178 ; 0xa78 + b2a: 78 e0 ldi r23, 0x08 ; 8 + b2c: e7 2e mov r14, r23 + b2e: f1 2c mov r15, r1 + b30: 88 24 eor r8, r8 + b32: 8a 94 dec r8 + b34: 98 2c mov r9, r8 + b36: a8 2c mov r10, r8 + b38: 6f e1 ldi r22, 0x1F ; 31 + b3a: b6 2e mov r11, r22 + b3c: b9 cf rjmp .-142 ; 0xab0 + b3e: 3f e9 ldi r19, 0x9F ; 159 + b40: 31 0f add r19, r17 + b42: 3a 31 cpi r19, 0x1A ; 26 + b44: 28 f4 brcc .+10 ; 0xb50 + b46: 39 ea ldi r19, 0xA9 ; 169 + b48: 33 2e mov r3, r19 + b4a: c8 cf rjmp .-112 ; 0xadc + b4c: 2f ef ldi r18, 0xFF ; 255 + b4e: e2 cf rjmp .-60 ; 0xb14 + b50: c1 14 cp r12, r1 + b52: d1 04 cpc r13, r1 + b54: 31 f0 breq .+12 ; 0xb62 + b56: 22 23 and r18, r18 + b58: e1 f0 breq .+56 ; 0xb92 + b5a: 21 97 sbiw r28, 0x01 ; 1 + b5c: f6 01 movw r30, r12 + b5e: d1 83 std Z+1, r29 ; 0x01 + b60: c0 83 st Z, r28 + b62: 00 ff sbrs r16, 0 + b64: 07 c0 rjmp .+14 ; 0xb74 + b66: 90 95 com r25 + b68: 80 95 com r24 + b6a: 70 95 com r23 + b6c: 61 95 neg r22 + b6e: 7f 4f sbci r23, 0xFF ; 255 + b70: 8f 4f sbci r24, 0xFF ; 255 + b72: 9f 4f sbci r25, 0xFF ; 255 + b74: 2f 3f cpi r18, 0xFF ; 255 + b76: 49 f4 brne .+18 ; 0xb8a + b78: 82 e2 ldi r24, 0x22 ; 34 + b7a: 90 e0 ldi r25, 0x00 ; 0 + b7c: 90 93 3f 01 sts 0x013F, r25 ; 0x80013f + b80: 80 93 3e 01 sts 0x013E, r24 ; 0x80013e + b84: 6f ef ldi r22, 0xFF ; 255 + b86: 7f ef ldi r23, 0xFF ; 255 + b88: cb 01 movw r24, r22 + b8a: cd b7 in r28, 0x3d ; 61 + b8c: de b7 in r29, 0x3e ; 62 + b8e: e1 e1 ldi r30, 0x11 ; 17 + b90: 09 c1 rjmp .+530 ; 0xda4 <__epilogue_restores__+0x2> + b92: 01 ff sbrs r16, 1 + b94: e6 cf rjmp .-52 ; 0xb62 + b96: 22 97 sbiw r28, 0x02 ; 2 + b98: e1 cf rjmp .-62 ; 0xb5c + b9a: 10 e3 ldi r17, 0x30 ; 48 + b9c: e1 14 cp r14, r1 + b9e: f1 04 cpc r15, r1 + ba0: 21 f2 breq .-120 ; 0xb2a + ba2: 3a e0 ldi r19, 0x0A ; 10 + ba4: e3 16 cp r14, r19 + ba6: f1 04 cpc r15, r1 + ba8: e1 f0 breq .+56 ; 0xbe2 + baa: 80 e1 ldi r24, 0x10 ; 16 + bac: e8 16 cp r14, r24 + bae: f1 04 cpc r15, r1 + bb0: 09 f4 brne .+2 ; 0xbb4 + bb2: 75 cf rjmp .-278 ; 0xa9e + bb4: e8 e0 ldi r30, 0x08 ; 8 + bb6: ee 16 cp r14, r30 + bb8: f1 04 cpc r15, r1 + bba: 09 f4 brne .+2 ; 0xbbe + bbc: b9 cf rjmp .-142 ; 0xb30 + bbe: 6f ef ldi r22, 0xFF ; 255 + bc0: 7f ef ldi r23, 0xFF ; 255 + bc2: cb 01 movw r24, r22 + bc4: 97 01 movw r18, r14 + bc6: 0f 2c mov r0, r15 + bc8: 00 0c add r0, r0 + bca: 44 0b sbc r20, r20 + bcc: 55 0b sbc r21, r21 + bce: a1 d0 rcall .+322 ; 0xd12 <__udivmodsi4> + bd0: 49 01 movw r8, r18 + bd2: 5a 01 movw r10, r20 + bd4: 6d cf rjmp .-294 ; 0xab0 + bd6: 10 33 cpi r17, 0x30 ; 48 + bd8: 09 f4 brne .+2 ; 0xbdc + bda: 59 cf rjmp .-334 ; 0xa8e + bdc: 9a e0 ldi r25, 0x0A ; 10 + bde: e9 2e mov r14, r25 + be0: f1 2c mov r15, r1 + be2: 89 e9 ldi r24, 0x99 ; 153 + be4: 88 2e mov r8, r24 + be6: 98 2c mov r9, r8 + be8: a8 2c mov r10, r8 + bea: 89 e1 ldi r24, 0x19 ; 25 + bec: b8 2e mov r11, r24 + bee: 60 cf rjmp .-320 ; 0xab0 + +00000bf0 : + bf0: 91 11 cpse r25, r1 + bf2: 54 c0 rjmp .+168 ; 0xc9c <__ctype_isfalse> + bf4: 80 32 cpi r24, 0x20 ; 32 + bf6: 19 f0 breq .+6 ; 0xbfe + bf8: 89 50 subi r24, 0x09 ; 9 + bfa: 85 50 subi r24, 0x05 ; 5 + bfc: d0 f7 brcc .-12 ; 0xbf2 + bfe: 08 95 ret + +00000c00 : + c00: 4c e1 ldi r20, 0x1C ; 28 + c02: 51 e0 ldi r21, 0x01 ; 1 + c04: 01 d0 rcall .+2 ; 0xc08 + c06: 08 95 ret + +00000c08 : + c08: fa 01 movw r30, r20 + c0a: a1 91 ld r26, Z+ + c0c: b0 81 ld r27, Z + c0e: 00 97 sbiw r24, 0x00 ; 0 + c10: 19 f4 brne .+6 ; 0xc18 + c12: 10 97 sbiw r26, 0x00 ; 0 + c14: e1 f0 breq .+56 ; 0xc4e + c16: cd 01 movw r24, r26 + c18: dc 01 movw r26, r24 + c1a: cd 01 movw r24, r26 + c1c: 0d 90 ld r0, X+ + c1e: 00 20 and r0, r0 + c20: 11 f4 brne .+4 ; 0xc26 + c22: c0 01 movw r24, r0 + c24: 13 c0 rjmp .+38 ; 0xc4c + c26: fb 01 movw r30, r22 + c28: 21 91 ld r18, Z+ + c2a: 22 23 and r18, r18 + c2c: 19 f0 breq .+6 ; 0xc34 + c2e: 20 15 cp r18, r0 + c30: d9 f7 brne .-10 ; 0xc28 + c32: f3 cf rjmp .-26 ; 0xc1a + c34: fb 01 movw r30, r22 + c36: 21 91 ld r18, Z+ + c38: 20 15 cp r18, r0 + c3a: 19 f4 brne .+6 ; 0xc42 + c3c: 1e 92 st -X, r1 + c3e: 11 96 adiw r26, 0x01 ; 1 + c40: 06 c0 rjmp .+12 ; 0xc4e + c42: 22 23 and r18, r18 + c44: c1 f7 brne .-16 ; 0xc36 + c46: 0d 90 ld r0, X+ + c48: 00 20 and r0, r0 + c4a: a1 f7 brne .-24 ; 0xc34 + c4c: d0 01 movw r26, r0 + c4e: fa 01 movw r30, r20 + c50: a1 93 st Z+, r26 + c52: b0 83 st Z, r27 + c54: 08 95 ret + +00000c56 <__itoa_ncheck>: + c56: bb 27 eor r27, r27 + c58: 4a 30 cpi r20, 0x0A ; 10 + c5a: 31 f4 brne .+12 ; 0xc68 <__itoa_ncheck+0x12> + c5c: 99 23 and r25, r25 + c5e: 22 f4 brpl .+8 ; 0xc68 <__itoa_ncheck+0x12> + c60: bd e2 ldi r27, 0x2D ; 45 + c62: 90 95 com r25 + c64: 81 95 neg r24 + c66: 9f 4f sbci r25, 0xFF ; 255 + c68: 01 c0 rjmp .+2 ; 0xc6c <__utoa_common> + +00000c6a <__utoa_ncheck>: + c6a: bb 27 eor r27, r27 + +00000c6c <__utoa_common>: + c6c: fb 01 movw r30, r22 + c6e: 55 27 eor r21, r21 + c70: aa 27 eor r26, r26 + c72: 88 0f add r24, r24 + c74: 99 1f adc r25, r25 + c76: aa 1f adc r26, r26 + c78: a4 17 cp r26, r20 + c7a: 10 f0 brcs .+4 ; 0xc80 <__utoa_common+0x14> + c7c: a4 1b sub r26, r20 + c7e: 83 95 inc r24 + c80: 50 51 subi r21, 0x10 ; 16 + c82: b9 f7 brne .-18 ; 0xc72 <__utoa_common+0x6> + c84: a0 5d subi r26, 0xD0 ; 208 + c86: aa 33 cpi r26, 0x3A ; 58 + c88: 08 f0 brcs .+2 ; 0xc8c <__utoa_common+0x20> + c8a: a9 5d subi r26, 0xD9 ; 217 + c8c: a1 93 st Z+, r26 + c8e: 00 97 sbiw r24, 0x00 ; 0 + c90: 79 f7 brne .-34 ; 0xc70 <__utoa_common+0x4> + c92: b1 11 cpse r27, r1 + c94: b1 93 st Z+, r27 + c96: 11 92 st Z+, r1 + c98: cb 01 movw r24, r22 + c9a: 03 c0 rjmp .+6 ; 0xca2 + +00000c9c <__ctype_isfalse>: + c9c: 99 27 eor r25, r25 + c9e: 88 27 eor r24, r24 + +00000ca0 <__ctype_istrue>: + ca0: 08 95 ret + +00000ca2 : + ca2: dc 01 movw r26, r24 + ca4: fc 01 movw r30, r24 + ca6: 67 2f mov r22, r23 + ca8: 71 91 ld r23, Z+ + caa: 77 23 and r23, r23 + cac: e1 f7 brne .-8 ; 0xca6 + cae: 32 97 sbiw r30, 0x02 ; 2 + cb0: 04 c0 rjmp .+8 ; 0xcba + cb2: 7c 91 ld r23, X + cb4: 6d 93 st X+, r22 + cb6: 70 83 st Z, r23 + cb8: 62 91 ld r22, -Z + cba: ae 17 cp r26, r30 + cbc: bf 07 cpc r27, r31 + cbe: c8 f3 brcs .-14 ; 0xcb2 + cc0: 08 95 ret + +00000cc2 : + cc2: e1 99 sbic 0x1c, 1 ; 28 + cc4: fe cf rjmp .-4 ; 0xcc2 + cc6: 9f bb out 0x1f, r25 ; 31 + cc8: 8e bb out 0x1e, r24 ; 30 + cca: e0 9a sbi 0x1c, 0 ; 28 + ccc: 99 27 eor r25, r25 + cce: 8d b3 in r24, 0x1d ; 29 + cd0: 08 95 ret + +00000cd2 : + cd2: 26 2f mov r18, r22 + +00000cd4 : + cd4: e1 99 sbic 0x1c, 1 ; 28 + cd6: fe cf rjmp .-4 ; 0xcd4 + cd8: 9f bb out 0x1f, r25 ; 31 + cda: 8e bb out 0x1e, r24 ; 30 + cdc: e0 9a sbi 0x1c, 0 ; 28 + cde: 01 97 sbiw r24, 0x01 ; 1 + ce0: 0d b2 in r0, 0x1d ; 29 + ce2: 02 16 cp r0, r18 + ce4: 31 f0 breq .+12 ; 0xcf2 + ce6: 2d bb out 0x1d, r18 ; 29 + ce8: 0f b6 in r0, 0x3f ; 63 + cea: f8 94 cli + cec: e2 9a sbi 0x1c, 2 ; 28 + cee: e1 9a sbi 0x1c, 1 ; 28 + cf0: 0f be out 0x3f, r0 ; 63 + cf2: 08 95 ret + +00000cf4 <__mulsi3>: + cf4: db 01 movw r26, r22 + cf6: 8f 93 push r24 + cf8: 9f 93 push r25 + cfa: 2d d0 rcall .+90 ; 0xd56 <__muluhisi3> + cfc: bf 91 pop r27 + cfe: af 91 pop r26 + d00: a2 9f mul r26, r18 + d02: 80 0d add r24, r0 + d04: 91 1d adc r25, r1 + d06: a3 9f mul r26, r19 + d08: 90 0d add r25, r0 + d0a: b2 9f mul r27, r18 + d0c: 90 0d add r25, r0 + d0e: 11 24 eor r1, r1 + d10: 08 95 ret + +00000d12 <__udivmodsi4>: + d12: a1 e2 ldi r26, 0x21 ; 33 + d14: 1a 2e mov r1, r26 + d16: aa 1b sub r26, r26 + d18: bb 1b sub r27, r27 + d1a: fd 01 movw r30, r26 + d1c: 0d c0 rjmp .+26 ; 0xd38 <__udivmodsi4_ep> + +00000d1e <__udivmodsi4_loop>: + d1e: aa 1f adc r26, r26 + d20: bb 1f adc r27, r27 + d22: ee 1f adc r30, r30 + d24: ff 1f adc r31, r31 + d26: a2 17 cp r26, r18 + d28: b3 07 cpc r27, r19 + d2a: e4 07 cpc r30, r20 + d2c: f5 07 cpc r31, r21 + d2e: 20 f0 brcs .+8 ; 0xd38 <__udivmodsi4_ep> + d30: a2 1b sub r26, r18 + d32: b3 0b sbc r27, r19 + d34: e4 0b sbc r30, r20 + d36: f5 0b sbc r31, r21 + +00000d38 <__udivmodsi4_ep>: + d38: 66 1f adc r22, r22 + d3a: 77 1f adc r23, r23 + d3c: 88 1f adc r24, r24 + d3e: 99 1f adc r25, r25 + d40: 1a 94 dec r1 + d42: 69 f7 brne .-38 ; 0xd1e <__udivmodsi4_loop> + d44: 60 95 com r22 + d46: 70 95 com r23 + d48: 80 95 com r24 + d4a: 90 95 com r25 + d4c: 9b 01 movw r18, r22 + d4e: ac 01 movw r20, r24 + d50: bd 01 movw r22, r26 + d52: cf 01 movw r24, r30 + d54: 08 95 ret + +00000d56 <__muluhisi3>: + d56: 40 d0 rcall .+128 ; 0xdd8 <__umulhisi3> + d58: a5 9f mul r26, r21 + d5a: 90 0d add r25, r0 + d5c: b4 9f mul r27, r20 + d5e: 90 0d add r25, r0 + d60: a4 9f mul r26, r20 + d62: 80 0d add r24, r0 + d64: 91 1d adc r25, r1 + d66: 11 24 eor r1, r1 + d68: 08 95 ret + +00000d6a <__prologue_saves__>: + d6a: 2f 92 push r2 + d6c: 3f 92 push r3 + d6e: 4f 92 push r4 + d70: 5f 92 push r5 + d72: 6f 92 push r6 + d74: 7f 92 push r7 + d76: 8f 92 push r8 + d78: 9f 92 push r9 + d7a: af 92 push r10 + d7c: bf 92 push r11 + d7e: cf 92 push r12 + d80: df 92 push r13 + d82: ef 92 push r14 + d84: ff 92 push r15 + d86: 0f 93 push r16 + d88: 1f 93 push r17 + d8a: cf 93 push r28 + d8c: df 93 push r29 + d8e: cd b7 in r28, 0x3d ; 61 + d90: de b7 in r29, 0x3e ; 62 + d92: ca 1b sub r28, r26 + d94: db 0b sbc r29, r27 + d96: 0f b6 in r0, 0x3f ; 63 + d98: f8 94 cli + d9a: de bf out 0x3e, r29 ; 62 + d9c: 0f be out 0x3f, r0 ; 63 + d9e: cd bf out 0x3d, r28 ; 61 + da0: 09 94 ijmp + +00000da2 <__epilogue_restores__>: + da2: 2a 88 ldd r2, Y+18 ; 0x12 + da4: 39 88 ldd r3, Y+17 ; 0x11 + da6: 48 88 ldd r4, Y+16 ; 0x10 + da8: 5f 84 ldd r5, Y+15 ; 0x0f + daa: 6e 84 ldd r6, Y+14 ; 0x0e + dac: 7d 84 ldd r7, Y+13 ; 0x0d + dae: 8c 84 ldd r8, Y+12 ; 0x0c + db0: 9b 84 ldd r9, Y+11 ; 0x0b + db2: aa 84 ldd r10, Y+10 ; 0x0a + db4: b9 84 ldd r11, Y+9 ; 0x09 + db6: c8 84 ldd r12, Y+8 ; 0x08 + db8: df 80 ldd r13, Y+7 ; 0x07 + dba: ee 80 ldd r14, Y+6 ; 0x06 + dbc: fd 80 ldd r15, Y+5 ; 0x05 + dbe: 0c 81 ldd r16, Y+4 ; 0x04 + dc0: 1b 81 ldd r17, Y+3 ; 0x03 + dc2: aa 81 ldd r26, Y+2 ; 0x02 + dc4: b9 81 ldd r27, Y+1 ; 0x01 + dc6: ce 0f add r28, r30 + dc8: d1 1d adc r29, r1 + dca: 0f b6 in r0, 0x3f ; 63 + dcc: f8 94 cli + dce: de bf out 0x3e, r29 ; 62 + dd0: 0f be out 0x3f, r0 ; 63 + dd2: cd bf out 0x3d, r28 ; 61 + dd4: ed 01 movw r28, r26 + dd6: 08 95 ret + +00000dd8 <__umulhisi3>: + dd8: a2 9f mul r26, r18 + dda: b0 01 movw r22, r0 + ddc: b3 9f mul r27, r19 + dde: c0 01 movw r24, r0 + de0: a3 9f mul r26, r19 + de2: 01 d0 rcall .+2 ; 0xde6 <__umulhisi3+0xe> + de4: b2 9f mul r27, r18 + de6: 70 0d add r23, r0 + de8: 81 1d adc r24, r1 + dea: 11 24 eor r1, r1 + dec: 91 1d adc r25, r1 + dee: 08 95 ret + +00000df0 <_exit>: + df0: f8 94 cli + +00000df2 <__stop_program>: + df2: ff cf rjmp .-2 ; 0xdf2 <__stop_program> + +Disassembly of section .data: + +00800060 <__data_start>: + 800060: ff 00 .word 0x00ff ; ???? + 800062: 00 00 nop + 800064: ff 00 .word 0x00ff ; ???? + 800066: 00 00 nop + 800068: ff ff .word 0xffff ; ???? + 80006a: ff 00 .word 0x00ff ; ???? + 80006c: 00 ff sbrs r16, 0 + 80006e: ff 2c mov r15, r15 + 800070: 00 49 sbci r16, 0x90 ; 144 + 800072: 6e 76 andi r22, 0x6E ; 110 + 800074: 61 6c ori r22, 0xC1 ; 193 + 800076: 69 64 ori r22, 0x49 ; 73 + 800078: 20 6e ori r18, 0xE0 ; 224 + 80007a: 75 6d ori r23, 0xD5 ; 213 + 80007c: 62 65 ori r22, 0x52 ; 82 + 80007e: 72 20 and r7, r2 + 800080: 6f 66 ori r22, 0x6F ; 111 + 800082: 20 61 ori r18, 0x10 ; 16 + 800084: 72 67 ori r23, 0x72 ; 114 + 800086: 75 6d ori r23, 0xD5 ; 213 + 800088: 65 6e ori r22, 0xE5 ; 229 + 80008a: 74 73 andi r23, 0x34 ; 52 + 80008c: 2e 0d add r18, r14 + 80008e: 0a 00 .word 0x000a ; ???? + 800090: 45 72 andi r20, 0x25 ; 37 + 800092: 72 6f ori r23, 0xF2 ; 242 + 800094: 72 20 and r7, r2 + 800096: 6e 75 andi r22, 0x5E ; 94 + 800098: 6d 62 ori r22, 0x2D ; 45 + 80009a: 65 72 andi r22, 0x25 ; 37 + 80009c: 20 70 andi r18, 0x00 ; 0 + 80009e: 61 72 andi r22, 0x21 ; 33 + 8000a0: 73 69 ori r23, 0x93 ; 147 + 8000a2: 6e 67 ori r22, 0x7E ; 126 + 8000a4: 2e 0d add r18, r14 + 8000a6: 0a 00 .word 0x000a ; ???? + 8000a8: 3e 20 and r3, r14 + 8000aa: 4e 65 ori r20, 0x5E ; 94 + 8000ac: 77 20 and r7, r7 + 8000ae: 63 6f ori r22, 0xF3 ; 243 + 8000b0: 6c 6f ori r22, 0xFC ; 252 + 8000b2: 72 3a cpi r23, 0xA2 ; 162 + 8000b4: 20 00 .word 0x0020 ; ???? + 8000b6: 3e 20 and r3, r14 + 8000b8: 4e 65 ori r20, 0x5E ; 94 + 8000ba: 77 20 and r7, r7 + 8000bc: 62 72 andi r22, 0x22 ; 34 + 8000be: 69 67 ori r22, 0x79 ; 121 + 8000c0: 68 74 andi r22, 0x48 ; 72 + 8000c2: 6e 65 ori r22, 0x5E ; 94 + 8000c4: 73 73 andi r23, 0x33 ; 51 + 8000c6: 3a 20 and r3, r10 + 8000c8: 00 3e cpi r16, 0xE0 ; 224 + 8000ca: 20 4e sbci r18, 0xE0 ; 224 + 8000cc: 65 77 andi r22, 0x75 ; 117 + 8000ce: 20 63 ori r18, 0x30 ; 48 + 8000d0: 6f 6c ori r22, 0xCF ; 207 + 8000d2: 6f 72 andi r22, 0x2F ; 47 + 8000d4: 20 6d ori r18, 0xD0 ; 208 + 8000d6: 6f 64 ori r22, 0x4F ; 79 + 8000d8: 65 3a cpi r22, 0xA5 ; 165 + 8000da: 20 00 .word 0x0020 ; ???? + 8000dc: 3e 20 and r3, r14 + 8000de: 53 65 ori r21, 0x53 ; 83 + 8000e0: 74 74 andi r23, 0x44 ; 68 + 8000e2: 69 6e ori r22, 0xE9 ; 233 + 8000e4: 67 73 andi r22, 0x37 ; 55 + 8000e6: 20 6c ori r18, 0xC0 ; 192 + 8000e8: 6f 61 ori r22, 0x1F ; 31 + 8000ea: 64 65 ori r22, 0x54 ; 84 + 8000ec: 64 3a cpi r22, 0xA4 ; 164 + 8000ee: 20 00 .word 0x0020 ; ???? + 8000f0: 2c 20 and r2, r12 + ... + +Disassembly of section .bss: + +008000f4 <__bss_start>: + ... + +008000f5 : + ... + +00800115 : + ... + +00800116 : + ... + +00800117 : + ... + +00800118 : + ... + +00800119 : + ... + +0080011a : + ... + +0080011c

: + ... + +0080011e : + ... + +0080013e : + ... + +Disassembly of section .eeprom: + +00810000 : + ... + +00810001 : + ... + +00810002 : + ... + +00810003 : + ... + +Disassembly of section .comment: + +00000000 <.comment>: + 0: 47 43 sbci r20, 0x37 ; 55 + 2: 43 3a cpi r20, 0xA3 ; 163 + 4: 20 28 or r2, r0 + 6: 47 4e sbci r20, 0xE7 ; 231 + 8: 55 29 or r21, r5 + a: 20 37 cpi r18, 0x70 ; 112 + c: 2e 33 cpi r18, 0x3E ; 62 + e: 2e 30 cpi r18, 0x0E ; 14 + ... + +Disassembly of section .note.gnu.avr.deviceinfo: + +00000000 <.note.gnu.avr.deviceinfo>: + 0: 04 00 .word 0x0004 ; ???? + 2: 00 00 nop + 4: 2b 00 .word 0x002b ; ???? + 6: 00 00 nop + 8: 01 00 .word 0x0001 ; ???? + a: 00 00 nop + c: 41 56 subi r20, 0x61 ; 97 + e: 52 00 .word 0x0052 ; ???? + 10: 00 00 nop + 12: 00 00 nop + 14: 00 20 and r0, r0 + 16: 00 00 nop + 18: 60 00 .word 0x0060 ; ???? + 1a: 00 00 nop + 1c: 00 04 cpc r0, r0 + 1e: 00 00 nop + 20: 00 00 nop + 22: 00 00 nop + 24: 00 02 muls r16, r16 + 26: 00 00 nop + 28: 08 00 .word 0x0008 ; ???? + 2a: 00 00 nop + 2c: 01 00 .word 0x0001 ; ???? + 2e: 00 00 nop + 30: 00 61 ori r16, 0x10 ; 16 + 32: 74 6d ori r23, 0xD4 ; 212 + 34: 65 67 ori r22, 0x75 ; 117 + 36: 61 38 cpi r22, 0x81 ; 129 + 38: 61 00 .word 0x0061 ; ???? + ... + +Disassembly of section .debug_info: + +00000000 <.debug_info>: + 0: 88 04 cpc r8, r8 + 2: 00 00 nop + 4: 02 00 .word 0x0002 ; ???? + 6: 00 00 nop + 8: 00 00 nop + a: 04 01 movw r0, r8 + ... + 14: 02 0f add r16, r18 + 16: 00 00 nop + 18: 00 01 movw r0, r0 + 1a: 08 03 fmul r16, r16 + 1c: 17 00 .word 0x0017 ; ???? + 1e: 00 00 nop + 20: 02 07 cpc r16, r18 + 22: 04 14 cp r0, r4 + 24: 00 00 nop + 26: 00 05 cpc r16, r0 + 28: 1b 00 .word 0x001b ; ???? + 2a: 00 00 nop + 2c: ff 01 movw r30, r30 + 2e: 00 06 cpc r0, r16 + 30: 20 00 .word 0x0020 ; ???? + 32: 00 00 nop + 34: 00 00 nop + 36: 22 00 .word 0x0022 ; ???? + 38: 00 00 nop + 3a: 01 05 cpc r16, r1 + 3c: 03 00 .word 0x0003 ; ???? + 3e: 00 81 ld r16, Z + 40: 00 07 cpc r16, r16 + 42: 29 00 .word 0x0029 ; ???? + 44: 00 00 nop + 46: 00 00 nop + 48: 14 00 .word 0x0014 ; ???? + 4a: 00 00 nop + 4c: 01 05 cpc r16, r1 + 4e: 03 50 subi r16, 0x03 ; 3 + 50: 00 80 ld r0, Z + 52: 00 08 sbc r0, r0 + 54: 2f 00 .word 0x002f ; ???? + 56: 00 00 nop + 58: 00 00 nop + 5a: 14 00 .word 0x0014 ; ???? + 5c: 00 00 nop + 5e: 01 05 cpc r16, r1 + 60: 03 28 or r0, r3 + 62: 00 80 ld r0, Z + 64: 00 09 sbc r16, r0 + 66: 34 00 .word 0x0034 ; ???? + 68: 00 00 nop + 6a: 00 00 nop + 6c: 14 00 .word 0x0014 ; ???? + 6e: 00 00 nop + 70: 01 05 cpc r16, r1 + 72: 03 2f mov r16, r19 + 74: 00 80 ld r0, Z + 76: 00 0a sbc r0, r16 + 78: 39 00 .word 0x0039 ; ???? + 7a: 00 00 nop + 7c: 00 00 nop + 7e: 14 00 .word 0x0014 ; ???? + 80: 00 00 nop + 82: 01 05 cpc r16, r1 + 84: 03 2e mov r0, r19 + 86: 00 80 ld r0, Z + 88: 00 0b sbc r16, r16 + 8a: 3e 00 .word 0x003e ; ???? + 8c: 00 00 nop + 8e: 00 00 nop + 90: 14 00 .word 0x0014 ; ???? + 92: 00 00 nop + 94: 01 05 cpc r16, r1 + 96: 03 2d mov r16, r3 + 98: 00 80 ld r0, Z + 9a: 00 0c add r0, r0 + 9c: 43 00 .word 0x0043 ; ???? + 9e: 00 00 nop + a0: 00 00 nop + a2: 14 00 .word 0x0014 ; ???? + a4: 00 00 nop + a6: 01 05 cpc r16, r1 + a8: 03 5b subi r16, 0xB3 ; 179 + aa: 00 80 ld r0, Z + ac: 00 0d add r16, r0 + ae: 48 00 .word 0x0048 ; ???? + b0: 00 00 nop + b2: 00 00 nop + b4: 14 00 .word 0x0014 ; ???? + b6: 00 00 nop + b8: 01 05 cpc r16, r1 + ba: 03 5a subi r16, 0xA3 ; 163 + bc: 00 80 ld r0, Z + be: 00 0e add r0, r16 + c0: 4d 00 .word 0x004d ; ???? + c2: 00 00 nop + c4: 00 00 nop + c6: 14 00 .word 0x0014 ; ???? + c8: 00 00 nop + ca: 01 05 cpc r16, r1 + cc: 03 55 subi r16, 0x53 ; 83 + ce: 00 80 ld r0, Z + d0: 00 0f add r16, r16 + d2: 53 00 .word 0x0053 ; ???? + d4: 00 00 nop + d6: 00 00 nop + d8: 14 00 .word 0x0014 ; ???? + da: 00 00 nop + dc: 01 05 cpc r16, r1 + de: 03 59 subi r16, 0x93 ; 147 + e0: 00 80 ld r0, Z + e2: 00 10 cpse r0, r0 + e4: 59 00 .word 0x0059 ; ???? + e6: 00 00 nop + e8: 00 00 nop + ea: 14 00 .word 0x0014 ; ???? + ec: 00 00 nop + ee: 01 05 cpc r16, r1 + f0: 03 58 subi r16, 0x83 ; 131 + f2: 00 80 ld r0, Z + f4: 00 11 cpse r16, r0 + f6: 5e 00 .word 0x005e ; ???? + f8: 00 00 nop + fa: 00 00 nop + fc: 14 00 .word 0x0014 ; ???? + fe: 00 00 nop + 100: 01 05 cpc r16, r1 + 102: 03 53 subi r16, 0x33 ; 51 + 104: 00 80 ld r0, Z + 106: 00 12 cpse r0, r16 + 108: 64 00 .word 0x0064 ; ???? + 10a: 00 00 nop + 10c: 00 00 nop + 10e: 14 00 .word 0x0014 ; ???? + 110: 00 00 nop + 112: 01 05 cpc r16, r1 + 114: 03 52 subi r16, 0x23 ; 35 + 116: 00 80 ld r0, Z + 118: 00 13 cpse r16, r16 + 11a: 6a 00 .word 0x006a ; ???? + 11c: 00 00 nop + 11e: 00 00 nop + 120: 14 00 .word 0x0014 ; ???? + 122: 00 00 nop + 124: 01 05 cpc r16, r1 + 126: 03 59 subi r16, 0x93 ; 147 + 128: 00 80 ld r0, Z + 12a: 00 14 cp r0, r0 + 12c: 70 00 .word 0x0070 ; ???? + 12e: 00 00 nop + 130: 00 00 nop + 132: 14 00 .word 0x0014 ; ???? + 134: 00 00 nop + 136: 01 05 cpc r16, r1 + 138: 03 58 subi r16, 0x83 ; 131 + 13a: 00 80 ld r0, Z + 13c: 00 15 cp r16, r0 + 13e: 75 00 .word 0x0075 ; ???? + 140: 00 00 nop + 142: 00 00 nop + 144: 14 00 .word 0x0014 ; ???? + 146: 00 00 nop + 148: 01 05 cpc r16, r1 + 14a: 03 4f sbci r16, 0xF3 ; 243 + 14c: 00 80 ld r0, Z + 14e: 00 16 cp r0, r16 + 150: 7c 00 .word 0x007c ; ???? + 152: 00 00 nop + 154: 00 00 nop + 156: 14 00 .word 0x0014 ; ???? + 158: 00 00 nop + 15a: 01 05 cpc r16, r1 + 15c: 03 4e sbci r16, 0xE3 ; 227 + 15e: 00 80 ld r0, Z + 160: 00 17 cp r16, r16 + 162: 83 00 .word 0x0083 ; ???? + 164: 00 00 nop + 166: 00 00 nop + 168: 1b 00 .word 0x001b ; ???? + 16a: 00 00 nop + 16c: 01 05 cpc r16, r1 + 16e: 03 4c sbci r16, 0xC3 ; 195 + 170: 00 80 ld r0, Z + 172: 00 18 sub r0, r0 + 174: 89 00 .word 0x0089 ; ???? + 176: 00 00 nop + 178: 00 00 nop + 17a: 1b 00 .word 0x001b ; ???? + 17c: 00 00 nop + 17e: 01 05 cpc r16, r1 + 180: 03 4a sbci r16, 0xA3 ; 163 + 182: 00 80 ld r0, Z + 184: 00 19 sub r16, r0 + 186: 8f 00 .word 0x008f ; ???? + 188: 00 00 nop + 18a: 00 00 nop + 18c: 1b 00 .word 0x001b ; ???? + 18e: 00 00 nop + 190: 01 05 cpc r16, r1 + 192: 03 48 sbci r16, 0x83 ; 131 + 194: 00 80 ld r0, Z + 196: 00 1a sub r0, r16 + 198: 95 00 .word 0x0095 ; ???? + 19a: 00 00 nop + 19c: 00 00 nop + 19e: 1b 00 .word 0x001b ; ???? + 1a0: 00 00 nop + 1a2: 01 05 cpc r16, r1 + 1a4: 03 46 sbci r16, 0x63 ; 99 + 1a6: 00 80 ld r0, Z + 1a8: 00 1b sub r16, r16 + 1aa: 9a 00 .word 0x009a ; ???? + 1ac: 00 00 nop + 1ae: 00 00 nop + 1b0: 14 00 .word 0x0014 ; ???? + 1b2: 00 00 nop + 1b4: 01 05 cpc r16, r1 + 1b6: 03 59 subi r16, 0x93 ; 147 + 1b8: 00 80 ld r0, Z + 1ba: 00 1c adc r0, r0 + 1bc: a0 00 .word 0x00a0 ; ???? + 1be: 00 00 nop + 1c0: 00 00 nop + 1c2: 14 00 .word 0x0014 ; ???? + 1c4: 00 00 nop + 1c6: 01 05 cpc r16, r1 + 1c8: 03 58 subi r16, 0x83 ; 131 + 1ca: 00 80 ld r0, Z + 1cc: 00 1d adc r16, r0 + 1ce: a5 00 .word 0x00a5 ; ???? + 1d0: 00 00 nop + 1d2: 00 00 nop + 1d4: 14 00 .word 0x0014 ; ???? + 1d6: 00 00 nop + 1d8: 01 05 cpc r16, r1 + 1da: 03 45 sbci r16, 0x53 ; 83 + 1dc: 00 80 ld r0, Z + 1de: 00 1e adc r0, r16 + 1e0: ab 00 .word 0x00ab ; ???? + 1e2: 00 00 nop + 1e4: 00 00 nop + 1e6: 14 00 .word 0x0014 ; ???? + 1e8: 00 00 nop + 1ea: 01 05 cpc r16, r1 + 1ec: 03 44 sbci r16, 0x43 ; 67 + 1ee: 00 80 ld r0, Z + 1f0: 00 1f adc r16, r16 + 1f2: b1 00 .word 0x00b1 ; ???? + 1f4: 00 00 nop + 1f6: 00 00 nop + 1f8: 14 00 .word 0x0014 ; ???? + 1fa: 00 00 nop + 1fc: 01 05 cpc r16, r1 + 1fe: 03 43 sbci r16, 0x33 ; 51 + 200: 00 80 ld r0, Z + 202: 00 20 and r0, r0 + 204: b6 00 .word 0x00b6 ; ???? + 206: 00 00 nop + 208: 00 00 nop + 20a: 14 00 .word 0x0014 ; ???? + 20c: 00 00 nop + 20e: 01 05 cpc r16, r1 + 210: 03 42 sbci r16, 0x23 ; 35 + 212: 00 80 ld r0, Z + 214: 00 21 and r16, r0 + 216: bb 00 .word 0x00bb ; ???? + 218: 00 00 nop + 21a: 00 00 nop + 21c: 14 00 .word 0x0014 ; ???? + 21e: 00 00 nop + 220: 01 05 cpc r16, r1 + 222: 03 50 subi r16, 0x03 ; 3 + 224: 00 80 ld r0, Z + 226: 00 22 and r0, r16 + 228: c1 00 .word 0x00c1 ; ???? + 22a: 00 00 nop + 22c: 00 00 nop + 22e: 14 00 .word 0x0014 ; ???? + 230: 00 00 nop + 232: 01 05 cpc r16, r1 + 234: 03 2c mov r0, r3 + 236: 00 80 ld r0, Z + 238: 00 23 and r16, r16 + 23a: c5 00 .word 0x00c5 ; ???? + 23c: 00 00 nop + 23e: 00 00 nop + 240: 14 00 .word 0x0014 ; ???? + 242: 00 00 nop + 244: 01 05 cpc r16, r1 + 246: 03 2b or r16, r19 + 248: 00 80 ld r0, Z + 24a: 00 24 eor r0, r0 + 24c: cb 00 .word 0x00cb ; ???? + 24e: 00 00 nop + 250: 00 00 nop + 252: 14 00 .word 0x0014 ; ???? + 254: 00 00 nop + 256: 01 05 cpc r16, r1 + 258: 03 2a or r0, r19 + 25a: 00 80 ld r0, Z + 25c: 00 25 eor r16, r0 + 25e: d1 00 .word 0x00d1 ; ???? + 260: 00 00 nop + 262: 00 00 nop + 264: 14 00 .word 0x0014 ; ???? + 266: 00 00 nop + 268: 01 05 cpc r16, r1 + 26a: 03 40 sbci r16, 0x03 ; 3 + 26c: 00 80 ld r0, Z + 26e: 00 26 eor r0, r16 + 270: d7 00 .word 0x00d7 ; ???? + 272: 00 00 nop + 274: 00 00 nop + 276: 14 00 .word 0x0014 ; ???? + 278: 00 00 nop + 27a: 01 05 cpc r16, r1 + 27c: 03 40 sbci r16, 0x03 ; 3 + 27e: 00 80 ld r0, Z + 280: 00 27 eor r16, r16 + 282: dd 00 .word 0x00dd ; ???? + 284: 00 00 nop + 286: 00 00 nop + 288: 14 00 .word 0x0014 ; ???? + 28a: 00 00 nop + 28c: 01 05 cpc r16, r1 + 28e: 03 29 or r16, r3 + 290: 00 80 ld r0, Z + 292: 00 28 or r0, r0 + 294: e3 00 .word 0x00e3 ; ???? + 296: 00 00 nop + 298: 00 00 nop + 29a: 14 00 .word 0x0014 ; ???? + 29c: 00 00 nop + 29e: 01 05 cpc r16, r1 + 2a0: 03 20 and r0, r3 + 2a2: 00 80 ld r0, Z + 2a4: 00 29 or r16, r0 + 2a6: e8 00 .word 0x00e8 ; ???? + 2a8: 00 00 nop + 2aa: 00 00 nop + 2ac: 14 00 .word 0x0014 ; ???? + 2ae: 00 00 nop + 2b0: 01 05 cpc r16, r1 + 2b2: 03 56 subi r16, 0x63 ; 99 + 2b4: 00 80 ld r0, Z + 2b6: 00 2a or r0, r16 + 2b8: ed 00 .word 0x00ed ; ???? + 2ba: 00 00 nop + 2bc: 00 00 nop + 2be: 14 00 .word 0x0014 ; ???? + 2c0: 00 00 nop + 2c2: 01 05 cpc r16, r1 + 2c4: 03 21 and r16, r3 + 2c6: 00 80 ld r0, Z + 2c8: 00 2b or r16, r16 + 2ca: f2 00 .word 0x00f2 ; ???? + 2cc: 00 00 nop + 2ce: 00 00 nop + 2d0: 14 00 .word 0x0014 ; ???? + 2d2: 00 00 nop + 2d4: 01 05 cpc r16, r1 + 2d6: 03 23 and r16, r19 + 2d8: 00 80 ld r0, Z + 2da: 00 2c mov r0, r0 + 2dc: f7 00 .word 0x00f7 ; ???? + 2de: 00 00 nop + 2e0: 00 00 nop + 2e2: 14 00 .word 0x0014 ; ???? + 2e4: 00 00 nop + 2e6: 01 05 cpc r16, r1 + 2e8: 03 22 and r0, r19 + 2ea: 00 80 ld r0, Z + 2ec: 00 2d mov r16, r0 + 2ee: fc 00 .word 0x00fc ; ???? + 2f0: 00 00 nop + 2f2: 00 00 nop + 2f4: 14 00 .word 0x0014 ; ???? + 2f6: 00 00 nop + 2f8: 01 05 cpc r16, r1 + 2fa: 03 41 sbci r16, 0x13 ; 19 + 2fc: 00 80 ld r0, Z + 2fe: 00 2e mov r0, r16 + 300: 02 01 movw r0, r4 + 302: 00 00 nop + 304: 00 00 nop + 306: 14 00 .word 0x0014 ; ???? + 308: 00 00 nop + 30a: 01 05 cpc r16, r1 + 30c: 03 38 cpi r16, 0x83 ; 131 + 30e: 00 80 ld r0, Z + 310: 00 2f mov r16, r16 + 312: 08 01 movw r0, r16 + 314: 00 00 nop + 316: 00 00 nop + 318: 14 00 .word 0x0014 ; ???? + 31a: 00 00 nop + 31c: 01 05 cpc r16, r1 + 31e: 03 37 cpi r16, 0x73 ; 115 + 320: 00 80 ld r0, Z + 322: 00 30 cpi r16, 0x00 ; 0 + 324: 0d 01 movw r0, r26 + 326: 00 00 nop + 328: 00 00 nop + 32a: 14 00 .word 0x0014 ; ???? + 32c: 00 00 nop + 32e: 01 05 cpc r16, r1 + 330: 03 36 cpi r16, 0x63 ; 99 + 332: 00 80 ld r0, Z + 334: 00 31 cpi r16, 0x10 ; 16 + 336: 12 01 movw r2, r4 + 338: 00 00 nop + 33a: 00 00 nop + 33c: 14 00 .word 0x0014 ; ???? + 33e: 00 00 nop + 340: 01 05 cpc r16, r1 + 342: 03 35 cpi r16, 0x53 ; 83 + 344: 00 80 ld r0, Z + 346: 00 32 cpi r16, 0x20 ; 32 + 348: 18 01 movw r2, r16 + 34a: 00 00 nop + 34c: 00 00 nop + 34e: 14 00 .word 0x0014 ; ???? + 350: 00 00 nop + 352: 01 05 cpc r16, r1 + 354: 03 34 cpi r16, 0x43 ; 67 + 356: 00 80 ld r0, Z + 358: 00 33 cpi r16, 0x30 ; 48 + 35a: 1d 01 movw r2, r26 + 35c: 00 00 nop + 35e: 00 00 nop + 360: 14 00 .word 0x0014 ; ???? + 362: 00 00 nop + 364: 01 05 cpc r16, r1 + 366: 03 33 cpi r16, 0x33 ; 51 + 368: 00 80 ld r0, Z + 36a: 00 34 cpi r16, 0x40 ; 64 + 36c: 22 01 movw r4, r4 + 36e: 00 00 nop + 370: 00 00 nop + 372: 14 00 .word 0x0014 ; ???? + 374: 00 00 nop + 376: 01 05 cpc r16, r1 + 378: 03 32 cpi r16, 0x23 ; 35 + 37a: 00 80 ld r0, Z + 37c: 00 35 cpi r16, 0x50 ; 80 + 37e: 28 01 movw r4, r16 + 380: 00 00 nop + 382: 00 00 nop + 384: 14 00 .word 0x0014 ; ???? + 386: 00 00 nop + 388: 01 05 cpc r16, r1 + 38a: 03 31 cpi r16, 0x13 ; 19 + 38c: 00 80 ld r0, Z + 38e: 00 36 cpi r16, 0x60 ; 96 + 390: 2d 01 movw r4, r26 + 392: 00 00 nop + 394: 00 00 nop + 396: 14 00 .word 0x0014 ; ???? + 398: 00 00 nop + 39a: 01 05 cpc r16, r1 + 39c: 03 30 cpi r16, 0x03 ; 3 + 39e: 00 80 ld r0, Z + 3a0: 00 37 cpi r16, 0x70 ; 112 + 3a2: 32 01 movw r6, r4 + 3a4: 00 00 nop + 3a6: 00 00 nop + 3a8: 1b 00 .word 0x001b ; ???? + 3aa: 00 00 nop + 3ac: 01 05 cpc r16, r1 + 3ae: 03 3e cpi r16, 0xE3 ; 227 + 3b0: 00 80 ld r0, Z + 3b2: 00 38 cpi r16, 0x80 ; 128 + 3b4: 37 01 movw r6, r14 + 3b6: 00 00 nop + 3b8: 00 00 nop + 3ba: 14 00 .word 0x0014 ; ???? + 3bc: 00 00 nop + 3be: 01 05 cpc r16, r1 + 3c0: 03 3d cpi r16, 0xD3 ; 211 + 3c2: 00 80 ld r0, Z + 3c4: 00 39 cpi r16, 0x90 ; 144 + 3c6: 3c 01 movw r6, r24 + 3c8: 00 00 nop + 3ca: 00 00 nop + 3cc: 14 00 .word 0x0014 ; ???? + 3ce: 00 00 nop + 3d0: 01 05 cpc r16, r1 + 3d2: 03 3c cpi r16, 0xC3 ; 195 + 3d4: 00 80 ld r0, Z + 3d6: 00 3a cpi r16, 0xA0 ; 160 + 3d8: 41 01 movw r8, r2 + 3da: 00 00 nop + 3dc: 00 00 nop + 3de: 14 00 .word 0x0014 ; ???? + 3e0: 00 00 nop + 3e2: 01 05 cpc r16, r1 + 3e4: 03 5f subi r16, 0xF3 ; 243 + 3e6: 00 80 ld r0, Z + 3e8: 00 3b cpi r16, 0xB0 ; 176 + 3ea: 46 01 movw r8, r12 + 3ec: 00 00 nop + 3ee: 00 00 nop + 3f0: 1b 00 .word 0x001b ; ???? + 3f2: 00 00 nop + 3f4: 01 05 cpc r16, r1 + 3f6: 03 5d subi r16, 0xD3 ; 211 + 3f8: 00 80 ld r0, Z + 3fa: 00 3c cpi r16, 0xC0 ; 192 + 3fc: 49 01 movw r8, r18 + 3fe: 00 00 nop + 400: 00 00 nop + 402: 14 00 .word 0x0014 ; ???? + 404: 00 00 nop + 406: 01 05 cpc r16, r1 + 408: 03 55 subi r16, 0x53 ; 83 + 40a: 00 80 ld r0, Z + 40c: 00 3d cpi r16, 0xD0 ; 208 + 40e: 4f 01 movw r8, r30 + 410: 00 00 nop + 412: 00 00 nop + 414: 14 00 .word 0x0014 ; ???? + 416: 00 00 nop + 418: 01 05 cpc r16, r1 + 41a: 03 54 subi r16, 0x43 ; 67 + 41c: 00 80 ld r0, Z + 41e: 00 3e cpi r16, 0xE0 ; 224 + 420: 56 01 movw r10, r12 + 422: 00 00 nop + 424: 00 00 nop + 426: 14 00 .word 0x0014 ; ???? + 428: 00 00 nop + 42a: 01 05 cpc r16, r1 + 42c: 03 51 subi r16, 0x13 ; 19 + 42e: 00 80 ld r0, Z + 430: 00 3f cpi r16, 0xF0 ; 240 + 432: 5d 01 movw r10, r26 + 434: 00 00 nop + 436: 00 00 nop + 438: 14 00 .word 0x0014 ; ???? + 43a: 00 00 nop + 43c: 01 05 cpc r16, r1 + 43e: 03 57 subi r16, 0x73 ; 115 + 440: 00 80 ld r0, Z + 442: 00 40 sbci r16, 0x00 ; 0 + 444: 63 01 movw r12, r6 + 446: 00 00 nop + 448: 00 00 nop + 44a: 14 00 .word 0x0014 ; ???? + 44c: 00 00 nop + 44e: 01 05 cpc r16, r1 + 450: 03 50 subi r16, 0x03 ; 3 + 452: 00 80 ld r0, Z + 454: 00 41 sbci r16, 0x10 ; 16 + 456: 69 01 movw r12, r18 + 458: 00 00 nop + 45a: 00 00 nop + 45c: 14 00 .word 0x0014 ; ???? + 45e: 00 00 nop + 460: 01 05 cpc r16, r1 + 462: 03 27 eor r16, r19 + 464: 00 80 ld r0, Z + 466: 00 42 sbci r16, 0x20 ; 32 + 468: 6f 01 movw r12, r30 + 46a: 00 00 nop + 46c: 00 00 nop + 46e: 14 00 .word 0x0014 ; ???? + 470: 00 00 nop + 472: 01 05 cpc r16, r1 + 474: 03 26 eor r0, r19 + 476: 00 80 ld r0, Z + 478: 00 43 sbci r16, 0x30 ; 48 + 47a: 76 01 movw r14, r12 + 47c: 00 00 nop + 47e: 00 00 nop + 480: 1b 00 .word 0x001b ; ???? + 482: 00 00 nop + 484: 01 05 cpc r16, r1 + 486: 03 24 eor r0, r3 + 488: 00 80 ld r0, Z + ... + +Disassembly of section .debug_abbrev: + +00000000 <.debug_abbrev>: + 0: 01 11 cpse r16, r1 + 2: 01 25 eor r16, r1 + 4: 0e 10 cpse r0, r14 + 6: 06 00 .word 0x0006 ; ???? + 8: 00 02 muls r16, r16 + a: 24 00 .word 0x0024 ; ???? + c: 03 0e add r0, r19 + e: 0b 0b sbc r16, r27 + 10: 3e 0b sbc r19, r30 + 12: 00 00 nop + 14: 03 24 eor r0, r3 + 16: 00 03 mulsu r16, r16 + 18: 0e 0b sbc r16, r30 + 1a: 0b 3e cpi r16, 0xEB ; 235 + 1c: 0b 00 .word 0x000b ; ???? + 1e: 00 04 cpc r0, r0 + 20: 01 01 movw r0, r2 + 22: 49 13 cpse r20, r25 + 24: 00 00 nop + 26: 05 21 and r16, r5 + 28: 00 49 sbci r16, 0x90 ; 144 + 2a: 13 2f mov r17, r19 + 2c: 05 00 .word 0x0005 ; ???? + 2e: 00 06 cpc r0, r16 + 30: 34 00 .word 0x0034 ; ???? + 32: 03 0e add r0, r19 + 34: 3a 0b sbc r19, r26 + 36: 3b 0b sbc r19, r27 + 38: 49 13 cpse r20, r25 + 3a: 3f 0c add r3, r15 + 3c: 02 0a sbc r0, r18 + 3e: 00 00 nop + 40: 07 34 cpi r16, 0x47 ; 71 + 42: 00 03 mulsu r16, r16 + 44: 0e 3a cpi r16, 0xAE ; 174 + 46: 0b 3b cpi r16, 0xBB ; 187 + 48: 0b 49 sbci r16, 0x9B ; 155 + 4a: 13 3f cpi r17, 0xF3 ; 243 + 4c: 0c 02 muls r16, r28 + 4e: 0a 00 .word 0x000a ; ???? + 50: 00 08 sbc r0, r0 + 52: 34 00 .word 0x0034 ; ???? + 54: 03 0e add r0, r19 + 56: 3a 0b sbc r19, r26 + 58: 3b 0b sbc r19, r27 + 5a: 49 13 cpse r20, r25 + 5c: 3f 0c add r3, r15 + 5e: 02 0a sbc r0, r18 + 60: 00 00 nop + 62: 09 34 cpi r16, 0x49 ; 73 + 64: 00 03 mulsu r16, r16 + 66: 0e 3a cpi r16, 0xAE ; 174 + 68: 0b 3b cpi r16, 0xBB ; 187 + 6a: 0b 49 sbci r16, 0x9B ; 155 + 6c: 13 3f cpi r17, 0xF3 ; 243 + 6e: 0c 02 muls r16, r28 + 70: 0a 00 .word 0x000a ; ???? + 72: 00 0a sbc r0, r16 + 74: 34 00 .word 0x0034 ; ???? + 76: 03 0e add r0, r19 + 78: 3a 0b sbc r19, r26 + 7a: 3b 0b sbc r19, r27 + 7c: 49 13 cpse r20, r25 + 7e: 3f 0c add r3, r15 + 80: 02 0a sbc r0, r18 + 82: 00 00 nop + 84: 0b 34 cpi r16, 0x4B ; 75 + 86: 00 03 mulsu r16, r16 + 88: 0e 3a cpi r16, 0xAE ; 174 + 8a: 0b 3b cpi r16, 0xBB ; 187 + 8c: 0b 49 sbci r16, 0x9B ; 155 + 8e: 13 3f cpi r17, 0xF3 ; 243 + 90: 0c 02 muls r16, r28 + 92: 0a 00 .word 0x000a ; ???? + 94: 00 0c add r0, r0 + 96: 34 00 .word 0x0034 ; ???? + 98: 03 0e add r0, r19 + 9a: 3a 0b sbc r19, r26 + 9c: 3b 0b sbc r19, r27 + 9e: 49 13 cpse r20, r25 + a0: 3f 0c add r3, r15 + a2: 02 0a sbc r0, r18 + a4: 00 00 nop + a6: 0d 34 cpi r16, 0x4D ; 77 + a8: 00 03 mulsu r16, r16 + aa: 0e 3a cpi r16, 0xAE ; 174 + ac: 0b 3b cpi r16, 0xBB ; 187 + ae: 0b 49 sbci r16, 0x9B ; 155 + b0: 13 3f cpi r17, 0xF3 ; 243 + b2: 0c 02 muls r16, r28 + b4: 0a 00 .word 0x000a ; ???? + b6: 00 0e add r0, r16 + b8: 34 00 .word 0x0034 ; ???? + ba: 03 0e add r0, r19 + bc: 3a 0b sbc r19, r26 + be: 3b 0b sbc r19, r27 + c0: 49 13 cpse r20, r25 + c2: 3f 0c add r3, r15 + c4: 02 0a sbc r0, r18 + c6: 00 00 nop + c8: 0f 34 cpi r16, 0x4F ; 79 + ca: 00 03 mulsu r16, r16 + cc: 0e 3a cpi r16, 0xAE ; 174 + ce: 0b 3b cpi r16, 0xBB ; 187 + d0: 0b 49 sbci r16, 0x9B ; 155 + d2: 13 3f cpi r17, 0xF3 ; 243 + d4: 0c 02 muls r16, r28 + d6: 0a 00 .word 0x000a ; ???? + d8: 00 10 cpse r0, r0 + da: 34 00 .word 0x0034 ; ???? + dc: 03 0e add r0, r19 + de: 3a 0b sbc r19, r26 + e0: 3b 0b sbc r19, r27 + e2: 49 13 cpse r20, r25 + e4: 3f 0c add r3, r15 + e6: 02 0a sbc r0, r18 + e8: 00 00 nop + ea: 11 34 cpi r17, 0x41 ; 65 + ec: 00 03 mulsu r16, r16 + ee: 0e 3a cpi r16, 0xAE ; 174 + f0: 0b 3b cpi r16, 0xBB ; 187 + f2: 0b 49 sbci r16, 0x9B ; 155 + f4: 13 3f cpi r17, 0xF3 ; 243 + f6: 0c 02 muls r16, r28 + f8: 0a 00 .word 0x000a ; ???? + fa: 00 12 cpse r0, r16 + fc: 34 00 .word 0x0034 ; ???? + fe: 03 0e add r0, r19 + 100: 3a 0b sbc r19, r26 + 102: 3b 0b sbc r19, r27 + 104: 49 13 cpse r20, r25 + 106: 3f 0c add r3, r15 + 108: 02 0a sbc r0, r18 + 10a: 00 00 nop + 10c: 13 34 cpi r17, 0x43 ; 67 + 10e: 00 03 mulsu r16, r16 + 110: 0e 3a cpi r16, 0xAE ; 174 + 112: 0b 3b cpi r16, 0xBB ; 187 + 114: 0b 49 sbci r16, 0x9B ; 155 + 116: 13 3f cpi r17, 0xF3 ; 243 + 118: 0c 02 muls r16, r28 + 11a: 0a 00 .word 0x000a ; ???? + 11c: 00 14 cp r0, r0 + 11e: 34 00 .word 0x0034 ; ???? + 120: 03 0e add r0, r19 + 122: 3a 0b sbc r19, r26 + 124: 3b 0b sbc r19, r27 + 126: 49 13 cpse r20, r25 + 128: 3f 0c add r3, r15 + 12a: 02 0a sbc r0, r18 + 12c: 00 00 nop + 12e: 15 34 cpi r17, 0x45 ; 69 + 130: 00 03 mulsu r16, r16 + 132: 0e 3a cpi r16, 0xAE ; 174 + 134: 0b 3b cpi r16, 0xBB ; 187 + 136: 0b 49 sbci r16, 0x9B ; 155 + 138: 13 3f cpi r17, 0xF3 ; 243 + 13a: 0c 02 muls r16, r28 + 13c: 0a 00 .word 0x000a ; ???? + 13e: 00 16 cp r0, r16 + 140: 34 00 .word 0x0034 ; ???? + 142: 03 0e add r0, r19 + 144: 3a 0b sbc r19, r26 + 146: 3b 0b sbc r19, r27 + 148: 49 13 cpse r20, r25 + 14a: 3f 0c add r3, r15 + 14c: 02 0a sbc r0, r18 + 14e: 00 00 nop + 150: 17 34 cpi r17, 0x47 ; 71 + 152: 00 03 mulsu r16, r16 + 154: 0e 3a cpi r16, 0xAE ; 174 + 156: 0b 3b cpi r16, 0xBB ; 187 + 158: 0b 49 sbci r16, 0x9B ; 155 + 15a: 13 3f cpi r17, 0xF3 ; 243 + 15c: 0c 02 muls r16, r28 + 15e: 0a 00 .word 0x000a ; ???? + 160: 00 18 sub r0, r0 + 162: 34 00 .word 0x0034 ; ???? + 164: 03 0e add r0, r19 + 166: 3a 0b sbc r19, r26 + 168: 3b 0b sbc r19, r27 + 16a: 49 13 cpse r20, r25 + 16c: 3f 0c add r3, r15 + 16e: 02 0a sbc r0, r18 + 170: 00 00 nop + 172: 19 34 cpi r17, 0x49 ; 73 + 174: 00 03 mulsu r16, r16 + 176: 0e 3a cpi r16, 0xAE ; 174 + 178: 0b 3b cpi r16, 0xBB ; 187 + 17a: 0b 49 sbci r16, 0x9B ; 155 + 17c: 13 3f cpi r17, 0xF3 ; 243 + 17e: 0c 02 muls r16, r28 + 180: 0a 00 .word 0x000a ; ???? + 182: 00 1a sub r0, r16 + 184: 34 00 .word 0x0034 ; ???? + 186: 03 0e add r0, r19 + 188: 3a 0b sbc r19, r26 + 18a: 3b 0b sbc r19, r27 + 18c: 49 13 cpse r20, r25 + 18e: 3f 0c add r3, r15 + 190: 02 0a sbc r0, r18 + 192: 00 00 nop + 194: 1b 34 cpi r17, 0x4B ; 75 + 196: 00 03 mulsu r16, r16 + 198: 0e 3a cpi r16, 0xAE ; 174 + 19a: 0b 3b cpi r16, 0xBB ; 187 + 19c: 0b 49 sbci r16, 0x9B ; 155 + 19e: 13 3f cpi r17, 0xF3 ; 243 + 1a0: 0c 02 muls r16, r28 + 1a2: 0a 00 .word 0x000a ; ???? + 1a4: 00 1c adc r0, r0 + 1a6: 34 00 .word 0x0034 ; ???? + 1a8: 03 0e add r0, r19 + 1aa: 3a 0b sbc r19, r26 + 1ac: 3b 0b sbc r19, r27 + 1ae: 49 13 cpse r20, r25 + 1b0: 3f 0c add r3, r15 + 1b2: 02 0a sbc r0, r18 + 1b4: 00 00 nop + 1b6: 1d 34 cpi r17, 0x4D ; 77 + 1b8: 00 03 mulsu r16, r16 + 1ba: 0e 3a cpi r16, 0xAE ; 174 + 1bc: 0b 3b cpi r16, 0xBB ; 187 + 1be: 0b 49 sbci r16, 0x9B ; 155 + 1c0: 13 3f cpi r17, 0xF3 ; 243 + 1c2: 0c 02 muls r16, r28 + 1c4: 0a 00 .word 0x000a ; ???? + 1c6: 00 1e adc r0, r16 + 1c8: 34 00 .word 0x0034 ; ???? + 1ca: 03 0e add r0, r19 + 1cc: 3a 0b sbc r19, r26 + 1ce: 3b 0b sbc r19, r27 + 1d0: 49 13 cpse r20, r25 + 1d2: 3f 0c add r3, r15 + 1d4: 02 0a sbc r0, r18 + 1d6: 00 00 nop + 1d8: 1f 34 cpi r17, 0x4F ; 79 + 1da: 00 03 mulsu r16, r16 + 1dc: 0e 3a cpi r16, 0xAE ; 174 + 1de: 0b 3b cpi r16, 0xBB ; 187 + 1e0: 0b 49 sbci r16, 0x9B ; 155 + 1e2: 13 3f cpi r17, 0xF3 ; 243 + 1e4: 0c 02 muls r16, r28 + 1e6: 0a 00 .word 0x000a ; ???? + 1e8: 00 20 and r0, r0 + 1ea: 34 00 .word 0x0034 ; ???? + 1ec: 03 0e add r0, r19 + 1ee: 3a 0b sbc r19, r26 + 1f0: 3b 0b sbc r19, r27 + 1f2: 49 13 cpse r20, r25 + 1f4: 3f 0c add r3, r15 + 1f6: 02 0a sbc r0, r18 + 1f8: 00 00 nop + 1fa: 21 34 cpi r18, 0x41 ; 65 + 1fc: 00 03 mulsu r16, r16 + 1fe: 0e 3a cpi r16, 0xAE ; 174 + 200: 0b 3b cpi r16, 0xBB ; 187 + 202: 0b 49 sbci r16, 0x9B ; 155 + 204: 13 3f cpi r17, 0xF3 ; 243 + 206: 0c 02 muls r16, r28 + 208: 0a 00 .word 0x000a ; ???? + 20a: 00 22 and r0, r16 + 20c: 34 00 .word 0x0034 ; ???? + 20e: 03 0e add r0, r19 + 210: 3a 0b sbc r19, r26 + 212: 3b 0b sbc r19, r27 + 214: 49 13 cpse r20, r25 + 216: 3f 0c add r3, r15 + 218: 02 0a sbc r0, r18 + 21a: 00 00 nop + 21c: 23 34 cpi r18, 0x43 ; 67 + 21e: 00 03 mulsu r16, r16 + 220: 0e 3a cpi r16, 0xAE ; 174 + 222: 0b 3b cpi r16, 0xBB ; 187 + 224: 0b 49 sbci r16, 0x9B ; 155 + 226: 13 3f cpi r17, 0xF3 ; 243 + 228: 0c 02 muls r16, r28 + 22a: 0a 00 .word 0x000a ; ???? + 22c: 00 24 eor r0, r0 + 22e: 34 00 .word 0x0034 ; ???? + 230: 03 0e add r0, r19 + 232: 3a 0b sbc r19, r26 + 234: 3b 0b sbc r19, r27 + 236: 49 13 cpse r20, r25 + 238: 3f 0c add r3, r15 + 23a: 02 0a sbc r0, r18 + 23c: 00 00 nop + 23e: 25 34 cpi r18, 0x45 ; 69 + 240: 00 03 mulsu r16, r16 + 242: 0e 3a cpi r16, 0xAE ; 174 + 244: 0b 3b cpi r16, 0xBB ; 187 + 246: 0b 49 sbci r16, 0x9B ; 155 + 248: 13 3f cpi r17, 0xF3 ; 243 + 24a: 0c 02 muls r16, r28 + 24c: 0a 00 .word 0x000a ; ???? + 24e: 00 26 eor r0, r16 + 250: 34 00 .word 0x0034 ; ???? + 252: 03 0e add r0, r19 + 254: 3a 0b sbc r19, r26 + 256: 3b 0b sbc r19, r27 + 258: 49 13 cpse r20, r25 + 25a: 3f 0c add r3, r15 + 25c: 02 0a sbc r0, r18 + 25e: 00 00 nop + 260: 27 34 cpi r18, 0x47 ; 71 + 262: 00 03 mulsu r16, r16 + 264: 0e 3a cpi r16, 0xAE ; 174 + 266: 0b 3b cpi r16, 0xBB ; 187 + 268: 0b 49 sbci r16, 0x9B ; 155 + 26a: 13 3f cpi r17, 0xF3 ; 243 + 26c: 0c 02 muls r16, r28 + 26e: 0a 00 .word 0x000a ; ???? + 270: 00 28 or r0, r0 + 272: 34 00 .word 0x0034 ; ???? + 274: 03 0e add r0, r19 + 276: 3a 0b sbc r19, r26 + 278: 3b 0b sbc r19, r27 + 27a: 49 13 cpse r20, r25 + 27c: 3f 0c add r3, r15 + 27e: 02 0a sbc r0, r18 + 280: 00 00 nop + 282: 29 34 cpi r18, 0x49 ; 73 + 284: 00 03 mulsu r16, r16 + 286: 0e 3a cpi r16, 0xAE ; 174 + 288: 0b 3b cpi r16, 0xBB ; 187 + 28a: 0b 49 sbci r16, 0x9B ; 155 + 28c: 13 3f cpi r17, 0xF3 ; 243 + 28e: 0c 02 muls r16, r28 + 290: 0a 00 .word 0x000a ; ???? + 292: 00 2a or r0, r16 + 294: 34 00 .word 0x0034 ; ???? + 296: 03 0e add r0, r19 + 298: 3a 0b sbc r19, r26 + 29a: 3b 0b sbc r19, r27 + 29c: 49 13 cpse r20, r25 + 29e: 3f 0c add r3, r15 + 2a0: 02 0a sbc r0, r18 + 2a2: 00 00 nop + 2a4: 2b 34 cpi r18, 0x4B ; 75 + 2a6: 00 03 mulsu r16, r16 + 2a8: 0e 3a cpi r16, 0xAE ; 174 + 2aa: 0b 3b cpi r16, 0xBB ; 187 + 2ac: 0b 49 sbci r16, 0x9B ; 155 + 2ae: 13 3f cpi r17, 0xF3 ; 243 + 2b0: 0c 02 muls r16, r28 + 2b2: 0a 00 .word 0x000a ; ???? + 2b4: 00 2c mov r0, r0 + 2b6: 34 00 .word 0x0034 ; ???? + 2b8: 03 0e add r0, r19 + 2ba: 3a 0b sbc r19, r26 + 2bc: 3b 0b sbc r19, r27 + 2be: 49 13 cpse r20, r25 + 2c0: 3f 0c add r3, r15 + 2c2: 02 0a sbc r0, r18 + 2c4: 00 00 nop + 2c6: 2d 34 cpi r18, 0x4D ; 77 + 2c8: 00 03 mulsu r16, r16 + 2ca: 0e 3a cpi r16, 0xAE ; 174 + 2cc: 0b 3b cpi r16, 0xBB ; 187 + 2ce: 0b 49 sbci r16, 0x9B ; 155 + 2d0: 13 3f cpi r17, 0xF3 ; 243 + 2d2: 0c 02 muls r16, r28 + 2d4: 0a 00 .word 0x000a ; ???? + 2d6: 00 2e mov r0, r16 + 2d8: 34 00 .word 0x0034 ; ???? + 2da: 03 0e add r0, r19 + 2dc: 3a 0b sbc r19, r26 + 2de: 3b 0b sbc r19, r27 + 2e0: 49 13 cpse r20, r25 + 2e2: 3f 0c add r3, r15 + 2e4: 02 0a sbc r0, r18 + 2e6: 00 00 nop + 2e8: 2f 34 cpi r18, 0x4F ; 79 + 2ea: 00 03 mulsu r16, r16 + 2ec: 0e 3a cpi r16, 0xAE ; 174 + 2ee: 0b 3b cpi r16, 0xBB ; 187 + 2f0: 0b 49 sbci r16, 0x9B ; 155 + 2f2: 13 3f cpi r17, 0xF3 ; 243 + 2f4: 0c 02 muls r16, r28 + 2f6: 0a 00 .word 0x000a ; ???? + 2f8: 00 30 cpi r16, 0x00 ; 0 + 2fa: 34 00 .word 0x0034 ; ???? + 2fc: 03 0e add r0, r19 + 2fe: 3a 0b sbc r19, r26 + 300: 3b 0b sbc r19, r27 + 302: 49 13 cpse r20, r25 + 304: 3f 0c add r3, r15 + 306: 02 0a sbc r0, r18 + 308: 00 00 nop + 30a: 31 34 cpi r19, 0x41 ; 65 + 30c: 00 03 mulsu r16, r16 + 30e: 0e 3a cpi r16, 0xAE ; 174 + 310: 0b 3b cpi r16, 0xBB ; 187 + 312: 0b 49 sbci r16, 0x9B ; 155 + 314: 13 3f cpi r17, 0xF3 ; 243 + 316: 0c 02 muls r16, r28 + 318: 0a 00 .word 0x000a ; ???? + 31a: 00 32 cpi r16, 0x20 ; 32 + 31c: 34 00 .word 0x0034 ; ???? + 31e: 03 0e add r0, r19 + 320: 3a 0b sbc r19, r26 + 322: 3b 0b sbc r19, r27 + 324: 49 13 cpse r20, r25 + 326: 3f 0c add r3, r15 + 328: 02 0a sbc r0, r18 + 32a: 00 00 nop + 32c: 33 34 cpi r19, 0x43 ; 67 + 32e: 00 03 mulsu r16, r16 + 330: 0e 3a cpi r16, 0xAE ; 174 + 332: 0b 3b cpi r16, 0xBB ; 187 + 334: 0b 49 sbci r16, 0x9B ; 155 + 336: 13 3f cpi r17, 0xF3 ; 243 + 338: 0c 02 muls r16, r28 + 33a: 0a 00 .word 0x000a ; ???? + 33c: 00 34 cpi r16, 0x40 ; 64 + 33e: 34 00 .word 0x0034 ; ???? + 340: 03 0e add r0, r19 + 342: 3a 0b sbc r19, r26 + 344: 3b 0b sbc r19, r27 + 346: 49 13 cpse r20, r25 + 348: 3f 0c add r3, r15 + 34a: 02 0a sbc r0, r18 + 34c: 00 00 nop + 34e: 35 34 cpi r19, 0x45 ; 69 + 350: 00 03 mulsu r16, r16 + 352: 0e 3a cpi r16, 0xAE ; 174 + 354: 0b 3b cpi r16, 0xBB ; 187 + 356: 0b 49 sbci r16, 0x9B ; 155 + 358: 13 3f cpi r17, 0xF3 ; 243 + 35a: 0c 02 muls r16, r28 + 35c: 0a 00 .word 0x000a ; ???? + 35e: 00 36 cpi r16, 0x60 ; 96 + 360: 34 00 .word 0x0034 ; ???? + 362: 03 0e add r0, r19 + 364: 3a 0b sbc r19, r26 + 366: 3b 0b sbc r19, r27 + 368: 49 13 cpse r20, r25 + 36a: 3f 0c add r3, r15 + 36c: 02 0a sbc r0, r18 + 36e: 00 00 nop + 370: 37 34 cpi r19, 0x47 ; 71 + 372: 00 03 mulsu r16, r16 + 374: 0e 3a cpi r16, 0xAE ; 174 + 376: 0b 3b cpi r16, 0xBB ; 187 + 378: 0b 49 sbci r16, 0x9B ; 155 + 37a: 13 3f cpi r17, 0xF3 ; 243 + 37c: 0c 02 muls r16, r28 + 37e: 0a 00 .word 0x000a ; ???? + 380: 00 38 cpi r16, 0x80 ; 128 + 382: 34 00 .word 0x0034 ; ???? + 384: 03 0e add r0, r19 + 386: 3a 0b sbc r19, r26 + 388: 3b 0b sbc r19, r27 + 38a: 49 13 cpse r20, r25 + 38c: 3f 0c add r3, r15 + 38e: 02 0a sbc r0, r18 + 390: 00 00 nop + 392: 39 34 cpi r19, 0x49 ; 73 + 394: 00 03 mulsu r16, r16 + 396: 0e 3a cpi r16, 0xAE ; 174 + 398: 0b 3b cpi r16, 0xBB ; 187 + 39a: 0b 49 sbci r16, 0x9B ; 155 + 39c: 13 3f cpi r17, 0xF3 ; 243 + 39e: 0c 02 muls r16, r28 + 3a0: 0a 00 .word 0x000a ; ???? + 3a2: 00 3a cpi r16, 0xA0 ; 160 + 3a4: 34 00 .word 0x0034 ; ???? + 3a6: 03 0e add r0, r19 + 3a8: 3a 0b sbc r19, r26 + 3aa: 3b 0b sbc r19, r27 + 3ac: 49 13 cpse r20, r25 + 3ae: 3f 0c add r3, r15 + 3b0: 02 0a sbc r0, r18 + 3b2: 00 00 nop + 3b4: 3b 34 cpi r19, 0x4B ; 75 + 3b6: 00 03 mulsu r16, r16 + 3b8: 0e 3a cpi r16, 0xAE ; 174 + 3ba: 0b 3b cpi r16, 0xBB ; 187 + 3bc: 0b 49 sbci r16, 0x9B ; 155 + 3be: 13 3f cpi r17, 0xF3 ; 243 + 3c0: 0c 02 muls r16, r28 + 3c2: 0a 00 .word 0x000a ; ???? + 3c4: 00 3c cpi r16, 0xC0 ; 192 + 3c6: 34 00 .word 0x0034 ; ???? + 3c8: 03 0e add r0, r19 + 3ca: 3a 0b sbc r19, r26 + 3cc: 3b 0b sbc r19, r27 + 3ce: 49 13 cpse r20, r25 + 3d0: 3f 0c add r3, r15 + 3d2: 02 0a sbc r0, r18 + 3d4: 00 00 nop + 3d6: 3d 34 cpi r19, 0x4D ; 77 + 3d8: 00 03 mulsu r16, r16 + 3da: 0e 3a cpi r16, 0xAE ; 174 + 3dc: 0b 3b cpi r16, 0xBB ; 187 + 3de: 0b 49 sbci r16, 0x9B ; 155 + 3e0: 13 3f cpi r17, 0xF3 ; 243 + 3e2: 0c 02 muls r16, r28 + 3e4: 0a 00 .word 0x000a ; ???? + 3e6: 00 3e cpi r16, 0xE0 ; 224 + 3e8: 34 00 .word 0x0034 ; ???? + 3ea: 03 0e add r0, r19 + 3ec: 3a 0b sbc r19, r26 + 3ee: 3b 0b sbc r19, r27 + 3f0: 49 13 cpse r20, r25 + 3f2: 3f 0c add r3, r15 + 3f4: 02 0a sbc r0, r18 + 3f6: 00 00 nop + 3f8: 3f 34 cpi r19, 0x4F ; 79 + 3fa: 00 03 mulsu r16, r16 + 3fc: 0e 3a cpi r16, 0xAE ; 174 + 3fe: 0b 3b cpi r16, 0xBB ; 187 + 400: 0b 49 sbci r16, 0x9B ; 155 + 402: 13 3f cpi r17, 0xF3 ; 243 + 404: 0c 02 muls r16, r28 + 406: 0a 00 .word 0x000a ; ???? + 408: 00 40 sbci r16, 0x00 ; 0 + 40a: 34 00 .word 0x0034 ; ???? + 40c: 03 0e add r0, r19 + 40e: 3a 0b sbc r19, r26 + 410: 3b 0b sbc r19, r27 + 412: 49 13 cpse r20, r25 + 414: 3f 0c add r3, r15 + 416: 02 0a sbc r0, r18 + 418: 00 00 nop + 41a: 41 34 cpi r20, 0x41 ; 65 + 41c: 00 03 mulsu r16, r16 + 41e: 0e 3a cpi r16, 0xAE ; 174 + 420: 0b 3b cpi r16, 0xBB ; 187 + 422: 0b 49 sbci r16, 0x9B ; 155 + 424: 13 3f cpi r17, 0xF3 ; 243 + 426: 0c 02 muls r16, r28 + 428: 0a 00 .word 0x000a ; ???? + 42a: 00 42 sbci r16, 0x20 ; 32 + 42c: 34 00 .word 0x0034 ; ???? + 42e: 03 0e add r0, r19 + 430: 3a 0b sbc r19, r26 + 432: 3b 0b sbc r19, r27 + 434: 49 13 cpse r20, r25 + 436: 3f 0c add r3, r15 + 438: 02 0a sbc r0, r18 + 43a: 00 00 nop + 43c: 43 34 cpi r20, 0x43 ; 67 + 43e: 00 03 mulsu r16, r16 + 440: 0e 3a cpi r16, 0xAE ; 174 + 442: 0b 3b cpi r16, 0xBB ; 187 + 444: 0b 49 sbci r16, 0x9B ; 155 + 446: 13 3f cpi r17, 0xF3 ; 243 + 448: 0c 02 muls r16, r28 + 44a: 0a 00 .word 0x000a ; ???? + ... + +Disassembly of section .debug_line: + +00000000 <.debug_line>: + 0: 16 00 .word 0x0016 ; ???? + 2: 00 00 nop + 4: 02 00 .word 0x0002 ; ???? + 6: 10 00 .word 0x0010 ; ???? + 8: 00 00 nop + a: 02 01 movw r0, r4 + c: fb 0e add r15, r27 + e: 0a 00 .word 0x000a ; ???? + 10: 01 01 movw r0, r2 + 12: 01 01 movw r0, r2 + 14: 00 00 nop + 16: 00 01 movw r0, r0 + ... + +Disassembly of section .debug_str: + +00000000 <.debug_str>: + 0: 61 76 andi r22, 0x61 ; 97 + 2: 72 2d mov r23, r2 + 4: 6c 69 ori r22, 0x9C ; 156 + 6: 62 63 ori r22, 0x32 ; 50 + 8: 20 32 cpi r18, 0x20 ; 32 + a: 2e 30 cpi r18, 0x0E ; 14 + c: 2e 30 cpi r18, 0x0E ; 14 + e: 00 75 andi r16, 0x50 ; 80 + 10: 69 6e ori r22, 0xE9 ; 233 + 12: 74 38 cpi r23, 0x84 ; 132 + 14: 5f 74 andi r21, 0x4F ; 79 + 16: 00 75 andi r16, 0x50 ; 80 + 18: 69 6e ori r22, 0xE9 ; 233 + 1a: 74 31 cpi r23, 0x14 ; 20 + 1c: 36 5f subi r19, 0xF6 ; 246 + 1e: 74 00 .word 0x0074 ; ???? + 20: 5f 5f subi r21, 0xFF ; 255 + 22: 65 65 ori r22, 0x55 ; 85 + 24: 70 72 andi r23, 0x20 ; 32 + 26: 6f 6d ori r22, 0xDF ; 223 + 28: 00 53 subi r16, 0x30 ; 48 + 2a: 46 49 sbci r20, 0x96 ; 150 + 2c: 4f 52 subi r20, 0x2F ; 47 + 2e: 00 41 sbci r16, 0x10 ; 16 + 30: 43 53 subi r20, 0x33 ; 51 + 32: 52 00 .word 0x0052 ; ???? + 34: 53 50 subi r21, 0x03 ; 3 + 36: 44 52 subi r20, 0x24 ; 36 + 38: 00 53 subi r16, 0x30 ; 48 + 3a: 50 53 subi r21, 0x30 ; 48 + 3c: 52 00 .word 0x0052 ; ???? + 3e: 53 50 subi r21, 0x03 ; 3 + 40: 43 52 subi r20, 0x23 ; 35 + 42: 00 47 sbci r16, 0x70 ; 112 + 44: 49 43 sbci r20, 0x39 ; 57 + 46: 52 00 .word 0x0052 ; ???? + 48: 47 49 sbci r20, 0x97 ; 151 + 4a: 46 52 subi r20, 0x26 ; 38 + 4c: 00 4d sbci r16, 0xD0 ; 208 + 4e: 43 55 subi r20, 0x53 ; 83 + 50: 43 52 subi r20, 0x23 ; 35 + 52: 00 54 subi r16, 0x40 ; 64 + 54: 49 4d sbci r20, 0xD9 ; 217 + 56: 53 4b sbci r21, 0xB3 ; 179 + 58: 00 54 subi r16, 0x40 ; 64 + 5a: 49 46 sbci r20, 0x69 ; 105 + 5c: 52 00 .word 0x0052 ; ???? + 5e: 54 43 sbci r21, 0x34 ; 52 + 60: 43 52 subi r20, 0x23 ; 35 + 62: 30 00 .word 0x0030 ; ???? + 64: 54 43 sbci r21, 0x34 ; 52 + 66: 4e 54 subi r20, 0x4E ; 78 + 68: 30 00 .word 0x0030 ; ???? + 6a: 54 49 sbci r21, 0x94 ; 148 + 6c: 4d 53 subi r20, 0x3D ; 61 + 6e: 4b 00 .word 0x004b ; ???? + 70: 54 49 sbci r21, 0x94 ; 148 + 72: 46 52 subi r20, 0x26 ; 38 + 74: 00 54 subi r16, 0x40 ; 64 + 76: 43 43 sbci r20, 0x33 ; 51 + 78: 52 31 cpi r21, 0x12 ; 18 + 7a: 41 00 .word 0x0041 ; ???? + 7c: 54 43 sbci r21, 0x34 ; 52 + 7e: 43 52 subi r20, 0x23 ; 35 + 80: 31 42 sbci r19, 0x21 ; 33 + 82: 00 54 subi r16, 0x40 ; 64 + 84: 43 4e sbci r20, 0xE3 ; 227 + 86: 54 31 cpi r21, 0x14 ; 20 + 88: 00 4f sbci r16, 0xF0 ; 240 + 8a: 43 52 subi r20, 0x23 ; 35 + 8c: 31 41 sbci r19, 0x11 ; 17 + 8e: 00 4f sbci r16, 0xF0 ; 240 + 90: 43 52 subi r20, 0x23 ; 35 + 92: 31 42 sbci r19, 0x21 ; 33 + 94: 00 49 sbci r16, 0x90 ; 144 + 96: 43 52 subi r20, 0x23 ; 35 + 98: 31 00 .word 0x0031 ; ???? + 9a: 54 49 sbci r21, 0x94 ; 148 + 9c: 4d 53 subi r20, 0x3D ; 61 + 9e: 4b 00 .word 0x004b ; ???? + a0: 54 49 sbci r21, 0x94 ; 148 + a2: 46 52 subi r20, 0x26 ; 38 + a4: 00 54 subi r16, 0x40 ; 64 + a6: 43 43 sbci r20, 0x33 ; 51 + a8: 52 32 cpi r21, 0x22 ; 34 + aa: 00 54 subi r16, 0x40 ; 64 + ac: 43 4e sbci r20, 0xE3 ; 227 + ae: 54 32 cpi r21, 0x24 ; 36 + b0: 00 4f sbci r16, 0xF0 ; 240 + b2: 43 52 subi r20, 0x23 ; 35 + b4: 32 00 .word 0x0032 ; ???? + b6: 41 53 subi r20, 0x31 ; 49 + b8: 53 52 subi r21, 0x23 ; 35 + ba: 00 53 subi r16, 0x30 ; 48 + bc: 46 49 sbci r20, 0x96 ; 150 + be: 4f 52 subi r20, 0x2F ; 47 + c0: 00 55 subi r16, 0x50 ; 80 + c2: 44 52 subi r20, 0x24 ; 36 + c4: 00 55 subi r16, 0x50 ; 80 + c6: 43 53 subi r20, 0x33 ; 51 + c8: 52 41 sbci r21, 0x12 ; 18 + ca: 00 55 subi r16, 0x50 ; 80 + cc: 43 53 subi r20, 0x33 ; 51 + ce: 52 42 sbci r21, 0x22 ; 34 + d0: 00 55 subi r16, 0x50 ; 80 + d2: 43 53 subi r20, 0x33 ; 51 + d4: 52 43 sbci r21, 0x32 ; 50 + d6: 00 55 subi r16, 0x50 ; 80 + d8: 42 52 subi r20, 0x22 ; 34 + da: 52 48 sbci r21, 0x82 ; 130 + dc: 00 55 subi r16, 0x50 ; 80 + de: 42 52 subi r20, 0x22 ; 34 + e0: 52 4c sbci r21, 0xC2 ; 194 + e2: 00 54 subi r16, 0x40 ; 64 + e4: 57 42 sbci r21, 0x27 ; 39 + e6: 52 00 .word 0x0052 ; ???? + e8: 54 57 subi r21, 0x74 ; 116 + ea: 43 52 subi r20, 0x23 ; 35 + ec: 00 54 subi r16, 0x40 ; 64 + ee: 57 53 subi r21, 0x37 ; 55 + f0: 52 00 .word 0x0052 ; ???? + f2: 54 57 subi r21, 0x74 ; 116 + f4: 44 52 subi r20, 0x24 ; 36 + f6: 00 54 subi r16, 0x40 ; 64 + f8: 57 41 sbci r21, 0x17 ; 23 + fa: 52 00 .word 0x0052 ; ???? + fc: 57 44 sbci r21, 0x47 ; 71 + fe: 54 43 sbci r21, 0x34 ; 52 + 100: 52 00 .word 0x0052 ; ???? + 102: 50 4f sbci r21, 0xF0 ; 240 + 104: 52 54 subi r21, 0x42 ; 66 + 106: 42 00 .word 0x0042 ; ???? + 108: 44 44 sbci r20, 0x44 ; 68 + 10a: 52 42 sbci r21, 0x22 ; 34 + 10c: 00 50 subi r16, 0x00 ; 0 + 10e: 49 4e sbci r20, 0xE9 ; 233 + 110: 42 00 .word 0x0042 ; ???? + 112: 50 4f sbci r21, 0xF0 ; 240 + 114: 52 54 subi r21, 0x42 ; 66 + 116: 43 00 .word 0x0043 ; ???? + 118: 44 44 sbci r20, 0x44 ; 68 + 11a: 52 43 sbci r21, 0x32 ; 50 + 11c: 00 50 subi r16, 0x00 ; 0 + 11e: 49 4e sbci r20, 0xE9 ; 233 + 120: 43 00 .word 0x0043 ; ???? + 122: 50 4f sbci r21, 0xF0 ; 240 + 124: 52 54 subi r21, 0x42 ; 66 + 126: 44 00 .word 0x0044 ; ???? + 128: 44 44 sbci r20, 0x44 ; 68 + 12a: 52 44 sbci r21, 0x42 ; 66 + 12c: 00 50 subi r16, 0x00 ; 0 + 12e: 49 4e sbci r20, 0xE9 ; 233 + 130: 44 00 .word 0x0044 ; ???? + 132: 45 45 sbci r20, 0x55 ; 85 + 134: 41 52 subi r20, 0x21 ; 33 + 136: 00 45 sbci r16, 0x50 ; 80 + 138: 45 44 sbci r20, 0x45 ; 69 + 13a: 52 00 .word 0x0052 ; ???? + 13c: 45 45 sbci r20, 0x55 ; 85 + 13e: 43 52 subi r20, 0x23 ; 35 + 140: 00 53 subi r16, 0x30 ; 48 + 142: 52 45 sbci r21, 0x52 ; 82 + 144: 47 00 .word 0x0047 ; ???? + 146: 53 50 subi r21, 0x03 ; 3 + 148: 00 4d sbci r16, 0xD0 ; 208 + 14a: 43 55 subi r20, 0x53 ; 83 + 14c: 43 52 subi r20, 0x23 ; 35 + 14e: 00 4d sbci r16, 0xD0 ; 208 + 150: 43 55 subi r20, 0x53 ; 83 + 152: 43 53 subi r20, 0x33 ; 51 + 154: 52 00 .word 0x0052 ; ???? + 156: 4f 53 subi r20, 0x3F ; 63 + 158: 43 43 sbci r20, 0x33 ; 51 + 15a: 41 4c sbci r20, 0xC1 ; 193 + 15c: 00 53 subi r16, 0x30 ; 48 + 15e: 50 4d sbci r21, 0xD0 ; 208 + 160: 43 52 subi r20, 0x23 ; 35 + 162: 00 53 subi r16, 0x30 ; 48 + 164: 46 49 sbci r20, 0x96 ; 150 + 166: 4f 52 subi r20, 0x2F ; 47 + 168: 00 41 sbci r16, 0x10 ; 16 + 16a: 44 4d sbci r20, 0xD4 ; 212 + 16c: 55 58 subi r21, 0x85 ; 133 + 16e: 00 41 sbci r16, 0x10 ; 16 + 170: 44 43 sbci r20, 0x34 ; 52 + 172: 53 52 subi r21, 0x23 ; 35 + 174: 41 00 .word 0x0041 ; ???? + 176: 41 44 sbci r20, 0x41 ; 65 + 178: 43 00 .word 0x0043 ; ???? diff --git a/firmware/build/firmware.elf b/firmware/build/firmware.elf new file mode 100755 index 0000000..4a5971a Binary files /dev/null and b/firmware/build/firmware.elf differ diff --git a/firmware/build/firmware.hex b/firmware/build/firmware.hex new file mode 100644 index 0000000..656b716 --- /dev/null +++ b/firmware/build/firmware.hex @@ -0,0 +1,235 @@ +:1000000012C02CC02BC02AC029C028C027C026C0BF +:1000100025C024C023C0C1C321C020C01FC01EC032 +:100020001DC01CC01BC011241FBECFE5D4E0DEBF25 +:10003000CDBF10E0A0E6B0E0E4EFFDE002C0059027 +:100040000D92A43FB107D9F721E0A4EFB0E001C0C1 +:100050001D92A034B207E1F78ED4CAC6D1CF21B326 +:10006000242B21BB32B3242F2095232332B3432BDF +:100070003FB7F894FC01680F791FA2E3B0E0E617E0 +:10008000F70719F43FBF78940895819198E0E894B8 +:100090004C93000087FF2C93880F07F407F408F4B3 +:1000A0002C939A95A9F7EBCF9B01220F331F620F78 +:1000B000731FD5DF83E893E00197F1F700C00000DC +:1000C000089540E8F1CF660F771F660F771F40E86D +:1000D000C6DF83E893E00197F1F700C000000895C0 +:1000E00040E8BDCF8091F40081111092F400089592 +:1000F000282F80911101289FC0011124EFEFF0E01B +:10010000BF0169D4462F80911001289FC00111249E +:10011000BF0161D4362F80911201289FC0011124A4 +:10012000BF0159D4862FE5EFF0E04183308382830D +:10013000339691E0E031F907C1F769E070E085EFAF +:1001400090E0BFCFE5EFF0E0818360834283339698 +:1001500091E0E031F907C1F769E070E085EF90E0E8 +:10016000B0CFCF93DF93C5EFD0E0698183E090E01B +:10017000B0D5688182E090E0ACD56A8181E090E002 +:10018000A8D589818C8F88818B8F8A818D8FDF9113 +:10019000CF910895CF93DF9300D0CDB7DEB79A8388 +:1001A000898389819A8190931401809313016981D5 +:1001B0007A8180E090E00F900F90DF91CF9189C518 +:1001C000CF92DF92EF92FF920F931F93CF93DF9323 +:1001D00000D000D000D01F92CDB7DEB719821A82AE +:1001E0001B821F821E826FE670E00AD58C01CE0151 +:1001F00001966C01F12CEE24EA9401151105B9F574 +:100200004B816A8189819EDFACDF8E2D71DF8E810B +:100210009F81C0DF88EA90E02ED38091F60090E0C5 +:1002200035D38CE224D38091F50090E02FD38CE27B +:100230001ED38091F70090E029D385EA90E01BD38C +:1002400086EB90E018D38E2D90E020D385EA90E0E5 +:1002500012D389EC90E00FD38E819F8117D38DE06C +:1002600006D38AE004D381E08093F40006C095E0D1 +:10027000F91212C081E790E0FED227960FB6F894EB +:10028000DEBF0FBECDBFDF91CF911F910F91FF90C9 +:10029000EF90DF90CF900895E2E0EF15A8F04AE0EC +:1002A00050E0BE016C5F7F4FC801BCD3F601608394 +:1002B0008C819D818017910701F5F6018081811164 +:1002C0001CC080E990E0D8CFF3E0FF1209C04AE0FB +:1002D00050E0BE016C5F7F4FC801A4D3E62EE8CF8B +:1002E00084E0F812E5CF4AE050E0BE016C5F7F4F3A +:1002F000C80198D37F836E83DBCFF3946FE670E001 +:1003000090E080E07DD48C01FFEFCF1ADF0A75CF3B +:10031000CF93DF93E199FECF80E090E0D2D490E0DC +:100320009093140180931301C5EFD0E083E090E037 +:10033000C8D4898382E090E0C4D4888381E090E0CF +:10034000C0D48A83239681E0C031D80779F78091A1 +:10035000F600809311016091F500609310014091C7 +:10036000F70040931201EEDE809113019091140189 +:1003700011DF8CED90E07FD28091F60090E086D284 +:1003800080EF90E078D28091F50090E07FD280EF0E +:1003900090E071D28091F70090E078D280EF90E009 +:1003A0006AD2809113019091140170D285EA90E095 +:1003B000DF91CF9160C2CF93C8EC94DE811130C041 +:1003C0008C2F96DE8FE59AEE0197F1F700C00000C2 +:1003D000C15098F7C2E386DE811122C08FE295E713 +:1003E0000197F1F700C00000C150A9F77BDE811131 +:1003F00017C08C2F7DDE8FE59AEE0197F1F700C0D4 +:100400000000CF5FC93C91F7C4E66CDE811108C0E3 +:100410008FE295E70197F1F700C00000C150A9F7FE +:10042000CF910895CF9388EC63DEC5E05BDE811148 +:1004300032C08FE295E70197F1F700C00000C1508C +:10044000A9F7C8EC4FDE811126C08C2F51DE87EB57 +:100450009BE00197F1F700C00000C15098F788ECCD +:1004600047DEC8EC3FDE811116C08C2F41DE87E0ED +:1004700092E50197F1F700C00000C15098F7CEE176 +:1004800031DE811108C087EC9FEA0197F1F700C0C7 +:100490000000C150A9F7CF9108952F923F924F923B +:1004A0005F926F927F928F929F92AF92BF92CF9204 +:1004B000DF92EF92FF920F931F93CF93DF9300D0C1 +:1004C0001F92CDB7DEB78091170190E0FC01EE0FCF +:1004D000FF1FE80FF91FE05AFF4F20812983318069 +:1004E0002280019665E070E08AD280931701FC01BA +:1004F000EE0FFF1FE80FF91FE05AFF4F8080821AAE +:10050000990861806318770842804218550810E006 +:1005100000E0F12CE12CD12CC12C85E690E09B83EE +:100520008A8344E6A42EB12CDDDD811135C0C801DB +:10053000B50151D2422D460FC701B5014CD2232D32 +:10054000260FC601B50147D2862F622F9981890FE8 +:10055000F9DD8FE59AEE0197F1F700C000008A817E +:100560009B8101979B838A83C80CD91CE60CF71CDE +:10057000040D151D892BC1F692E39983B3DD81111A +:100580000BC08FE295E70197F1F700C00000998159 +:10059000915099839111F2CF0F900F900F90DF91AE +:1005A000CF911F910F91FF90EF90DF90CF90BF9070 +:1005B000AF909F908F907F906F905F904F903F9003 +:1005C0002F9008951F93CF93DF93E82F862F6BE230 +:1005D000F6D1282F892F880F890F382F330FCFEFAF +:1005E000D0E0AE01431B51091FEF149FC001159FBE +:1005F000900D1124BE01EFD1F62F462F319FC0017F +:100600001124BE01E8D1962F223019F140F42223A3 +:1006100021F0213061F02F2F90E04FEF0AC02330FE +:10062000E1F02430C1F7462F2FEF90E002C020E028 +:100630009FEF6E2F70E0FB01EE0FFF1FE60FF71F1D +:10064000EB50FF4F418390832283DF91CF911F9125 +:100650000895262F9FEF40E0ECCF9F2F2FEFFBCF89 +:10066000CF93DF93D0E0C0E0609116016D0F8C2F27 +:10067000A9DFCF5FD45EC930B9F769E070E085EFDC +:1006800090E01FDD809116018E5F80931601C3E01C +:1006900029DD811108C08FE295E70197F1F700C0CD +:1006A0000000C150A9F7DF91CF910895CF93DF9358 +:1006B00080911501823051F138F4882399F181300D +:1006C00059F1109215011FC0833089F0CFEFD0E0AF +:1006D0008430B9F707DD811116C0C2DF8FE295E7DC +:1006E0000197F1F700C000002197A1F705C0D5DE02 +:1006F000D4DED3DED2DED1DE809115018F5F85306E +:1007000000F780931501DF91CF9108958BDE8ADE8B +:1007100089DE88DE87DEF0CF4EDE4DDE4CDE4BDE3E +:100720004ADEEACF409112016091100180911101DF +:1007300009DD8FEFDDDCC4EFD1E0D4DC8111E3CF44 +:100740008FE295E70197F1F700C000002197A9F724 +:10075000D3CF8FE295E70197F1F700C0000008952D +:100760002FEF8EE994E2215080409040E1F700C0E5 +:10077000000072D080EE90E05AD08F9AC9DD789454 +:10078000089587B38C6287BB709A8DB180658DB9EF +:1007900008958FB9779BFECF08951F920F920FB6E1 +:1007A0000F9211242F933F934F935F936F937F93F7 +:1007B0008F939F93AF93BF93EF93FF938CB19091DF +:1007C00019019F3110F010921901E091190191E087 +:1007D0009E0F90931901F0E0E25EFE4F808384301B +:1007E00021F08D3011F08A3089F4E0911901F0E0A8 +:1007F000E25EFE4F108210921901E0911A01F09111 +:100800001B01309719F08EE191E00995FF91EF916E +:10081000BF91AF919F918F917F916F915F914F9118 +:100820003F912F910F900FBE0F901F9018959093AE +:100830001B0180931A010895E0911A01F0911B01A8 +:10084000309749F080911801882329F08EE191E0DA +:1008500009951092180108958898899A8AB1886933 +:100860008AB986EA80BD10BC8DE489B908955D9B84 +:10087000FECF8CB90895CF93DF93EC01899181115C +:1008800003C0DF91CF910895F2DFF8CFCF93DF93CC +:1008900000D000D000D01F92CDB7DEB74AE0BE0135 +:1008A0006F5F7F4FD8D1CE010196E5DF27960FB657 +:1008B000F894DEBF0FBECDBFDF91CF910895DF92D8 +:1008C000EF92FF920F931F93CF93DF93CDB7DEB7D5 +:1008D000C05CD1090FB6F894DEBF0FBECDBFFE01DC +:1008E000319690ECDF011D929A95E9F77F01DF01C7 +:1008F000362F50EC27E090E074E016E0D12E9830CF +:1009000081F1903189F1983189F1032F10E0022EA5 +:1009100002C0159507950A94E2F700FF2AC0DC9201 +:100920009F5F2150515011965111E9CFF8948F01DA +:1009300000541F4FF70181917F012BDF0E151F051A +:10094000C9F77894C054DF4F0FB6F894DEBF0FBEDE +:10095000CDBFDF91CF911F910F91FF90EF90DF906E +:100960000895382F27E0D1CF342FFCCF362F90E0D9 +:10097000CCCF7C93D5CFF4DE8091130190911401FC +:1009800082309105B1F030F4009761F00197A1F742 +:1009900012DDF2CF8430910581F068F0059761F7A0 +:1009A00085DEEACF8FE295E70197F1F700C00000FE +:1009B000E3CF38DDE1CF71DDDFCF52DEDDCF991B34 +:1009C00079E004C0991F961708F0961B881F7A9546 +:1009D000C9F780950895AA1BBB1B51E107C0AA1F48 +:1009E000BB1FA617B70710F0A61BB70B881F991FD0 +:1009F0005A95A9F780959095BC01CD01089597FB74 +:100A0000072E16F4009406D077FD08D0E4DF07FC2B +:100A100005D03EF4909581959F4F0895709561950E +:100A20007F4F0895B0E0A0E0E7E1F5E09FC15C01F1 +:100A30006B017A016115710519F0FB0191838083C7 +:100A4000E114F10449F0C7010297839728F060E0B0 +:100A500070E0CB019AC05E01E5012196F50110819D +:100A6000812F90E0C5D0892BB1F71D3209F055C018 +:100A70002196F501118101E0E114F10409F4ABC004 +:100A8000F0E1EF16F10409F08CC0103341F48881D5 +:100A90008F7D883509F081C0198122960260E0E1DE +:100AA000EE2EF12C88248A94982CA82CFFE0BF2EDF +:100AB00020E060E070E0CB0127010F2C000C6608FD +:100AC0007708FE0150ED352E310E39E0331538F43C +:100AD0003FEB310F3A3198F549EC342E310E3E148C +:100AE0001F04B4F52F3FB1F086169706A806B90685 +:100AF00068F1A3019201FED0232D30E050E040E0E8 +:100B0000620F731F841F951F621773078407950771 +:100B1000E8F021E021961081D4CF1B3221F4E501C9 +:100B20002296F501118100E0A7CF78E0E72EF12CA5 +:100B300088248A94982CA82C6FE1B62EB9CF3FE96F +:100B4000310F3A3128F439EA332EC8CF2FEFE2CFF4 +:100B5000C114D10431F02223E1F02197F601D183B1 +:100B6000C08300FF07C090958095709561957F4F79 +:100B70008F4F9F4F2F3F49F482E290E090933F01C7 +:100B800080933E016FEF7FEFCB01CDB7DEB7E1E1A0 +:100B900009C101FFE6CF2297E1CF10E3E114F10490 +:100BA00021F23AE0E316F104E1F080E1E816F10405 +:100BB00009F475CFE8E0EE16F10409F4B9CF6FEF50 +:100BC0007FEFCB0197010F2C000C440B550BA1D0EC +:100BD00049015A016DCF103309F459CF9AE0E92E3B +:100BE000F12C89E9882E982CA82C89E1B82E60CFA9 +:100BF000911154C0803219F089508550D0F7089572 +:100C00004CE151E001D00895FA01A191B081009723 +:100C100019F41097E1F0CD01DC01CD010D90002019 +:100C200011F4C00113C0FB012191222319F02015FA +:100C3000D9F7F3CFFB012191201519F41E921196DB +:100C400006C02223C1F70D900020A1F7D001FA01C0 +:100C5000A193B0830895BB274A3031F4992322F43D +:100C6000BDE2909581959F4F01C0BB27FB015527A1 +:100C7000AA27880F991FAA1FA41710F0A41B8395F9 +:100C80005051B9F7A05DAA3308F0A95DA193009770 +:100C900079F7B111B1931192CB0103C0992788273D +:100CA0000895DC01FC01672F71917723E1F73297FA +:100CB00004C07C916D9370836291AE17BF07C8F337 +:100CC0000895E199FECF9FBB8EBBE09A99278DB323 +:100CD0000895262FE199FECF9FBB8EBBE09A019726 +:100CE0000DB2021631F02DBB0FB6F894E29AE19ADC +:100CF0000FBE0895DB018F939F932DD0BF91AF91CD +:100D0000A29F800D911DA39F900DB29F900D112465 +:100D10000895A1E21A2EAA1BBB1BFD010DC0AA1F3C +:100D2000BB1FEE1FFF1FA217B307E407F50720F054 +:100D3000A21BB30BE40BF50B661F771F881F991FCF +:100D40001A9469F760957095809590959B01AC0118 +:100D5000BD01CF01089540D0A59F900DB49F900D87 +:100D6000A49F800D911D112408952F923F924F92C0 +:100D70005F926F927F928F929F92AF92BF92CF922B +:100D8000DF92EF92FF920F931F93CF93DF93CDB734 +:100D9000DEB7CA1BDB0B0FB6F894DEBF0FBECDBFAC +:100DA00009942A88398848885F846E847D848C847D +:100DB0009B84AA84B984C884DF80EE80FD800C8186 +:100DC0001B81AA81B981CE0FD11D0FB6F894DEBF69 +:100DD0000FBECDBFED010895A29FB001B39FC0012A +:100DE000A39F01D0B29F700D811D1124911D089504 +:040DF000F894FFCFA5 +:100DF400FF000000FF000000FFFFFF0000FFFF2CCA +:100E040000496E76616C6964206E756D626572204E +:100E14006F6620617267756D656E74732E0D0A00BE +:100E24004572726F72206E756D62657220706172A8 +:100E340073696E672E0D0A003E204E657720636F3E +:100E44006C6F723A20003E204E65772062726967AB +:100E540068746E6573733A20003E204E6577206394 +:100E64006F6C6F72206D6F64653A20003E2053658D +:100E74007474696E6773206C6F616465643A2000F2 +:040E84002C2000001E +:00000001FF diff --git a/firmware/obj/light_ws2812.o b/firmware/obj/light_ws2812.o new file mode 100644 index 0000000..ec3a089 Binary files /dev/null and b/firmware/obj/light_ws2812.o differ diff --git a/firmware/obj/main.o b/firmware/obj/main.o new file mode 100644 index 0000000..fd65718 Binary files /dev/null and b/firmware/obj/main.o differ diff --git a/firmware/obj/spi.o b/firmware/obj/spi.o new file mode 100644 index 0000000..e314ea1 Binary files /dev/null and b/firmware/obj/spi.o differ diff --git a/firmware/obj/usart.o b/firmware/obj/usart.o new file mode 100644 index 0000000..557fdfa Binary files /dev/null and b/firmware/obj/usart.o differ diff --git a/firmware/obj/ws2812b.o b/firmware/obj/ws2812b.o new file mode 100644 index 0000000..5178592 Binary files /dev/null and b/firmware/obj/ws2812b.o differ diff --git a/firmware/src/defs.h b/firmware/src/defs.h new file mode 100644 index 0000000..1becfb5 --- /dev/null +++ b/firmware/src/defs.h @@ -0,0 +1,10 @@ +#if !defined(_DEFS_H_) +#define _DEFS_H_ + +#define F_CPU 12000000UL +#define LED_NUMBERS 9 +#define LED_DIR DDRD +#define LED_PORT PORTD +#define LED_PIN PD7 + +#endif diff --git a/firmware/src/light_ws2812.c b/firmware/src/light_ws2812.c new file mode 100644 index 0000000..9e0904f --- /dev/null +++ b/firmware/src/light_ws2812.c @@ -0,0 +1,243 @@ +/* +* light weight WS2812 lib V2.5b +* +* Controls WS2811/WS2812/WS2812B RGB-LEDs +* Author: Tim (cpldcpu@gmail.com) +* +* Jan 18, 2014 v2.0b Initial Version +* Nov 29, 2015 v2.3 Added SK6812RGBW support +* Nov 11, 2023 v2.5 Added support for ports that cannot be addressed with "out" +* Added LGT8F88A support +* May 1, 2024 v2.6 Added support for reduced core AVRs +* +* License: GNU GPL v2+ (see License.txt) +*/ + +#include "light_ws2812.h" +#include +#include +#include + +// Setleds for standard RGB +inline void ws2812_setleds(struct cRGB *ledarray, uint16_t leds) +{ + ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); +} + +inline void ws2812_setleds_pin(struct cRGB *ledarray, uint16_t leds, uint8_t pinmask) +{ + ws2812_sendarray_mask((uint8_t*)ledarray,leds+leds+leds,pinmask); + _delay_us(ws2812_resettime); +} + +// Setleds for SK6812RGBW +inline void ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t leds) +{ + ws2812_sendarray_mask((uint8_t*)ledarray,leds<<2,_BV(ws2812_pin)); + _delay_us(ws2812_resettime); +} + +void ws2812_sendarray(uint8_t *data,uint16_t datlen) +{ + ws2812_sendarray_mask(data,datlen,_BV(ws2812_pin)); +} + +/* + This routine writes an array of bytes with RGB values to the Dataout pin + using the fast 800kHz clockless WS2811/2812 protocol. +*/ + +// Timing in ns +#define w_zeropulse 350 +#define w_onepulse 900 +#define w_totalperiod 1250 + +// Fixed cycles used by the inner loop +#if defined(__LGT8F__) // LGT8F88A +#define w_fixedlow 4 +#define w_fixedhigh 6 +#define w_fixedtotal 10 +#elif __AVR_ARCH__ == 100 // reduced core AVR +#define w_fixedlow 2 +#define w_fixedhigh 4 +#define w_fixedtotal 8 +#else // all others +#define w_fixedlow 3 +#define w_fixedhigh 6 +#define w_fixedtotal 10 +#endif + + +// Insert NOPs to match the timing, if possible +#define w_zerocycles (((F_CPU/1000)*w_zeropulse )/1000000) +#define w_onecycles (((F_CPU/1000)*w_onepulse +500000)/1000000) +#define w_totalcycles (((F_CPU/1000)*w_totalperiod +500000)/1000000) + +// w1 - nops between rising edge and falling edge - low +#define w1 (w_zerocycles-w_fixedlow) +// w2 nops between fe low and fe high +#define w2 (w_onecycles-w_fixedhigh-w1) +// w3 nops to complete loop +#define w3 (w_totalcycles-w_fixedtotal-w1-w2) + +#if w1>0 + #define w1_nops w1 +#else + #define w1_nops 0 +#endif + +// The only critical timing parameter is the minimum pulse length of the "0" +// Warn or throw error if this timing can not be met with current F_CPU settings. +#define w_lowtime ((w1_nops+w_fixedlow)*1000000)/(F_CPU/1000) +#if w_lowtime>550 + #error "Light_ws2812: Sorry, the clock speed is too low. Did you set F_CPU correctly?" +#elif w_lowtime>450 + #warning "Light_ws2812: The timing is critical and may only work on WS2812B, not on WS2812(S)." + #warning "Please consider a higher clockspeed, if possible" +#endif + +#if w2>0 +#define w2_nops w2 +#else +#define w2_nops 0 +#endif + +#if w3>0 +#define w3_nops w3 +#else +#define w3_nops 0 +#endif + +#define w_nop1 "nop \n\t" +#if (ws2812_interrupt_handling) +#define w_nop2 "brid .+0 \n\t" +#else +#define w_nop2 "brtc .+0 \n\t" +#endif +#define w_nop4 w_nop2 w_nop2 +#define w_nop8 w_nop4 w_nop4 +#define w_nop16 w_nop8 w_nop8 + +inline void ws2812_sendarray_mask(uint8_t *data,uint16_t datlen,uint8_t maskhi) +{ + // `maskhi` is 0x80 if P?7 is LED DATA + uint8_t curbyte,ctr,masklo; + uint8_t sreg_prev; +#if __AVR_ARCH__ != 100 + uint8_t *port = (uint8_t*) _SFR_MEM_ADDR(ws2812_PORTREG); +#endif + + ws2812_DDRREG |= maskhi; // Enable output + + // `masklo` and `maskhi` are written to PORT? to drive the DATA line low or + // high (rather than setting or clearing the bit in PORT?) + masklo =~maskhi&ws2812_PORTREG; + maskhi |= ws2812_PORTREG; + + sreg_prev=SREG; + +#if (ws2812_interrupt_handling) + cli(); +#endif + + while (datlen--) { + curbyte=*data++; + + __asm__ volatile( + " ldi %0,8 \n\t" +#if (ws2812_interrupt_handling) + " clt \n\t" +#endif + "loop%=: \n\t" +#if __AVR_ARCH__ == 100 + " out %2,%3 \n\t" // '1' [01] '0' [01] - re +#else + " st X,%3 \n\t" // '1' [02] '0' [02] - re +#endif + +#if (w1_nops&1) +w_nop1 +#endif +#if (w1_nops&2) +w_nop2 +#endif +#if (w1_nops&4) +w_nop4 +#endif +#if (w1_nops&8) +w_nop8 +#endif +#if (w1_nops&16) +w_nop16 +#endif +#if defined(__LGT8F__) + " bst %1,7 \n\t" // '1' [02] '0' [02] + " brts 1f \n\t" // '1' [04] '0' [03] + " st X,%4 \n\t" // '1' [--] '0' [04] - fe-low + "1: lsl %1 \n\t" // '1' [05] '0' [05] +#elif __AVR_ARCH__ == 100 + " sbrs %1,7 \n\t" // '1' [03] '0' [02] + " out %2,%4 \n\t" // '1' [--] '0' [03] - fe-low + " lsl %1 \n\t" // '1' [04] '0' [04] +#else + " sbrs %1,7 \n\t" // '1' [04] '0' [03] + " st X,%4 \n\t" // '1' [--] '0' [05] - fe-low + " lsl %1 \n\t" // '1' [05] '0' [06] +#endif +#if (w2_nops&1) + w_nop1 +#endif +#if (w2_nops&2) + w_nop2 +#endif +#if (w2_nops&4) + w_nop4 +#endif +#if (w2_nops&8) + w_nop8 +#endif +#if (w2_nops&16) + w_nop16 +#endif +#if __AVR_ARCH__ == 100 + " out %2,%4 \n\t" // '1' [+1] '0' [+1] - fe-high +#else + " brcc skipone%= \n\t" // '1' [+1] '0' [+2] - + " st X,%4 \n\t" // '1' [+3] '0' [--] - fe-high + "skipone%=: " // '1' [+3] '0' [+2] - +#endif +#if (w3_nops&1) +w_nop1 +#endif +#if (w3_nops&2) +w_nop2 +#endif +#if (w3_nops&4) +w_nop4 +#endif +#if (w3_nops&8) +w_nop8 +#endif +#if (w3_nops&16) +w_nop16 +#endif + + " dec %0 \n\t" // '1' [+4] '0' [+3] + " brne loop%=\n\t" // '1' [+5] '0' [+4] + : "=&d" (ctr) +#if __AVR_ARCH__ == 100 + : "r" (curbyte), "I" (_SFR_IO_ADDR(ws2812_PORTREG)), "r" (maskhi), "r" (masklo) +#else + : "r" (curbyte), "x" (port), "r" (maskhi), "r" (masklo) +#endif + + ); + } + + SREG=sreg_prev; + +#if (ws2812_interrupt_handling) + sei(); +#endif + +} \ No newline at end of file diff --git a/firmware/src/light_ws2812.h b/firmware/src/light_ws2812.h new file mode 100644 index 0000000..beb7a23 --- /dev/null +++ b/firmware/src/light_ws2812.h @@ -0,0 +1,116 @@ +/* + * light weight WS2812 lib include + * + * Version 2.3 - Nev 29th 2015 + * Author: Tim (cpldcpu@gmail.com) + * + * Please do not change this file! All configuration is handled in "ws2812_config.h" + * + * License: GNU GPL v2+ (see License.txt) + + + */ + +#ifndef LIGHT_WS2812_H_ +#define LIGHT_WS2812_H_ + +#include "ws2812_config.h" +#include +#include + +/////////////////////////////////////////////////////////////////////// +// Define Reset time in µs. +// +// This is the time the library spends waiting after writing the data. +// +// WS2813 needs 300 µs reset time +// WS2812 and clones only need 50 µs +// +/////////////////////////////////////////////////////////////////////// +#if !defined(ws2812_resettime) +#define ws2812_resettime 300 +#endif + +/////////////////////////////////////////////////////////////////////// +// Define I/O pin +/////////////////////////////////////////////////////////////////////// +#if !defined(ws2812_port) +#define ws2812_port B // Data port +#endif + +#if !defined(ws2812_pin) +#define ws2812_pin 0 // Data out pin +#endif + +/////////////////////////////////////////////////////////////////////// +// Define interrupt behaviour +// +// Set to 1 if you want the library to handle interrupt toggling +// (i.e. turning off interrupts when sending data and reverting back after). +// Set to 0 if you need to allow interrupts (can introduce flickering!). +// +/////////////////////////////////////////////////////////////////////// +#if !defined(ws2812_interrupt_handling) +#define ws2812_interrupt_handling 1 +#endif + +/* + * Structure of the LED array + * + * cRGB: RGB for WS2812S/B/C/D, SK6812, SK6812Mini, SK6812WWA, APA104, APA106 + * cRGBW: RGBW for SK6812RGBW + */ + +struct __attribute__ ((__packed__)) cRGB { uint8_t g; uint8_t r; uint8_t b; }; +struct __attribute__ ((__packed__)) cRGBW { uint8_t g; uint8_t r; uint8_t b; uint8_t w;}; + +#ifdef __cplusplus +extern "C" { +#endif + +/* User Interface + * + * Input: + * ledarray: An array of GRB data describing the LED colors + * number_of_leds: The number of LEDs to write + * pinmask (optional): Bitmask describing the output bin. e.g. _BV(PB0) + * + * The functions will perform the following actions: + * - Set the data-out pin as output + * - Send out the LED data + * - Wait 50µs to reset the LEDs + */ + +void ws2812_setleds (struct cRGB *ledarray, uint16_t number_of_leds); +void ws2812_setleds_pin (struct cRGB *ledarray, uint16_t number_of_leds,uint8_t pinmask); +void ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t number_of_leds); + +/* + * Old interface / Internal functions + * + * The functions take a byte-array and send to the data output as WS2812 bitstream. + * The length is the number of bytes to send - three per LED. + */ + +void ws2812_sendarray (uint8_t *array,uint16_t length); +void ws2812_sendarray_mask(uint8_t *array,uint16_t length, uint8_t pinmask); + +#ifdef __cplusplus +} +#endif + + +/* + * Internal defines + */ +#if !defined(CONCAT) +#define CONCAT(a, b) a ## b +#endif + +#if !defined(CONCAT_EXP) +#define CONCAT_EXP(a, b) CONCAT(a, b) +#endif + +#define ws2812_PORTREG CONCAT_EXP(PORT,ws2812_port) +#define ws2812_DDRREG CONCAT_EXP(DDR,ws2812_port) + +#endif /* LIGHT_WS2812_H_ */ \ No newline at end of file diff --git a/firmware/src/main.c b/firmware/src/main.c new file mode 100644 index 0000000..4eba15f --- /dev/null +++ b/firmware/src/main.c @@ -0,0 +1,400 @@ +#include "main.h" + +uint8_t eeprom_led_r EEMEM = 0; +uint8_t eeprom_led_g EEMEM = 0; +uint8_t eeprom_led_b EEMEM = 0; +uint8_t eeprom_color_mode EEMEM = 0; + +DeviceState_t device = { + .current_color = {{ 0 }}, + .base_current_color = { 0, 0 ,0 }, + .current_mode = COLOR_MODE_STATIC, +}; + +volatile bool isChangedColorOrModeInterrupt = false; + +bool DeviceChangedColorOrModeCheck(void) { + if (isChangedColorOrModeInterrupt) { + isChangedColorOrModeInterrupt = false; + return true; + } + + return false; +} + +/** + * @brief Reads the received USART buffer and changes color and mode of device. + * Format: {R},{G},{B},{Brightness},{Color mode} + * + * @param rx_buffer + */ + +void DeviceChangeColorHandler(volatile char *rx_buffer) { + char *sep = ","; + char *token; + uint8_t new_rgb_color[3] = {0}; + uint8_t brightness = 255; + uint8_t i = 0; + ColorMode_t color_mode = COLOR_MODE_STATIC; + + token = strtok((char *)rx_buffer, sep); + + while (token != NULL) { + char *endptr; + + if (i >= 5) { + USART_SendStr("Invalid number of arguments.\r\n"); + i = 0; + return; + } + + if (i < 3) new_rgb_color[i] = strtoul(token, &endptr, 10); // get rgb colors + if (i == 3) brightness = strtoul(token, &endptr, 10); // get brigtness percentage + if (i == 4) color_mode = strtoul(token, &endptr, 10); // get color mode + + if (endptr == token && new_rgb_color[i] == 0) { + USART_SendStr("Error number parsing.\r\n"); + return; + } + + i++; + token = strtok(NULL, sep); + } + + i = 0; + + DeviceSetColor(new_rgb_color[0], new_rgb_color[1], new_rgb_color[2]); + DeviceUpdateColorSettings(); + DeviceSetBrightness(brightness); + DeviceSetColorMode(color_mode); + + USART_SendStr("> New color: "); + USART_SendInt16(device.current_color[0].r); + USART_SendChar(','); + USART_SendInt16(device.current_color[0].g); + USART_SendChar(','); + USART_SendInt16(device.current_color[0].b); + USART_SendStr("\r\n"); + USART_SendStr("> New brightness: "); + USART_SendInt16(brightness); + USART_SendStr("\r\n"); + USART_SendStr("> New color mode: "); + USART_SendInt16(color_mode); + USART_SendChar('\r'); + USART_SendChar('\n'); + + isChangedColorOrModeInterrupt = true; +} + +/** + * @brief Sets the brightness of all LEDs + * + * @param brightness from 0 to 255 + */ +void DeviceSetBrightness(uint8_t brightness) { + uint8_t i = 0; + + do { + device.current_color[i].r = (uint16_t)device.base_current_color.r * brightness / 255; + device.current_color[i].g = (uint16_t)device.base_current_color.g * brightness / 255; + device.current_color[i].b = (uint16_t)device.base_current_color.b * brightness / 255; + } while (++i <= LED_NUMBERS - 1); + + ws2812_setleds(device.current_color, LED_NUMBERS); +} + +void DeviceSetColor(uint8_t r, uint8_t g, uint8_t b) { + uint8_t i = 0; + + do { + device.current_color[i].r = r; + device.current_color[i].g = g; + device.current_color[i].b = b; + } while (++i <= LED_NUMBERS - 1); + + ws2812_setleds(device.current_color, LED_NUMBERS); +} + +void DeviceUpdateColorSettings(void) { + eeprom_update_byte(&eeprom_led_r, device.current_color[0].r); + eeprom_update_byte(&eeprom_led_g, device.current_color[0].g); + eeprom_update_byte(&eeprom_led_b, device.current_color[0].b); + device.base_current_color.r = device.current_color[0].r; + device.base_current_color.g = device.current_color[0].g; + device.base_current_color.b = device.current_color[0].b; +} + +void DeviceSetColorMode(ColorMode_t mode) { + device.current_mode = mode; + eeprom_update_byte(&eeprom_color_mode, mode); +} + +void DeviceLoadSettings() { + uint8_t i = 0; + + eeprom_busy_wait(); + + device.current_mode = eeprom_read_byte(&eeprom_color_mode); + + do { + device.current_color[i].r = eeprom_read_byte(&eeprom_led_r); + device.current_color[i].g = eeprom_read_byte(&eeprom_led_g); + device.current_color[i].b = eeprom_read_byte(&eeprom_led_b); + } while (++i < LED_NUMBERS); + + device.base_current_color.r = device.current_color[0].r; + device.base_current_color.g = device.current_color[0].g; + device.base_current_color.b = device.current_color[0].b; + + DeviceSetColor(device.current_color[0].r, device.current_color[0].g, device.current_color[0].b); + DeviceSetColorMode(device.current_mode); + + USART_SendStr("> Settings loaded: "); + USART_SendInt16(device.current_color[0].r); + USART_SendStr(", "); + USART_SendInt16(device.current_color[0].g); + USART_SendStr(", "); + USART_SendInt16(device.current_color[0].b); + USART_SendStr(", "); + USART_SendInt16(device.current_mode); + USART_SendStr("\r\n"); +} + +void DeviceBreathModeHahdler(void) { + int16_t brightness = 200; + + do { + if (DeviceChangedColorOrModeCheck()) return; + + DeviceSetBrightness(brightness); + + _delay_ms(20); + } while(--brightness >= 0); + + brightness = 0; + + for (uint8_t i = 0; i < 50; i++){ + if (DeviceChangedColorOrModeCheck()) return; + _delay_ms(10); + } + + do { + if (DeviceChangedColorOrModeCheck()) return; + + DeviceSetBrightness(brightness); + + _delay_ms(20); + } while (++brightness <= 200); + + for (uint8_t i = 0; i < 100; i++){ + if (DeviceChangedColorOrModeCheck()) return; + _delay_ms(10); + } +} + +void DevicePulseModeHandler(void) { + DeviceSetBrightness(200); + + for (uint8_t i = 0; i < 5; i++) { + if (DeviceChangedColorOrModeCheck()) return; + _delay_ms(10); + } + + for (int16_t b = 200; b >= 0; b--) { + if (DeviceChangedColorOrModeCheck()) return; + + DeviceSetBrightness((uint8_t)b); + + _delay_ms(1); + } + + DeviceSetBrightness(200); + + for (int16_t b = 200; b >= 0; b--) { + if (DeviceChangedColorOrModeCheck()) return; + + DeviceSetBrightness((uint8_t)b); + + _delay_ms(7); + } + + for (uint8_t i = 0; i < 30; i++) { + if (DeviceChangedColorOrModeCheck()) return; + _delay_ms(15); + } +} + +void DeviceDiscoModeHandler(void) { + static const struct { uint8_t r; uint8_t g; uint8_t b; } disco_colors[] = { + {255, 0, 0}, + {0, 255, 0}, + {0, 0, 255}, + {255, 255, 0}, + {0, 255, 255} + }; + + const uint8_t num_colors = sizeof(disco_colors) / sizeof(disco_colors[0]); + static uint8_t color_idx = 0; + + uint8_t start_r = disco_colors[color_idx].r; + uint8_t start_g = disco_colors[color_idx].g; + uint8_t start_b = disco_colors[color_idx].b; + + color_idx = (color_idx + 1) % num_colors; + + uint8_t target_r = disco_colors[color_idx].r; + uint8_t target_g = disco_colors[color_idx].g; + uint8_t target_b = disco_colors[color_idx].b; + + for (uint16_t step = 0; step <= 100; step++) { + if (DeviceChangedColorOrModeCheck()) return; + + uint8_t r = start_r + (int16_t)(target_r - start_r) * step / 100; + uint8_t g = start_g + (int16_t)(target_g - start_g) * step / 100; + uint8_t b = start_b + (int16_t)(target_b - start_b) * step / 100; + + DeviceSetColor(r, g, b); + _delay_ms(20); + } + + for (uint8_t d = 0; d < 50; d++) { + if (DeviceChangedColorOrModeCheck()) return; + _delay_ms(10); + } +} + +void set_pixel_hue(uint8_t index, uint8_t hue) { + uint8_t r, g, b; + uint8_t region = hue / 43; + uint8_t remainder = (hue % 43) * 6; + + uint8_t q = (uint16_t)255 * (255 - remainder) / 255; + uint8_t t = (uint16_t)255 * remainder / 255; + + switch (region) { + case 0: r = 255; g = t; b = 0; break; + case 1: r = q; g = 255; b = 0; break; + case 2: r = 0; g = 255; b = t; break; + case 3: r = 0; g = q; b = 255; break; + case 4: r = t; g = 0; b = 255; break; + default: r = 255; g = 0; b = q; break; + } + + device.current_color[index].r = r; + device.current_color[index].g = g; + device.current_color[index].b = b; +} + +void DeviceRainbowModeHandler(void) { + static uint8_t start_hue = 0; + + for (uint8_t i = 0; i < LED_NUMBERS; i++) { + uint8_t hue = start_hue + (i * (255 / LED_NUMBERS)); + set_pixel_hue(i, hue); + } + + ws2812_setleds(device.current_color, LED_NUMBERS); + + start_hue += 2; + + for (uint8_t d = 0; d < 3; d++) { + if (DeviceChangedColorOrModeCheck()) return; + _delay_ms(10); + } +} + +void DeviceStepperModeHandler(void) { + static uint8_t effect_step = 0; + + switch (effect_step) { + case 0: + DeviceSetColor(device.base_current_color.r, device.base_current_color.g, device.base_current_color.b); + DeviceSetBrightness(255); + for (uint16_t i = 0; i < 500; i++) { + if (DeviceChangedColorOrModeCheck()) return; + _delay_ms(10); + } + break; + + case 1: + for (uint8_t i = 0; i < 5; i++) { + DeviceBreathModeHahdler(); + } + break; + + case 2: + for (uint8_t i = 0; i < 5; i++) { + DevicePulseModeHandler(); + } + break; + + case 3: + for (uint8_t i = 0; i < 5; i++) { + DeviceDiscoModeHandler(); + } + break; + + case 4: + for (uint16_t i = 0; i < 255; i++) { + if (DeviceChangedColorOrModeCheck()) return; + DeviceRainbowModeHandler(); + _delay_ms(10); + } + break; + + default: + effect_step = 0; + return; + } + + effect_step++; + + if (effect_step > 4) { + effect_step = 0; + } +} + +void DeviceStaticModeHandler(void) { + _delay_ms(10); +} + +void System_Init() { + _delay_ms(1000); + + USART_Init(); + USART_SetReceiveHandler(&DeviceChangeColorHandler); + LED_DIR |= _BV(LED_PIN); + + DeviceLoadSettings(); + + sei(); +} + +int main(void) { + System_Init(); + + while (1) { + switch (device.current_mode) { + case COLOR_MODE_STATIC: + DeviceStaticModeHandler(); + break; + case COLOR_MODE_BREATH: + DeviceBreathModeHahdler(); + break; + case COLOR_MODE_PULSE: + DevicePulseModeHandler(); + break; + case COLOR_MODE_DISCO: + DeviceDiscoModeHandler(); + break; + case COLOR_MODE_RAINBOW: + DeviceRainbowModeHandler(); + break; + case COLOR_MODE_STEPPER: + DeviceStepperModeHandler(); + break; + default: + break; + } + } +} diff --git a/firmware/src/main.h b/firmware/src/main.h new file mode 100644 index 0000000..9f545af --- /dev/null +++ b/firmware/src/main.h @@ -0,0 +1,50 @@ +#if !defined(_MAIN_H) +#define _MAIN_H + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "defs.h" +#include "usart.h" +#include "spi.h" + +#include +#include +#include +#include "light_ws2812.h" + +typedef volatile enum { + COLOR_MODE_STATIC = 0x00, + COLOR_MODE_BREATH = 0x01, + COLOR_MODE_PULSE = 0x02, + COLOR_MODE_DISCO = 0x03, + COLOR_MODE_RAINBOW = 0x04, + COLOR_MODE_STEPPER = 0x05 +} ColorMode_t; + +typedef struct { + struct cRGB current_color[LED_NUMBERS]; + struct cRGB base_current_color; + ColorMode_t current_mode; +} DeviceState_t; + +bool DeviceChangedColorOrModeCheck(void); +void DeviceSetBrightness(uint8_t brightness); +void DeviceSetColor(uint8_t r, uint8_t g, uint8_t b); +void DeviceSetColorMode(ColorMode_t mode); +void DeviceUpdateColorSettings(void); +void DeviceStaticModeHandler(void); +void DeviceBreathModeHahdler(void); +void DevicePulseModeHandler(void); +void DeviceDiscoModeHandler(void); +void DeviceRainbowModeHandler(void); +void DeviceStepperModeHandler(void); + +#endif // _MAIN_H diff --git a/firmware/src/spi.c b/firmware/src/spi.c new file mode 100644 index 0000000..191914c --- /dev/null +++ b/firmware/src/spi.c @@ -0,0 +1,12 @@ +#include "spi.h" + +void SPI_Init(void) { + DDRB |= _BV(PB5) | _BV(PB3) | _BV(PB2); + SPSR |= _BV(SPI2X); + SPCR |= _BV(SPE) | _BV(MSTR); +} + +void SPI_SendByte(uint8_t byte) { + SPDR = byte; + loop_until_bit_is_set(SPSR, SPIF); +} \ No newline at end of file diff --git a/firmware/src/spi.h b/firmware/src/spi.h new file mode 100644 index 0000000..a2bafc1 --- /dev/null +++ b/firmware/src/spi.h @@ -0,0 +1,9 @@ +#if !defined(_SPI_H_) +#define _SPI_H_ + +#include + +void SPI_SendByte(uint8_t byte); +void SPI_Init(void); + +#endif \ No newline at end of file diff --git a/firmware/src/usart.c b/firmware/src/usart.c new file mode 100644 index 0000000..67117e8 --- /dev/null +++ b/firmware/src/usart.c @@ -0,0 +1,64 @@ +#include "usart.h" + +void (*EOT_Handler)(volatile char *rx_buffer) = NULL; + +volatile char rx_buffer[RX_BUFFER_SIZE]; +volatile uint8_t rx_buffer_idx = 0; +volatile bool rx_received_packet = false; + +ISR(USART_RXC_vect) { + char c = UDR; + + if (rx_buffer_idx >= RX_BUFFER_SIZE - 1) rx_buffer_idx = 0; + + rx_buffer[rx_buffer_idx++] = c; + + if (c == EOT || c == '\r' || c == '\n') { + rx_buffer[rx_buffer_idx] = '\0'; + rx_buffer_idx = 0; + if (EOT_Handler != NULL) (*EOT_Handler)(rx_buffer); + } +} + +void USART_SetReceiveHandler(void (*handler)(volatile char *rx_buffer)) { + EOT_Handler = handler; +} + +void USART_OnReceivePacketHandler(void) { + if (EOT_Handler != NULL && rx_received_packet) { + (*EOT_Handler)(rx_buffer); + rx_received_packet = false; + } +} + +void USART_Init(void) { + /** + * USART + * 8-bit char size, 1 stop bit, even parity, baud 9600 + */ + DDRD &= ~_BV(PD0); + DDRD |= _BV(PD1); + UCSRB |= _BV(RXEN) | _BV(TXEN) | _BV(RXCIE); + UCSRC = _BV(URSEL) | _BV(UCSZ0) | _BV(UCSZ1) | _BV(UPM1); + UBRRH = UBRRH_VALUE; + UBRRL = UBRRL_VALUE; +} + +void USART_SendChar(char c) { + loop_until_bit_is_set(UCSRA, UDRE); + UDR = c; +} + +void USART_SendStr(char *str) { + char c; + + while ((c = *str++) != '\0') { + USART_SendChar(c); + } +} + +void USART_SendInt16(int16_t num) { + char str[7]; + itoa(num, str, 10); + USART_SendStr(str); +} \ No newline at end of file diff --git a/firmware/src/usart.h b/firmware/src/usart.h new file mode 100644 index 0000000..768d901 --- /dev/null +++ b/firmware/src/usart.h @@ -0,0 +1,24 @@ +#if !defined(_USART_H_) +#define _USART_H_ + +#include "defs.h" + +#define BAUD 9600 +#define RX_BUFFER_SIZE 32 +#define EOT 0x04 + +#include +#include +#include +#include +#include + +void USART_Init(); +void USART_SendChar(char c); +void USART_SendStr(char *str); +void USART_SendInt16(int16_t num); +void USART_SetReceiveHandler(void (*handler)(volatile char *rx_buffer)); +void USART_OnReceivePacketHandler(void); + + +#endif // _USART_H_ \ No newline at end of file diff --git a/firmware/src/ws2812_config.h b/firmware/src/ws2812_config.h new file mode 100644 index 0000000..b42be7d --- /dev/null +++ b/firmware/src/ws2812_config.h @@ -0,0 +1,47 @@ +/* + * light_ws2812_config.h + * + * v2.4 - Nov 27, 2016 + * + * User Configuration file for the light_ws2812_lib + * + */ + + +#ifndef WS2812_CONFIG_H_ +#define WS2812_CONFIG_H_ + +/////////////////////////////////////////////////////////////////////// +// Define Reset time in µs. +// +// This is the time the library spends waiting after writing the data. +// +// WS2813 needs 300 µs reset time +// WS2812 and clones only need 50 µs +// +/////////////////////////////////////////////////////////////////////// + +#define ws2812_resettime 300 + +/////////////////////////////////////////////////////////////////////// +// Define I/O pin +/////////////////////////////////////////////////////////////////////// + + +#define ws2812_port D // Data port +#define ws2812_pin 7 // Data out pin + +/////////////////////////////////////////////////////////////////////// +// Define interrupt behaviour +// +// Set to 1 if you want the library to handle interrupt toggling +// (i.e. turning off interrupts when sending data and reverting back after). +// Set to 0 if you need to allow interrupts (can introduce flickering!). +// +/////////////////////////////////////////////////////////////////////// + +#define ws2812_interrupt_handling 1 + +#include "defs.h" + +#endif /* WS2812_CONFIG_H_ */ \ No newline at end of file diff --git a/firmware/src/ws2812b.c b/firmware/src/ws2812b.c new file mode 100644 index 0000000..2e67269 --- /dev/null +++ b/firmware/src/ws2812b.c @@ -0,0 +1,48 @@ +#include "ws2812b.h" +#include + +#define LEDS_COUNT 8 +#define PACKET_SIZE LEDS_COUNT * 24 + +void WS2812_SendRGB(uint8_t r, uint8_t g, uint8_t b) { + uint8_t packet[PACKET_SIZE] = {0}; + uint8_t i = 0, j = 0, k = 7; + uint8_t color = g; + + do { + if (j == 8) { + k = 7; + color = r; + } + + if (j == 16) { + k = 7; + color = b; + } + + if (j == 24) { + j = 7; + j = 0; + color = g; + } + + if ((color >> k) & 0x01) { + packet[i] = 0b110; + } else { + packet[i] = 0b100; + } + + j++; + k--; + } while (++i < PACKET_SIZE); + + i = 0; + + cli(); + + do { + SPI_SendByte(packet[i]); + } while (++i < PACKET_SIZE); + + sei(); +} \ No newline at end of file diff --git a/firmware/src/ws2812b.h b/firmware/src/ws2812b.h new file mode 100644 index 0000000..d3c27c0 --- /dev/null +++ b/firmware/src/ws2812b.h @@ -0,0 +1,10 @@ +#if !defined(_WS2812B_H_) +#define _WS2812B_H_ + +#include +#include +#include "spi.h" + +void WS2812_SendRGB(uint8_t r, uint8_t g, uint8_t b); + +#endif // _USART_H_ \ No newline at end of file diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_153223.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_153223.zip new file mode 100755 index 0000000..7c428d0 Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_153223.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_153936.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_153936.zip new file mode 100755 index 0000000..9555a51 Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_153936.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_154443.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_154443.zip new file mode 100755 index 0000000..74d01ab Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_154443.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_160358.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_160358.zip new file mode 100755 index 0000000..4674689 Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_160358.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_161000.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_161000.zip new file mode 100755 index 0000000..0ae036e Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-01_161000.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-03_002332.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-03_002332.zip new file mode 100755 index 0000000..f0f53cc Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-03_002332.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-04_222031.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-04_222031.zip new file mode 100755 index 0000000..0ae036e Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-04_222031.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-06_002339.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-06_002339.zip new file mode 100755 index 0000000..5a0f18c Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-06_002339.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-06_213759.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-06_213759.zip new file mode 100755 index 0000000..bd4aae8 Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-06_213759.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-08_234327.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-08_234327.zip new file mode 100755 index 0000000..affedc5 Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-08_234327.zip differ diff --git a/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-09_232040.zip b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-09_232040.zip new file mode 100755 index 0000000..1e94509 Binary files /dev/null and b/hardware/atmega8a_rgb-night-light-backups/atmega8a_rgb-night-light-2026-04-09_232040.zip differ diff --git a/hardware/atmega8a_rgb-night-light.kicad_pcb b/hardware/atmega8a_rgb-night-light.kicad_pcb new file mode 100755 index 0000000..c547853 --- /dev/null +++ b/hardware/atmega8a_rgb-night-light.kicad_pcb @@ -0,0 +1,2 @@ +(kicad_pcb (version 20241229) (generator "pcbnew") (generator_version "9.0") +) \ No newline at end of file diff --git a/hardware/atmega8a_rgb-night-light.kicad_prl b/hardware/atmega8a_rgb-night-light.kicad_prl new file mode 100755 index 0000000..cc1aec9 --- /dev/null +++ b/hardware/atmega8a_rgb-night-light.kicad_prl @@ -0,0 +1,130 @@ +{ + "board": { + "active_layer": 0, + "active_layer_preset": "All Layers", + "auto_track_width": true, + "hidden_netclasses": [], + "hidden_nets": [], + "high_contrast_mode": 0, + "net_color_mode": 1, + "opacity": { + "images": 0.6, + "pads": 1.0, + "shapes": 1.0, + "tracks": 1.0, + "vias": 1.0, + "zones": 0.6 + }, + "selection_filter": { + "dimensions": true, + "footprints": true, + "graphics": true, + "keepouts": true, + "lockedItems": false, + "otherItems": true, + "pads": true, + "text": true, + "tracks": true, + "vias": true, + "zones": true + }, + "visible_items": [ + "vias", + "footprint_text", + "footprint_anchors", + "ratsnest", + "grid", + "footprints_front", + "footprints_back", + "footprint_values", + "footprint_references", + "tracks", + "drc_errors", + "drawing_sheet", + "bitmaps", + "pads", + "zones", + "drc_warnings", + "locked_item_shadows", + "conflict_shadows", + "shapes" + ], + "visible_layers": "ffffffff_ffffffff_ffffffff_ffffffff", + "zone_display_mode": 0 + }, + "git": { + "repo_type": "", + "repo_username": "", + "ssh_key": "" + }, + "meta": { + "filename": "atmega8a_rgb-night-light.kicad_prl", + "version": 5 + }, + "net_inspector_panel": { + "col_hidden": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "col_order": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ], + "col_widths": [ + 162, + 147, + 91, + 67, + 91, + 91, + 91, + 71, + 91, + 91 + ], + "custom_group_rules": [], + "expanded_rows": [], + "filter_by_net_name": true, + "filter_by_netclass": true, + "filter_text": "", + "group_by_constraint": false, + "group_by_netclass": false, + "show_unconnected_nets": false, + "show_zero_pad_nets": false, + "sort_ascending": true, + "sorting_column": 0 + }, + "open_jobsets": [], + "project": { + "files": [] + }, + "schematic": { + "selection_filter": { + "graphics": true, + "images": true, + "labels": true, + "lockedItems": false, + "otherItems": true, + "pins": true, + "symbols": true, + "text": true, + "wires": true + } + } +} diff --git a/hardware/atmega8a_rgb-night-light.kicad_pro b/hardware/atmega8a_rgb-night-light.kicad_pro new file mode 100755 index 0000000..164ccb5 --- /dev/null +++ b/hardware/atmega8a_rgb-night-light.kicad_pro @@ -0,0 +1,618 @@ +{ + "board": { + "3dviewports": [], + "design_settings": { + "defaults": { + "apply_defaults_to_fp_fields": false, + "apply_defaults_to_fp_shapes": false, + "apply_defaults_to_fp_text": false, + "board_outline_line_width": 0.05, + "copper_line_width": 0.2, + "copper_text_italic": false, + "copper_text_size_h": 1.5, + "copper_text_size_v": 1.5, + "copper_text_thickness": 0.3, + "copper_text_upright": false, + "courtyard_line_width": 0.05, + "dimension_precision": 4, + "dimension_units": 3, + "dimensions": { + "arrow_length": 1270000, + "extension_offset": 500000, + "keep_text_aligned": true, + "suppress_zeroes": true, + "text_position": 0, + "units_format": 0 + }, + "fab_line_width": 0.1, + "fab_text_italic": false, + "fab_text_size_h": 1.0, + "fab_text_size_v": 1.0, + "fab_text_thickness": 0.15, + "fab_text_upright": false, + "other_line_width": 0.1, + "other_text_italic": false, + "other_text_size_h": 1.0, + "other_text_size_v": 1.0, + "other_text_thickness": 0.15, + "other_text_upright": false, + "pads": { + "drill": 0.8, + "height": 1.27, + "width": 2.54 + }, + "silk_line_width": 0.1, + "silk_text_italic": false, + "silk_text_size_h": 1.0, + "silk_text_size_v": 1.0, + "silk_text_thickness": 0.1, + "silk_text_upright": false, + "zones": { + "min_clearance": 0.5 + } + }, + "diff_pair_dimensions": [], + "drc_exclusions": [], + "meta": { + "version": 2 + }, + "rule_severities": { + "annular_width": "error", + "clearance": "error", + "connection_width": "warning", + "copper_edge_clearance": "error", + "copper_sliver": "warning", + "courtyards_overlap": "error", + "creepage": "error", + "diff_pair_gap_out_of_range": "error", + "diff_pair_uncoupled_length_too_long": "error", + "drill_out_of_range": "error", + "duplicate_footprints": "warning", + "extra_footprint": "warning", + "footprint": "error", + "footprint_filters_mismatch": "ignore", + "footprint_symbol_mismatch": "warning", + "footprint_type_mismatch": "ignore", + "hole_clearance": "error", + "hole_to_hole": "warning", + "holes_co_located": "warning", + "invalid_outline": "error", + "isolated_copper": "warning", + "item_on_disabled_layer": "error", + "items_not_allowed": "error", + "length_out_of_range": "error", + "lib_footprint_issues": "warning", + "lib_footprint_mismatch": "warning", + "malformed_courtyard": "error", + "microvia_drill_out_of_range": "error", + "mirrored_text_on_front_layer": "warning", + "missing_courtyard": "ignore", + "missing_footprint": "warning", + "net_conflict": "warning", + "nonmirrored_text_on_back_layer": "warning", + "npth_inside_courtyard": "ignore", + "padstack": "warning", + "pth_inside_courtyard": "ignore", + "shorting_items": "error", + "silk_edge_clearance": "warning", + "silk_over_copper": "warning", + "silk_overlap": "warning", + "skew_out_of_range": "error", + "solder_mask_bridge": "error", + "starved_thermal": "error", + "text_height": "warning", + "text_on_edge_cuts": "error", + "text_thickness": "warning", + "through_hole_pad_without_hole": "error", + "too_many_vias": "error", + "track_angle": "error", + "track_dangling": "warning", + "track_segment_length": "error", + "track_width": "error", + "tracks_crossing": "error", + "unconnected_items": "error", + "unresolved_variable": "error", + "via_dangling": "warning", + "zones_intersect": "error" + }, + "rules": { + "max_error": 0.005, + "min_clearance": 0.0, + "min_connection": 0.0, + "min_copper_edge_clearance": 0.5, + "min_groove_width": 0.0, + "min_hole_clearance": 0.25, + "min_hole_to_hole": 0.25, + "min_microvia_diameter": 0.2, + "min_microvia_drill": 0.1, + "min_resolved_spokes": 2, + "min_silk_clearance": 0.0, + "min_text_height": 0.8, + "min_text_thickness": 0.08, + "min_through_hole_diameter": 0.3, + "min_track_width": 0.0, + "min_via_annular_width": 0.1, + "min_via_diameter": 0.5, + "solder_mask_to_copper_clearance": 0.0, + "use_height_for_length_calcs": true + }, + "teardrop_options": [ + { + "td_onpthpad": true, + "td_onroundshapesonly": false, + "td_onsmdpad": true, + "td_ontrackend": false, + "td_onvia": true + } + ], + "teardrop_parameters": [ + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_on_pad_in_zone": false, + "td_target_name": "td_round_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_on_pad_in_zone": false, + "td_target_name": "td_rect_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_on_pad_in_zone": false, + "td_target_name": "td_track_end", + "td_width_to_size_filter_ratio": 0.9 + } + ], + "track_widths": [], + "tuning_pattern_settings": { + "diff_pair_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 1.0 + }, + "diff_pair_skew_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 0.6 + }, + "single_track_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 0.6 + } + }, + "via_dimensions": [], + "zones_allow_external_fillets": false + }, + "ipc2581": { + "dist": "", + "distpn": "", + "internal_id": "", + "mfg": "", + "mpn": "" + }, + "layer_pairs": [], + "layer_presets": [], + "viewports": [] + }, + "boards": [], + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "endpoint_off_grid": "warning", + "extra_units": "error", + "footprint_filter": "ignore", + "footprint_link_issues": "warning", + "four_way_junction": "ignore", + "global_label_dangling": "warning", + "hier_label_mismatch": "error", + "label_dangling": "error", + "label_multiple_wires": "warning", + "lib_symbol_issues": "warning", + "lib_symbol_mismatch": "warning", + "missing_bidi_pin": "warning", + "missing_input_pin": "warning", + "missing_power_pin": "error", + "missing_unit": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "warning", + "power_pin_not_driven": "error", + "same_local_global_label": "warning", + "similar_label_and_power": "warning", + "similar_labels": "warning", + "similar_power": "warning", + "simulation_model_issue": "ignore", + "single_global_label": "ignore", + "unannotated": "error", + "unconnected_wire_endpoint": "warning", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "atmega8a_rgb-night-light.kicad_pro", + "version": 3 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "priority": 2147483647, + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.2, + "via_diameter": 0.6, + "via_drill": 0.3, + "wire_width": 6 + } + ], + "meta": { + "version": 4 + }, + "net_colors": null, + "netclass_assignments": null, + "netclass_patterns": [] + }, + "pcbnew": { + "last_paths": { + "gencad": "", + "idf": "", + "netlist": "", + "plot": "", + "pos_files": "", + "specctra_dsn": "", + "step": "", + "svg": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "bom_export_filename": "${PROJECTNAME}.csv", + "bom_fmt_presets": [], + "bom_fmt_settings": { + "field_delimiter": ",", + "keep_line_breaks": false, + "keep_tabs": false, + "name": "CSV", + "ref_delimiter": ",", + "ref_range_delimiter": "", + "string_delimiter": "\"" + }, + "bom_presets": [], + "bom_settings": { + "exclude_dnp": false, + "fields_ordered": [ + { + "group_by": false, + "label": "Reference", + "name": "Reference", + "show": true + }, + { + "group_by": false, + "label": "Qty", + "name": "${QUANTITY}", + "show": true + }, + { + "group_by": true, + "label": "Value", + "name": "Value", + "show": true + }, + { + "group_by": true, + "label": "DNP", + "name": "${DNP}", + "show": true + }, + { + "group_by": true, + "label": "Exclude from BOM", + "name": "${EXCLUDE_FROM_BOM}", + "show": true + }, + { + "group_by": true, + "label": "Exclude from Board", + "name": "${EXCLUDE_FROM_BOARD}", + "show": true + }, + { + "group_by": true, + "label": "Footprint", + "name": "Footprint", + "show": true + }, + { + "group_by": false, + "label": "Datasheet", + "name": "Datasheet", + "show": true + } + ], + "filter_string": "", + "group_symbols": true, + "include_excluded_from_bom": true, + "name": "Default Editing", + "sort_asc": true, + "sort_field": "Reference" + }, + "connection_grid_size": 50.0, + "drawing": { + "dashed_lines_dash_length_ratio": 12.0, + "dashed_lines_gap_length_ratio": 3.0, + "default_line_thickness": 6.0, + "default_text_size": 50.0, + "field_names": [], + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.375, + "operating_point_overlay_i_precision": 3, + "operating_point_overlay_i_range": "~A", + "operating_point_overlay_v_precision": 3, + "operating_point_overlay_v_range": "~V", + "overbar_offset_ratio": 1.23, + "pin_symbol_size": 25.0, + "text_offset_ratio": 0.15 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "net_format_name": "", + "page_layout_descr_file": "", + "plot_directory": "C:/Users/serzh/Desktop/", + "space_save_all_events": true, + "spice_current_sheet_as_root": false, + "spice_external_command": "spice \"%I\"", + "spice_model_current_sheet_as_root": true, + "spice_save_all_currents": false, + "spice_save_all_dissipations": false, + "spice_save_all_voltages": false, + "subpart_first_id": 65, + "subpart_id_separator": 0 + }, + "sheets": [ + [ + "6800ce2e-e6e2-46da-a080-1bcfae5c58fe", + "Root" + ] + ], + "text_variables": {} +} diff --git a/hardware/atmega8a_rgb-night-light.kicad_sch b/hardware/atmega8a_rgb-night-light.kicad_sch new file mode 100755 index 0000000..ef4715b --- /dev/null +++ b/hardware/atmega8a_rgb-night-light.kicad_sch @@ -0,0 +1,8904 @@ +(kicad_sch + (version 20250114) + (generator "eeschema") + (generator_version "9.0") + (uuid "6800ce2e-e6e2-46da-a080-1bcfae5c58fe") + (paper "A4") + (title_block + (date "2026-04-01") + (company "sergeyyarkov") + ) + (lib_symbols + (symbol "Connector:USB_C_Plug_USB2.0" + (pin_names + (offset 1.016) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "P" + (at -10.16 19.05 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "USB_C_Plug_USB2.0" + (at 12.7 19.05 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 3.81 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.usb.org/sites/default/files/documents/usb_type-c.zip" + (at 3.81 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "USB 2.0-only Type-C Plug connector" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "usb universal serial bus type-C USB2.0" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "USB*C*Plug*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "USB_C_Plug_USB2.0_0_0" + (rectangle + (start -0.254 -17.78) + (end 0.254 -16.764) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 10.16 15.494) + (end 9.144 14.986) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 10.16 10.414) + (end 9.144 9.906) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 10.16 7.874) + (end 9.144 7.366) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 10.16 2.794) + (end 9.144 2.286) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 10.16 -2.286) + (end 9.144 -2.794) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "USB_C_Plug_USB2.0_0_1" + (rectangle + (start -10.16 17.78) + (end 10.16 -17.78) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + (polyline + (pts + (xy -8.89 -3.81) (xy -8.89 3.81) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -7.62 -3.81) + (end -6.35 3.81) + (stroke + (width 0.254) + (type default) + ) + (fill + (type outline) + ) + ) + (arc + (start -7.62 3.81) + (mid -6.985 4.4423) + (end -6.35 3.81) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -7.62 3.81) + (mid -6.985 4.4423) + (end -6.35 3.81) + (stroke + (width 0.254) + (type default) + ) + (fill + (type outline) + ) + ) + (arc + (start -8.89 3.81) + (mid -6.985 5.7067) + (end -5.08 3.81) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -5.08 -3.81) + (mid -6.985 -5.7067) + (end -8.89 -3.81) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -6.35 -3.81) + (mid -6.985 -4.4423) + (end -7.62 -3.81) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -6.35 -3.81) + (mid -6.985 -4.4423) + (end -7.62 -3.81) + (stroke + (width 0.254) + (type default) + ) + (fill + (type outline) + ) + ) + (polyline + (pts + (xy -5.08 3.81) (xy -5.08 -3.81) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center -2.54 1.143) + (radius 0.635) + (stroke + (width 0.254) + (type default) + ) + (fill + (type outline) + ) + ) + (polyline + (pts + (xy -1.27 4.318) (xy 0 6.858) (xy 1.27 4.318) (xy -1.27 4.318) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type outline) + ) + ) + (polyline + (pts + (xy 0 -2.032) (xy 2.54 0.508) (xy 2.54 1.778) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 -3.302) (xy -2.54 -0.762) (xy -2.54 0.508) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 -5.842) (xy 0 4.318) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 0 -5.842) + (radius 1.27) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start 1.905 1.778) + (end 3.175 3.048) + (stroke + (width 0.254) + (type default) + ) + (fill + (type outline) + ) + ) + ) + (symbol "USB_C_Plug_USB2.0_1_1" + (pin passive line + (at -7.62 -22.86 90) + (length 5.08) + (name "SHIELD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "S1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -22.86 90) + (length 5.08) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "A1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -22.86 90) + (length 5.08) + (hide yes) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "A12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -22.86 90) + (length 5.08) + (hide yes) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "B1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -22.86 90) + (length 5.08) + (hide yes) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "B12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 15.24 15.24 180) + (length 5.08) + (name "VBUS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "A4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 15.24 15.24 180) + (length 5.08) + (hide yes) + (name "VBUS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "A9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 15.24 15.24 180) + (length 5.08) + (hide yes) + (name "VBUS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "B4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 15.24 15.24 180) + (length 5.08) + (hide yes) + (name "VBUS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "B9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 10.16 180) + (length 5.08) + (name "CC" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "A5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 7.62 180) + (length 5.08) + (name "VCONN" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "B5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 2.54 180) + (length 5.08) + (name "D-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "A7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -2.54 180) + (length 5.08) + (name "D+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "A6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:Battery_Cell" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "BT" + (at 2.54 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "Battery_Cell" + (at 2.54 0 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0 1.524 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 1.524 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Single-cell battery" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "battery cell" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Battery_Cell_0_1" + (rectangle + (start -2.286 1.778) + (end 2.286 1.524) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (rectangle + (start -1.524 1.016) + (end 1.524 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (polyline + (pts + (xy 0 1.778) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0.762) (xy 0 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.762 3.048) (xy 1.778 3.048) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 3.556) (xy 1.27 2.54) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "Battery_Cell_1_1" + (pin passive line + (at 0 5.08 270) + (length 2.54) + (name "+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -2.54 90) + (length 2.54) + (name "-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:C" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 0.635 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C" + (at 0.635 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0.9652 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "cap capacitor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "C_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 0.762) (xy 2.032 0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.032 -0.762) (xy 2.032 -0.762) + ) + (stroke + (width 0.508) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "C_1_1" + (pin passive line + (at 0 3.81 270) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 2.794) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:C_Small" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0.254) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "C" + (at 0.254 1.778 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "C_Small" + (at 0.254 -2.032 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor, small symbol" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "capacitor cap" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "C_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "C_Small_0_1" + (polyline + (pts + (xy -1.524 0.508) (xy 1.524 0.508) + ) + (stroke + (width 0.3048) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.524 -0.508) (xy 1.524 -0.508) + ) + (stroke + (width 0.3302) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "C_Small_1_1" + (pin passive line + (at 0 2.54 270) + (length 2.032) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -2.54 90) + (length 2.032) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:Crystal_Small" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 1.016) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "Y" + (at 0 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Crystal_Small" + (at 0 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Two pin crystal, small symbol" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "quartz ceramic resonator oscillator" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "Crystal*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Crystal_Small_0_1" + (polyline + (pts + (xy -1.27 -0.762) (xy -1.27 0.762) + ) + (stroke + (width 0.381) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start -0.762 -1.524) + (end 0.762 1.524) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -0.762) (xy 1.27 0.762) + ) + (stroke + (width 0.381) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "Crystal_Small_1_1" + (pin passive line + (at -2.54 0 0) + (length 1.27) + (name "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 2.54 0 180) + (length 1.27) + (name "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:Q_PMOS" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "Q" + (at 5.08 1.27 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "Q_PMOS" + (at 5.08 -1.27 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 5.08 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "P-MOSFET transistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "PMOS P-MOS" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Q_PMOS_0_1" + (polyline + (pts + (xy 0.254 1.905) (xy 0.254 -1.905) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.254 0) (xy -2.54 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.762 2.286) (xy 0.762 1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.762 1.778) (xy 3.302 1.778) (xy 3.302 -1.778) (xy 0.762 -1.778) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.762 0.508) (xy 0.762 -0.508) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.762 -1.27) (xy 0.762 -2.286) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 1.651 0) + (radius 2.794) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.286 0) (xy 1.27 0.381) (xy 1.27 -0.381) (xy 2.286 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (polyline + (pts + (xy 2.54 2.54) (xy 2.54 1.778) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 2.54 1.778) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (circle + (center 2.54 -1.778) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (polyline + (pts + (xy 2.54 -2.54) (xy 2.54 0) (xy 0.762 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.921 -0.381) (xy 3.683 -0.381) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.302 -0.381) (xy 2.921 0.254) (xy 3.683 0.254) (xy 3.302 -0.381) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "Q_PMOS_1_1" + (pin input line + (at -5.08 0 0) + (length 2.54) + (name "G" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "G" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 2.54 5.08 270) + (length 2.54) + (name "D" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "D" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 2.54 -5.08 90) + (length 2.54) + (name "S" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "S" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Device:R" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "R" + (at 2.032 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "R" + (at 0 0 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -1.778 0 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "R res resistor" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "R_*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "R_0_1" + (rectangle + (start -1.016 -2.54) + (end 1.016 2.54) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "R_1_1" + (pin passive line + (at 0 3.81 270) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 -3.81 90) + (length 1.27) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Diode:SS14" + (pin_numbers + (hide yes) + ) + (pin_names + (offset 1.016) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "D" + (at 0 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SS14" + (at 0 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Diode_SMD:D_SMA" + (at 0 -4.445 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.vishay.com/docs/88746/ss12.pdf" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "40V 1A Schottky Diode, SMA" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "diode Schottky" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "D*SMA*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "SS14_0_1" + (polyline + (pts + (xy -1.905 0.635) (xy -1.905 1.27) (xy -1.27 1.27) (xy -1.27 -1.27) (xy -0.635 -1.27) (xy -0.635 -0.635) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 1.27) (xy 1.27 -1.27) (xy -1.27 0) (xy 1.27 1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 0) (xy -1.27 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "SS14_1_1" + (pin passive line + (at -3.81 0 0) + (length 2.54) + (name "K" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 3.81 0 180) + (length 2.54) + (name "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Interface_USB:CH340K" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at -6.858 13.97 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "CH340K" + (at 1.27 13.97 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_SO:SSOP-10-1EP_3.9x4.9mm_P1mm_EP2.1x3.3mm" + (at 1.27 -13.97 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn.sparkfun.com/assets/5/0/a/8/5/CH340DS1.PDF" + (at -8.89 20.32 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "USB serial converter, UART, SSOP-10" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "USB UART Serial Converter Interface" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "SSOP*1EP*3.9x4.9mm*P1mm*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "CH340K_0_1" + (rectangle + (start -7.62 12.7) + (end 7.62 -12.7) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "CH340K_1_0" + (pin passive line + (at 0 -15.24 90) + (length 2.54) + (hide yes) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (symbol "CH340K_1_1" + (pin bidirectional line + (at -10.16 2.54 0) + (length 2.54) + (name "UD+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -10.16 0 0) + (length 2.54) + (name "UD-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at -2.54 15.24 270) + (length 2.54) + (name "VCC" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 0 15.24 270) + (length 2.54) + (name "V3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -15.24 90) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at 10.16 10.16 180) + (length 2.54) + (name "TXD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at 10.16 7.62 180) + (length 2.54) + (name "RXD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at 10.16 2.54 180) + (length 2.54) + (name "~{CTS}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at 10.16 -7.62 180) + (length 2.54) + (name "~{DTR}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at 10.16 -10.16 180) + (length 2.54) + (name "~{RTS}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "LED:WS2812B" + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "D" + (at 5.08 5.715 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + ) + (property "Value" "WS2812B" + (at 1.27 -5.715 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + ) + ) + (property "Footprint" "LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm" + (at 1.27 -7.62 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf" + (at 2.54 -9.525 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "RGB LED NeoPixel addressable" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "LED*WS2812*PLCC*5.0x5.0mm*P3.2mm*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "WS2812B_0_0" + (text "RGB" + (at 2.286 -4.191 0) + (effects + (font + (size 0.762 0.762) + ) + ) + ) + ) + (symbol "WS2812B_0_1" + (polyline + (pts + (xy 1.27 -2.54) (xy 1.778 -2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -3.556) (xy 1.778 -3.556) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.286 -1.524) (xy 1.27 -2.54) (xy 1.27 -2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.286 -2.54) (xy 1.27 -3.556) (xy 1.27 -3.048) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.683 -1.016) (xy 3.683 -3.556) (xy 3.683 -4.064) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 4.699 -1.524) (xy 2.667 -1.524) (xy 3.683 -3.556) (xy 4.699 -1.524) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 4.699 -3.556) (xy 2.667 -3.556) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 5.08 5.08) + (end -5.08 -5.08) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "WS2812B_1_1" + (pin input line + (at -7.62 0 0) + (length 2.54) + (name "DIN" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 7.62 270) + (length 2.54) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -7.62 90) + (length 2.54) + (name "VSS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at 7.62 0 180) + (length 2.54) + (name "DOUT" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "MCU_Microchip_ATmega:ATmega8A-P" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at -12.7 34.29 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left bottom) + ) + ) + (property "Value" "ATmega8A-P" + (at 5.08 -34.29 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + ) + ) + (property "Footprint" "Package_DIP:DIP-28_W7.62mm" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (hide yes) + ) + ) + (property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/Microchip%208bit%20mcu%20AVR%20ATmega8A%20data%20sheet%2040001974A.pdf" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "16MHz, 8kB Flash, 1kB SRAM, 512B EEPROM, DIP-28" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "AVR 8bit Microcontroller MegaAVR" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "DIP*W7.62mm*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "ATmega8A-P_0_1" + (rectangle + (start -12.7 -33.02) + (end 12.7 33.02) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "ATmega8A-P_1_1" + (pin bidirectional line + (at -15.24 27.94 0) + (length 2.54) + (name "PC6/~{RESET}" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 22.86 0) + (length 2.54) + (name "PB6/XTAL1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -15.24 17.78 0) + (length 2.54) + (name "PB7/XTAL2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -15.24 12.7 0) + (length 2.54) + (name "AREF" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "21" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 35.56 270) + (length 2.54) + (name "VCC" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -35.56 90) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 2.54 35.56 270) + (length 2.54) + (name "AVCC" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "20" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 2.54 -35.56 90) + (length 2.54) + (name "AGND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "22" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 27.94 180) + (length 2.54) + (name "PB0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 25.4 180) + (length 2.54) + (name "PB1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "15" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 22.86 180) + (length 2.54) + (name "PB2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "16" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 20.32 180) + (length 2.54) + (name "PB3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "17" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 17.78 180) + (length 2.54) + (name "PB4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "18" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 15.24 180) + (length 2.54) + (name "PB5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "19" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 10.16 180) + (length 2.54) + (name "PC0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "23" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 7.62 180) + (length 2.54) + (name "PC1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "24" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 5.08 180) + (length 2.54) + (name "PC2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "25" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 2.54 180) + (length 2.54) + (name "PC3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "26" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 0 180) + (length 2.54) + (name "PC4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "27" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -2.54 180) + (length 2.54) + (name "PC5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "28" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -7.62 180) + (length 2.54) + (name "PD0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -10.16 180) + (length 2.54) + (name "PD1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -12.7 180) + (length 2.54) + (name "PD2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -15.24 180) + (length 2.54) + (name "PD3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -17.78 180) + (length 2.54) + (name "PD4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -20.32 180) + (length 2.54) + (name "PD5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -22.86 180) + (length 2.54) + (name "PD6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at 15.24 -25.4 180) + (length 2.54) + (name "PD7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "PowerICs:IP2326" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at 0.762 7.62 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "IP2326_0_1" + (rectangle + (start -8.89 6.35) + (end 10.16 -5.08) + (stroke + (width 0) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "IP2326_1_1" + (pin input line + (at -11.43 3.81 0) + (length 2.54) + (name "In+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -11.43 -3.81 0) + (length 2.54) + (name "In-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at -2.54 -7.62 90) + (length 2.54) + (name "Out+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin output line + (at 3.81 -7.62 90) + (length 2.54) + (name "Out-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at 12.7 3.81 180) + (length 2.54) + (name "B+" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at 12.7 0 180) + (length 2.54) + (name "BM" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at 12.7 -3.81 180) + (length 2.54) + (name "B-" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "PowerICs:KA278RA05" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at 4.572 4.826 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "KA278RA05" + (at 4.572 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Package_TO_SOT_THT:TO-220-4_Vertical" + (at -9.652 10.668 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://partdb.yarkov.tech/media/part/datasheet-67856bd1435c8.pdf" + (at 5.334 8.128 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "KA278RA05_0_1" + (rectangle + (start -1.27 1.27) + (end 10.16 -8.89) + (stroke + (width 0) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "KA278RA05_1_1" + (pin power_in line + (at -3.81 -1.27 0) + (length 2.54) + (name "Vin" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 1.27 -11.43 90) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 7.62 -11.43 90) + (length 2.54) + (name "Vadj" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_out line + (at 12.7 -1.27 180) + (length 2.54) + (name "Vout" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "Switch:SW_DPST_x2" + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "SW" + (at 0 3.175 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_DPST_x2" + (at 0 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Single Pole Single Throw (SPST) switch, separate symbol" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "switch lever" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "SW_DPST_x2_0_0" + (circle + (center -2.032 0) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.524 0.254) (xy 1.524 1.778) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 2.032 0) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "SW_DPST_x2_1_1" + (pin passive line + (at -5.08 0 0) + (length 2.54) + (name "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 0 180) + (length 2.54) + (name "B" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (symbol "SW_DPST_x2_2_1" + (pin passive line + (at -5.08 0 0) + (length 2.54) + (name "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 5.08 0 180) + (length 2.54) + (name "B" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "power:+5V" + (power) + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+5V_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+5V_1_1" + (pin power_in line + (at 0 0 90) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "power:+7.5V" + (power) + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+7.5V" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+7.5V\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+7.5V_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+7.5V_1_1" + (pin power_in line + (at 0 0 90) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "power:+BATT" + (power) + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+BATT" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+BATT\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power battery" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+BATT_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+BATT_1_1" + (pin power_in line + (at 0 0 90) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "power:GND" + (power) + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + (symbol "power:VBUS" + (power) + (pin_numbers + (hide yes) + ) + (pin_names + (offset 0) + (hide yes) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "VBUS" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"VBUS\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "VBUS_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "VBUS_1_1" + (pin power_in line + (at 0 0 90) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + (embedded_fonts no) + ) + ) + (junction + (at 118.11 35.56) + (diameter 0) + (color 0 0 0 0) + (uuid "1c62c5ec-4eaa-40e7-8345-4d2d050e18d9") + ) + (junction + (at 58.42 83.82) + (diameter 0) + (color 0 0 0 0) + (uuid "2a67c260-eb9d-4063-be8d-dc4258be1320") + ) + (junction + (at 49.53 91.44) + (diameter 0) + (color 0 0 0 0) + (uuid "2ccff4bd-97b9-4959-8276-8509c6517a40") + ) + (junction + (at 107.95 49.53) + (diameter 0) + (color 0 0 0 0) + (uuid "42a85b53-e744-4631-9d29-1124a346764a") + ) + (junction + (at 182.88 63.5) + (diameter 0) + (color 0 0 0 0) + (uuid "47b69c27-224b-45f2-ab88-fd420938c8f2") + ) + (junction + (at 205.74 104.14) + (diameter 0) + (color 0 0 0 0) + (uuid "50a653b6-5a1c-41f7-894a-59e658fe7047") + ) + (junction + (at 58.42 78.74) + (diameter 0) + (color 0 0 0 0) + (uuid "6353dcd4-b72b-4457-af70-93757bab395c") + ) + (junction + (at 118.11 49.53) + (diameter 0) + (color 0 0 0 0) + (uuid "654a3514-7ada-43a4-bdbb-eb64c23ad9b2") + ) + (junction + (at 144.78 132.08) + (diameter 0) + (color 0 0 0 0) + (uuid "91f10cd8-b706-4ea2-95a8-debd73c961ea") + ) + (junction + (at 232.41 138.43) + (diameter 0) + (color 0 0 0 0) + (uuid "ac339778-87a6-49c9-b7a2-119b3fc66a97") + ) + (junction + (at 85.09 62.23) + (diameter 0) + (color 0 0 0 0) + (uuid "ac5d68a6-2623-47c8-a869-81b928fee80f") + ) + (junction + (at 85.09 139.7) + (diameter 0) + (color 0 0 0 0) + (uuid "ae427e9b-2751-483c-87f9-c64dfae2ab1a") + ) + (junction + (at 162.56 107.95) + (diameter 0) + (color 0 0 0 0) + (uuid "b2a26a81-2a25-4935-b783-c160047da438") + ) + (junction + (at 82.55 35.56) + (diameter 0) + (color 0 0 0 0) + (uuid "b3fead26-ba02-4801-b76b-283b13a011f2") + ) + (junction + (at 88.9 49.53) + (diameter 0) + (color 0 0 0 0) + (uuid "b7744337-e8f5-4794-96a4-4e8900771f7b") + ) + (junction + (at 124.46 35.56) + (diameter 0) + (color 0 0 0 0) + (uuid "b7f1d111-4d49-49ce-a6c0-87cd6435a5db") + ) + (junction + (at 85.09 64.77) + (diameter 0) + (color 0 0 0 0) + (uuid "cda0418c-20c2-4325-93e1-ae177f5ac0ba") + ) + (junction + (at 128.27 132.08) + (diameter 0) + (color 0 0 0 0) + (uuid "da3321e6-21ac-46a9-807d-afb7ab901e6d") + ) + (junction + (at 88.9 35.56) + (diameter 0) + (color 0 0 0 0) + (uuid "f980bebb-84d8-4697-9269-bfa699f05aac") + ) + (no_connect + (at 100.33 119.38) + (uuid "0adf0de9-e4e8-4e9c-a920-e9dbc76b5dfd") + ) + (no_connect + (at 100.33 73.66) + (uuid "15bc50f7-05ec-431b-9941-6a8055ce4c24") + ) + (no_connect + (at 100.33 121.92) + (uuid "19489d54-a230-4c06-ae9c-253271096125") + ) + (no_connect + (at 100.33 76.2) + (uuid "1feee956-a9ce-47a7-a892-d57ab6e8f2e8") + ) + (no_connect + (at 176.53 30.48) + (uuid "27739932-f4d8-47f3-9029-22df489f210c") + ) + (no_connect + (at 100.33 114.3) + (uuid "2e22e50f-3781-4352-a83c-ebf2e1a29d61") + ) + (no_connect + (at 100.33 96.52) + (uuid "37625b5d-1584-4efe-8f9b-fe3336f864dd") + ) + (no_connect + (at 101.6 45.72) + (uuid "42a865e6-e84f-49ee-83dc-f675f2bcf5ec") + ) + (no_connect + (at 100.33 104.14) + (uuid "5b0758ac-d13b-43a2-980f-745a2f8c5c96") + ) + (no_connect + (at 190.5 68.58) + (uuid "5cf11db1-3d7c-4a56-8aaf-9543184a8e67") + ) + (no_connect + (at 163.83 30.48) + (uuid "7487025d-58cd-486b-bb75-20238ecd460b") + ) + (no_connect + (at 100.33 99.06) + (uuid "82b7cfcb-6de2-402e-9644-008bd0c152a7") + ) + (no_connect + (at 100.33 86.36) + (uuid "845cea67-6cd0-4b92-b2f1-4aad8507c115") + ) + (no_connect + (at 100.33 101.6) + (uuid "87b398af-0efe-41e7-8abb-be46e0c1f1ab") + ) + (no_connect + (at 173.99 30.48) + (uuid "99b89a04-2c09-4acd-99fc-9f248d4f6344") + ) + (no_connect + (at 100.33 81.28) + (uuid "9de5b0a6-8b8f-4e26-9d35-363083bc5fbd") + ) + (no_connect + (at 100.33 78.74) + (uuid "a094a1c5-4472-4785-8f7c-e1cd14f0e816") + ) + (no_connect + (at 168.91 144.78) + (uuid "a7a837b6-b0a4-46f6-9d1a-514e9ec332cf") + ) + (no_connect + (at 100.33 116.84) + (uuid "b13a6d9a-00af-484e-8415-9653744a48d2") + ) + (no_connect + (at 190.5 71.12) + (uuid "bc9a5f7b-7f9a-4713-a846-808e6f9da4ca") + ) + (no_connect + (at 69.85 88.9) + (uuid "c4c3938c-eb42-4b65-8447-4d6fbfdb0951") + ) + (no_connect + (at 100.33 93.98) + (uuid "c974aa05-ea6a-4de4-a502-5037b2edd8ba") + ) + (no_connect + (at 100.33 124.46) + (uuid "df613132-44f9-4a5d-8507-846b13b337e6") + ) + (no_connect + (at 100.33 83.82) + (uuid "ecbf3bbe-46c1-4e2c-8e0d-31aa48442aaa") + ) + (no_connect + (at 100.33 91.44) + (uuid "fcd2c376-47f5-47d8-9d5e-756b4fe79814") + ) + (wire + (pts + (xy 82.55 49.53) (xy 88.9 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "005726a8-9ec6-40fd-a714-c1f6a5e2ff9f") + ) + (wire + (pts + (xy 241.3 138.43) (xy 242.57 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "02d1b1c1-c936-467c-a75b-5966e566555d") + ) + (wire + (pts + (xy 124.46 35.56) (xy 124.46 29.21) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0608a652-76a2-4591-b9a4-19f27b365fd3") + ) + (wire + (pts + (xy 118.11 35.56) (xy 124.46 35.56) + ) + (stroke + (width 0) + (type default) + ) + (uuid "0ba987ec-281a-4af0-9224-954c32965449") + ) + (wire + (pts + (xy 124.46 35.56) (xy 124.46 39.37) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1261ac32-ac4b-4d82-8d0c-d9c3bcea7280") + ) + (wire + (pts + (xy 105.41 127) (xy 105.41 144.78) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1426cd4f-4b22-4f57-be83-405eaaee97ab") + ) + (wire + (pts + (xy 107.95 49.53) (xy 118.11 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "15a5612a-1ee1-4b77-acb5-023fa34732fc") + ) + (wire + (pts + (xy 49.53 92.71) (xy 49.53 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "19bd98c8-488a-473b-8172-d65865d2812d") + ) + (wire + (pts + (xy 223.52 138.43) (xy 222.25 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1a1f084c-d013-4205-b406-7ccbc939b9fb") + ) + (wire + (pts + (xy 213.36 104.14) (xy 213.36 101.6) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1d3089fa-9dcc-4f10-90a8-3adfa345a0d3") + ) + (wire + (pts + (xy 88.9 48.26) (xy 88.9 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1e486489-5c27-4195-85d3-ac3e343c173c") + ) + (wire + (pts + (xy 162.56 90.17) (xy 162.56 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "20ea03b9-c2e9-4a11-a101-cbff5d074737") + ) + (wire + (pts + (xy 80.01 62.23) (xy 85.09 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "234a8992-0b92-445b-8916-ff67ee7dd5f0") + ) + (wire + (pts + (xy 88.9 35.56) (xy 88.9 43.18) + ) + (stroke + (width 0) + (type default) + ) + (uuid "24d93b08-8533-484a-85cd-caddc33b154d") + ) + (wire + (pts + (xy 160.02 107.95) (xy 162.56 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "26541abb-4e0f-42dd-842a-77b0ad37ed91") + ) + (wire + (pts + (xy 233.68 138.43) (xy 232.41 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "26bf1356-ea1b-487d-811a-046d1a7a4562") + ) + (wire + (pts + (xy 85.09 62.23) (xy 85.09 64.77) + ) + (stroke + (width 0) + (type default) + ) + (uuid "288ebaac-81d6-49ae-a476-93bbb1774a6f") + ) + (wire + (pts + (xy 152.4 144.78) (xy 153.67 144.78) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2adf9799-6471-45be-a30f-98aadec2e179") + ) + (wire + (pts + (xy 82.55 35.56) (xy 88.9 35.56) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2ba14a22-6201-4739-ba61-2273d5c942a8") + ) + (wire + (pts + (xy 190.5 81.28) (xy 163.83 81.28) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2e187039-6949-40c8-a4ac-fbb52f070d7e") + ) + (wire + (pts + (xy 186.69 45.72) (xy 186.69 40.64) + ) + (stroke + (width 0) + (type default) + ) + (uuid "33c3e726-4e18-476a-b393-231009e3c715") + ) + (wire + (pts + (xy 85.09 59.69) (xy 85.09 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "35d87f15-4539-4f79-89e2-4dca718de30a") + ) + (wire + (pts + (xy 107.95 144.78) (xy 105.41 144.78) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3a372820-97bf-46e4-9239-9c03c9e631d3") + ) + (wire + (pts + (xy 219.71 128.27) (xy 232.41 128.27) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3ff5e5bd-6538-4daa-9ccc-27e587ebe502") + ) + (wire + (pts + (xy 242.57 124.46) (xy 219.71 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "48604a6b-9e11-4f40-95de-727fb7af7d4f") + ) + (wire + (pts + (xy 138.43 40.64) (xy 137.16 40.64) + ) + (stroke + (width 0) + (type default) + ) + (uuid "48d70f7f-93e1-47ea-bda9-cac869e14c89") + ) + (wire + (pts + (xy 161.29 132.08) (xy 144.78 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4970b434-ce61-495f-b621-1fce1c30dbcd") + ) + (wire + (pts + (xy 82.55 35.56) (xy 82.55 38.1) + ) + (stroke + (width 0) + (type default) + ) + (uuid "498ae7e3-1507-4f12-b03f-18970f38f058") + ) + (wire + (pts + (xy 118.11 49.53) (xy 124.46 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "49a582bc-6c66-405f-87fd-45614d44a5df") + ) + (wire + (pts + (xy 87.63 66.04) (xy 87.63 64.77) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4ed40eed-cc00-4aa3-a9e8-8e5490d35b05") + ) + (wire + (pts + (xy 66.04 64.77) (xy 66.04 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4f1bd772-531f-407e-bda2-43aa237188cd") + ) + (wire + (pts + (xy 205.74 104.14) (xy 205.74 106.68) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5050bd3a-84a1-4007-8174-9cfdf9e2f5c8") + ) + (wire + (pts + (xy 143.51 124.46) (xy 195.58 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "50dad8ae-f65e-40dd-a615-fd939f9999e0") + ) + (wire + (pts + (xy 128.27 123.19) (xy 128.27 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5149342e-136f-4509-a4e0-f08831f7e426") + ) + (wire + (pts + (xy 49.53 91.44) (xy 46.99 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5175a35b-97d4-4b1d-90e1-c9e58579ba89") + ) + (wire + (pts + (xy 162.56 107.95) (xy 167.64 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "55101cf4-7271-4d9c-b01a-85301f59aba1") + ) + (wire + (pts + (xy 198.12 146.05) (xy 204.47 146.05) + ) + (stroke + (width 0) + (type default) + ) + (uuid "551a7dea-860f-431b-976e-a7b577017d04") + ) + (wire + (pts + (xy 242.57 138.43) (xy 242.57 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "584d6b63-7354-4269-8ce1-2b347c208c3e") + ) + (wire + (pts + (xy 85.09 139.7) (xy 87.63 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "58dc599b-bff4-4114-a175-b034d9421c39") + ) + (wire + (pts + (xy 128.27 132.08) (xy 128.27 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5f9e4fac-6b7f-4e7b-93d0-92d6f4b470fa") + ) + (wire + (pts + (xy 162.56 107.95) (xy 162.56 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "67426fdc-6dda-403b-895a-05cce49e64aa") + ) + (wire + (pts + (xy 100.33 127) (xy 105.41 127) + ) + (stroke + (width 0) + (type default) + ) + (uuid "693ba6e6-559e-4cd0-bb72-f8b6eda3ee5c") + ) + (wire + (pts + (xy 204.47 146.05) (xy 204.47 135.89) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6ae29401-0a78-4665-b25d-4eee4c5ea9cf") + ) + (wire + (pts + (xy 85.09 64.77) (xy 85.09 66.04) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6be324fe-b7d8-4d36-bbb6-3791d4301877") + ) + (wire + (pts + (xy 144.78 132.08) (xy 128.27 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6e18fa7f-dd9f-4fdb-82bb-7bc976178b16") + ) + (wire + (pts + (xy 82.55 35.56) (xy 82.55 29.21) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6fe0788c-caf4-47dc-8512-5e1f6f90ce1c") + ) + (wire + (pts + (xy 52.07 83.82) (xy 58.42 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7058dd5a-fa8e-49b8-9826-e5c7c590f5ce") + ) + (wire + (pts + (xy 52.07 91.44) (xy 52.07 90.17) + ) + (stroke + (width 0) + (type default) + ) + (uuid "718b6774-fad5-42cd-8a49-413c726d5545") + ) + (wire + (pts + (xy 118.11 134.62) (xy 118.11 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "720e09ce-1883-4931-82a6-02adb9700649") + ) + (wire + (pts + (xy 146.05 29.21) (xy 146.05 43.18) + ) + (stroke + (width 0) + (type default) + ) + (uuid "735bd1a6-ae93-494b-ac43-0c4facf3e835") + ) + (wire + (pts + (xy 49.53 91.44) (xy 52.07 91.44) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7512054e-38f1-4820-a58a-0d6d73163bd0") + ) + (wire + (pts + (xy 232.41 138.43) (xy 231.14 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7730a3c0-b931-4295-9a5f-4d66170ea1bc") + ) + (wire + (pts + (xy 144.78 137.16) (xy 144.78 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7ab11f99-3d7a-4a53-afc8-94078f83b55c") + ) + (wire + (pts + (xy 182.88 59.69) (xy 182.88 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7c427ca3-79fb-4c35-a4a5-a8badd894847") + ) + (wire + (pts + (xy 58.42 83.82) (xy 69.85 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7f064493-56e7-4635-b2fa-de473d6bfc53") + ) + (wire + (pts + (xy 163.83 81.28) (xy 163.83 50.8) + ) + (stroke + (width 0) + (type default) + ) + (uuid "816367e6-4025-48f1-ae9f-5f25922114f6") + ) + (wire + (pts + (xy 166.37 76.2) (xy 166.37 50.8) + ) + (stroke + (width 0) + (type default) + ) + (uuid "826fe7bc-d08e-4a39-a92c-ca7cbdbe7cc0") + ) + (wire + (pts + (xy 127 132.08) (xy 128.27 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "84136582-ee3e-4f46-94ae-a99edbbdb77b") + ) + (wire + (pts + (xy 219.71 132.08) (xy 222.25 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "87284759-bac9-47b1-bc36-304c2d61e5fd") + ) + (wire + (pts + (xy 46.99 91.44) (xy 46.99 90.17) + ) + (stroke + (width 0) + (type default) + ) + (uuid "89acef42-165f-49bb-96c1-77e298ca7a08") + ) + (wire + (pts + (xy 128.27 152.4) (xy 128.27 154.94) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8a041482-3489-4ff9-913f-2345cd0c38ee") + ) + (wire + (pts + (xy 87.63 64.77) (xy 85.09 64.77) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8a71044c-76f4-452e-8d20-cc56d8ef2c1c") + ) + (wire + (pts + (xy 161.29 137.16) (xy 161.29 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8c19a7b5-894d-42d8-9d8f-f4736d994b54") + ) + (wire + (pts + (xy 105.41 111.76) (xy 100.33 111.76) + ) + (stroke + (width 0) + (type default) + ) + (uuid "8e27fe37-c000-4c90-8af9-6611aa57a3ed") + ) + (wire + (pts + (xy 85.09 139.7) (xy 85.09 140.97) + ) + (stroke + (width 0) + (type default) + ) + (uuid "93cf1726-d091-4efa-9e0a-b2741bdd8d05") + ) + (wire + (pts + (xy 87.63 139.7) (xy 87.63 137.16) + ) + (stroke + (width 0) + (type default) + ) + (uuid "98671f2d-59e1-416b-b318-399ecf6cea7d") + ) + (wire + (pts + (xy 232.41 128.27) (xy 232.41 138.43) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9b2c1ece-9f49-4248-aaf0-3af07192ca27") + ) + (wire + (pts + (xy 135.89 144.78) (xy 137.16 144.78) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9e894c6e-9094-4f57-9b33-b0d4fef4660a") + ) + (wire + (pts + (xy 107.95 45.72) (xy 107.95 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "9fd9c633-96e0-49d0-8746-52919a4f8db6") + ) + (wire + (pts + (xy 189.23 133.35) (xy 189.23 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a2865377-1a4d-4c5a-bde8-0c904bbad1e6") + ) + (wire + (pts + (xy 205.74 101.6) (xy 205.74 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a350b752-8949-4e24-a8d1-cfcc6d9f02e8") + ) + (wire + (pts + (xy 143.51 40.64) (xy 151.13 40.64) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a4065757-d5da-47c5-b3c4-554c30ec1ef3") + ) + (wire + (pts + (xy 186.69 40.64) (xy 181.61 40.64) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a4799aa2-22e1-4236-abef-fd17f300372f") + ) + (wire + (pts + (xy 46.99 85.09) (xy 46.99 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a99bd05c-b281-43af-99f5-03e239559462") + ) + (wire + (pts + (xy 198.12 143.51) (xy 198.12 146.05) + ) + (stroke + (width 0) + (type default) + ) + (uuid "aa2739f7-3fc6-4f22-8a7c-73621c8b05e8") + ) + (wire + (pts + (xy 205.74 104.14) (xy 213.36 104.14) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ac1f881d-134d-4577-9f11-f80238249872") + ) + (wire + (pts + (xy 182.88 90.17) (xy 182.88 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b469a552-fc49-4b46-b1ff-a6e74855e0bd") + ) + (wire + (pts + (xy 82.55 45.72) (xy 82.55 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b4e27f32-489a-43b5-8a28-311c971ff8cc") + ) + (wire + (pts + (xy 88.9 49.53) (xy 107.95 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b8d4e188-5f2f-4aba-8bff-35b34d2a993c") + ) + (wire + (pts + (xy 107.95 54.61) (xy 107.95 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "b957aa89-c536-400b-a5bc-1023e990b815") + ) + (wire + (pts + (xy 137.16 40.64) (xy 137.16 54.61) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bb063abb-e230-4766-817e-3267e9b9c664") + ) + (wire + (pts + (xy 124.46 49.53) (xy 124.46 46.99) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bc3d41df-1a74-44eb-85f0-8b613ec89b37") + ) + (wire + (pts + (xy 156.21 29.21) (xy 156.21 30.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bf6f0d9d-293c-4b69-a973-1a3ddf1534cc") + ) + (wire + (pts + (xy 113.03 35.56) (xy 118.11 35.56) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bfd33395-7141-42b1-9e34-abca4e96a5ba") + ) + (wire + (pts + (xy 66.04 62.23) (xy 74.93 62.23) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bfec116e-51a9-44bd-8771-3c172e71e3f1") + ) + (wire + (pts + (xy 143.51 63.5) (xy 182.88 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c04d7eac-ccc3-45e8-8c54-1e0b7e1a7fb2") + ) + (wire + (pts + (xy 177.8 107.95) (xy 182.88 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c1bf1b53-38fb-40bd-86a9-0548809e5d0c") + ) + (wire + (pts + (xy 143.51 63.5) (xy 143.51 92.71) + ) + (stroke + (width 0) + (type default) + ) + (uuid "c28edcfe-a4d0-423b-bcdb-d32f6faa1863") + ) + (wire + (pts + (xy 152.4 107.95) (xy 151.13 107.95) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cb61d51e-b6b9-4a04-a0f4-5e94bdbf0c47") + ) + (wire + (pts + (xy 46.99 78.74) (xy 58.42 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cb688f25-d03d-4a3e-89e8-b96836bdfa99") + ) + (wire + (pts + (xy 118.11 48.26) (xy 118.11 49.53) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cdf4c40d-7c33-49bd-8eae-a4426ee5f990") + ) + (wire + (pts + (xy 158.75 29.21) (xy 158.75 30.48) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ce8f8e5f-e74e-456c-9954-4dc535853313") + ) + (wire + (pts + (xy 115.57 144.78) (xy 120.65 144.78) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cf061c2b-2206-4d8b-b9bf-7ef322e2becb") + ) + (wire + (pts + (xy 161.29 152.4) (xy 161.29 154.94) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d03b5998-c221-4296-ace3-db099392f8bb") + ) + (wire + (pts + (xy 190.5 76.2) (xy 166.37 76.2) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d0bfd868-a7d1-48cf-9f5d-783a03fad20b") + ) + (wire + (pts + (xy 222.25 138.43) (xy 222.25 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d433a02e-2677-4e4f-acd6-9ad5e3ed82bb") + ) + (wire + (pts + (xy 118.11 132.08) (xy 119.38 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d4406432-1e5b-4e71-9434-90f304f293d0") + ) + (wire + (pts + (xy 52.07 85.09) (xy 52.07 83.82) + ) + (stroke + (width 0) + (type default) + ) + (uuid "dc2fb1e9-bc9d-46c3-8d6d-0f9cb11abe56") + ) + (wire + (pts + (xy 105.41 109.22) (xy 100.33 109.22) + ) + (stroke + (width 0) + (type default) + ) + (uuid "df90ce26-112e-40d2-a016-a92ec49d2f16") + ) + (wire + (pts + (xy 189.23 132.08) (xy 195.58 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e0320104-a26a-44f8-99e0-451f456371ee") + ) + (wire + (pts + (xy 143.51 124.46) (xy 143.51 113.03) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e1257c18-5f34-4e33-807a-4bdf2d12dec9") + ) + (wire + (pts + (xy 88.9 35.56) (xy 96.52 35.56) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e45abf2a-6dce-43d2-85dd-8c134d2dfd7b") + ) + (wire + (pts + (xy 210.82 135.89) (xy 210.82 140.97) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e4ca15ef-5398-4432-8130-0ee7978227d2") + ) + (wire + (pts + (xy 162.56 116.84) (xy 162.56 118.11) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e515139f-7e91-4a14-b47f-c75f7d0d281e") + ) + (wire + (pts + (xy 58.42 78.74) (xy 69.85 78.74) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e7d4abdd-43e6-408c-add1-193c69293942") + ) + (wire + (pts + (xy 143.51 100.33) (xy 143.51 102.87) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ea2739bf-bafb-4b68-996a-0b22828b919c") + ) + (wire + (pts + (xy 182.88 63.5) (xy 190.5 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f1aa437a-5c47-4bf0-b5d4-064b1425e190") + ) + (wire + (pts + (xy 144.78 152.4) (xy 144.78 154.94) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f382d428-54e1-4146-a0a4-11437a5e1b7d") + ) + (wire + (pts + (xy 146.05 43.18) (xy 151.13 43.18) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f757a7b6-a553-4686-a610-4aad549f505a") + ) + (wire + (pts + (xy 85.09 137.16) (xy 85.09 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f88364fd-4325-485c-8a19-ffaece0c33a9") + ) + (wire + (pts + (xy 118.11 35.56) (xy 118.11 43.18) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f9a4460b-b60a-4ded-b06f-a3ebec44696c") + ) + (global_label "RX_MCU" + (shape input) + (at 156.21 29.21 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "12877d98-8ac7-400d-9b9b-f5a5507d2ac8") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 156.21 18.7258 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "TX_MCU" + (shape input) + (at 105.41 111.76 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "1c73b761-81cd-45fc-8e58-1982f1d86796") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 115.5918 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "TX_MCU" + (shape input) + (at 158.75 29.21 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "a4d571d6-5248-4b5b-93bf-a68c7e7d1787") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 158.75 19.0282 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "RX_MCU" + (shape input) + (at 105.41 109.22 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "c9619900-c64f-4365-95a5-bd9cd8766005") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 115.8942 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 82.55 41.91 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "05f04c67-4651-4d7a-a513-0fde28ce93e7") + (property "Reference" "C3" + (at 78.74 40.6399 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "470uF" + (at 78.74 43.1799 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 81.5848 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 82.55 41.91 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 82.55 41.91 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d8ab8f78-76d2-4377-8239-a1230fd9513d") + ) + (pin "2" + (uuid "d7ba7a6e-a495-4596-8d65-9a5d7432515b") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "C3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 186.69 45.72 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "0bf93ce8-9b48-4eea-aaf2-8b4020126e0e") + (property "Reference" "#PWR015" + (at 186.69 52.07 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 186.69 50.038 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 186.69 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 186.69 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 186.69 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "cba4f972-07d1-4586-8556-d66544d70874") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR015") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 189.23 133.35 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "0f0ae4b1-d746-4292-ab45-855a81dbf447") + (property "Reference" "#PWR05" + (at 189.23 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 189.23 138.43 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 189.23 133.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 189.23 133.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 189.23 133.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "153e900a-bb69-4d08-bcc0-07738b144e25") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR05") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Interface_USB:CH340K") + (at 166.37 40.64 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "13809c44-1bf8-4bd9-8a4f-b18de41363cf") + (property "Reference" "U4" + (at 184.15 35.1946 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "CH340K" + (at 184.15 37.7346 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Package_SO:SSOP-10-1EP_3.9x4.9mm_P1mm_EP2.1x3.3mm" + (at 180.34 39.37 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn.sparkfun.com/assets/5/0/a/8/5/CH340DS1.PDF" + (at 146.05 49.53 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "USB serial converter, UART, SSOP-10" + (at 166.37 40.64 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "7" + (uuid "913e9ab9-6978-43f9-8508-8b519c0a6ca3") + ) + (pin "6" + (uuid "fc0132c1-def9-4af7-86d9-2eba9519e1e9") + ) + (pin "11" + (uuid "daff71bf-f680-4da5-914f-5ca703baf9dc") + ) + (pin "2" + (uuid "1fc883fc-06de-4f98-bf2c-5852246a0dd9") + ) + (pin "3" + (uuid "430ae108-d754-4469-b926-4957db472eac") + ) + (pin "5" + (uuid "11659883-e9ab-4e34-9c04-060c4033f3da") + ) + (pin "10" + (uuid "5bb81831-e999-49b0-8ffa-998adcd090ba") + ) + (pin "1" + (uuid "38b178cb-2107-43e9-9b1a-e2186e3b5242") + ) + (pin "4" + (uuid "a83424e5-baab-4847-af90-c843f25c6052") + ) + (pin "9" + (uuid "f4758c43-e959-464c-8f15-5f3d417c078f") + ) + (pin "8" + (uuid "e844f731-d68c-491d-ab0b-f233319074f0") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "U4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_DPST_x2") + (at 172.72 107.95 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "16872cdf-7141-49ee-8657-25a27801e8da") + (property "Reference" "SW1" + (at 172.72 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "PWR" + (at 172.72 104.14 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 172.72 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 172.72 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Single Pole Single Throw (SPST) switch, separate symbol" + (at 172.72 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "a0f43005-14f7-4702-89f3-5b8b38dd30d3") + ) + (pin "3" + (uuid "d68e698d-f813-40bf-82ba-3a6552f44bd4") + ) + (pin "4" + (uuid "052c833f-f454-49c5-9165-3578de7fef2a") + ) + (pin "1" + (uuid "d34405d0-c23e-42cd-9ca4-770ee9afc8ed") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "SW1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+BATT") + (at 162.56 90.17 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "1ee3b02e-82d3-4763-bf69-401263d0ca70") + (property "Reference" "#PWR06" + (at 162.56 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+BATT" + (at 162.56 85.09 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 162.56 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 162.56 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+BATT\"" + (at 162.56 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "287961b1-646e-4e23-a0a8-5ca6442dd8ad") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR06") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+BATT") + (at 124.46 29.21 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "2578c78e-e160-445f-8c1a-9f6c0989bea1") + (property "Reference" "#PWR09" + (at 124.46 33.02 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+BATT" + (at 124.46 24.13 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 124.46 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 124.46 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+BATT\"" + (at 124.46 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "be26ba49-4595-43ae-9398-7c4f87116f0a") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR09") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 82.55 29.21 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "29f12765-1b97-4d18-a7f5-edcb73090faf") + (property "Reference" "#PWR011" + (at 82.55 33.02 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 82.55 24.13 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 82.55 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 82.55 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 82.55 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8799179c-80d0-41a1-80f8-a8ab8c8fad63") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR011") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C_Small") + (at 88.9 45.72 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "30b1e786-b019-4ca2-afc3-7e12d4460666") + (property "Reference" "C6" + (at 91.44 44.4562 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "0.1uF" + (at 91.44 46.9962 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 88.9 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 88.9 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor, small symbol" + (at 88.9 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "e177c038-a478-4097-a7ee-ddebca894f95") + ) + (pin "2" + (uuid "fc0c45da-08a4-49e2-8275-3e32e73776ef") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "C6") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 123.19 132.08 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "32021318-b5ac-472d-a319-08d9c150f768") + (property "Reference" "C9" + (at 123.444 125.73 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "1000uF" + (at 123.444 128.27 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 127 131.1148 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 123.19 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 123.19 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "1b66b719-4666-43ee-895a-8e8e7498d6d6") + ) + (pin "1" + (uuid "b5713052-f88a-482e-b0ca-8d891559798f") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "C9") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 107.95 54.61 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "32e97088-5190-48ce-9b04-764377f7a5c1") + (property "Reference" "#PWR010" + (at 107.95 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 107.95 58.928 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 107.95 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 107.95 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 107.95 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "bdbe9525-e221-4148-b33b-3d2f96222fbf") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR010") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+7.5V") + (at 198.12 143.51 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "369aaef9-51bd-4cd3-8c3d-91521f799496") + (property "Reference" "#PWR02" + (at 198.12 147.32 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+7.5V" + (at 198.12 138.43 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 198.12 143.51 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 198.12 143.51 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+7.5V\"" + (at 198.12 143.51 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "620e9cd1-ba4e-448e-849b-8a5fd4352bd0") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR02") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "PowerICs:IP2326") + (at 207.01 128.27 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "3a70dd93-da8b-44a2-9e09-05d7a35dde84") + (property "Reference" "U2" + (at 207.518 118.364 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "BMS" + (at 207.645 120.65 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 207.01 128.27 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 207.01 128.27 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 207.01 128.27 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "2e4b180f-2b67-4942-9f87-e0dd43564724") + ) + (pin "6" + (uuid "1b8857e5-cdda-4597-aac1-5fef5afaa8f5") + ) + (pin "1" + (uuid "396487f3-9e39-436f-883b-9164e8e5f493") + ) + (pin "2" + (uuid "007bb957-0351-4430-8d8b-a33f3f62d785") + ) + (pin "3" + (uuid "c1818859-5818-4466-8e9b-f5b33755d891") + ) + (pin "7" + (uuid "2e42e4c7-901e-4e8a-a32c-5831e80cc093") + ) + (pin "5" + (uuid "132d7b8c-bda0-45b7-85ab-d14f3bc7b06d") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "U2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 85.09 140.97 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "3bfc61bb-ce0c-4b1b-a982-10644644b62f") + (property "Reference" "#PWR013" + (at 85.09 147.32 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 85.09 145.288 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 85.09 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 85.09 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 85.09 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "dc59bd52-0bf4-4e74-9349-e8828b683f16") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR013") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:VBUS") + (at 182.88 59.69 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "4058de7b-7bb8-402f-bbed-c7b49b6cf1f3") + (property "Reference" "#PWR014" + (at 182.88 63.5 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "VBUS" + (at 182.88 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 182.88 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 182.88 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"VBUS\"" + (at 182.88 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "80f8d6ba-af1c-4f52-98eb-fc642b010e89") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR014") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "PowerICs:KA278RA05") + (at 109.22 34.29 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "41ffbf62-0ce0-4b01-ab1b-410b82eb3f51") + (property "Reference" "U3" + (at 104.775 27.94 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "KA278RA05" + (at 104.775 30.48 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Package_TO_SOT_THT:TO-220-4_Vertical" + (at 118.872 23.622 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://partdb.yarkov.tech/media/part/datasheet-67856bd1435c8.pdf" + (at 103.886 26.162 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 109.22 34.29 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "ed3838dd-0c12-4ef4-81d5-b12d4a62097f") + ) + (pin "3" + (uuid "2f9dd910-24ee-4e4d-95dc-eceac6af582b") + ) + (pin "4" + (uuid "781da904-2aaa-419c-ab98-00a48fdeaf94") + ) + (pin "2" + (uuid "0bb33506-c1ab-457d-b878-38498721ded3") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "U3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 210.82 140.97 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "441d30af-f0cc-434c-a2cd-9de2f439837d") + (property "Reference" "#PWR01" + (at 210.82 147.32 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 210.82 146.05 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 210.82 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 210.82 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 210.82 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "459c5e11-63f0-4889-8d59-d96dacb50baa") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR01") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Diode:SS14") + (at 143.51 96.52 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "482c2a79-1d7e-4e63-8179-e65f44a8bb7b") + (property "Reference" "D1" + (at 146.05 95.5674 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "SS14" + (at 146.05 98.1074 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_SMD:D_SMA" + (at 147.955 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.vishay.com/docs/88746/ss12.pdf" + (at 143.51 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "40V 1A Schottky Diode, SMA" + (at 143.51 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "c0273058-a424-43de-8aa8-5366df9338a0") + ) + (pin "2" + (uuid "a990c089-78dd-4f7e-b64b-8a50116ef730") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "D1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 205.74 106.68 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "492f35e5-ee3d-48f6-96a3-b7ba4d98bf5b") + (property "Reference" "#PWR03" + (at 205.74 113.03 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 205.74 111.76 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 205.74 106.68 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 205.74 106.68 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 205.74 106.68 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "99cd0026-88ce-4f72-9730-79875a90c391") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR03") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C_Small") + (at 46.99 87.63 0) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "52c576fe-6f53-4634-bc48-c12f84cf7c3d") + (property "Reference" "C2" + (at 44.45 86.3535 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "22pF" + (at 44.45 88.8935 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 46.99 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 46.99 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor, small symbol" + (at 46.99 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "afa1a1c5-3652-4def-9f63-76ce9b2d2666") + ) + (pin "1" + (uuid "e58c60e0-c96f-451a-9f3a-9ec0367ca92d") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "C2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 146.05 29.21 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "5b130e60-2aa6-409b-88b5-b019a7925bb4") + (property "Reference" "#PWR016" + (at 146.05 33.02 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 146.05 24.13 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 146.05 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 146.05 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 146.05 29.21 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "e7edfe22-b1ea-48e5-bdeb-63408088f93e") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR016") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:WS2812B") + (at 144.78 144.78 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "6418ed44-39e2-4b6d-8011-5bff7123f7d4") + (property "Reference" "D3" + (at 150.114 135.128 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "WS2812B" + (at 150.114 137.668 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm" + (at 146.05 152.4 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf" + (at 147.32 154.305 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 144.78 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "3" + (uuid "0b6414ba-0b60-472d-bf16-e4a6b3f7427a") + ) + (pin "1" + (uuid "2cae3c13-70d7-4528-8598-736dbd08879b") + ) + (pin "2" + (uuid "1f465d9d-3ab2-4a8d-bc5a-636ec7e41a84") + ) + (pin "4" + (uuid "0233cd4e-116c-4c87-af7c-812decd75d90") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "D3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C_Small") + (at 52.07 87.63 180) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "6639476b-cd75-4de4-9111-ba0b88eba313") + (property "Reference" "C1" + (at 54.61 86.3535 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "22pF" + (at 54.61 88.8935 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 52.07 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 52.07 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor, small symbol" + (at 52.07 87.63 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "0ce672cf-fb98-41fa-ac60-556befad7825") + ) + (pin "1" + (uuid "53ba1641-384a-4ab1-bbb4-64ff28326422") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "C1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:WS2812B") + (at 128.27 144.78 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "6d333796-b8fa-499b-8c7b-0ae871a7a0c1") + (property "Reference" "D2" + (at 133.604 135.128 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "WS2812B" + (at 133.604 137.668 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm" + (at 129.54 152.4 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf" + (at 130.81 154.305 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 128.27 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "3" + (uuid "a8deffdd-ed2d-47b1-9e7c-471135c39a2e") + ) + (pin "1" + (uuid "baa179a6-0c64-465f-a191-745e85582d3a") + ) + (pin "2" + (uuid "939bcbfa-e602-4f00-985d-9913c6a68383") + ) + (pin "4" + (uuid "4287e715-94cc-413b-b33d-0f8774fa81e4") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "D2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C_Small") + (at 118.11 45.72 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "729ea3a0-de7e-4c08-8de7-c57a9bd716dc") + (property "Reference" "C5" + (at 115.57 44.4562 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "0.1uF" + (at 115.57 46.9962 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 118.11 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 118.11 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor, small symbol" + (at 118.11 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "11fc7448-4940-4de5-bfb6-29627f2876a3") + ) + (pin "2" + (uuid "35635154-5875-470c-8773-c60ee861f112") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "C5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 162.56 118.11 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "7b3f66ac-8035-430d-8f49-b3a465db3595") + (property "Reference" "#PWR07" + (at 162.56 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 162.56 122.428 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 162.56 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 162.56 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 162.56 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "74ff5ea7-34ca-45a4-9db6-c7193b7f325c") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR07") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 66.04 64.77 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "7edf765a-b0ca-452c-95c4-78b206cb77b4") + (property "Reference" "#PWR018" + (at 66.04 71.12 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 66.04 69.088 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 66.04 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 66.04 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 66.04 64.77 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "369d161e-671c-4bff-98a8-a49cda233155") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR018") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "MCU_Microchip_ATmega:ATmega8A-P") + (at 85.09 101.6 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "8672f206-ce08-4fb3-94a8-c6aaee3d3f82") + (property "Reference" "U1" + (at 89.7733 63.5 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "ATmega8A-P" + (at 89.7733 66.04 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "Package_DIP:DIP-28_W7.62mm" + (at 85.09 101.6 0) + (effects + (font + (size 1.27 1.27) + (italic yes) + ) + (hide yes) + ) + ) + (property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/Microchip%208bit%20mcu%20AVR%20ATmega8A%20data%20sheet%2040001974A.pdf" + (at 85.09 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "16MHz, 8kB Flash, 1kB SRAM, 512B EEPROM, DIP-28" + (at 85.09 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "23" + (uuid "450652d1-561e-4dca-8355-31e5c697df52") + ) + (pin "6" + (uuid "5dbfb94b-c8c2-46c1-9c0a-c92f861f46b5") + ) + (pin "8" + (uuid "5ab69c13-17b4-4881-9f20-2b5e21430a70") + ) + (pin "21" + (uuid "4734a95e-7824-4933-86ad-b372c46133b1") + ) + (pin "7" + (uuid "f814f687-0a91-46cc-b3db-6a6bb10c67d9") + ) + (pin "14" + (uuid "1fefab07-35d1-4d3d-ab5c-12810437bd2e") + ) + (pin "15" + (uuid "0332428d-fd8a-431b-83ab-cf1ce29b2e7d") + ) + (pin "16" + (uuid "493cdc08-e764-4400-a7cc-f611c2817f38") + ) + (pin "5" + (uuid "592fa311-5703-417b-93f5-1020a3079a6e") + ) + (pin "25" + (uuid "720fc0ee-ab5f-4f6e-a9b7-b038569f3261") + ) + (pin "1" + (uuid "d5941a2e-6b86-4d31-8586-dfd1d9742423") + ) + (pin "10" + (uuid "cd23bb73-3854-48d5-89ac-f5f3245faca9") + ) + (pin "22" + (uuid "0599085a-a032-4166-9ef3-e03cc3256002") + ) + (pin "17" + (uuid "3155ca98-14d7-473d-bafa-6022bf5eca87") + ) + (pin "18" + (uuid "9d103394-ff7b-4f63-a29b-035f97c97136") + ) + (pin "24" + (uuid "83bf4ff8-01b2-4f7f-9f0e-199171d9b74b") + ) + (pin "2" + (uuid "02442c3a-1ece-444a-9bfb-506246d501b7") + ) + (pin "28" + (uuid "8d8f4998-49db-4d54-a82f-6653da309c84") + ) + (pin "9" + (uuid "efa757ce-18c4-44ad-96fe-d51bd4e8c957") + ) + (pin "3" + (uuid "eac24504-d1a5-4c79-befe-323defd269a5") + ) + (pin "27" + (uuid "eda56eec-54c9-4fe7-b573-55c7bf23676a") + ) + (pin "20" + (uuid "5b4d5407-d88e-44f4-978c-b3349b9ff9b4") + ) + (pin "26" + (uuid "7410aa73-cfe8-4181-a0ef-f3d51e3af1a1") + ) + (pin "19" + (uuid "a241cced-ab21-4645-83a9-6d99a9b71b26") + ) + (pin "4" + (uuid "a16b2ec5-c89b-4ea6-8862-563645184916") + ) + (pin "11" + (uuid "36f32c80-6503-43b1-bf1b-1780fab5c037") + ) + (pin "12" + (uuid "c4d59f95-3d7c-4dfd-8eae-9ae4aa297919") + ) + (pin "13" + (uuid "1ce8489a-7dd3-4b54-8b7e-2ac79acc22f9") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "U1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 118.11 134.62 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "8d876e6c-139b-483d-88dd-f3e0f1291ff2") + (property "Reference" "#PWR021" + (at 118.11 140.97 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 118.11 138.938 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 118.11 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 118.11 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 118.11 134.62 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "71724a18-46ce-4800-a7de-ae01980c70e9") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR021") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:WS2812B") + (at 161.29 144.78 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "8f0a40e8-20eb-4170-ac3c-9437d7cb280b") + (property "Reference" "D4" + (at 166.624 135.128 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "WS2812B" + (at 166.624 137.668 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm" + (at 162.56 152.4 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf" + (at 163.83 154.305 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 161.29 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "3" + (uuid "77544f91-3b4b-4c7d-b71d-9ed43546f606") + ) + (pin "1" + (uuid "dc310a36-ee19-46d0-b8a1-41a1a8118f53") + ) + (pin "2" + (uuid "4be051b5-1826-4ac7-a04c-1c7e0649eb46") + ) + (pin "4" + (uuid "75b8b392-847e-4f64-acf7-2bf7a93f6b7f") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "D4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 128.27 154.94 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "8fbdd5d3-6bc3-410d-88ec-668581e6eac7") + (property "Reference" "#PWR020" + (at 128.27 161.29 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 128.27 159.258 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 128.27 154.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 128.27 154.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 128.27 154.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8a5b0bc3-42c2-48cd-8732-e3e18c1f8f9c") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR020") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:Crystal_Small") + (at 58.42 81.28 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "a11b4967-feee-47be-9d55-1154894c59a7") + (property "Reference" "Y1" + (at 60.96 80.0099 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "12Mhz" + (at 60.96 82.5499 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 58.42 81.28 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 58.42 81.28 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Two pin crystal, small symbol" + (at 58.42 81.28 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "127516be-37f3-473d-94a0-7afb65f68226") + ) + (pin "1" + (uuid "8182216a-59a7-4414-8c87-c9478e8544b9") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "Y1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 156.21 107.95 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "a5c95f6b-d3b2-4f85-9d57-a205360aaf4d") + (property "Reference" "R1" + (at 156.21 101.6 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "1k" + (at 156.21 104.14 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 156.21 109.728 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 156.21 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 156.21 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "f4327d09-372a-4026-a2ee-bc473f22d291") + ) + (pin "2" + (uuid "5e35029e-c145-4daa-a027-5c42ac79c862") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "R1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 137.16 54.61 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "a73533cf-259f-4196-8e6a-9935f050ee8c") + (property "Reference" "#PWR017" + (at 137.16 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 137.16 58.928 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 137.16 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 137.16 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 137.16 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "3903d732-59f8-47bc-a574-c13f2faaf2f9") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR017") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C_Small") + (at 140.97 40.64 90) + (mirror x) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "ab0a4979-f9e8-4e5b-b257-7e1a2b111236") + (property "Reference" "C7" + (at 143.002 34.798 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "0.1uF" + (at 143.51 37.338 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 140.97 40.64 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 140.97 40.64 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor, small symbol" + (at 140.97 40.64 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "4f0dcb03-f3b4-4fe2-9d27-9f8883cd46f5") + ) + (pin "2" + (uuid "4e9d94e5-6944-4148-bb7e-de77013a409f") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "C7") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:Battery_Cell") + (at 236.22 138.43 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "b11cd68b-f03f-4735-b041-6a17643c6163") + (property "Reference" "BT1" + (at 238.0615 146.05 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "3.7v" + (at 238.0615 143.51 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 237.744 138.43 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 237.744 138.43 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Single-cell battery" + (at 236.22 138.43 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "eea88ef4-b4a6-483d-b661-97c5e0451810") + ) + (pin "1" + (uuid "a8fd130e-cf4f-48c0-b79b-196a88025980") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "BT1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C") + (at 124.46 43.18 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "b276ca6b-9c9f-43e5-bdae-439789e28825") + (property "Reference" "C4" + (at 128.27 41.9099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "470uF" + (at 128.27 44.4499 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 125.4252 46.99 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 124.46 43.18 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor" + (at 124.46 43.18 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "4064afa4-b17a-4596-b2df-7a5f1df14ae6") + ) + (pin "2" + (uuid "db6bc03c-86eb-4c72-b235-8dd660b5790a") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "C4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 161.29 154.94 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "ba84e935-57eb-4dd0-b54f-3029f5ced696") + (property "Reference" "#PWR023" + (at 161.29 161.29 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 161.29 159.258 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 161.29 154.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 161.29 154.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 161.29 154.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "79f004bb-7b34-42f6-b0dd-0777594e2244") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR023") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 111.76 144.78 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "c0ff690b-ccbe-4e2d-bd1b-e04a00bce260") + (property "Reference" "R3" + (at 111.76 138.43 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "330" + (at 111.76 140.97 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 111.76 146.558 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 111.76 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 111.76 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "4a836eff-fe23-4698-ac78-6d5381563404") + ) + (pin "1" + (uuid "3a3e5676-b797-49ed-84bc-3d07f5cd54a7") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "R3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+7.5V") + (at 182.88 90.17 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "c1dd90ec-20b3-4047-bc41-adaa29f14b6c") + (property "Reference" "#PWR04" + (at 182.88 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+7.5V" + (at 182.88 85.09 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 182.88 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 182.88 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+7.5V\"" + (at 182.88 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "3c6f011f-0760-4ac6-996d-038b23f074f4") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR04") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:Q_PMOS") + (at 146.05 107.95 180) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "c2cfb67f-ed55-4c36-8998-534af59dd20e") + (property "Reference" "Q1" + (at 139.7 106.6799 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "Q_PMOS" + (at 139.7 109.2199 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "" + (at 140.97 110.49 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 146.05 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "P-MOSFET transistor" + (at 146.05 107.95 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "G" + (uuid "6c6d1484-7cb3-4fb8-bc4e-06849397cb5f") + ) + (pin "D" + (uuid "10a2a3e5-c045-4920-b102-0c70a580d698") + ) + (pin "S" + (uuid "743d5ec3-fe3b-4991-813e-1e65a2b2d54c") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "Q1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:C_Small") + (at 77.47 62.23 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "c3cf2701-a499-4924-afec-5e3fc87f7ecf") + (property "Reference" "C8" + (at 77.4763 55.88 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "0.1uF" + (at 77.4763 58.42 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 77.47 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 77.47 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Unpolarized capacitor, small symbol" + (at 77.47 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "c704e17e-f110-42fc-a540-7a0e6f2d6949") + ) + (pin "2" + (uuid "1e8e9c44-0125-47c7-8d0e-372c8d57f4a0") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "C8") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Connector:USB_C_Plug_USB2.0") + (at 205.74 78.74 0) + (mirror y) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "cf8c393c-d604-414d-90d7-ef2a6c47349c") + (property "Reference" "P1" + (at 205.74 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "USB_C_Plug_USB2.0" + (at 205.74 58.42 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 201.93 78.74 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "https://www.usb.org/sites/default/files/documents/usb_type-c.zip" + (at 201.93 78.74 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "USB 2.0-only Type-C Plug connector" + (at 205.74 78.74 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "A5" + (uuid "70b8d034-8546-4587-bef2-f69e480e4ef8") + ) + (pin "B4" + (uuid "676170de-d472-440b-a6b7-c90bd00522b8") + ) + (pin "A9" + (uuid "e234b912-cf08-4c6e-a741-5a8036bda71f") + ) + (pin "A12" + (uuid "0b3884b1-b492-4368-892f-8cd0515c6311") + ) + (pin "A1" + (uuid "328175ce-7e60-431d-9db7-a44670547d18") + ) + (pin "B5" + (uuid "cb31821f-b6d3-4694-9f1a-b4c6bab6051b") + ) + (pin "A4" + (uuid "e7ffcce5-cff5-4093-a3f1-387813f66141") + ) + (pin "A6" + (uuid "fb382347-2524-4721-af6a-95fc49dddd2f") + ) + (pin "S1" + (uuid "9b4fb5b4-ad3d-4001-a6cb-900843769b9a") + ) + (pin "A7" + (uuid "163952b1-d8b9-4948-8f80-2deaba8a5088") + ) + (pin "B1" + (uuid "fbcfe27a-5697-4c03-b70e-cb284282eb91") + ) + (pin "B9" + (uuid "1f668db0-0632-4b4d-b3fc-63d67e7d6205") + ) + (pin "B12" + (uuid "af46b9d1-3053-4736-8100-18f85825816b") + ) + (instances + (project "" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "P1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:R") + (at 162.56 113.03 180) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "d4c1f588-777d-4a00-9116-68857a2fe9d2") + (property "Reference" "R2" + (at 165.1 111.7599 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "10k" + (at 165.1 114.2999 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "" + (at 164.338 113.03 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 162.56 113.03 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Resistor" + (at 162.56 113.03 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "dc2376ca-303f-4ff2-ac4e-a5890f828241") + ) + (pin "2" + (uuid "eccd8fcb-9916-447e-bc2f-5dc1e0c227ec") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "R2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 128.27 123.19 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "d4d602d5-3b4f-4cab-86e1-0225c37c62a7") + (property "Reference" "#PWR019" + (at 128.27 127 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 128.27 118.11 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 128.27 123.19 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 128.27 123.19 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 128.27 123.19 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "450df36b-b690-4aea-96fc-fd0af003acb0") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR019") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:Battery_Cell") + (at 226.06 138.43 270) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "e2b8047a-8cb4-48a8-82f0-436decd98e0a") + (property "Reference" "BT2" + (at 227.9015 146.05 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "3.7v" + (at 227.9015 143.51 90) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 227.584 138.43 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 227.584 138.43 90) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Single-cell battery" + (at 226.06 138.43 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "99b92ce0-b5a3-472a-afe4-6305cfe3570c") + ) + (pin "1" + (uuid "f077a74c-d997-4ef1-aedd-4f40880ed341") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "BT2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 85.09 59.69 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "e9f40c63-a71f-4312-a6b9-c3e16a470d0f") + (property "Reference" "#PWR012" + (at 85.09 63.5 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 85.09 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 85.09 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 85.09 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 85.09 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "e9693fee-a987-4ce0-8e64-8a84441577fc") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR012") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 49.53 92.71 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "ee90b2cf-5a07-4e97-a62d-4aa74599c770") + (property "Reference" "#PWR08" + (at 49.53 99.06 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 49.53 97.79 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 49.53 92.71 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 49.53 92.71 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 49.53 92.71 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "3c5da136-44c1-45a7-bba4-da381f27e0b9") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR08") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 144.78 154.94 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "f0584e18-1c7e-49b6-8cd2-6be00e9da65c") + (property "Reference" "#PWR022" + (at 144.78 161.29 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 144.78 159.258 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 144.78 154.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 144.78 154.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 144.78 154.94 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "26241935-3830-4f3c-84c9-b3819a41439a") + ) + (instances + (project "atmega8a_rgb-night-light" + (path "/6800ce2e-e6e2-46da-a080-1bcfae5c58fe" + (reference "#PWR022") + (unit 1) + ) + ) + ) + ) + (sheet_instances + (path "/" + (page "1") + ) + ) + (embedded_fonts no) +) diff --git a/hardware/ch340_adapter_smd-F_Cu.svg b/hardware/ch340_adapter_smd-F_Cu.svg new file mode 100755 index 0000000..46a54a3 --- /dev/null +++ b/hardware/ch340_adapter_smd-F_Cu.svg @@ -0,0 +1,519 @@ + + + +SVG Image created as ch340_adapter_smd-F_Cu.svg date 2026/04/05 18:48:22 + Image generated by PCBNEW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/hardware/fp-info-cache b/hardware/fp-info-cache new file mode 100755 index 0000000..1874828 --- /dev/null +++ b/hardware/fp-info-cache @@ -0,0 +1 @@ +0 diff --git a/hardware/lut.pdf b/hardware/lut.pdf new file mode 100755 index 0000000..c9c0fec Binary files /dev/null and b/hardware/lut.pdf differ diff --git a/hardware/lut.svg b/hardware/lut.svg new file mode 100755 index 0000000..2a65fe5 --- /dev/null +++ b/hardware/lut.svg @@ -0,0 +1,766 @@ + + + + diff --git a/hardware/sym-lib-table b/hardware/sym-lib-table new file mode 100755 index 0000000..7277d55 --- /dev/null +++ b/hardware/sym-lib-table @@ -0,0 +1,5 @@ +(sym_lib_table + (version 7) + (lib (name "IP2326-BMS-2S-3S")(type "KiCad")(uri "${KIPRJMOD}/IP2326-BMS-2S-3S.kicad_sym")(options "")(descr "")) + (lib (name "Power")(type "KiCad")(uri "${KIPRJMOD}/Power.kicad_sym")(options "")(descr "")) +)