diff --git a/default/VFD_Sinus_AT328.elf b/default/VFD_Sinus_AT328.elf
index 5c813f5471b283d704e9ee16fd5fc13e189a2caf..4047edc92a068b577581509a503b6b1b050d80f9 100755
Binary files a/default/VFD_Sinus_AT328.elf and b/default/VFD_Sinus_AT328.elf differ
diff --git a/default/VFD_Sinus_AT328.hex b/default/VFD_Sinus_AT328.hex
index d487a96b675d9e74f43c88ad0cdf1f722cf534cd..2247d847a160cb9f4805705e79de3a922ce6d28e 100644
--- a/default/VFD_Sinus_AT328.hex
+++ b/default/VFD_Sinus_AT328.hex
@@ -54,14 +54,14 @@
 :10035000FC0052FA004AF80042F6003AF40032F18A
 :10036000002AEF0021EC0019E80011E50008E10087
 :1003700011241FBECFEFD8E0DEBFCDBF11E0A0E05B
-:10038000B1E0EAEBF3E102C005900D92A032B107B3
+:10038000B1E0E2EEF3E102C005900D92A032B107B8
 :10039000D9F721E0A0E2B1E001C01D92AD33B20770
-:1003A000E1F70E942B070C94DB090C940000CF931B
+:1003A000E1F70E942B070C94EF090C940000CF9307
 :1003B000DF93DC01FB01E9011A821B821C821D8292
 :1003C000198218829F838E83798768875B874A8723
-:1003D0008FEF9FE7BD010E94FE087D876C879F011C
+:1003D0008FEF9FE7BD010E9412097D876C879F0107
 :1003E000FF0F440B550B61E070E08FEF9FE70E9419
-:1003F00034092E873F87488B598BDF91CF91089521
+:1003F00048092E873F87488B598BDF91CF9108950D
 :10040000EF92FF920F931F93CF93DF938B01FA012B
 :100410009C01261B370B848595858217930784F0F2
 :10042000919581959109281739076CF086819781FC
@@ -74,12 +74,12 @@
 :1004900081959F4FAF4FBF4F281739074A075B071A
 :1004A0004CF482839383A483B5836FEF7FEF80E066
 :1004B00090E808C02283338344835583A085B185A7
-:1004C0000E94620920813181201B310BA285B385F6
+:1004C0000E94760920813181201B310BA285B385E2
 :1004D0002A9F70012B9FF00C3A9FF00C112411837E
 :1004E00000838E01DD0F220B330BAB01BC01400FEB
 :1004F000511F621F731FC701FF0CAA0BBB0B8A01A0
 :100500009B01080F191F2A1F3B1FC901B80120E0DA
-:1005100031E040E050E00E943409213010E831071A
+:1005100031E040E050E00E944809213010E8310706
 :100520001FEF4107510724F421E030E84FEF5FEF60
 :10053000DA01C901811520E89207A105B10524F06F
 :100540008FEF9FE7A0E0B0E0DF91CF911F910F9177
@@ -90,7 +90,7 @@
 :100590008081CF910C94C406CF93C82F892F0E94DD
 :1005A000B8028C2FCF910C94B80280E20C94C40650
 :1005B000DF92EF92FF920F931F93CF93DF934AE066
-:1005C00060E071E00E94750980933C01E0E0F1E099
+:1005C00060E071E00E94890980933C01E0E0F1E085
 :1005D00001900020E9F73197E050F140DE2E80E0F5
 :1005E000E82E81E0F82E8701FF27EF012197802F69
 :1005F0008E198D1578F4C801805091408C179D0795
@@ -103,13 +103,13 @@
 :100660002C9390911E01890F8083089589B1809504
 :100670008770089561E080E00E94B3068EED90E0FF
 :100680000E94E406F8940E94B102F999FECF6091AD
-:100690001E0188E090E00E94B809F999FECF682D0C
-:1006A00087E090E00E94B809F999FECF672D86E0B7
-:1006B00090E00E94B809F999FECF60912D017091E8
-:1006C0002E0184E090E00E94C609F999FECF609166
-:1006D0002F017091300182E090E00E94C609F999E3
+:100690001E0188E090E00E94CC09F999FECF682DF8
+:1006A00087E090E00E94CC09F999FECF672D86E0A3
+:1006B00090E00E94CC09F999FECF60912D017091D4
+:1006C0002E0184E090E00E94DA09F999FECF609152
+:1006D0002F017091300182E090E00E94DA09F999CF
 :1006E000FECF609131017091320180E090E00E9474
-:1006F000C609F999FECF292D2C60922E78948FEFA0
+:1006F000DA09F999FECF292D2C60922E78948FEF8C
 :1007000099E628E1815090402040E1F700C00000C8
 :1007100061E080E00E94B3068DEC90E00E94E40668
 :100720008FEF99E628E1815090402040E1F700C02A
@@ -182,15 +182,15 @@
 :100B500012038A818093B30089818093B4008091CD
 :100B600023018F5F80932301883C08F451C090FEDD
 :100B700016C020913B01C0903B01E82DF0E030E031
-:100B8000AFEFB0E00E945309BB27A92F982F872F02
+:100B8000AFEFB0E00E946709BB27A92F982F872FEE
 :100B900047E251E0BF010E9400028C0D882E682DB3
-:100BA00070E080E09BE40E94EA089B0140E050E096
-:100BB00066ED7CED81E090E00E9412093093260101
-:100BC00020932501C9016AE070E00E94EA08769E40
+:100BA00070E080E09BE40E94FE089B0140E050E082
+:100BB00066ED7CED81E090E00E94260930932601ED
+:100BC00020932501C9016AE070E00E94FE08769E2C
 :100BD0009001779E300D1124B90180E090E0232B25
 :100BE00059F0663FF9E07F078105910544F066EF13
 :100BF00079E080E090E003C060E070E0CB012AE0A3
-:100C000030E040E050E00E943409622E109223014F
+:100C000030E040E050E00E944809622E109223013B
 :100C10000F900F90DF91CF91FF91EF91BF91AF9126
 :100C20009F918F917F916F915F914F913F912F9104
 :100C30001F910F91FF90EF90DF90CF900F900FBE1C
@@ -202,11 +202,11 @@
 :100C900085E601C084E680937C008EED80937A0027
 :100CA0009F918F912F910F900FBE0F901F901895CD
 :100CB000289A00C0289808951F93CF93DF931F921E
-:100CC000CDB7DEB7662311F02C9A01C02C982D9871
+:100CC000CDB7DEB7662311F02C9A01C02C985C9842
 :100CD00097B19F6097B998B1192F107F982F92956F
 :100CE0009F70912B98B989830E94580689818F70D3
 :100CF000812B88B90E9458061F6018B90F90DF91A8
-:100D0000CF911F9108952C982D9A87B1807F87B934
+:100D0000CF911F9108952C985C9A87B1807F87B905
 :100D1000289A00C096B1289800C0289A00C026B131
 :100D20002F70892F8295807F2898822B08950E94AA
 :100D3000830687FDFCCF88E090E00197F1F70C94E3
@@ -221,7 +221,7 @@
 :100DC000FACFDF91CF910895CF93DF93FC01849107
 :100DD000EF012196882321F00E94C406FE01F7CF7F
 :100DE000DF91CF9108951F93CF93DF93182F97B181
-:100DF0009F6097B9249A259A209AE0E0FAEF3197FC
+:100DF0009F6097B9249A549A209AE0E0FAEF3197CD
 :100E0000F1F7419A409A0E945806E0E0FEE43197DB
 :100E1000F1F70E945806C0E0D1E0FE013197F1F7EA
 :100E20000E945806FE013197F1F740980E9458063B
@@ -229,7 +229,7 @@
 :100E40000E94BE0686E00E94A106812FDF91CF910D
 :100E50001F910C94A106F894612C10923B018824F8
 :100E60008394109222018FE087B985B1817F85B983
-:100E70008BB187798BB95C9A8AB1887F8AB9549A89
+:100E70008BB187798BB92D9A8AB1887F8AB9259AE7
 :100E80008BB187688BB98CE00E94F3060E94C10683
 :100E90008DEB90E00E94E40680E30E94C40681E0AE
 :100EA00084BD92E0909380008093B0002FEF30E0FB
@@ -248,72 +248,75 @@
 :100F700086BB80E280936F0086E30E94C406FFEF89
 :100F800029E688E1F15020408040E1F700C00000F0
 :100F900061E080E00E94B3068BE990E00E94E406E5
-:100FA00088E090E00E94AA0980931E0180911E01B2
+:100FA00088E090E00E94BE0980931E0180911E019E
 :100FB000883018F488E080931E0187E090E00E945A
-:100FC000AA09882E86E090E00E94AA09782E84E083
-:100FD00090E00E94B20990932E0180932D0182E04F
-:100FE00090E00E94B2099093300180932F0180E03D
-:100FF00090E00E94B20990933201809331019FEFFB
+:100FC000BE09882E86E090E00E94BE09782E84E05B
+:100FD00090E00E94C60990932E0180932D0182E03B
+:100FE00090E00E94C6099093300180932F0180E029
+:100FF00090E00E94C60990933201809331019FEFE7
 :10100000E9E6F8E19150E040F040E1F700C000006F
 :1010100061E080E00E94B3068AE890E00E94E40666
 :101020002FEF89E698E1215080409040E1F700C021
 :1010300000000E94360387E30E94C4060E94BE0699
 :101040008EE00E94A1068CEA90E00E94E40678946B
-:101050000BE0CFEFD0E00E94360390FC3FC082301F
-:10106000A9F018F4813031F03EC08330C9F18430EA
-:1010700001F139C0809122018F5F8093220180911C
-:101080002201823090F1109222012FC08091220122
-:10109000882319F0813039F028C0811002C08824DB
-:1010A00083948A9422C0711002C0772473947A9436
-:1010B0001CC080912201882319F0813041F015C0B5
-:1010C000EFEF8E1202C02EEF822E83940EC0FFEF40
-:1010D0007F1202C09EEF792E739407C0833019F4FB
-:1010E0000E949B0302C0109224010E9436038823B1
-:1010F000C9F0809124018F5F809324018A3050F4DD
-:101100002FEF8DEE92E0215080409040E1F700C03B
-:10111000000008C0EFE3FCE93197F1F700C00000E0
-:101120000093240161E080E00E94B30680912501D4
-:10113000909126010E94D8020E94D50261E086E0CB
-:101140000E94B306872D90E00E94D8020E94D5022B
-:101150000E94D50261E08CE00E94B306F4E66F9E27
-:10116000C0011124BE010E94EA08CB014AE060E000
-:1011700071E00E94750980933C01E0E0F1E001908C
-:101180000020E9F73197E050F1401E2F80E0E82E73
-:1011900081E0F82E67018C2D8E19811730F4F6014D
-:1011A00081916F010E94C406F6CF85E20E94C406B9
-:1011B0000E94D502E0912201F0E0E75DFE4F8491AC
-:1011C00061E00E94B3068FE19EE40197F1F700C051
-:1011D000000041CFAA1BBB1B51E107C0AA1FBB1FC8
-:1011E000A617B70710F0A61BB70B881F991F5A95B3
-:1011F000A9F780959095BC01CD01089597FB072E26
-:1012000016F4009407D077FD09D00E94EA0807FC85
-:1012100005D03EF4909581959F4F08957095619506
-:101220007F4F0895A1E21A2EAA1BBB1BFD010DC022
-:10123000AA1FBB1FEE1FFF1FA217B307E407F50786
-:1012400020F0A21BB30BE40BF50B661F771F881F62
-:10125000991F1A9469F760957095809590959B01F8
-:10126000AC01BD01CF010895052E97FB1EF400943B
-:101270000E944B0957FD07D00E94120907FC03D0BA
-:101280004EF40C944B0950954095309521953F4F65
-:101290004F4F5F4F089590958095709561957F4F62
-:1012A0008F4F9F4F0895A29FB001B39FC001A39F8E
-:1012B000700D811D1124911DB29F700D811D11248F
-:1012C000911D0895B7FF0C946A090E946A09821B58
-:1012D000930B08950E945309A59F900DB49F900D04
-:1012E000A49F800D911D11240895BB274A3031F42D
-:1012F000992322F4BDE2909581959F4F0C9481092A
-:10130000BB27FB015527AA27880F991FAA1FA417DF
-:1013100010F0A41B83955051B9F7A05DAA3308F0D3
-:10132000A95DA193009779F7B111B1931192CB0107
-:101330000C949A09DC01FC01672F71917723E1F786
-:10134000329704C07C916D9370836291AE17BF0792
-:10135000C8F30895F999FECF92BD81BDF89A9927F7
-:1013600080B50895A8E1B0E042E050E00C94CD09CA
-:10137000262FF999FECF1FBA92BD81BD20BD0FB6B1
-:10138000F894FA9AF99A0FBE019608950E94B80946
-:10139000272F0C94B909DC01CB01FC01F999FECF90
-:1013A00006C0F2BDE1BDF89A319600B40D924150ED
-:0A13B0005040B8F70895F894FFCFFD
-:1013BA00303030303030303030303030303132331D
-:1013CA003435363738394142434445460000140023
+:101050000BE0CFEFD0E00E94360390FC41C082301D
+:10106000B9F018F4813039F052C0833009F44CC023
+:10107000843009F14CC0809122018F5F809322015E
+:1010800080912201823008F444C01092220141C0B4
+:1010900080912201882319F0813039F03AC0811003
+:1010A00002C0882483948A9434C0711002C07724CB
+:1010B00073947A942EC080912201882319F0813094
+:1010C00041F027C0EFEF8E1202C02EEF822E8394E4
+:1010D00020C0FFEF7F1202C09EEF792E739419C0DB
+:1010E000813019F0833081F012C09091200181E0AD
+:1010F000911180E08093200180912001882311F0DC
+:101100002D9807C02D9A05C00E949B0302C0109223
+:1011100024010E9436038823C9F0809124018F5F47
+:10112000809324018A3050F42FEF8DEE92E021500D
+:1011300080409040E1F700C0000008C0EFE3FCE908
+:101140003197F1F700C000000093240161E080E0D6
+:101150000E94B30680912501909126010E94D80239
+:101160000E94D50261E086E00E94B306872D90E0E0
+:101170000E94D8020E94D5020E94D50261E08CE054
+:101180000E94B306F4E66F9EC0011124BE010E94C6
+:10119000FE08CB014AE060E071E00E94890980937B
+:1011A0003C01E0E0F1E001900020E9F73197E050E8
+:1011B000F1401E2F80E0E82E81E0F82E67018C2D93
+:1011C0008E19811730F4F60181916F010E94C406D7
+:1011D000F6CF85E20E94C4060E94D502E09122016A
+:1011E000F0E0E75DFE4F849161E00E94B3068FE17D
+:1011F0009EE40197F1F700C000002DCFAA1BBB1B96
+:1012000051E107C0AA1FBB1FA617B70710F0A61B06
+:10121000B70B881F991F5A95A9F780959095BC0127
+:10122000CD01089597FB072E16F4009407D077FDA3
+:1012300009D00E94FE0807FC05D03EF490958195E8
+:101240009F4F0895709561957F4F0895A1E21A2EE2
+:10125000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F5A
+:10126000A217B307E407F50720F0A21BB30BE40BAA
+:10127000F50B661F771F881F991F1A9469F76095F1
+:101280007095809590959B01AC01BD01CF010895AB
+:10129000052E97FB1EF400940E945F0957FD07D0AE
+:1012A0000E94260907FC03D04EF40C945F09509568
+:1012B0004095309521953F4F4F4F5F4F0895909542
+:1012C0008095709561957F4F8F4F9F4F0895A29F96
+:1012D000B001B39FC001A39F700D811D1124911D0A
+:1012E000B29F700D811D1124911D0895B7FF0C94BC
+:1012F0007E090E947E09821B930B08950E94670954
+:10130000A59F900DB49F900DA49F800D911D112459
+:101310000895BB274A3031F4992322F4BDE2909519
+:1013200081959F4F0C949509BB27FB015527AA2750
+:10133000880F991FAA1FA41710F0A41B8395505162
+:10134000B9F7A05DAA3308F0A95DA193009779F7DA
+:10135000B111B1931192CB010C94AE09DC01FC01E7
+:10136000672F71917723E1F7329704C07C916D93D9
+:1013700070836291AE17BF07C8F30895F999FECF45
+:1013800092BD81BDF89A992780B50895A8E1B0E093
+:1013900042E050E00C94E109262FF999FECF1FBAE4
+:1013A00092BD81BD20BD0FB6F894FA9AF99A0FBE8E
+:1013B000019608950E94CC09272F0C94CD09DC01D9
+:1013C000CB01FC01F999FECF06C0F2BDE1BDF89A50
+:1013D000319600B40D9241505040B8F70895F894FA
+:0213E000FFCF3D
+:1013E20030303030303030303030303030313233F5
+:1013F20034353637383941424344454600001400FB
 :00000001FF
