By reading the Arduino's implementation of SS if you don't set SS to output and LOW the hardware can get stuck in slave mode and the firmware will halt waiting for commands from the master device. SS is like the CS pin for the AVR boards which can change it from a master device into a slave, I have to assume it should not be used. I also assume certain setups may have enough inductance in the traces to set this SS input pin high on startup causing firmware to halt when activating SPI commands. This is what I had experienced in the past and adding pinMode(SS, OUTPUT); digitalWrite(SS, LOW); to the beginning of Printer::Setup(); allowed the firmware to start. Setting the other two pins (MOSI,SCK) allowed SPI to function. As mentioned SD_SUPPORT does this but not everyone uses SD support.
Comments