Reprogrammable modular imaging device comprising: a control module having a processor; at least one input module (2200; 2300; 2400) having a processor (2242; 2342; 2442) and connectable to said control module; a camera (2206; 4000) connectable to the at least one input module (2200; 2300; 2400) for transmitting raw image data to the at least one input module (2200; 2300; 2400); said at least one input module (2200; 2300; 2400) processing said raw image data to generate processed image data for transmission to said control module; said control module receiving said processed image data and formatting said processed image data for display; and characterised in that said modular imaging device further comprises: a program received by said control module as inputted software to reprogram both the processor (2242; 2342; 2442) of said at least one input module (2200; 2300; 2400) and the processor of said control module, wherein a compatibility check compares a current software/hardware of the control module with the inputted software to determine if the inputted software will be compatible, and if the result of the compatibility check is "Yes", at least one module is reprogrammed to which the inputted software pertains to, and if the result of the compatibility check is "Maybe", the control module displays the result of the compatibility check so that the user may initiate a command to reprogram the module despite the "Maybe" result. a control module having a processor; at least one input module (2200; 2300; 2400) having a processor (2242; 2342; 2442) and connectable to said control module; a camera (2206; 4000) connectable to the at least one input module (2200; 2300; 2400) for transmitting raw image data to the at least one input module (2200; 2300; 2400); said at least one input module (2200; 2300; 2400) processing said raw image data to generate processed image data for transmission to said control module; said control module receiving said processed image data and formatting said processed image data for display; and characterised in that said modular imaging device further comprises: a program received by said control module as inputted software to reprogram both the processor (2242; 2342; 2442) of said at least one input module (2200; 2300; 2400) and the processor of said control module, wherein a compatibility check compares a current software/hardware of the control module with the inputted software to determine if the inputted software will be compatible, and if the result of the compatibility check is "Yes", at least one module is reprogrammed to which the inputted software pertains to, and if the result of the compatibility check is "Maybe", the control module displays the result of the compatibility check so that the user may initiate a command to reprogram the module despite the "Maybe" result. a program received by said control module as inputted software to reprogram both the processor (2242; 2342; 2442) of said at least one input module (2200; 2300; 2400) and the processor of said control module, wherein a compatibility check compares a current software/hardware of the control module with the inputted software to determine if the inputted software will be compatible, and if the result of the compatibility check is "Yes", at least one module is reprogrammed to which the inputted software pertains to, and if the result of the compatibility check is "Maybe", the control module displays the result of the compatibility check so that the user may initiate a command to reprogram the module despite the "Maybe" result.