diff --git a/default/VFD_Sinus_AT328.lss b/default/VFD_Sinus_AT328.lss
index 87275fcca2b39edea5a9a63c38bdd6a128b6000c..1c85b9ed69e34f9e2146fb875817b466b6b9e6e4 100644
--- a/default/VFD_Sinus_AT328.lss
+++ b/default/VFD_Sinus_AT328.lss
@@ -3,33 +3,33 @@ VFD_Sinus_AT328.elf:     file format elf32-avr
 
 Sections:
 Idx Name          Size      VMA       LMA       File off  Algn
-  0 .data         00000020  00800100  000013ba  0000146e  2**0
+  0 .data         00000020  00800100  000013e2  00001496  2**0
                   CONTENTS, ALLOC, LOAD, DATA
-  1 .text         000013ba  00000000  00000000  000000b4  2**1
+  1 .text         000013e2  00000000  00000000  000000b4  2**1
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
-  2 .bss          0000001d  00800120  00800120  0000148e  2**0
+  2 .bss          0000001d  00800120  00800120  000014b6  2**0
                   ALLOC
-  3 .eeprom       00000009  00810000  00810000  0000148e  2**0
+  3 .eeprom       00000009  00810000  00810000  000014b6  2**0
                   CONTENTS, ALLOC, LOAD, DATA
-  4 .comment      00000011  00000000  00000000  00001497  2**0
+  4 .comment      00000011  00000000  00000000  000014bf  2**0
                   CONTENTS, READONLY
-  5 .note.gnu.avr.deviceinfo 0000003c  00000000  00000000  000014a8  2**2
+  5 .note.gnu.avr.deviceinfo 0000003c  00000000  00000000  000014d0  2**2
                   CONTENTS, READONLY
-  6 .debug_aranges 00000068  00000000  00000000  000014e4  2**0
+  6 .debug_aranges 00000068  00000000  00000000  0000150c  2**0
                   CONTENTS, READONLY, DEBUGGING
-  7 .debug_info   00001f6e  00000000  00000000  0000154c  2**0
+  7 .debug_info   00001f87  00000000  00000000  00001574  2**0
                   CONTENTS, READONLY, DEBUGGING
-  8 .debug_abbrev 000007bf  00000000  00000000  000034ba  2**0
+  8 .debug_abbrev 000007bf  00000000  00000000  000034fb  2**0
                   CONTENTS, READONLY, DEBUGGING
-  9 .debug_line   00000c8d  00000000  00000000  00003c79  2**0
+  9 .debug_line   00000ca1  00000000  00000000  00003cba  2**0
                   CONTENTS, READONLY, DEBUGGING
- 10 .debug_frame  000003ec  00000000  00000000  00004908  2**2
+ 10 .debug_frame  000003ec  00000000  00000000  0000495c  2**2
                   CONTENTS, READONLY, DEBUGGING
- 11 .debug_str    00000781  00000000  00000000  00004cf4  2**0
+ 11 .debug_str    000007be  00000000  00000000  00004d48  2**0
                   CONTENTS, READONLY, DEBUGGING
- 12 .debug_loc    0000128f  00000000  00000000  00005475  2**0
+ 12 .debug_loc    0000129a  00000000  00000000  00005506  2**0
                   CONTENTS, READONLY, DEBUGGING
- 13 .debug_ranges 00000060  00000000  00000000  00006704  2**0
+ 13 .debug_ranges 00000060  00000000  00000000  000067a0  2**0
                   CONTENTS, READONLY, DEBUGGING
 
 Disassembly of section .text:
@@ -85,11 +85,11 @@ Disassembly of section .text:
       9b:	52 65 61 64 69 6e 67 20 45 45 50 52 4f 4d 20 20     Reading EEPROM  
 	...
 
-000000ac <__c.2429>:
+000000ac <__c.2430>:
       ac:	46 72 65 71 20 20 56 2f 48 7a 20 20 41 6d 70 20     Freq  V/Hz  Amp 
 	...
 
-000000bd <__c.2427>:
+000000bd <__c.2428>:
       bd:	56 46 20 4d 6f 74 6f 72 20 44 72 69 76 65 0a 00     VF Motor Drive..
 
 000000cd <__c.2341>:
@@ -166,7 +166,7 @@ Disassembly of section .text:
      37c:	11 e0       	ldi	r17, 0x01	; 1
      37e:	a0 e0       	ldi	r26, 0x00	; 0
      380:	b1 e0       	ldi	r27, 0x01	; 1
-     382:	ea eb       	ldi	r30, 0xBA	; 186
+     382:	e2 ee       	ldi	r30, 0xE2	; 226
      384:	f3 e1       	ldi	r31, 0x13	; 19
      386:	02 c0       	rjmp	.+4      	; 0x38c <__do_copy_data+0x10>
      388:	05 90       	lpm	r0, Z+
@@ -189,51 +189,35 @@ Disassembly of section .text:
      39e:	b2 07       	cpc	r27, r18
      3a0:	e1 f7       	brne	.-8      	; 0x39a <.do_clear_bss_loop>
      3a2:	0e 94 2b 07 	call	0xe56	; 0xe56 <main>
-     3a6:	0c 94 db 09 	jmp	0x13b6	; 0x13b6 <_exit>
+     3a6:	0c 94 ef 09 	jmp	0x13de	; 0x13de <_exit>
 
 000003aa <__bad_interrupt>:
      3aa:	0c 94 00 00 	jmp	0	; 0x0 <__vectors>
 
 000003ae <PID_Init>:
