The key class here is stateMachineClass. By using it, you can build state machines (finite state automata). It makes use of nealCoverClass and nealParam to support working on nest and spinnaker. My system runs on nest 2.14.0 and spinnaker 3.0.0. PyNN is 0.9.2, and it runs in ubuntu 14.04. I suspect it runs in other versions, but I've checked these two triplets. If you want to make your own state machine, it's wise to have a look at one of the tests, e.g. testFSA.py, then go from there. State are represented by sets of neurons (CAs). In this system that's 10 neurons, with 8 being excitatory and 2 inhibitory. If you turn the neurons the right way, each of the 8 excitatory neurons fires every 5ms. It's pretty solid if you use the stateTurnsOnState, stateTurnsOffState, and stateHalfTurnsOnState systems and only keep one state on. You can turn stuff on with spike sources. You can use the other methods, and they're all tested. You can however use these to develop systems that have multiple states active, and it becomes hard to follow, so be careful with these methods. The full tarball includes test scripts runNestTests.sh and runSpinntests.sh, the test python files and the correct spike trains. If the test script runs in your system, you should have the full system. Note if you just want to run in nest, you don't need a spinnaker board. The system should then easily also run in spinnaker. If you want to switch, you should be able to change the simulator variable in nealParams.py. Also note that testBug2.py shows a bug in spinnaker. A state is inhibited and that leads to it activating.