{"push_id":1044235193,"size":1,"distinct_size":1,"ref":"refs/heads/energenie","head":"e50334efb627d413d564758e777c6feb5d49c838","before":"fb58e0eabde4bc10f281613a0019abb4226cd5cc","commits":[{"sha":"e50334efb627d413d564758e777c6feb5d49c838","author":{"email":"bfcdf3e6ca6cef45543bfbb57509c92aec9a39fb@waveform.org.uk","name":"Dave Jones"},"message":"Fix #140, fix #69, fix #185\n\nThis PR adds a software SPI implementation. Firstly this removes the\nabsolute necessity for spidev (#140), which also means when it's not\npresent things still work (effectively fixes #185), and also enables any\nfour pins to be used for SPI devices (which don't require the hardware\nimplementation).\n\nThe software implementation is simplistic but still supports clock\npolarity and phase, select-high, and variable bits per word. However it\ndoesn't allow precise speeds to be implemented because it just wibbles\nthe clock as fast as it can (which being pure Python isn't actually that\nfast).\n\nWe *might* want to add a warning if the software implementation is being\nused (at the moment it's tricky for end users to determine whether the\nhardware or software implementation is being used, unless the pins\nselected aren't the hardware pins).\n\nFinally, because this PR involves creating a framework for \"shared\"\ndevices (like SPI devices with multiple channels), it made sense to bung\nEnergenie (#69) in as wells as this is a really simple shared device.","distinct":true,"url":"https://api.github.com/repos/waveform80/gpio-zero/commits/e50334efb627d413d564758e777c6feb5d49c838"}]}