- *  \param d_factor  Derivate term.
- *  \param pid  Struct with PID status.
- */
-void PID_Init(int16_t p_factor, int16_t i_factor, int16_t d_factor, pidData_t *pid)
-// Set up PID controller parameters
-{
      3ae:	cf 93       	push	r28
      3b0:	df 93       	push	r29
      3b2:	dc 01       	movw	r26, r24
      3b4:	fb 01       	movw	r30, r22
      3b6:	e9 01       	movw	r28, r18
-  // Start values for PID controller
-  pid->sumError = 0;
      3b8:	1a 82       	std	Y+2, r1	; 0x02
      3ba:	1b 82       	std	Y+3, r1	; 0x03
      3bc:	1c 82       	std	Y+4, r1	; 0x04
      3be:	1d 82       	std	Y+5, r1	; 0x05
-  pid->lastProcessValue = 0;
      3c0:	19 82       	std	Y+1, r1	; 0x01
      3c2:	18 82       	st	Y, r1
-  // Tuning constants for PID loop
-  pid->P_Factor = p_factor;
      3c4:	9f 83       	std	Y+7, r25	; 0x07
      3c6:	8e 83       	std	Y+6, r24	; 0x06
-  pid->I_Factor = i_factor;
      3c8:	79 87       	std	Y+9, r23	; 0x09
      3ca:	68 87       	std	Y+8, r22	; 0x08
-  pid->D_Factor = d_factor;
      3cc:	5b 87       	std	Y+11, r21	; 0x0b
      3ce:	4a 87       	std	Y+10, r20	; 0x0a
-  // Limits to avoid overflow
-  pid->maxError = MAX_INT / pid->P_Factor;
      3d0:	8f ef       	ldi	r24, 0xFF	; 255
      3d2:	9f e7       	ldi	r25, 0x7F	; 127
      3d4:	bd 01       	movw	r22, r26
-     3d6:	0e 94 fe 08 	call	0x11fc	; 0x11fc <__divmodhi4>
+     3d6:	0e 94 12 09 	call	0x1224	; 0x1224 <__divmodhi4>
      3da:	7d 87       	std	Y+13, r23	; 0x0d
      3dc:	6c 87       	std	Y+12, r22	; 0x0c
-  pid->maxSumError = MAX_I_TERM / pid->I_Factor;
      3de:	9f 01       	movw	r18, r30
      3e0:	ff 0f       	add	r31, r31
      3e2:	44 0b       	sbc	r20, r20
@@ -242,23 +226,16 @@ void PID_Init(int16_t p_factor, int16_t i_factor, int16_t d_factor, pidData_t *p
      3e8:	70 e0       	ldi	r23, 0x00	; 0
      3ea:	8f ef       	ldi	r24, 0xFF	; 255
      3ec:	9f e7       	ldi	r25, 0x7F	; 127
-     3ee:	0e 94 34 09 	call	0x1268	; 0x1268 <__divmodsi4>
+     3ee:	0e 94 48 09 	call	0x1290	; 0x1290 <__divmodsi4>
      3f2:	2e 87       	std	Y+14, r18	; 0x0e
      3f4:	3f 87       	std	Y+15, r19	; 0x0f
      3f6:	48 8b       	std	Y+16, r20	; 0x10
      3f8:	59 8b       	std	Y+17, r21	; 0x11
-}
      3fa:	df 91       	pop	r29
      3fc:	cf 91       	pop	r28
      3fe:	08 95       	ret
 
 00000400 <PID_Controller>:
- *  \param setPoint  Desired value.
- *  \param processValue  Measured value.
- *  \param pid_st  PID status struct.
- */
-int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st)
-{
      400:	ef 92       	push	r14
      402:	ff 92       	push	r15
      404:	0f 93       	push	r16
@@ -267,39 +244,20 @@ int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st
      40a:	df 93       	push	r29
      40c:	8b 01       	movw	r16, r22
      40e:	fa 01       	movw	r30, r20
-  int16_t error, p_term, d_term;
-  int32_t i_term;
-  int32_t ret;
-  int32_t temp;
-
-  error = setPoint - processValue;
      410:	9c 01       	movw	r18, r24
      412:	26 1b       	sub	r18, r22
      414:	37 0b       	sbc	r19, r23
-
-  // Calculate Pterm and limit error overflow
-  if (error > pid_st->maxError)
      416:	84 85       	ldd	r24, Z+12	; 0x0c
      418:	95 85       	ldd	r25, Z+13	; 0x0d
      41a:	82 17       	cp	r24, r18
      41c:	93 07       	cpc	r25, r19
      41e:	84 f0       	brlt	.+32     	; 0x440 <PID_Controller+0x40>
-  {
-    p_term = MAX_INT;
-  }
-  else if (error < -pid_st->maxError)
      420:	91 95       	neg	r25
      422:	81 95       	neg	r24
      424:	91 09       	sbc	r25, r1
      426:	28 17       	cp	r18, r24
      428:	39 07       	cpc	r19, r25
      42a:	6c f0       	brlt	.+26     	; 0x446 <PID_Controller+0x46>
-  {
-    p_term = -MAX_INT;
-  }
-  else
-  {
-    p_term = pid_st->P_Factor * error;
      42c:	86 81       	ldd	r24, Z+6	; 0x06
      42e:	97 81       	ldd	r25, Z+7	; 0x07
      430:	28 9f       	mul	r18, r24
@@ -310,27 +268,11 @@ int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st
      43a:	d0 0d       	add	r29, r0
      43c:	11 24       	eor	r1, r1
      43e:	05 c0       	rjmp	.+10     	; 0x44a <PID_Controller+0x4a>
-  error = setPoint - processValue;
-
-  // Calculate Pterm and limit error overflow
-  if (error > pid_st->maxError)
-  {
-    p_term = MAX_INT;
      440:	cf ef       	ldi	r28, 0xFF	; 255
      442:	df e7       	ldi	r29, 0x7F	; 127
      444:	02 c0       	rjmp	.+4      	; 0x44a <PID_Controller+0x4a>
-  }
-  else if (error < -pid_st->maxError)
-  {
-    p_term = -MAX_INT;
      446:	c1 e0       	ldi	r28, 0x01	; 1
      448:	d0 e8       	ldi	r29, 0x80	; 128
-  {
-    p_term = pid_st->P_Factor * error;
-  }
-
-  // Calculate Iterm and limit integral runaway
-  temp = pid_st->sumError + error;
      44a:	c9 01       	movw	r24, r18
      44c:	33 0f       	add	r19, r19
      44e:	aa 0b       	sbc	r26, r26
@@ -345,7 +287,6 @@ int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st
      460:	39 1f       	adc	r19, r25
      462:	4a 1f       	adc	r20, r26
      464:	5b 1f       	adc	r21, r27
-  if(temp > pid_st->maxSumError)
      466:	86 85       	ldd	r24, Z+14	; 0x0e
      468:	97 85       	ldd	r25, Z+15	; 0x0f
      46a:	a0 89       	ldd	r26, Z+16	; 0x10
@@ -355,27 +296,15 @@ int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st
      472:	a4 07       	cpc	r26, r20
      474:	b5 07       	cpc	r27, r21
      476:	4c f4       	brge	.+18     	; 0x48a <PID_Controller+0x8a>
-  {
-    i_term = MAX_I_TERM;
-    pid_st->sumError = pid_st->maxSumError;
      478:	82 83       	std	Z+2, r24	; 0x02
      47a:	93 83       	std	Z+3, r25	; 0x03
      47c:	a4 83       	std	Z+4, r26	; 0x04
      47e:	b5 83       	std	Z+5, r27	; 0x05
-
-  // Calculate Iterm and limit integral runaway
-  temp = pid_st->sumError + error;
-  if(temp > pid_st->maxSumError)
-  {
-    i_term = MAX_I_TERM;
      480:	61 e0       	ldi	r22, 0x01	; 1
      482:	70 e0       	ldi	r23, 0x00	; 0
      484:	8f ef       	ldi	r24, 0xFF	; 255
      486:	9f e7       	ldi	r25, 0x7F	; 127
      488:	1d c0       	rjmp	.+58     	; 0x4c4 <PID_Controller+0xc4>
-    pid_st->sumError = pid_st->maxSumError;
-  }
-  else if(temp < -pid_st->maxSumError)
      48a:	b0 95       	com	r27
      48c:	a0 95       	com	r26
      48e:	90 95       	com	r25
@@ -388,41 +317,22 @@ int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st
      49c:	4a 07       	cpc	r20, r26
      49e:	5b 07       	cpc	r21, r27
      4a0:	4c f4       	brge	.+18     	; 0x4b4 <PID_Controller+0xb4>
-  {
-    i_term = -MAX_I_TERM;
-    pid_st->sumError = -pid_st->maxSumError;
      4a2:	82 83       	std	Z+2, r24	; 0x02
      4a4:	93 83       	std	Z+3, r25	; 0x03
      4a6:	a4 83       	std	Z+4, r26	; 0x04
      4a8:	b5 83       	std	Z+5, r27	; 0x05
-    i_term = MAX_I_TERM;
-    pid_st->sumError = pid_st->maxSumError;
-  }
-  else if(temp < -pid_st->maxSumError)
-  {
-    i_term = -MAX_I_TERM;
      4aa:	6f ef       	ldi	r22, 0xFF	; 255
      4ac:	7f ef       	ldi	r23, 0xFF	; 255
      4ae:	80 e0       	ldi	r24, 0x00	; 0
      4b0:	90 e8       	ldi	r25, 0x80	; 128
      4b2:	08 c0       	rjmp	.+16     	; 0x4c4 <PID_Controller+0xc4>
-    pid_st->sumError = -pid_st->maxSumError;
-  }
-  else
-  {
-    pid_st->sumError = temp;
      4b4:	22 83       	std	Z+2, r18	; 0x02
      4b6:	33 83       	std	Z+3, r19	; 0x03
      4b8:	44 83       	std	Z+4, r20	; 0x04
      4ba:	55 83       	std	Z+5, r21	; 0x05
-    i_term = pid_st->I_Factor * pid_st->sumError;
      4bc:	a0 85       	ldd	r26, Z+8	; 0x08
      4be:	b1 85       	ldd	r27, Z+9	; 0x09
-     4c0:	0e 94 62 09 	call	0x12c4	; 0x12c4 <__mulshisi3>
-  }
-
-  // Calculate Dterm
-  d_term = pid_st->D_Factor * (pid_st->lastProcessValue - processValue);
+     4c0:	0e 94 76 09 	call	0x12ec	; 0x12ec <__mulshisi3>
      4c4:	20 81       	ld	r18, Z
      4c6:	31 81       	ldd	r19, Z+1	; 0x01
      4c8:	20 1b       	sub	r18, r16
@@ -436,12 +346,8 @@ int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st
      4d8:	3a 9f       	mul	r19, r26
      4da:	f0 0c       	add	r15, r0
      4dc:	11 24       	eor	r1, r1
-
-  pid_st->lastProcessValue = processValue;
      4de:	11 83       	std	Z+1, r17	; 0x01
      4e0:	00 83       	st	Z, r16
-
-  ret = (p_term + i_term + d_term) / SCALING_FACTOR;
      4e2:	8e 01       	movw	r16, r28
      4e4:	dd 0f       	add	r29, r29
      4e6:	22 0b       	sbc	r18, r18
@@ -468,7 +374,7 @@ int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st
      510:	31 e0       	ldi	r19, 0x01	; 1
      512:	40 e0       	ldi	r20, 0x00	; 0
      514:	50 e0       	ldi	r21, 0x00	; 0
-     516:	0e 94 34 09 	call	0x1268	; 0x1268 <__divmodsi4>
+     516:	0e 94 48 09 	call	0x1290	; 0x1290 <__divmodsi4>
      51a:	21 30       	cpi	r18, 0x01	; 1
      51c:	10 e8       	ldi	r17, 0x80	; 128
      51e:	31 07       	cpc	r19, r17
@@ -492,12 +398,6 @@ int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st
      542:	9f e7       	ldi	r25, 0x7F	; 127
      544:	a0 e0       	ldi	r26, 0x00	; 0
      546:	b0 e0       	ldi	r27, 0x00	; 0
-  {
-    ret = -MAX_INT;
-  }
-
-  return((int16_t)ret);
-}
      548:	df 91       	pop	r29
      54a:	cf 91       	pop	r28
      54c:	1f 91       	pop	r17
@@ -507,12 +407,6 @@ int16_t PID_Controller(int16_t setPoint, int16_t processValue, pidData_t *pid_st
      554:	08 95       	ret
 
 00000556 <PID_Reset_Integrator>:
- *
- *  Calling this function will reset the integrator in the PID regulator.
- */
-void PID_Reset_Integrator(pidData_t *pid_st)
-{
-  pid_st->sumError = 0;
      556:	fc 01       	movw	r30, r24
      558:	12 82       	std	Z+2, r1	; 0x02
      55a:	13 82       	std	Z+3, r1	; 0x03
@@ -625,7 +519,7 @@ static void printdec(int16_t number) {
      5be:	4a e0       	ldi	r20, 0x0A	; 10
      5c0:	60 e0       	ldi	r22, 0x00	; 0
      5c2:	71 e0       	ldi	r23, 0x01	; 1
-     5c4:	0e 94 75 09 	call	0x12ea	; 0x12ea <__itoa_ncheck>
+     5c4:	0e 94 89 09 	call	0x1312	; 0x1312 <__itoa_ncheck>
 uint8_t n,i;
 /* yeah, yeah warning "pointer to integer without a cast" 
  * Am i tired of this or what 
@@ -782,7 +676,7 @@ void wrEEPROM(void) {
      68e:	60 91 1e 01 	lds	r22, 0x011E	; 0x80011e <DEAD_TIME_HALF>
      692:	88 e0       	ldi	r24, 0x08	; 8
      694:	90 e0       	ldi	r25, 0x00	; 0
-     696:	0e 94 b8 09 	call	0x1370	; 0x1370 <eeprom_write_byte>
+     696:	0e 94 cc 09 	call	0x1398	; 0x1398 <eeprom_write_byte>
 	eeprom_busy_wait();
      69a:	f9 99       	sbic	0x1f, 1	; 31
      69c:	fe cf       	rjmp	.-4      	; 0x69a <wrEEPROM+0x26>
@@ -790,7 +684,7 @@ void wrEEPROM(void) {
      69e:	68 2d       	mov	r22, r8
      6a0:	87 e0       	ldi	r24, 0x07	; 7
      6a2:	90 e0       	ldi	r25, 0x00	; 0
-     6a4:	0e 94 b8 09 	call	0x1370	; 0x1370 <eeprom_write_byte>
+     6a4:	0e 94 cc 09 	call	0x1398	; 0x1398 <eeprom_write_byte>
 	eeprom_busy_wait();
      6a8:	f9 99       	sbic	0x1f, 1	; 31
      6aa:	fe cf       	rjmp	.-4      	; 0x6a8 <wrEEPROM+0x34>
@@ -798,7 +692,7 @@ void wrEEPROM(void) {
      6ac:	67 2d       	mov	r22, r7
      6ae:	86 e0       	ldi	r24, 0x06	; 6
      6b0:	90 e0       	ldi	r25, 0x00	; 0
-     6b2:	0e 94 b8 09 	call	0x1370	; 0x1370 <eeprom_write_byte>
+     6b2:	0e 94 cc 09 	call	0x1398	; 0x1398 <eeprom_write_byte>
 	eeprom_busy_wait();
      6b6:	f9 99       	sbic	0x1f, 1	; 31
      6b8:	fe cf       	rjmp	.-4      	; 0x6b6 <wrEEPROM+0x42>
@@ -808,7 +702,7 @@ void wrEEPROM(void) {
      6be:	70 91 2e 01 	lds	r23, 0x012E	; 0x80012e <pidParameters+0x7>
      6c2:	84 e0       	ldi	r24, 0x04	; 4
      6c4:	90 e0       	ldi	r25, 0x00	; 0
-     6c6:	0e 94 c6 09 	call	0x138c	; 0x138c <eeprom_write_word>
+     6c6:	0e 94 da 09 	call	0x13b4	; 0x13b4 <eeprom_write_word>
 	eeprom_busy_wait();
      6ca:	f9 99       	sbic	0x1f, 1	; 31
      6cc:	fe cf       	rjmp	.-4      	; 0x6ca <wrEEPROM+0x56>
@@ -817,7 +711,7 @@ void wrEEPROM(void) {
      6d2:	70 91 30 01 	lds	r23, 0x0130	; 0x800130 <pidParameters+0x9>
      6d6:	82 e0       	ldi	r24, 0x02	; 2
      6d8:	90 e0       	ldi	r25, 0x00	; 0
-     6da:	0e 94 c6 09 	call	0x138c	; 0x138c <eeprom_write_word>
+     6da:	0e 94 da 09 	call	0x13b4	; 0x13b4 <eeprom_write_word>
 	eeprom_busy_wait();
      6de:	f9 99       	sbic	0x1f, 1	; 31
      6e0:	fe cf       	rjmp	.-4      	; 0x6de <wrEEPROM+0x6a>
@@ -826,7 +720,7 @@ void wrEEPROM(void) {
      6e6:	70 91 32 01 	lds	r23, 0x0132	; 0x800132 <pidParameters+0xb>
      6ea:	80 e0       	ldi	r24, 0x00	; 0
      6ec:	90 e0       	ldi	r25, 0x00	; 0
-     6ee:	0e 94 c6 09 	call	0x138c	; 0x138c <eeprom_write_word>
+     6ee:	0e 94 da 09 	call	0x13b4	; 0x13b4 <eeprom_write_word>
 	eeprom_busy_wait();
      6f2:	f9 99       	sbic	0x1f, 1	; 31
      6f4:	fe cf       	rjmp	.-4      	; 0x6f2 <wrEEPROM+0x7e>
@@ -1586,9 +1480,9 @@ static void AdjustSineTableIndex(const uint16_t increment)
     }
 // regular task calls the SpeedController 
   	speedRegTicks++;
-     b5e:	80 91 23 01 	lds	r24, 0x0123	; 0x800123 <speedRegTicks.2488>
+     b5e:	80 91 23 01 	lds	r24, 0x0123	; 0x800123 <speedRegTicks.2489>
      b62:	8f 5f       	subi	r24, 0xFF	; 255
-     b64:	80 93 23 01 	sts	0x0123, r24	; 0x800123 <speedRegTicks.2488>
+     b64:	80 93 23 01 	sts	0x0123, r24	; 0x800123 <speedRegTicks.2489>
     if (speedRegTicks >= SPEED_CONTROLLER_TIME_BASE)
      b68:	88 3c       	cpi	r24, 0xC8	; 200
      b6a:	08 f4       	brcc	.+2      	; 0xb6e <__vector_10+0x176>
@@ -1619,7 +1513,7 @@ if (fastFlags.externalControl) {
      b7e:	30 e0       	ldi	r19, 0x00	; 0
      b80:	af ef       	ldi	r26, 0xFF	; 255
      b82:	b0 e0       	ldi	r27, 0x00	; 0
-     b84:	0e 94 53 09 	call	0x12a6	; 0x12a6 <__umulhisi3>
+     b84:	0e 94 67 09 	call	0x12ce	; 0x12ce <__umulhisi3>
      b88:	bb 27       	eor	r27, r27
      b8a:	a9 2f       	mov	r26, r25
      b8c:	98 2f       	mov	r25, r24
@@ -1641,7 +1535,7 @@ if (fastFlags.externalControl) {
      ba0:	70 e0       	ldi	r23, 0x00	; 0
      ba2:	80 e0       	ldi	r24, 0x00	; 0
      ba4:	9b e4       	ldi	r25, 0x4B	; 75
-     ba6:	0e 94 ea 08 	call	0x11d4	; 0x11d4 <__udivmodhi4>
+     ba6:	0e 94 fe 08 	call	0x11fc	; 0x11fc <__udivmodhi4>
      baa:	9b 01       	movw	r18, r22
      bac:	40 e0       	ldi	r20, 0x00	; 0
      bae:	50 e0       	ldi	r21, 0x00	; 0
@@ -1649,14 +1543,14 @@ if (fastFlags.externalControl) {
      bb2:	7c ed       	ldi	r23, 0xDC	; 220
      bb4:	81 e0       	ldi	r24, 0x01	; 1
      bb6:	90 e0       	ldi	r25, 0x00	; 0
-     bb8:	0e 94 12 09 	call	0x1224	; 0x1224 <__udivmodsi4>
+     bb8:	0e 94 26 09 	call	0x124c	; 0x124c <__udivmodsi4>
      bbc:	30 93 26 01 	sts	0x0126, r19	; 0x800126 <freq+0x1>
      bc0:	20 93 25 01 	sts	0x0125, r18	; 0x800125 <freq>
  amplitudeValue = (freq/10)*VperHz;
      bc4:	c9 01       	movw	r24, r18
      bc6:	6a e0       	ldi	r22, 0x0A	; 10
      bc8:	70 e0       	ldi	r23, 0x00	; 0
-     bca:	0e 94 ea 08 	call	0x11d4	; 0x11d4 <__udivmodhi4>
+     bca:	0e 94 fe 08 	call	0x11fc	; 0x11fc <__udivmodhi4>
      bce:	76 9e       	mul	r7, r22
      bd0:	90 01       	movw	r18, r0
      bd2:	77 9e       	mul	r7, r23
@@ -1704,7 +1598,7 @@ if (fastFlags.externalControl) {
      c00:	30 e0       	ldi	r19, 0x00	; 0
      c02:	40 e0       	ldi	r20, 0x00	; 0
      c04:	50 e0       	ldi	r21, 0x00	; 0
-     c06:	0e 94 34 09 	call	0x1268	; 0x1268 <__divmodsi4>
+     c06:	0e 94 48 09 	call	0x1290	; 0x1290 <__divmodsi4>
      c0a:	62 2e       	mov	r6, r18
 // regular task calls the SpeedController 
   	speedRegTicks++;
@@ -1712,7 +1606,7 @@ if (fastFlags.externalControl) {
     {
 		SpeedController();
      	speedRegTicks = 0; 
-     c0c:	10 92 23 01 	sts	0x0123, r1	; 0x800123 <speedRegTicks.2488>
+     c0c:	10 92 23 01 	sts	0x0123, r1	; 0x800123 <speedRegTicks.2489>
 	}
 }
      c10:	0f 90       	pop	r0
@@ -1865,7 +1759,7 @@ static void lcd_write(uint8_t data,uint8_t rs)
      ccc:	2c 98       	cbi	0x05, 4	; 5
     }
     lcd_rw_low();
-     cce:	2d 98       	cbi	0x05, 5	; 5
+     cce:	5c 98       	cbi	0x0b, 4	; 11
 
     if ( ( &LCD_DATA0_PORT == &LCD_DATA1_PORT) && ( &LCD_DATA1_PORT == &LCD_DATA2_PORT ) && ( &LCD_DATA2_PORT == &LCD_DATA3_PORT )
       && (LCD_DATA0_PIN == 0) && (LCD_DATA1_PIN == 1) && (LCD_DATA2_PIN == 2) && (LCD_DATA3_PIN == 3) )
@@ -1925,7 +1819,7 @@ static void lcd_write(uint8_t data,uint8_t rs)
         lcd_rs_low();                        /* RS=0: read busy flag */
      d06:	2c 98       	cbi	0x05, 4	; 5
     lcd_rw_high();                           /* RW=1  read mode      */
-     d08:	2d 9a       	sbi	0x05, 5	; 5
+     d08:	5c 9a       	sbi	0x0b, 4	; 11
     
     if ( ( &LCD_DATA0_PORT == &LCD_DATA1_PORT) && ( &LCD_DATA1_PORT == &LCD_DATA2_PORT ) && ( &LCD_DATA2_PORT == &LCD_DATA3_PORT )
       && ( LCD_DATA0_PIN == 0 )&& (LCD_DATA1_PIN == 1) && (LCD_DATA2_PIN == 2) && (LCD_DATA3_PIN == 3) )
@@ -2260,7 +2154,7 @@ void lcd_init(uint8_t dispAttr)
         DDR(LCD_RS_PORT)    |= _BV(LCD_RS_PIN);
      df4:	24 9a       	sbi	0x04, 4	; 4
         DDR(LCD_RW_PORT)    |= _BV(LCD_RW_PIN);
-     df6:	25 9a       	sbi	0x04, 5	; 4
+     df6:	54 9a       	sbi	0x0a, 4	; 10
         DDR(LCD_E_PORT)     |= _BV(LCD_E_PIN);
      df8:	20 9a       	sbi	0x04, 0	; 4
 static inline void _delayFourCycles(unsigned int __count)
@@ -2414,8 +2308,8 @@ static void PortsInit(void)
      e72:	87 79       	andi	r24, 0x97	; 151
      e74:	8b b9       	out	0x0b, r24	; 11
 // output enable is active low:
-  PORTD |= _BV(OUTPUT_ENABLE_PIN);
-     e76:	5c 9a       	sbi	0x0b, 4	; 11
+  PORTB |= _BV(OUTPUT_ENABLE_PIN);
+     e76:	2d 9a       	sbi	0x05, 5	; 5
 
 // Set the inputs on Port D for the three buttons
   DDRD &= ~BUTTON_MASK;
@@ -2423,8 +2317,8 @@ static void PortsInit(void)
      e7a:	88 7f       	andi	r24, 0xF8	; 248
      e7c:	8a b9       	out	0x0a, r24	; 10
 
-  DDRD |= _BV(OUTPUT_ENABLE_PIN);
-     e7e:	54 9a       	sbi	0x0a, 4	; 10
+  DDRB |= _BV(OUTPUT_ENABLE_PIN);
+     e7e:	25 9a       	sbi	0x04, 5	; 4
 // Enable pull-up on input signals.
   PORTD |= _BV(DIRECTION_COMMAND_PIN) | _BV(EXTERNAL_CONTROL_PIN) | BUTTON_MASK ;
      e80:	8b b1       	in	r24, 0x0b	; 11
@@ -2660,7 +2554,7 @@ static void EEPROMInit(void)
 	DEAD_TIME_HALF = eeprom_read_byte(&ee_DEAD_TIME_HALF);
      fa0:	88 e0       	ldi	r24, 0x08	; 8
      fa2:	90 e0       	ldi	r25, 0x00	; 0
-     fa4:	0e 94 aa 09 	call	0x1354	; 0x1354 <eeprom_read_byte>
+     fa4:	0e 94 be 09 	call	0x137c	; 0x137c <eeprom_read_byte>
      fa8:	80 93 1e 01 	sts	0x011E, r24	; 0x80011e <DEAD_TIME_HALF>
 
 	if (DEAD_TIME_HALF < MIN_DEAD_TIME) DEAD_TIME_HALF = MIN_DEAD_TIME;
@@ -2673,30 +2567,30 @@ static void EEPROMInit(void)
 	Inco = eeprom_read_byte(&ee_Inco);
      fba:	87 e0       	ldi	r24, 0x07	; 7
      fbc:	90 e0       	ldi	r25, 0x00	; 0
-     fbe:	0e 94 aa 09 	call	0x1354	; 0x1354 <eeprom_read_byte>
+     fbe:	0e 94 be 09 	call	0x137c	; 0x137c <eeprom_read_byte>
      fc2:	88 2e       	mov	r8, r24
 	VperHz = eeprom_read_byte(&ee_VperHz);
      fc4:	86 e0       	ldi	r24, 0x06	; 6
      fc6:	90 e0       	ldi	r25, 0x00	; 0
-     fc8:	0e 94 aa 09 	call	0x1354	; 0x1354 <eeprom_read_byte>
+     fc8:	0e 94 be 09 	call	0x137c	; 0x137c <eeprom_read_byte>
      fcc:	78 2e       	mov	r7, r24
 // PID values
 	pidParameters.P_Factor = eeprom_read_word(&ee_pid_P);
      fce:	84 e0       	ldi	r24, 0x04	; 4
      fd0:	90 e0       	ldi	r25, 0x00	; 0
-     fd2:	0e 94 b2 09 	call	0x1364	; 0x1364 <eeprom_read_word>
+     fd2:	0e 94 c6 09 	call	0x138c	; 0x138c <eeprom_read_word>
      fd6:	90 93 2e 01 	sts	0x012E, r25	; 0x80012e <pidParameters+0x7>
      fda:	80 93 2d 01 	sts	0x012D, r24	; 0x80012d <pidParameters+0x6>
 	pidParameters.I_Factor = eeprom_read_word(&ee_pid_I);
      fde:	82 e0       	ldi	r24, 0x02	; 2
      fe0:	90 e0       	ldi	r25, 0x00	; 0
-     fe2:	0e 94 b2 09 	call	0x1364	; 0x1364 <eeprom_read_word>
+     fe2:	0e 94 c6 09 	call	0x138c	; 0x138c <eeprom_read_word>
      fe6:	90 93 30 01 	sts	0x0130, r25	; 0x800130 <pidParameters+0x9>
      fea:	80 93 2f 01 	sts	0x012F, r24	; 0x80012f <pidParameters+0x8>
 	pidParameters.D_Factor = eeprom_read_word(&ee_pid_D);
      fee:	80 e0       	ldi	r24, 0x00	; 0
      ff0:	90 e0       	ldi	r25, 0x00	; 0
-     ff2:	0e 94 b2 09 	call	0x1364	; 0x1364 <eeprom_read_word>
+     ff2:	0e 94 c6 09 	call	0x138c	; 0x138c <eeprom_read_word>
      ff6:	90 93 32 01 	sts	0x0132, r25	; 0x800132 <pidParameters+0xb>
      ffa:	80 93 31 01 	sts	0x0131, r24	; 0x800131 <pidParameters+0xa>
      ffe:	9f ef       	ldi	r25, 0xFF	; 255
@@ -2779,526 +2673,551 @@ n = keyin();
 // first make sure we get inputs from buttons and not from analog inputs
 if (!fastFlags.externalControl){
     105a:	90 fc       	sbrc	r9, 0
-    105c:	3f c0       	rjmp	.+126    	; 0x10dc <main+0x286>
+    105c:	41 c0       	rjmp	.+130    	; 0x10e0 <main+0x28a>
 		switch (n) 
     105e:	82 30       	cpi	r24, 0x02	; 2
-    1060:	a9 f0       	breq	.+42     	; 0x108c <main+0x236>
+    1060:	b9 f0       	breq	.+46     	; 0x1090 <main+0x23a>
     1062:	18 f4       	brcc	.+6      	; 0x106a <main+0x214>
     1064:	81 30       	cpi	r24, 0x01	; 1
-    1066:	31 f0       	breq	.+12     	; 0x1074 <main+0x21e>
-    1068:	3e c0       	rjmp	.+124    	; 0x10e6 <main+0x290>
+    1066:	39 f0       	breq	.+14     	; 0x1076 <main+0x220>
+    1068:	52 c0       	rjmp	.+164    	; 0x110e <main+0x2b8>
     106a:	83 30       	cpi	r24, 0x03	; 3
-    106c:	c9 f1       	breq	.+114    	; 0x10e0 <main+0x28a>
-    106e:	84 30       	cpi	r24, 0x04	; 4
-    1070:	01 f1       	breq	.+64     	; 0x10b2 <main+0x25c>
-    1072:	39 c0       	rjmp	.+114    	; 0x10e6 <main+0x290>
+    106c:	09 f4       	brne	.+2      	; 0x1070 <main+0x21a>
+    106e:	4c c0       	rjmp	.+152    	; 0x1108 <main+0x2b2>
+    1070:	84 30       	cpi	r24, 0x04	; 4
+    1072:	09 f1       	breq	.+66     	; 0x10b6 <main+0x260>
+    1074:	4c c0       	rjmp	.+152    	; 0x110e <main+0x2b8>
 		{
 // black button - cycle through parameters
 		case 1 : parameter++; if (parameter > NUMPARAMS) parameter = 0;
-    1074:	80 91 22 01 	lds	r24, 0x0122	; 0x800122 <parameter>
-    1078:	8f 5f       	subi	r24, 0xFF	; 255
-    107a:	80 93 22 01 	sts	0x0122, r24	; 0x800122 <parameter>
-    107e:	80 91 22 01 	lds	r24, 0x0122	; 0x800122 <parameter>
-    1082:	82 30       	cpi	r24, 0x02	; 2
-    1084:	90 f1       	brcs	.+100    	; 0x10ea <main+0x294>
-    1086:	10 92 22 01 	sts	0x0122, r1	; 0x800122 <parameter>
-    108a:	2f c0       	rjmp	.+94     	; 0x10ea <main+0x294>
+    1076:	80 91 22 01 	lds	r24, 0x0122	; 0x800122 <parameter>
+    107a:	8f 5f       	subi	r24, 0xFF	; 255
+    107c:	80 93 22 01 	sts	0x0122, r24	; 0x800122 <parameter>
+    1080:	80 91 22 01 	lds	r24, 0x0122	; 0x800122 <parameter>
+    1084:	82 30       	cpi	r24, 0x02	; 2
+    1086:	08 f4       	brcc	.+2      	; 0x108a <main+0x234>
+    1088:	44 c0       	rjmp	.+136    	; 0x1112 <main+0x2bc>
+    108a:	10 92 22 01 	sts	0x0122, r1	; 0x800122 <parameter>
+    108e:	41 c0       	rjmp	.+130    	; 0x1112 <main+0x2bc>
 			break;
 // red button  - decrement parameter
 		case 2 :
 			switch (parameter) {
-    108c:	80 91 22 01 	lds	r24, 0x0122	; 0x800122 <parameter>
-    1090:	88 23       	and	r24, r24
-    1092:	19 f0       	breq	.+6      	; 0x109a <main+0x244>
-    1094:	81 30       	cpi	r24, 0x01	; 1
-    1096:	39 f0       	breq	.+14     	; 0x10a6 <main+0x250>
-    1098:	28 c0       	rjmp	.+80     	; 0x10ea <main+0x294>
+    1090:	80 91 22 01 	lds	r24, 0x0122	; 0x800122 <parameter>
+    1094:	88 23       	and	r24, r24
+    1096:	19 f0       	breq	.+6      	; 0x109e <main+0x248>
+    1098:	81 30       	cpi	r24, 0x01	; 1
+    109a:	39 f0       	breq	.+14     	; 0x10aa <main+0x254>
+    109c:	3a c0       	rjmp	.+116    	; 0x1112 <main+0x2bc>
 			case 0 : if (Inco < 1) Inco = 1; 
-    109a:	81 10       	cpse	r8, r1
-    109c:	02 c0       	rjmp	.+4      	; 0x10a2 <main+0x24c>
-    109e:	88 24       	eor	r8, r8
-    10a0:	83 94       	inc	r8
+    109e:	81 10       	cpse	r8, r1
+    10a0:	02 c0       	rjmp	.+4      	; 0x10a6 <main+0x250>
+    10a2:	88 24       	eor	r8, r8
+    10a4:	83 94       	inc	r8
 				Inco--; 
-    10a2:	8a 94       	dec	r8
-    10a4:	22 c0       	rjmp	.+68     	; 0x10ea <main+0x294>
+    10a6:	8a 94       	dec	r8
+    10a8:	34 c0       	rjmp	.+104    	; 0x1112 <main+0x2bc>
 				break;
 			case 1 : if (VperHz < 1) VperHz = 1; 
-    10a6:	71 10       	cpse	r7, r1
-    10a8:	02 c0       	rjmp	.+4      	; 0x10ae <main+0x258>
-    10aa:	77 24       	eor	r7, r7
-    10ac:	73 94       	inc	r7
+    10aa:	71 10       	cpse	r7, r1
+    10ac:	02 c0       	rjmp	.+4      	; 0x10b2 <main+0x25c>
+    10ae:	77 24       	eor	r7, r7
+    10b0:	73 94       	inc	r7
  				VperHz--; 
-    10ae:	7a 94       	dec	r7
-    10b0:	1c c0       	rjmp	.+56     	; 0x10ea <main+0x294>
+    10b2:	7a 94       	dec	r7
+    10b4:	2e c0       	rjmp	.+92     	; 0x1112 <main+0x2bc>
 			default : break;
 			}
 			break;
 // green button - increment parameter
 		case 4 : 
 			switch (parameter) {
-    10b2:	80 91 22 01 	lds	r24, 0x0122	; 0x800122 <parameter>
-    10b6:	88 23       	and	r24, r24
-    10b8:	19 f0       	breq	.+6      	; 0x10c0 <main+0x26a>
-    10ba:	81 30       	cpi	r24, 0x01	; 1
-    10bc:	41 f0       	breq	.+16     	; 0x10ce <main+0x278>
-    10be:	15 c0       	rjmp	.+42     	; 0x10ea <main+0x294>
+    10b6:	80 91 22 01 	lds	r24, 0x0122	; 0x800122 <parameter>
+    10ba:	88 23       	and	r24, r24
+    10bc:	19 f0       	breq	.+6      	; 0x10c4 <main+0x26e>
+    10be:	81 30       	cpi	r24, 0x01	; 1
+    10c0:	41 f0       	breq	.+16     	; 0x10d2 <main+0x27c>
+    10c2:	27 c0       	rjmp	.+78     	; 0x1112 <main+0x2bc>
 			case 0 :if (Inco > 254) Inco = 254; 
-    10c0:	ef ef       	ldi	r30, 0xFF	; 255
-    10c2:	8e 12       	cpse	r8, r30
-    10c4:	02 c0       	rjmp	.+4      	; 0x10ca <main+0x274>
-    10c6:	2e ef       	ldi	r18, 0xFE	; 254
-    10c8:	82 2e       	mov	r8, r18
+    10c4:	ef ef       	ldi	r30, 0xFF	; 255
+    10c6:	8e 12       	cpse	r8, r30
+    10c8:	02 c0       	rjmp	.+4      	; 0x10ce <main+0x278>
+    10ca:	2e ef       	ldi	r18, 0xFE	; 254
+    10cc:	82 2e       	mov	r8, r18
  				Inco++;  
-    10ca:	83 94       	inc	r8
-    10cc:	0e c0       	rjmp	.+28     	; 0x10ea <main+0x294>
+    10ce:	83 94       	inc	r8
+    10d0:	20 c0       	rjmp	.+64     	; 0x1112 <main+0x2bc>
 				break;
 			case 1 :if (VperHz > 254) VperHz = 254; 
-    10ce:	ff ef       	ldi	r31, 0xFF	; 255
-    10d0:	7f 12       	cpse	r7, r31
-    10d2:	02 c0       	rjmp	.+4      	; 0x10d8 <main+0x282>
-    10d4:	9e ef       	ldi	r25, 0xFE	; 254
-    10d6:	79 2e       	mov	r7, r25
+    10d2:	ff ef       	ldi	r31, 0xFF	; 255
+    10d4:	7f 12       	cpse	r7, r31
+    10d6:	02 c0       	rjmp	.+4      	; 0x10dc <main+0x286>
+    10d8:	9e ef       	ldi	r25, 0xFE	; 254
+    10da:	79 2e       	mov	r7, r25
  				VperHz++; 
-    10d8:	73 94       	inc	r7
-    10da:	07 c0       	rjmp	.+14     	; 0x10ea <main+0x294>
+    10dc:	73 94       	inc	r7
+    10de:	19 c0       	rjmp	.+50     	; 0x1112 <main+0x2bc>
 			 break;
 		default: i = 0; break;
 		} // switch
     } else { // external control
 // with external control we only can go to the extended menu
 		switch (n) 
-    10dc:	83 30       	cpi	r24, 0x03	; 3
-    10de:	19 f4       	brne	.+6      	; 0x10e6 <main+0x290>
+    10e0:	81 30       	cpi	r24, 0x01	; 1
+    10e2:	19 f0       	breq	.+6      	; 0x10ea <main+0x294>
+    10e4:	83 30       	cpi	r24, 0x03	; 3
+    10e6:	81 f0       	breq	.+32     	; 0x1108 <main+0x2b2>
+    10e8:	12 c0       	rjmp	.+36     	; 0x110e <main+0x2b8>
+}
+
+
+static void toggleOutputEnable(void)
+{
+OutputEnabled = !OutputEnabled;
+    10ea:	90 91 20 01 	lds	r25, 0x0120	; 0x800120 <__data_end>
+    10ee:	81 e0       	ldi	r24, 0x01	; 1
+    10f0:	91 11       	cpse	r25, r1
+    10f2:	80 e0       	ldi	r24, 0x00	; 0
+    10f4:	80 93 20 01 	sts	0x0120, r24	; 0x800120 <__data_end>
+if (OutputEnabled) PORTB &= ~(_BV(OUTPUT_ENABLE_PIN));
+    10f8:	80 91 20 01 	lds	r24, 0x0120	; 0x800120 <__data_end>
+    10fc:	88 23       	and	r24, r24
+    10fe:	11 f0       	breq	.+4      	; 0x1104 <main+0x2ae>
+    1100:	2d 98       	cbi	0x05, 5	; 5
+    1102:	07 c0       	rjmp	.+14     	; 0x1112 <main+0x2bc>
+    else PORTB |= _BV(OUTPUT_ENABLE_PIN);
+    1104:	2d 9a       	sbi	0x05, 5	; 5
+    1106:	05 c0       	rjmp	.+10     	; 0x1112 <main+0x2bc>
 		{
 // with external control first button is output enable/disable            
-//        case 1 : toggleOutputEnable();
-//             break;  
+        case 1 : toggleOutputEnable();
+             break;  
 // pressing black (1) and red (2) button simultaneously goes to sub menu
 		case 3 : execExtendedCommand();
-    10e0:	0e 94 9b 03 	call	0x736	; 0x736 <execExtendedCommand>
-    10e4:	02 c0       	rjmp	.+4      	; 0x10ea <main+0x294>
+    1108:	0e 94 9b 03 	call	0x736	; 0x736 <execExtendedCommand>
+    110c:	02 c0       	rjmp	.+4      	; 0x1112 <main+0x2bc>
 			 break;
 		default: i = 0; break;
-    10e6:	10 92 24 01 	sts	0x0124, r1	; 0x800124 <i.2400>
+    110e:	10 92 24 01 	sts	0x0124, r1	; 0x800124 <i.2400>
 		} // switch
    }  // external control
 // simple autorepeater
 	if (keyin() > 0) {
-    10ea:	0e 94 36 03 	call	0x66c	; 0x66c <keyin>
-    10ee:	88 23       	and	r24, r24
-    10f0:	c9 f0       	breq	.+50     	; 0x1124 <main+0x2ce>
+    1112:	0e 94 36 03 	call	0x66c	; 0x66c <keyin>
+    1116:	88 23       	and	r24, r24
+    1118:	c9 f0       	breq	.+50     	; 0x114c <main+0x2f6>
 	i++;
-    10f2:	80 91 24 01 	lds	r24, 0x0124	; 0x800124 <i.2400>
-    10f6:	8f 5f       	subi	r24, 0xFF	; 255
-    10f8:	80 93 24 01 	sts	0x0124, r24	; 0x800124 <i.2400>
+    111a:	80 91 24 01 	lds	r24, 0x0124	; 0x800124 <i.2400>
+    111e:	8f 5f       	subi	r24, 0xFF	; 255
+    1120:	80 93 24 01 	sts	0x0124, r24	; 0x800124 <i.2400>
 	if (i<10) _delay_ms(60);
-    10fc:	8a 30       	cpi	r24, 0x0A	; 10
-    10fe:	50 f4       	brcc	.+20     	; 0x1114 <main+0x2be>
-    1100:	2f ef       	ldi	r18, 0xFF	; 255
-    1102:	8d ee       	ldi	r24, 0xED	; 237
-    1104:	92 e0       	ldi	r25, 0x02	; 2
-    1106:	21 50       	subi	r18, 0x01	; 1
-    1108:	80 40       	sbci	r24, 0x00	; 0
-    110a:	90 40       	sbci	r25, 0x00	; 0
-    110c:	e1 f7       	brne	.-8      	; 0x1106 <main+0x2b0>
-    110e:	00 c0       	rjmp	.+0      	; 0x1110 <main+0x2ba>
-    1110:	00 00       	nop
-    1112:	08 c0       	rjmp	.+16     	; 0x1124 <main+0x2ce>
-    1114:	ef e3       	ldi	r30, 0x3F	; 63
-    1116:	fc e9       	ldi	r31, 0x9C	; 156
-    1118:	31 97       	sbiw	r30, 0x01	; 1
-    111a:	f1 f7       	brne	.-4      	; 0x1118 <main+0x2c2>
-    111c:	00 c0       	rjmp	.+0      	; 0x111e <main+0x2c8>
-    111e:	00 00       	nop
+    1124:	8a 30       	cpi	r24, 0x0A	; 10
+    1126:	50 f4       	brcc	.+20     	; 0x113c <main+0x2e6>
+    1128:	2f ef       	ldi	r18, 0xFF	; 255
+    112a:	8d ee       	ldi	r24, 0xED	; 237
+    112c:	92 e0       	ldi	r25, 0x02	; 2
+    112e:	21 50       	subi	r18, 0x01	; 1
+    1130:	80 40       	sbci	r24, 0x00	; 0
+    1132:	90 40       	sbci	r25, 0x00	; 0
+    1134:	e1 f7       	brne	.-8      	; 0x112e <main+0x2d8>
+    1136:	00 c0       	rjmp	.+0      	; 0x1138 <main+0x2e2>
+    1138:	00 00       	nop
+    113a:	08 c0       	rjmp	.+16     	; 0x114c <main+0x2f6>
+    113c:	ef e3       	ldi	r30, 0x3F	; 63
+    113e:	fc e9       	ldi	r31, 0x9C	; 156
+    1140:	31 97       	sbiw	r30, 0x01	; 1
+    1142:	f1 f7       	brne	.-4      	; 0x1140 <main+0x2ea>
+    1144:	00 c0       	rjmp	.+0      	; 0x1146 <main+0x2f0>
+    1146:	00 00       	nop
 	else {
 		_delay_ms(10);
 		i = 11;
-    1120:	00 93 24 01 	sts	0x0124, r16	; 0x800124 <i.2400>
+    1148:	00 93 24 01 	sts	0x0124, r16	; 0x800124 <i.2400>
  */
 static void showPars(void)
 {
 const uint8_t *p = cursorpos;
 
 	lcd_gotoxy(0,1);  	
-    1124:	61 e0       	ldi	r22, 0x01	; 1
-    1126:	80 e0       	ldi	r24, 0x00	; 0
-    1128:	0e 94 b3 06 	call	0xd66	; 0xd66 <lcd_gotoxy>
+    114c:	61 e0       	ldi	r22, 0x01	; 1
+    114e:	80 e0       	ldi	r24, 0x00	; 0
+    1150:	0e 94 b3 06 	call	0xd66	; 0xd66 <lcd_gotoxy>
 	printdec(freq);printspc();lcd_gotoxy(6,1);
-    112c:	80 91 25 01 	lds	r24, 0x0125	; 0x800125 <freq>
-    1130:	90 91 26 01 	lds	r25, 0x0126	; 0x800126 <freq+0x1>
-    1134:	0e 94 d8 02 	call	0x5b0	; 0x5b0 <printdec>
-    1138:	0e 94 d5 02 	call	0x5aa	; 0x5aa <printspc>
-    113c:	61 e0       	ldi	r22, 0x01	; 1
-    113e:	86 e0       	ldi	r24, 0x06	; 6
-    1140:	0e 94 b3 06 	call	0xd66	; 0xd66 <lcd_gotoxy>
+    1154:	80 91 25 01 	lds	r24, 0x0125	; 0x800125 <freq>
+    1158:	90 91 26 01 	lds	r25, 0x0126	; 0x800126 <freq+0x1>
+    115c:	0e 94 d8 02 	call	0x5b0	; 0x5b0 <printdec>
+    1160:	0e 94 d5 02 	call	0x5aa	; 0x5aa <printspc>
+    1164:	61 e0       	ldi	r22, 0x01	; 1
+    1166:	86 e0       	ldi	r24, 0x06	; 6
+    1168:	0e 94 b3 06 	call	0xd66	; 0xd66 <lcd_gotoxy>
 	printdec(VperHz);printspc();printspc();lcd_gotoxy(12,1);
-    1144:	87 2d       	mov	r24, r7
-    1146:	90 e0       	ldi	r25, 0x00	; 0
-    1148:	0e 94 d8 02 	call	0x5b0	; 0x5b0 <printdec>
-    114c:	0e 94 d5 02 	call	0x5aa	; 0x5aa <printspc>
-    1150:	0e 94 d5 02 	call	0x5aa	; 0x5aa <printspc>
-    1154:	61 e0       	ldi	r22, 0x01	; 1
-    1156:	8c e0       	ldi	r24, 0x0C	; 12
-    1158:	0e 94 b3 06 	call	0xd66	; 0xd66 <lcd_gotoxy>
+    116c:	87 2d       	mov	r24, r7
+    116e:	90 e0       	ldi	r25, 0x00	; 0
+    1170:	0e 94 d8 02 	call	0x5b0	; 0x5b0 <printdec>
+    1174:	0e 94 d5 02 	call	0x5aa	; 0x5aa <printspc>
+    1178:	0e 94 d5 02 	call	0x5aa	; 0x5aa <printspc>
+    117c:	61 e0       	ldi	r22, 0x01	; 1
+    117e:	8c e0       	ldi	r24, 0x0C	; 12
+    1180:	0e 94 b3 06 	call	0xd66	; 0xd66 <lcd_gotoxy>
 	printnum((uint16_t)(amplitude*100)/255);lcd_putc('%');printspc();
-    115c:	f4 e6       	ldi	r31, 0x64	; 100
-    115e:	6f 9e       	mul	r6, r31
-    1160:	c0 01       	movw	r24, r0
-    1162:	11 24       	eor	r1, r1
-    1164:	be 01       	movw	r22, r28
-    1166:	0e 94 ea 08 	call	0x11d4	; 0x11d4 <__udivmodhi4>
-    116a:	cb 01       	movw	r24, r22
-    116c:	4a e0       	ldi	r20, 0x0A	; 10
-    116e:	60 e0       	ldi	r22, 0x00	; 0
-    1170:	71 e0       	ldi	r23, 0x01	; 1
-    1172:	0e 94 75 09 	call	0x12ea	; 0x12ea <__itoa_ncheck>
+    1184:	f4 e6       	ldi	r31, 0x64	; 100
+    1186:	6f 9e       	mul	r6, r31
+    1188:	c0 01       	movw	r24, r0
+    118a:	11 24       	eor	r1, r1
+    118c:	be 01       	movw	r22, r28
+    118e:	0e 94 fe 08 	call	0x11fc	; 0x11fc <__udivmodhi4>
+    1192:	cb 01       	movw	r24, r22
+    1194:	4a e0       	ldi	r20, 0x0A	; 10
+    1196:	60 e0       	ldi	r22, 0x00	; 0
+    1198:	71 e0       	ldi	r23, 0x01	; 1
+    119a:	0e 94 89 09 	call	0x1312	; 0x1312 <__itoa_ncheck>
 		lcd_putc(dectable[n]);
 	}
 }
 static void printnum(int16_t number) {
 uint8_t n,i;
 	a = itoa(number,dectable,10);
-    1176:	80 93 3c 01 	sts	0x013C, r24	; 0x80013c <a>
+    119e:	80 93 3c 01 	sts	0x013C, r24	; 0x80013c <a>
 	i = strlen(dectable);
-    117a:	e0 e0       	ldi	r30, 0x00	; 0
-    117c:	f1 e0       	ldi	r31, 0x01	; 1
-    117e:	01 90       	ld	r0, Z+
-    1180:	00 20       	and	r0, r0
-    1182:	e9 f7       	brne	.-6      	; 0x117e <main+0x328>
-    1184:	31 97       	sbiw	r30, 0x01	; 1
-    1186:	e0 50       	subi	r30, 0x00	; 0
-    1188:	f1 40       	sbci	r31, 0x01	; 1
-    118a:	1e 2f       	mov	r17, r30
-    118c:	80 e0       	ldi	r24, 0x00	; 0
-    118e:	e8 2e       	mov	r14, r24
-    1190:	81 e0       	ldi	r24, 0x01	; 1
-    1192:	f8 2e       	mov	r15, r24
-    1194:	67 01       	movw	r12, r14
-    1196:	8c 2d       	mov	r24, r12
-    1198:	8e 19       	sub	r24, r14
+    11a2:	e0 e0       	ldi	r30, 0x00	; 0
+    11a4:	f1 e0       	ldi	r31, 0x01	; 1
+    11a6:	01 90       	ld	r0, Z+
+    11a8:	00 20       	and	r0, r0
+    11aa:	e9 f7       	brne	.-6      	; 0x11a6 <main+0x350>
+    11ac:	31 97       	sbiw	r30, 0x01	; 1
+    11ae:	e0 50       	subi	r30, 0x00	; 0
+    11b0:	f1 40       	sbci	r31, 0x01	; 1
+    11b2:	1e 2f       	mov	r17, r30
+    11b4:	80 e0       	ldi	r24, 0x00	; 0
+    11b6:	e8 2e       	mov	r14, r24
+    11b8:	81 e0       	ldi	r24, 0x01	; 1
+    11ba:	f8 2e       	mov	r15, r24
+    11bc:	67 01       	movw	r12, r14
+    11be:	8c 2d       	mov	r24, r12
+    11c0:	8e 19       	sub	r24, r14
 	for (n=0;n < i;n++) {
-    119a:	81 17       	cp	r24, r17
-    119c:	30 f4       	brcc	.+12     	; 0x11aa <main+0x354>
+    11c2:	81 17       	cp	r24, r17
+    11c4:	30 f4       	brcc	.+12     	; 0x11d2 <main+0x37c>
 		lcd_putc(dectable[n]);
-    119e:	f6 01       	movw	r30, r12
-    11a0:	81 91       	ld	r24, Z+
-    11a2:	6f 01       	movw	r12, r30
-    11a4:	0e 94 c4 06 	call	0xd88	; 0xd88 <lcd_putc>
-    11a8:	f6 cf       	rjmp	.-20     	; 0x1196 <main+0x340>
+    11c6:	f6 01       	movw	r30, r12
+    11c8:	81 91       	ld	r24, Z+
+    11ca:	6f 01       	movw	r12, r30
+    11cc:	0e 94 c4 06 	call	0xd88	; 0xd88 <lcd_putc>
+    11d0:	f6 cf       	rjmp	.-20     	; 0x11be <main+0x368>
 const uint8_t *p = cursorpos;
 
 	lcd_gotoxy(0,1);  	
 	printdec(freq);printspc();lcd_gotoxy(6,1);
 	printdec(VperHz);printspc();printspc();lcd_gotoxy(12,1);
 	printnum((uint16_t)(amplitude*100)/255);lcd_putc('%');printspc();
-    11aa:	85 e2       	ldi	r24, 0x25	; 37
-    11ac:	0e 94 c4 06 	call	0xd88	; 0xd88 <lcd_putc>
-    11b0:	0e 94 d5 02 	call	0x5aa	; 0x5aa <printspc>
+    11d2:	85 e2       	ldi	r24, 0x25	; 37
+    11d4:	0e 94 c4 06 	call	0xd88	; 0xd88 <lcd_putc>
+    11d8:	0e 94 d5 02 	call	0x5aa	; 0x5aa <printspc>
 	lcd_gotoxy(pgm_read_byte(p+parameter),1); // set cursor below active parameter
-    11b4:	e0 91 22 01 	lds	r30, 0x0122	; 0x800122 <parameter>
-    11b8:	f0 e0       	ldi	r31, 0x00	; 0
-    11ba:	e7 5d       	subi	r30, 0xD7	; 215
-    11bc:	fe 4f       	sbci	r31, 0xFE	; 254
-    11be:	84 91       	lpm	r24, Z
-    11c0:	61 e0       	ldi	r22, 0x01	; 1
-    11c2:	0e 94 b3 06 	call	0xd66	; 0xd66 <lcd_gotoxy>
-    11c6:	8f e1       	ldi	r24, 0x1F	; 31
-    11c8:	9e e4       	ldi	r25, 0x4E	; 78
-    11ca:	01 97       	sbiw	r24, 0x01	; 1
-    11cc:	f1 f7       	brne	.-4      	; 0x11ca <main+0x374>
-    11ce:	00 c0       	rjmp	.+0      	; 0x11d0 <main+0x37a>
-    11d0:	00 00       	nop
-    11d2:	41 cf       	rjmp	.-382    	; 0x1056 <main+0x200>
-
-000011d4 <__udivmodhi4>:
-    11d4:	aa 1b       	sub	r26, r26
-    11d6:	bb 1b       	sub	r27, r27
-    11d8:	51 e1       	ldi	r21, 0x11	; 17
-    11da:	07 c0       	rjmp	.+14     	; 0x11ea <__udivmodhi4_ep>
-
-000011dc <__udivmodhi4_loop>:
-    11dc:	aa 1f       	adc	r26, r26
-    11de:	bb 1f       	adc	r27, r27
-    11e0:	a6 17       	cp	r26, r22
-    11e2:	b7 07       	cpc	r27, r23
-    11e4:	10 f0       	brcs	.+4      	; 0x11ea <__udivmodhi4_ep>
-    11e6:	a6 1b       	sub	r26, r22
-    11e8:	b7 0b       	sbc	r27, r23
-
-000011ea <__udivmodhi4_ep>:
-    11ea:	88 1f       	adc	r24, r24
-    11ec:	99 1f       	adc	r25, r25
-    11ee:	5a 95       	dec	r21
-    11f0:	a9 f7       	brne	.-22     	; 0x11dc <__udivmodhi4_loop>
-    11f2:	80 95       	com	r24
-    11f4:	90 95       	com	r25
-    11f6:	bc 01       	movw	r22, r24
-    11f8:	cd 01       	movw	r24, r26
-    11fa:	08 95       	ret
-
-000011fc <__divmodhi4>:
-    11fc:	97 fb       	bst	r25, 7
-    11fe:	07 2e       	mov	r0, r23
-    1200:	16 f4       	brtc	.+4      	; 0x1206 <__divmodhi4+0xa>
-    1202:	00 94       	com	r0
-    1204:	07 d0       	rcall	.+14     	; 0x1214 <__divmodhi4_neg1>
-    1206:	77 fd       	sbrc	r23, 7
-    1208:	09 d0       	rcall	.+18     	; 0x121c <__divmodhi4_neg2>
-    120a:	0e 94 ea 08 	call	0x11d4	; 0x11d4 <__udivmodhi4>
-    120e:	07 fc       	sbrc	r0, 7
-    1210:	05 d0       	rcall	.+10     	; 0x121c <__divmodhi4_neg2>
-    1212:	3e f4       	brtc	.+14     	; 0x1222 <__divmodhi4_exit>
-
-00001214 <__divmodhi4_neg1>:
-    1214:	90 95       	com	r25
-    1216:	81 95       	neg	r24
-    1218:	9f 4f       	sbci	r25, 0xFF	; 255
-    121a:	08 95       	ret
-
-0000121c <__divmodhi4_neg2>:
-    121c:	70 95       	com	r23
-    121e:	61 95       	neg	r22
-    1220:	7f 4f       	sbci	r23, 0xFF	; 255
-
-00001222 <__divmodhi4_exit>:
+    11dc:	e0 91 22 01 	lds	r30, 0x0122	; 0x800122 <parameter>
+    11e0:	f0 e0       	ldi	r31, 0x00	; 0
+    11e2:	e7 5d       	subi	r30, 0xD7	; 215
+    11e4:	fe 4f       	sbci	r31, 0xFE	; 254
+    11e6:	84 91       	lpm	r24, Z
+    11e8:	61 e0       	ldi	r22, 0x01	; 1
+    11ea:	0e 94 b3 06 	call	0xd66	; 0xd66 <lcd_gotoxy>
+    11ee:	8f e1       	ldi	r24, 0x1F	; 31
+    11f0:	9e e4       	ldi	r25, 0x4E	; 78
+    11f2:	01 97       	sbiw	r24, 0x01	; 1
+    11f4:	f1 f7       	brne	.-4      	; 0x11f2 <main+0x39c>
+    11f6:	00 c0       	rjmp	.+0      	; 0x11f8 <main+0x3a2>
+    11f8:	00 00       	nop
+    11fa:	2d cf       	rjmp	.-422    	; 0x1056 <main+0x200>
+
+000011fc <__udivmodhi4>:
+    11fc:	aa 1b       	sub	r26, r26
+    11fe:	bb 1b       	sub	r27, r27
+    1200:	51 e1       	ldi	r21, 0x11	; 17
+    1202:	07 c0       	rjmp	.+14     	; 0x1212 <__udivmodhi4_ep>
+
+00001204 <__udivmodhi4_loop>:
+    1204:	aa 1f       	adc	r26, r26
+    1206:	bb 1f       	adc	r27, r27
+    1208:	a6 17       	cp	r26, r22
+    120a:	b7 07       	cpc	r27, r23
+    120c:	10 f0       	brcs	.+4      	; 0x1212 <__udivmodhi4_ep>
+    120e:	a6 1b       	sub	r26, r22
+    1210:	b7 0b       	sbc	r27, r23
+
+00001212 <__udivmodhi4_ep>:
+    1212:	88 1f       	adc	r24, r24
+    1214:	99 1f       	adc	r25, r25
+    1216:	5a 95       	dec	r21
+    1218:	a9 f7       	brne	.-22     	; 0x1204 <__udivmodhi4_loop>
+    121a:	80 95       	com	r24
+    121c:	90 95       	com	r25
+    121e:	bc 01       	movw	r22, r24
+    1220:	cd 01       	movw	r24, r26
     1222:	08 95       	ret
 
-00001224 <__udivmodsi4>:
-    1224:	a1 e2       	ldi	r26, 0x21	; 33
-    1226:	1a 2e       	mov	r1, r26
-    1228:	aa 1b       	sub	r26, r26
-    122a:	bb 1b       	sub	r27, r27
-    122c:	fd 01       	movw	r30, r26
-    122e:	0d c0       	rjmp	.+26     	; 0x124a <__udivmodsi4_ep>
-
-00001230 <__udivmodsi4_loop>:
-    1230:	aa 1f       	adc	r26, r26
-    1232:	bb 1f       	adc	r27, r27
-    1234:	ee 1f       	adc	r30, r30
-    1236:	ff 1f       	adc	r31, r31
-    1238:	a2 17       	cp	r26, r18
-    123a:	b3 07       	cpc	r27, r19
-    123c:	e4 07       	cpc	r30, r20
-    123e:	f5 07       	cpc	r31, r21
-    1240:	20 f0       	brcs	.+8      	; 0x124a <__udivmodsi4_ep>
-    1242:	a2 1b       	sub	r26, r18
-    1244:	b3 0b       	sbc	r27, r19
-    1246:	e4 0b       	sbc	r30, r20
-    1248:	f5 0b       	sbc	r31, r21
-
-0000124a <__udivmodsi4_ep>:
-    124a:	66 1f       	adc	r22, r22
-    124c:	77 1f       	adc	r23, r23
-    124e:	88 1f       	adc	r24, r24
-    1250:	99 1f       	adc	r25, r25
-    1252:	1a 94       	dec	r1
-    1254:	69 f7       	brne	.-38     	; 0x1230 <__udivmodsi4_loop>
-    1256:	60 95       	com	r22
-    1258:	70 95       	com	r23
-    125a:	80 95       	com	r24
-    125c:	90 95       	com	r25
-    125e:	9b 01       	movw	r18, r22
-    1260:	ac 01       	movw	r20, r24
-    1262:	bd 01       	movw	r22, r26
-    1264:	cf 01       	movw	r24, r30
-    1266:	08 95       	ret
-
-00001268 <__divmodsi4>:
-    1268:	05 2e       	mov	r0, r21
-    126a:	97 fb       	bst	r25, 7
-    126c:	1e f4       	brtc	.+6      	; 0x1274 <__divmodsi4+0xc>
-    126e:	00 94       	com	r0
-    1270:	0e 94 4b 09 	call	0x1296	; 0x1296 <__negsi2>
-    1274:	57 fd       	sbrc	r21, 7
-    1276:	07 d0       	rcall	.+14     	; 0x1286 <__divmodsi4_neg2>
-    1278:	0e 94 12 09 	call	0x1224	; 0x1224 <__udivmodsi4>
-    127c:	07 fc       	sbrc	r0, 7
-    127e:	03 d0       	rcall	.+6      	; 0x1286 <__divmodsi4_neg2>
-    1280:	4e f4       	brtc	.+18     	; 0x1294 <__divmodsi4_exit>
-    1282:	0c 94 4b 09 	jmp	0x1296	; 0x1296 <__negsi2>
-
-00001286 <__divmodsi4_neg2>:
-    1286:	50 95       	com	r21
-    1288:	40 95       	com	r20
-    128a:	30 95       	com	r19
-    128c:	21 95       	neg	r18
-    128e:	3f 4f       	sbci	r19, 0xFF	; 255
-    1290:	4f 4f       	sbci	r20, 0xFF	; 255
-    1292:	5f 4f       	sbci	r21, 0xFF	; 255
-
-00001294 <__divmodsi4_exit>:
-    1294:	08 95       	ret
-
-00001296 <__negsi2>:
-    1296:	90 95       	com	r25
-    1298:	80 95       	com	r24
-    129a:	70 95       	com	r23
-    129c:	61 95       	neg	r22
-    129e:	7f 4f       	sbci	r23, 0xFF	; 255
-    12a0:	8f 4f       	sbci	r24, 0xFF	; 255
-    12a2:	9f 4f       	sbci	r25, 0xFF	; 255
-    12a4:	08 95       	ret
-
-000012a6 <__umulhisi3>:
-    12a6:	a2 9f       	mul	r26, r18
-    12a8:	b0 01       	movw	r22, r0
-    12aa:	b3 9f       	mul	r27, r19
-    12ac:	c0 01       	movw	r24, r0
-    12ae:	a3 9f       	mul	r26, r19
-    12b0:	70 0d       	add	r23, r0
-    12b2:	81 1d       	adc	r24, r1
-    12b4:	11 24       	eor	r1, r1
-    12b6:	91 1d       	adc	r25, r1
-    12b8:	b2 9f       	mul	r27, r18
-    12ba:	70 0d       	add	r23, r0
-    12bc:	81 1d       	adc	r24, r1
-    12be:	11 24       	eor	r1, r1
-    12c0:	91 1d       	adc	r25, r1
-    12c2:	08 95       	ret
-
-000012c4 <__mulshisi3>:
-    12c4:	b7 ff       	sbrs	r27, 7
-    12c6:	0c 94 6a 09 	jmp	0x12d4	; 0x12d4 <__muluhisi3>
-
-000012ca <__mulohisi3>:
-    12ca:	0e 94 6a 09 	call	0x12d4	; 0x12d4 <__muluhisi3>
-    12ce:	82 1b       	sub	r24, r18
-    12d0:	93 0b       	sbc	r25, r19
-    12d2:	08 95       	ret
-
-000012d4 <__muluhisi3>:
-    12d4:	0e 94 53 09 	call	0x12a6	; 0x12a6 <__umulhisi3>
-    12d8:	a5 9f       	mul	r26, r21
-    12da:	90 0d       	add	r25, r0
-    12dc:	b4 9f       	mul	r27, r20
-    12de:	90 0d       	add	r25, r0
-    12e0:	a4 9f       	mul	r26, r20
-    12e2:	80 0d       	add	r24, r0
-    12e4:	91 1d       	adc	r25, r1
+00001224 <__divmodhi4>:
+    1224:	97 fb       	bst	r25, 7
+    1226:	07 2e       	mov	r0, r23
+    1228:	16 f4       	brtc	.+4      	; 0x122e <__divmodhi4+0xa>
+    122a:	00 94       	com	r0
+    122c:	07 d0       	rcall	.+14     	; 0x123c <__divmodhi4_neg1>
+    122e:	77 fd       	sbrc	r23, 7
+    1230:	09 d0       	rcall	.+18     	; 0x1244 <__divmodhi4_neg2>
+    1232:	0e 94 fe 08 	call	0x11fc	; 0x11fc <__udivmodhi4>
+    1236:	07 fc       	sbrc	r0, 7
+    1238:	05 d0       	rcall	.+10     	; 0x1244 <__divmodhi4_neg2>
+    123a:	3e f4       	brtc	.+14     	; 0x124a <__divmodhi4_exit>
+
+0000123c <__divmodhi4_neg1>:
+    123c:	90 95       	com	r25
+    123e:	81 95       	neg	r24
+    1240:	9f 4f       	sbci	r25, 0xFF	; 255
+    1242:	08 95       	ret
+
+00001244 <__divmodhi4_neg2>:
+    1244:	70 95       	com	r23
+    1246:	61 95       	neg	r22
+    1248:	7f 4f       	sbci	r23, 0xFF	; 255
+
+0000124a <__divmodhi4_exit>:
+    124a:	08 95       	ret
+
+0000124c <__udivmodsi4>:
+    124c:	a1 e2       	ldi	r26, 0x21	; 33
+    124e:	1a 2e       	mov	r1, r26
+    1250:	aa 1b       	sub	r26, r26
+    1252:	bb 1b       	sub	r27, r27
+    1254:	fd 01       	movw	r30, r26
+    1256:	0d c0       	rjmp	.+26     	; 0x1272 <__udivmodsi4_ep>
+
+00001258 <__udivmodsi4_loop>:
+    1258:	aa 1f       	adc	r26, r26
+    125a:	bb 1f       	adc	r27, r27
+    125c:	ee 1f       	adc	r30, r30
+    125e:	ff 1f       	adc	r31, r31
+    1260:	a2 17       	cp	r26, r18
+    1262:	b3 07       	cpc	r27, r19
+    1264:	e4 07       	cpc	r30, r20
+    1266:	f5 07       	cpc	r31, r21
+    1268:	20 f0       	brcs	.+8      	; 0x1272 <__udivmodsi4_ep>
+    126a:	a2 1b       	sub	r26, r18
+    126c:	b3 0b       	sbc	r27, r19
+    126e:	e4 0b       	sbc	r30, r20
+    1270:	f5 0b       	sbc	r31, r21
+
+00001272 <__udivmodsi4_ep>:
+    1272:	66 1f       	adc	r22, r22
+    1274:	77 1f       	adc	r23, r23
+    1276:	88 1f       	adc	r24, r24
+    1278:	99 1f       	adc	r25, r25
+    127a:	1a 94       	dec	r1
+    127c:	69 f7       	brne	.-38     	; 0x1258 <__udivmodsi4_loop>
+    127e:	60 95       	com	r22
+    1280:	70 95       	com	r23
+    1282:	80 95       	com	r24
+    1284:	90 95       	com	r25
+    1286:	9b 01       	movw	r18, r22
+    1288:	ac 01       	movw	r20, r24
+    128a:	bd 01       	movw	r22, r26
+    128c:	cf 01       	movw	r24, r30
+    128e:	08 95       	ret
+
+00001290 <__divmodsi4>:
+    1290:	05 2e       	mov	r0, r21
+    1292:	97 fb       	bst	r25, 7
+    1294:	1e f4       	brtc	.+6      	; 0x129c <__divmodsi4+0xc>
+    1296:	00 94       	com	r0
+    1298:	0e 94 5f 09 	call	0x12be	; 0x12be <__negsi2>
+    129c:	57 fd       	sbrc	r21, 7
+    129e:	07 d0       	rcall	.+14     	; 0x12ae <__divmodsi4_neg2>
+    12a0:	0e 94 26 09 	call	0x124c	; 0x124c <__udivmodsi4>
+    12a4:	07 fc       	sbrc	r0, 7
+    12a6:	03 d0       	rcall	.+6      	; 0x12ae <__divmodsi4_neg2>
+    12a8:	4e f4       	brtc	.+18     	; 0x12bc <__divmodsi4_exit>
+    12aa:	0c 94 5f 09 	jmp	0x12be	; 0x12be <__negsi2>
+
+000012ae <__divmodsi4_neg2>:
+    12ae:	50 95       	com	r21
+    12b0:	40 95       	com	r20
+    12b2:	30 95       	com	r19
+    12b4:	21 95       	neg	r18
+    12b6:	3f 4f       	sbci	r19, 0xFF	; 255
+    12b8:	4f 4f       	sbci	r20, 0xFF	; 255
+    12ba:	5f 4f       	sbci	r21, 0xFF	; 255
+
+000012bc <__divmodsi4_exit>:
+    12bc:	08 95       	ret
+
+000012be <__negsi2>:
+    12be:	90 95       	com	r25
+    12c0:	80 95       	com	r24
+    12c2:	70 95       	com	r23
+    12c4:	61 95       	neg	r22
+    12c6:	7f 4f       	sbci	r23, 0xFF	; 255
+    12c8:	8f 4f       	sbci	r24, 0xFF	; 255
+    12ca:	9f 4f       	sbci	r25, 0xFF	; 255
+    12cc:	08 95       	ret
+
+000012ce <__umulhisi3>:
+    12ce:	a2 9f       	mul	r26, r18
+    12d0:	b0 01       	movw	r22, r0
+    12d2:	b3 9f       	mul	r27, r19
+    12d4:	c0 01       	movw	r24, r0
+    12d6:	a3 9f       	mul	r26, r19
+    12d8:	70 0d       	add	r23, r0
+    12da:	81 1d       	adc	r24, r1
+    12dc:	11 24       	eor	r1, r1
+    12de:	91 1d       	adc	r25, r1
+    12e0:	b2 9f       	mul	r27, r18
+    12e2:	70 0d       	add	r23, r0
+    12e4:	81 1d       	adc	r24, r1
     12e6:	11 24       	eor	r1, r1
-    12e8:	08 95       	ret
-
-000012ea <__itoa_ncheck>:
-    12ea:	bb 27       	eor	r27, r27
-    12ec:	4a 30       	cpi	r20, 0x0A	; 10
-    12ee:	31 f4       	brne	.+12     	; 0x12fc <__itoa_ncheck+0x12>
-    12f0:	99 23       	and	r25, r25
-    12f2:	22 f4       	brpl	.+8      	; 0x12fc <__itoa_ncheck+0x12>
-    12f4:	bd e2       	ldi	r27, 0x2D	; 45
-    12f6:	90 95       	com	r25
-    12f8:	81 95       	neg	r24
-    12fa:	9f 4f       	sbci	r25, 0xFF	; 255
-    12fc:	0c 94 81 09 	jmp	0x1302	; 0x1302 <__utoa_common>
-
-00001300 <__utoa_ncheck>:
-    1300:	bb 27       	eor	r27, r27
-
-00001302 <__utoa_common>:
-    1302:	fb 01       	movw	r30, r22
-    1304:	55 27       	eor	r21, r21
-    1306:	aa 27       	eor	r26, r26
-    1308:	88 0f       	add	r24, r24
-    130a:	99 1f       	adc	r25, r25
-    130c:	aa 1f       	adc	r26, r26
-    130e:	a4 17       	cp	r26, r20
-    1310:	10 f0       	brcs	.+4      	; 0x1316 <__utoa_common+0x14>
-    1312:	a4 1b       	sub	r26, r20
-    1314:	83 95       	inc	r24
-    1316:	50 51       	subi	r21, 0x10	; 16
-    1318:	b9 f7       	brne	.-18     	; 0x1308 <__utoa_common+0x6>
-    131a:	a0 5d       	subi	r26, 0xD0	; 208
-    131c:	aa 33       	cpi	r26, 0x3A	; 58
-    131e:	08 f0       	brcs	.+2      	; 0x1322 <__utoa_common+0x20>
-    1320:	a9 5d       	subi	r26, 0xD9	; 217
-    1322:	a1 93       	st	Z+, r26
-    1324:	00 97       	sbiw	r24, 0x00	; 0
-    1326:	79 f7       	brne	.-34     	; 0x1306 <__utoa_common+0x4>
-    1328:	b1 11       	cpse	r27, r1
-    132a:	b1 93       	st	Z+, r27
-    132c:	11 92       	st	Z+, r1
-    132e:	cb 01       	movw	r24, r22
-    1330:	0c 94 9a 09 	jmp	0x1334	; 0x1334 <strrev>
-
-00001334 <strrev>:
-    1334:	dc 01       	movw	r26, r24
-    1336:	fc 01       	movw	r30, r24
-    1338:	67 2f       	mov	r22, r23
-    133a:	71 91       	ld	r23, Z+
-    133c:	77 23       	and	r23, r23
-    133e:	e1 f7       	brne	.-8      	; 0x1338 <strrev+0x4>
-    1340:	32 97       	sbiw	r30, 0x02	; 2
-    1342:	04 c0       	rjmp	.+8      	; 0x134c <strrev+0x18>
-    1344:	7c 91       	ld	r23, X
-    1346:	6d 93       	st	X+, r22
-    1348:	70 83       	st	Z, r23
-    134a:	62 91       	ld	r22, -Z
-    134c:	ae 17       	cp	r26, r30
-    134e:	bf 07       	cpc	r27, r31
-    1350:	c8 f3       	brcs	.-14     	; 0x1344 <strrev+0x10>
-    1352:	08 95       	ret
-
-00001354 <eeprom_read_byte>:
-    1354:	f9 99       	sbic	0x1f, 1	; 31
-    1356:	fe cf       	rjmp	.-4      	; 0x1354 <eeprom_read_byte>
-    1358:	92 bd       	out	0x22, r25	; 34
-    135a:	81 bd       	out	0x21, r24	; 33
-    135c:	f8 9a       	sbi	0x1f, 0	; 31
-    135e:	99 27       	eor	r25, r25
-    1360:	80 b5       	in	r24, 0x20	; 32
-    1362:	08 95       	ret
-
-00001364 <eeprom_read_word>:
-    1364:	a8 e1       	ldi	r26, 0x18	; 24
-    1366:	b0 e0       	ldi	r27, 0x00	; 0
-    1368:	42 e0       	ldi	r20, 0x02	; 2
-    136a:	50 e0       	ldi	r21, 0x00	; 0
-    136c:	0c 94 cd 09 	jmp	0x139a	; 0x139a <eeprom_read_blraw>
-
-00001370 <eeprom_write_byte>:
-    1370:	26 2f       	mov	r18, r22
-
-00001372 <eeprom_write_r18>:
-    1372:	f9 99       	sbic	0x1f, 1	; 31
-    1374:	fe cf       	rjmp	.-4      	; 0x1372 <eeprom_write_r18>
-    1376:	1f ba       	out	0x1f, r1	; 31
-    1378:	92 bd       	out	0x22, r25	; 34
-    137a:	81 bd       	out	0x21, r24	; 33
-    137c:	20 bd       	out	0x20, r18	; 32
-    137e:	0f b6       	in	r0, 0x3f	; 63
-    1380:	f8 94       	cli
-    1382:	fa 9a       	sbi	0x1f, 2	; 31
-    1384:	f9 9a       	sbi	0x1f, 1	; 31
-    1386:	0f be       	out	0x3f, r0	; 63
-    1388:	01 96       	adiw	r24, 0x01	; 1
+    12e8:	91 1d       	adc	r25, r1
+    12ea:	08 95       	ret
+
+000012ec <__mulshisi3>:
+    12ec:	b7 ff       	sbrs	r27, 7
+    12ee:	0c 94 7e 09 	jmp	0x12fc	; 0x12fc <__muluhisi3>
+
+000012f2 <__mulohisi3>:
+    12f2:	0e 94 7e 09 	call	0x12fc	; 0x12fc <__muluhisi3>
+    12f6:	82 1b       	sub	r24, r18
+    12f8:	93 0b       	sbc	r25, r19
+    12fa:	08 95       	ret
+
+000012fc <__muluhisi3>:
+    12fc:	0e 94 67 09 	call	0x12ce	; 0x12ce <__umulhisi3>
+    1300:	a5 9f       	mul	r26, r21
+    1302:	90 0d       	add	r25, r0
+    1304:	b4 9f       	mul	r27, r20
+    1306:	90 0d       	add	r25, r0
+    1308:	a4 9f       	mul	r26, r20
+    130a:	80 0d       	add	r24, r0
+    130c:	91 1d       	adc	r25, r1
+    130e:	11 24       	eor	r1, r1
+    1310:	08 95       	ret
+
+00001312 <__itoa_ncheck>:
+    1312:	bb 27       	eor	r27, r27
+    1314:	4a 30       	cpi	r20, 0x0A	; 10
+    1316:	31 f4       	brne	.+12     	; 0x1324 <__itoa_ncheck+0x12>
+    1318:	99 23       	and	r25, r25
+    131a:	22 f4       	brpl	.+8      	; 0x1324 <__itoa_ncheck+0x12>
+    131c:	bd e2       	ldi	r27, 0x2D	; 45
+    131e:	90 95       	com	r25
+    1320:	81 95       	neg	r24
+    1322:	9f 4f       	sbci	r25, 0xFF	; 255
+    1324:	0c 94 95 09 	jmp	0x132a	; 0x132a <__utoa_common>
+
+00001328 <__utoa_ncheck>:
+    1328:	bb 27       	eor	r27, r27
+
+0000132a <__utoa_common>:
+    132a:	fb 01       	movw	r30, r22
+    132c:	55 27       	eor	r21, r21
+    132e:	aa 27       	eor	r26, r26
+    1330:	88 0f       	add	r24, r24
+    1332:	99 1f       	adc	r25, r25
+    1334:	aa 1f       	adc	r26, r26
+    1336:	a4 17       	cp	r26, r20
+    1338:	10 f0       	brcs	.+4      	; 0x133e <__utoa_common+0x14>
+    133a:	a4 1b       	sub	r26, r20
+    133c:	83 95       	inc	r24
+    133e:	50 51       	subi	r21, 0x10	; 16
+    1340:	b9 f7       	brne	.-18     	; 0x1330 <__utoa_common+0x6>
+    1342:	a0 5d       	subi	r26, 0xD0	; 208
+    1344:	aa 33       	cpi	r26, 0x3A	; 58
+    1346:	08 f0       	brcs	.+2      	; 0x134a <__utoa_common+0x20>
+    1348:	a9 5d       	subi	r26, 0xD9	; 217
+    134a:	a1 93       	st	Z+, r26
+    134c:	00 97       	sbiw	r24, 0x00	; 0
+    134e:	79 f7       	brne	.-34     	; 0x132e <__utoa_common+0x4>
+    1350:	b1 11       	cpse	r27, r1
+    1352:	b1 93       	st	Z+, r27
+    1354:	11 92       	st	Z+, r1
+    1356:	cb 01       	movw	r24, r22
+    1358:	0c 94 ae 09 	jmp	0x135c	; 0x135c <strrev>
+
+0000135c <strrev>:
+    135c:	dc 01       	movw	r26, r24
+    135e:	fc 01       	movw	r30, r24
+    1360:	67 2f       	mov	r22, r23
+    1362:	71 91       	ld	r23, Z+
+    1364:	77 23       	and	r23, r23
+    1366:	e1 f7       	brne	.-8      	; 0x1360 <strrev+0x4>
+    1368:	32 97       	sbiw	r30, 0x02	; 2
+    136a:	04 c0       	rjmp	.+8      	; 0x1374 <strrev+0x18>
+    136c:	7c 91       	ld	r23, X
+    136e:	6d 93       	st	X+, r22
+    1370:	70 83       	st	Z, r23
+    1372:	62 91       	ld	r22, -Z
+    1374:	ae 17       	cp	r26, r30
+    1376:	bf 07       	cpc	r27, r31
+    1378:	c8 f3       	brcs	.-14     	; 0x136c <strrev+0x10>
+    137a:	08 95       	ret
+
+0000137c <eeprom_read_byte>:
+    137c:	f9 99       	sbic	0x1f, 1	; 31
+    137e:	fe cf       	rjmp	.-4      	; 0x137c <eeprom_read_byte>
+    1380:	92 bd       	out	0x22, r25	; 34
+    1382:	81 bd       	out	0x21, r24	; 33
+    1384:	f8 9a       	sbi	0x1f, 0	; 31
+    1386:	99 27       	eor	r25, r25
+    1388:	80 b5       	in	r24, 0x20	; 32
     138a:	08 95       	ret
 
-0000138c <eeprom_write_word>:
-    138c:	0e 94 b8 09 	call	0x1370	; 0x1370 <eeprom_write_byte>
-    1390:	27 2f       	mov	r18, r23
-    1392:	0c 94 b9 09 	jmp	0x1372	; 0x1372 <eeprom_write_r18>
-
-00001396 <eeprom_read_block>:
-    1396:	dc 01       	movw	r26, r24
-    1398:	cb 01       	movw	r24, r22
-
-0000139a <eeprom_read_blraw>:
-    139a:	fc 01       	movw	r30, r24
-    139c:	f9 99       	sbic	0x1f, 1	; 31
-    139e:	fe cf       	rjmp	.-4      	; 0x139c <eeprom_read_blraw+0x2>
-    13a0:	06 c0       	rjmp	.+12     	; 0x13ae <eeprom_read_blraw+0x14>
-    13a2:	f2 bd       	out	0x22, r31	; 34
-    13a4:	e1 bd       	out	0x21, r30	; 33
-    13a6:	f8 9a       	sbi	0x1f, 0	; 31
-    13a8:	31 96       	adiw	r30, 0x01	; 1
-    13aa:	00 b4       	in	r0, 0x20	; 32
-    13ac:	0d 92       	st	X+, r0
-    13ae:	41 50       	subi	r20, 0x01	; 1
-    13b0:	50 40       	sbci	r21, 0x00	; 0
-    13b2:	b8 f7       	brcc	.-18     	; 0x13a2 <eeprom_read_blraw+0x8>
-    13b4:	08 95       	ret
-
-000013b6 <_exit>:
-    13b6:	f8 94       	cli
-
-000013b8 <__stop_program>:
-    13b8:	ff cf       	rjmp	.-2      	; 0x13b8 <__stop_program>
+0000138c <eeprom_read_word>:
+    138c:	a8 e1       	ldi	r26, 0x18	; 24
+    138e:	b0 e0       	ldi	r27, 0x00	; 0
+    1390:	42 e0       	ldi	r20, 0x02	; 2
+    1392:	50 e0       	ldi	r21, 0x00	; 0
+    1394:	0c 94 e1 09 	jmp	0x13c2	; 0x13c2 <eeprom_read_blraw>
+
+00001398 <eeprom_write_byte>:
+    1398:	26 2f       	mov	r18, r22
+
+0000139a <eeprom_write_r18>:
+    139a:	f9 99       	sbic	0x1f, 1	; 31
+    139c:	fe cf       	rjmp	.-4      	; 0x139a <eeprom_write_r18>
+    139e:	1f ba       	out	0x1f, r1	; 31
+    13a0:	92 bd       	out	0x22, r25	; 34
+    13a2:	81 bd       	out	0x21, r24	; 33
+    13a4:	20 bd       	out	0x20, r18	; 32
+    13a6:	0f b6       	in	r0, 0x3f	; 63
+    13a8:	f8 94       	cli
+    13aa:	fa 9a       	sbi	0x1f, 2	; 31
+    13ac:	f9 9a       	sbi	0x1f, 1	; 31
+    13ae:	0f be       	out	0x3f, r0	; 63
+    13b0:	01 96       	adiw	r24, 0x01	; 1
+    13b2:	08 95       	ret
+
+000013b4 <eeprom_write_word>:
+    13b4:	0e 94 cc 09 	call	0x1398	; 0x1398 <eeprom_write_byte>
+    13b8:	27 2f       	mov	r18, r23
+    13ba:	0c 94 cd 09 	jmp	0x139a	; 0x139a <eeprom_write_r18>
+
+000013be <eeprom_read_block>:
+    13be:	dc 01       	movw	r26, r24
+    13c0:	cb 01       	movw	r24, r22
+
+000013c2 <eeprom_read_blraw>:
+    13c2:	fc 01       	movw	r30, r24
+    13c4:	f9 99       	sbic	0x1f, 1	; 31
+    13c6:	fe cf       	rjmp	.-4      	; 0x13c4 <eeprom_read_blraw+0x2>
+    13c8:	06 c0       	rjmp	.+12     	; 0x13d6 <eeprom_read_blraw+0x14>
+    13ca:	f2 bd       	out	0x22, r31	; 34
+    13cc:	e1 bd       	out	0x21, r30	; 33
+    13ce:	f8 9a       	sbi	0x1f, 0	; 31
+    13d0:	31 96       	adiw	r30, 0x01	; 1
+    13d2:	00 b4       	in	r0, 0x20	; 32
+    13d4:	0d 92       	st	X+, r0
+    13d6:	41 50       	subi	r20, 0x01	; 1
+    13d8:	50 40       	sbci	r21, 0x00	; 0
+    13da:	b8 f7       	brcc	.-18     	; 0x13ca <eeprom_read_blraw+0x8>
+    13dc:	08 95       	ret
+
+000013de <_exit>:
+    13de:	f8 94       	cli
+
+000013e0 <__stop_program>:
+    13e0:	ff cf       	rjmp	.-2      	; 0x13e0 <__stop_program>
diff --git a/default/VFD_Sinus_AT328.map b/default/VFD_Sinus_AT328.map
index c7fa057e3c66dd7ce4be3b4a742a695b7c04eaa6..d41f3e7351708a15899faec3729e01a4c24cf09e 100644
--- a/default/VFD_Sinus_AT328.map
+++ b/default/VFD_Sinus_AT328.map
@@ -171,7 +171,7 @@ END GROUP
 .rela.plt
  *(.rela.plt)
 
-.text           0x0000000000000000     0x13ba
+.text           0x0000000000000000     0x13e2
  *(.vectors)
  .vectors       0x0000000000000000       0x68 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328.o
                 0x0000000000000000                __vectors
@@ -302,193 +302,193 @@ END GROUP
  .text          0x0000000000000e56        0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eerd_block.o)
                 0x0000000000000e56                . = ALIGN (0x2)
  *(.text.*)
- .text.startup  0x0000000000000e56      0x37e main.o
+ .text.startup  0x0000000000000e56      0x3a6 main.o
                 0x0000000000000e56                main
  .text.libgcc.mul
-                0x00000000000011d4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
+                0x00000000000011fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
  .text.libgcc.div
-                0x00000000000011d4       0x28 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
-                0x00000000000011d4                __udivmodhi4
- .text.libgcc   0x00000000000011fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
+                0x00000000000011fc       0x28 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
+                0x00000000000011fc                __udivmodhi4
+ .text.libgcc   0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
  .text.libgcc.prologue
-                0x00000000000011fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
+                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
  .text.libgcc.builtins
-                0x00000000000011fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
+                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
  .text.libgcc.fmul
-                0x00000000000011fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
+                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
  .text.libgcc.fixed
-                0x00000000000011fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
+                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
  .text.libgcc.mul
-                0x00000000000011fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
+                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
  .text.libgcc.div
-                0x00000000000011fc       0x28 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
-                0x00000000000011fc                __divmodhi4
-                0x00000000000011fc                _div
- .text.libgcc   0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
+                0x0000000000001224       0x28 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
+                0x0000000000001224                __divmodhi4
+                0x0000000000001224                _div
+ .text.libgcc   0x000000000000124c        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
  .text.libgcc.prologue
-                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
+                0x000000000000124c        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
  .text.libgcc.builtins
-                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
+                0x000000000000124c        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
  .text.libgcc.fmul
-                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
+                0x000000000000124c        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
  .text.libgcc.fixed
-                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
+                0x000000000000124c        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
  .text.libgcc.mul
-                0x0000000000001224        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
+                0x000000000000124c        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
  .text.libgcc.div
-                0x0000000000001224       0x44 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
-                0x0000000000001224                __udivmodsi4
- .text.libgcc   0x0000000000001268        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
+                0x000000000000124c       0x44 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
+                0x000000000000124c                __udivmodsi4
+ .text.libgcc   0x0000000000001290        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
  .text.libgcc.prologue
-                0x0000000000001268        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
+                0x0000000000001290        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
  .text.libgcc.builtins
-                0x0000000000001268        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
+                0x0000000000001290        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
  .text.libgcc.fmul
-                0x0000000000001268        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
+                0x0000000000001290        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
  .text.libgcc.fixed
-                0x0000000000001268        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
+                0x0000000000001290        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodsi4.o)
  .text.libgcc.mul
-                0x0000000000001268        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
+                0x0000000000001290        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
  .text.libgcc.div
-                0x0000000000001268       0x2e /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
-                0x0000000000001268                __divmodsi4
- .text.libgcc   0x0000000000001296        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
+                0x0000000000001290       0x2e /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
+                0x0000000000001290                __divmodsi4
+ .text.libgcc   0x00000000000012be        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
  .text.libgcc.prologue
-                0x0000000000001296        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
+                0x00000000000012be        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
  .text.libgcc.builtins
-                0x0000000000001296        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
+                0x00000000000012be        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
  .text.libgcc.fmul
-                0x0000000000001296        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
+                0x00000000000012be        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
  .text.libgcc.fixed
-                0x0000000000001296        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
+                0x00000000000012be        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodsi4.o)
  .text.libgcc.mul
-                0x0000000000001296        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
+                0x00000000000012be        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
  .text.libgcc.div
-                0x0000000000001296       0x10 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
-                0x0000000000001296                __negsi2
- .text.libgcc   0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
+                0x00000000000012be       0x10 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
+                0x00000000000012be                __negsi2
+ .text.libgcc   0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
  .text.libgcc.prologue
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
  .text.libgcc.builtins
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
  .text.libgcc.fmul
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
  .text.libgcc.fixed
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_negsi2.o)
  .text.libgcc.mul
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
  .text.libgcc.div
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
- .text.libgcc   0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
+ .text.libgcc   0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
  .text.libgcc.prologue
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
  .text.libgcc.builtins
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
  .text.libgcc.fmul
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
  .text.libgcc.fixed
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
  .text.libgcc.mul
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
  .text.libgcc.div
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
- .text.libgcc   0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc   0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
  .text.libgcc.prologue
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
  .text.libgcc.builtins
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
  .text.libgcc.fmul
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
  .text.libgcc.fixed
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
  .text.libgcc.mul
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
  .text.libgcc.div
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
- .text.libgcc   0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
+ .text.libgcc   0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
  .text.libgcc.prologue
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
  .text.libgcc.builtins
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
  .text.libgcc.fmul
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
  .text.libgcc.fixed
-                0x00000000000012a6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
+                0x00000000000012ce        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
  .text.libgcc.mul
-                0x00000000000012a6       0x1e /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
-                0x00000000000012a6                __umulhisi3
+                0x00000000000012ce       0x1e /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
+                0x00000000000012ce                __umulhisi3
  .text.libgcc.div
-                0x00000000000012c4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
- .text.libgcc   0x00000000000012c4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
+                0x00000000000012ec        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
+ .text.libgcc   0x00000000000012ec        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
  .text.libgcc.prologue
-                0x00000000000012c4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
+                0x00000000000012ec        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
  .text.libgcc.builtins
-                0x00000000000012c4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
+                0x00000000000012ec        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
  .text.libgcc.fmul
-                0x00000000000012c4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
+                0x00000000000012ec        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
  .text.libgcc.fixed
-                0x00000000000012c4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
+                0x00000000000012ec        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_umulhisi3.o)
  .text.libgcc.mul
-                0x00000000000012c4       0x10 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
-                0x00000000000012c4                __mulshisi3
-                0x00000000000012ca                __mulohisi3
+                0x00000000000012ec       0x10 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
+                0x00000000000012ec                __mulshisi3
+                0x00000000000012f2                __mulohisi3
  .text.libgcc.div
-                0x00000000000012d4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
- .text.libgcc   0x00000000000012d4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
+                0x00000000000012fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
+ .text.libgcc   0x00000000000012fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
  .text.libgcc.prologue
-                0x00000000000012d4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
+                0x00000000000012fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
  .text.libgcc.builtins
-                0x00000000000012d4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
+                0x00000000000012fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
  .text.libgcc.fmul
-                0x00000000000012d4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
+                0x00000000000012fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
  .text.libgcc.fixed
-                0x00000000000012d4        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
+                0x00000000000012fc        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_mulshisi3.o)
  .text.libgcc.mul
-                0x00000000000012d4       0x16 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
-                0x00000000000012d4                __muluhisi3
+                0x00000000000012fc       0x16 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
+                0x00000000000012fc                __muluhisi3
  .text.libgcc.div
-                0x00000000000012ea        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
- .text.libgcc   0x00000000000012ea        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
+                0x0000000000001312        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
+ .text.libgcc   0x0000000000001312        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
  .text.libgcc.prologue
-                0x00000000000012ea        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
+                0x0000000000001312        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
  .text.libgcc.builtins
-                0x00000000000012ea        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
+                0x0000000000001312        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
  .text.libgcc.fmul
-                0x00000000000012ea        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
+                0x0000000000001312        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
  .text.libgcc.fixed
-                0x00000000000012ea        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
+                0x0000000000001312        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_muluhisi3.o)
  .text.avr-libc
-                0x00000000000012ea       0x16 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
-                0x00000000000012ea                __itoa_ncheck
+                0x0000000000001312       0x16 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
+                0x0000000000001312                __itoa_ncheck
  .text.avr-libc
-                0x0000000000001300       0x34 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
-                0x0000000000001300                __utoa_ncheck
-                0x0000000000001302                __utoa_common
+                0x0000000000001328       0x34 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
+                0x0000000000001328                __utoa_ncheck
+                0x000000000000132a                __utoa_common
  .text.avr-libc
-                0x0000000000001334       0x20 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o)
-                0x0000000000001334                strrev
+                0x000000000000135c       0x20 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a(strrev.o)
+                0x000000000000135c                strrev
  .text.avr-libc
-                0x0000000000001354       0x10 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eerd_byte.o)
-                0x0000000000001354                eeprom_read_byte
+                0x000000000000137c       0x10 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eerd_byte.o)
+                0x000000000000137c                eeprom_read_byte
  .text.avr-libc
