somachine programming guide