 #define buttonSave 5
 // Buzzer
 #define buzzer 6
+
 // pins for DIP switch
-#define dip_ch0 A0
-#define dip_ch1 A1
-#define dip_ch2 A2
-#define dip_band0 A3
-#define dip_band1 A4
-#define dip_enable A5
-
-// genlock vsync input
-#define vsync_in 13
-#define hsync_in 8
+//#define USE_DIP
+#ifdef USE_DIP
+    #define dip_ch0 A0
+    #define dip_ch1 A1
+    #define dip_ch2 A2
+    #define dip_band0 A3
+    #define dip_band1 A4
+    #define dip_enable 0
+#endif
+
 // key debounce delay in ms
 // NOTE: good values are in the range of 100-200ms
 // shorter values will make it more reactive, but may lead to double trigger

    {
        state=STATE_SWITCH;
    }
    /***********************/
    /*     Save buttom     */
    /***********************/
    // hardware save buttom support (if no display is used)
    if(digitalRead(buttonSave) == LOW)
    {
        //state=STATE_SAVE;
        // DEBUG DEBUG
        TV.video_clock(CLOCK_EXTERN);
    }
    else
    {
        TV.video_clock(CLOCK_INTERN);
    }
    /***************************************/
    /*   Draw screen if mode has changed   */

                    TV.draw_rect(8,3+3*MENU_Y_SIZE,100,12,  WHITE, INVERT);
                    state=STATE_MANUAL;
                break;
                case 3: // DIP mode or diversity
                    TV.draw_rect(8,3+4*MENU_Y_SIZE,100,12,  WHITE, INVERT);
#ifdef USE_DIVERSITY
                    state=STATE_DIVERSITY;
#else
                    state=STATE_SWITCH;
                    last_dip_channel=255; // force update
#endif
                break;
                case 4: // Save settings
                    TV.draw_rect(8,3+5*MENU_Y_SIZE,100,12,  WHITE, INVERT);
                    state=STATE_SAVE;
                break;
            } // end switch

            while(digitalRead(buttonMode) == LOW)
            {