-                0x0000000000001364        0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eerd_word.o)
-                0x0000000000001364                eeprom_read_word
+                0x000000000000138c        0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eerd_word.o)
+                0x000000000000138c                eeprom_read_word
  .text.avr-libc
-                0x0000000000001370       0x1c /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eewr_byte.o)
-                0x0000000000001370                eeprom_write_byte
-                0x0000000000001372                eeprom_write_r18
+                0x0000000000001398       0x1c /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eewr_byte.o)
+                0x0000000000001398                eeprom_write_byte
+                0x000000000000139a                eeprom_write_r18
  .text.avr-libc
-                0x000000000000138c        0xa /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eewr_word.o)
-                0x000000000000138c                eeprom_write_word
+                0x00000000000013b4        0xa /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eewr_word.o)
+                0x00000000000013b4                eeprom_write_word
  .text.avr-libc
-                0x0000000000001396       0x20 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eerd_block.o)
-                0x0000000000001396                eeprom_read_block
-                0x000000000000139a                eeprom_read_blraw
-                0x00000000000013b6                . = ALIGN (0x2)
+                0x00000000000013be       0x20 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328.a(eerd_block.o)
+                0x00000000000013be                eeprom_read_block
+                0x00000000000013c2                eeprom_read_blraw
+                0x00000000000013de                . = ALIGN (0x2)
  *(.fini9)
