Patent ID: 7685072

Claim:
A software distribution system for a sewing machine, comprising: a server connected to a communication line; a terminal that transmits and receives various data to and from the server via the communication line; a storage medium attachable to the terminal and storing a sewing machine control program and medium identification data; and a sewing machine capable of transmitting and receiving data to and from the terminal and having a sewing machine controller that stores sewing machine identification data; the server including an authentication key data generator that generates authentication key data dedicated to the sewing machine identification data based on the medium identification data and the sewing machine identification data transmitted from the terminal only upon initial transmission of the medium identification data and the sewing machine identification data, and that stores the authentication key data in mapping with the medium identification data in an authentication key data storage, whereafter upon transmission of medium identification data identical with existing medium identification data and sewing machine identification data different from existing sewing machine identification data, retaining data stored in the authentication key data storage without update; the sewing machine controller including: a determiner that determines whether or not the sewing machine control program received from the terminal is free of charge based on version information of the sewing machine control program; a verifier that, upon receiving a determination result indicating that the sewing machine control program is not free of charge from the determiner, generates calculated identification data corresponding to the sewing machine identification data based on the authentication key data transmitted from the authentication key data storage of the server to the terminal and verifies the calculated identification data with the sewing machine identification data stored in the sewing machine controller; and an invoker that invokes the sewing machine control program loaded from the storage medium via the terminal when receiving a verification result from the verifier indicative of consistency between the calculated identification data and the sewing machine identification data.