- .fini9         0x00000000000013b6        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
-                0x00000000000013b6                exit
-                0x00000000000013b6                _exit
+ .fini9         0x00000000000013de        0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
+                0x00000000000013de                exit
+                0x00000000000013de                _exit
  *(.fini9)
  *(.fini8)
  *(.fini8)
@@ -507,11 +507,11 @@ END GROUP
  *(.fini1)
  *(.fini1)
  *(.fini0)
- .fini0         0x00000000000013b6        0x4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
+ .fini0         0x00000000000013de        0x4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
  *(.fini0)
-                0x00000000000013ba                _etext = .
+                0x00000000000013e2                _etext = .
 
-.data           0x0000000000800100       0x20 load address 0x00000000000013ba
+.data           0x0000000000800100       0x20 load address 0x00000000000013e2
                 0x0000000000800100                PROVIDE (__data_start, .)
  *(.data)
  .data          0x0000000000800100        0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328.o
@@ -587,8 +587,8 @@ END GROUP
                 0x000000000080013b                speedInput
                 0x000000000080013c                a
                 0x000000000080013d                PROVIDE (__bss_end, .)
-                0x00000000000013ba                __data_load_start = LOADADDR (.data)
-                0x00000000000013da                __data_load_end = (__data_load_start + SIZEOF (.data))
+                0x00000000000013e2                __data_load_start = LOADADDR (.data)
+                0x0000000000001402                __data_load_end = (__data_load_start + SIZEOF (.data))
 
 .noinit         0x000000000080013d        0x0
                 [!provide]                        PROVIDE (__noinit_start, .)
@@ -680,11 +680,11 @@ END GROUP
 .debug_pubnames
  *(.debug_pubnames)
 
-.debug_info     0x0000000000000000     0x1f6e
+.debug_info     0x0000000000000000     0x1f87
  *(.debug_info .gnu.linkonce.wi.*)
  .debug_info    0x0000000000000000      0x21d pid.o
- .debug_info    0x000000000000021d     0x179e main.o
- .debug_info    0x00000000000019bb      0x5b3 lcd.o
+ .debug_info    0x000000000000021d     0x17b7 main.o
+ .debug_info    0x00000000000019d4      0x5b3 lcd.o
 
 .debug_abbrev   0x0000000000000000      0x7bf
  *(.debug_abbrev)
@@ -692,11 +692,11 @@ END GROUP
  .debug_abbrev  0x00000000000000f7      0x451 main.o
  .debug_abbrev  0x0000000000000548      0x277 lcd.o
 
-.debug_line     0x0000000000000000      0xc8d
+.debug_line     0x0000000000000000      0xca1
  *(.debug_line .debug_line.* .debug_line_end)
  .debug_line    0x0000000000000000      0x114 pid.o
- .debug_line    0x0000000000000114      0x8b5 main.o
- .debug_line    0x00000000000009c9      0x2c4 lcd.o
+ .debug_line    0x0000000000000114      0x8c9 main.o
+ .debug_line    0x00000000000009dd      0x2c4 lcd.o
 
 .debug_frame    0x0000000000000000      0x3ec
  *(.debug_frame)
@@ -704,20 +704,20 @@ END GROUP
  .debug_frame   0x0000000000000070      0x230 main.o
  .debug_frame   0x00000000000002a0      0x14c lcd.o
 
-.debug_str      0x0000000000000000      0x781
+.debug_str      0x0000000000000000      0x7be
  *(.debug_str)
  .debug_str     0x0000000000000000      0x1d2 pid.o
                                         0x216 (size before relaxing)
- .debug_str     0x00000000000001d2      0x511 main.o
-                                        0x6db (size before relaxing)
- .debug_str     0x00000000000006e3       0x9e lcd.o
+ .debug_str     0x00000000000001d2      0x54e main.o
+                                        0x6ee (size before relaxing)
+ .debug_str     0x0000000000000720       0x9e lcd.o
                                         0x22f (size before relaxing)
 
-.debug_loc      0x0000000000000000     0x128f
+.debug_loc      0x0000000000000000     0x129a
  *(.debug_loc)
  .debug_loc     0x0000000000000000      0x397 pid.o
- .debug_loc     0x0000000000000397      0x9e7 main.o
- .debug_loc     0x0000000000000d7e      0x511 lcd.o
+ .debug_loc     0x0000000000000397      0x9f2 main.o
+ .debug_loc     0x0000000000000d89      0x511 lcd.o
 
 .debug_macinfo
  *(.debug_macinfo)
diff --git a/default/lcd.o b/default/lcd.o
index 7d84c7f0b781c7d9411474c9bf77c44eebdcebd5..79f27febbdfb97bdbca3e7f78e76d76e1a9caf2a 100644
Binary files a/default/lcd.o and b/default/lcd.o differ
diff --git a/default/main.o b/default/main.o
index 795ce93abd4fe043e0de9b7b9f265130c602f2a4..bd8560a1e180c7f8eb089f6854c47b4bf98d495a 100644
Binary files a/default/main.o and b/default/main.o differ
diff --git a/lcd.h b/lcd.h
index 373730bf7cfe6158f64d742c7efd1f7bb65cf683..755c680da9f0d3328b3ac823c116240e524eb300 100644
--- a/lcd.h
+++ b/lcd.h
@@ -95,8 +95,8 @@
 #define LCD_DATA3_PIN    3            /**< pin for 4bit data bit 3  */
 #define LCD_RS_PORT      LCD_CTRL_PORT     /**< port for RS line         */
 #define LCD_RS_PIN       4            /**< pin  for RS line         */
-#define LCD_RW_PORT      LCD_CTRL_PORT     /**< port for RW line         */
-#define LCD_RW_PIN       5            /**< pin  for RW line         */
+#define LCD_RW_PORT      PORTD        /**< port for RW line         */
+#define LCD_RW_PIN       4            /**< pin  for RW line         */
 #define LCD_E_PORT       LCD_CTRL_PORT     /**< port for Enable line     */
 #define LCD_E_PIN        0            /**< pin  for Enable line     */
 
diff --git a/main.c b/main.c
index 508be5953062506f161a19108a8853a1e69ead30..84d2cbd406be4ace11ebd002ef97c5ad2cb26984 100644
--- a/main.c
+++ b/main.c
@@ -185,12 +185,12 @@ static void PortsInit(void)
   PORTB &= ~(PWM_PATTERN_PORTB);
   PORTD &= ~(PWM_PATTERN_PORTD);
 // output enable is active low:
-  PORTD |= _BV(OUTPUT_ENABLE_PIN);
+  PORTB |= _BV(OUTPUT_ENABLE_PIN);
 
 // Set the inputs on Port D for the three buttons
   DDRD &= ~BUTTON_MASK;
 
-  DDRD |= _BV(OUTPUT_ENABLE_PIN);
+  DDRB |= _BV(OUTPUT_ENABLE_PIN);
 // Enable pull-up on input signals.
   PORTD |= _BV(DIRECTION_COMMAND_PIN) | _BV(EXTERNAL_CONTROL_PIN) | BUTTON_MASK ;
 
@@ -200,8 +200,8 @@ static void PortsInit(void)
 static void toggleOutputEnable(void)
 {
 OutputEnabled = !OutputEnabled;
-if (OutputEnabled) PORTD &= ~(_BV(OUTPUT_ENABLE_PIN));
-    else PORTD |= _BV(OUTPUT_ENABLE_PIN);
+if (OutputEnabled) PORTB &= ~(_BV(OUTPUT_ENABLE_PIN));
+    else PORTB |= _BV(OUTPUT_ENABLE_PIN);
 }
 
 
@@ -577,8 +577,8 @@ if (!fastFlags.externalControl){
 		switch (n) 
 		{
 // with external control first button is output enable/disable            
-//        case 1 : toggleOutputEnable();
-//             break;  
+        case 1 : toggleOutputEnable();
+             break;  
 // pressing black (1) and red (2) button simultaneously goes to sub menu
 		case 3 : execExtendedCommand();
 			 break;
diff --git a/vfd.h b/vfd.h
index d57ed319d9414360287b00abf4243e951b8959ca..fdde9cbb2b67a00cef92e6ce008942298c53bdb8 100644
--- a/vfd.h
+++ b/vfd.h
@@ -128,7 +128,7 @@
 
 //////add output enable for line driver instead:
 
-#define OUTPUT_ENABLE_PIN    PD4
+#define OUTPUT_ENABLE_PIN    PB5
 
 // button inputs
 #define BUTTON_PORT PIND