I think your assessment of the situation is very fair and I must admit that things have not run as smoothly as I thought they would. To correct Dan, I am officially still a student, but have been working on BrewPi full time for the past year. I have been postponing my graduation project for quite a while.
I planned for us to be much further with the software, but a couple of things took more time than expected. Among those things are:
While porting the software to the Spark platform we found bugs in the old software that needed to be fixed. We rewrote a big part of the OneWire communication classes to increase reliability and speed. This will be released in 0.2.8. Moving to the new platform also exposed weaknesses in how we handle serial communication.
At first I planned to start with a text based UI as in the mockup to be able to release quickly. We came back from that plan and decided to use eGUI to build a proper UI from the start which would enable us to use buttons coupled to touch screen support. This took a lot of our time. You got a glimpse of this with the hardware test screen and a non-touch UI showing beer temp, fridge temp, room temp, current state and timer will be in the next release.
The past 2 weeks I have also been working a lot on the update process: refactoring the programming script, the setting restore script and downloading releases straight form GitHub. I want updating BrewPi to be a single command, without you having to upload any files.
So to answer your question about it being a straight port: it turned out not be. Partly because we needed to refactor the old version, partly because we added new functionality (with the future in mind).
All that other stuff
We did not just release a new controller, we also released a new shop and a lot of new products. Then it turned out the that the shipping plugins were not working correctly, the invoice format was not good enough for customs, and so on… I also rented an extra room in our building and set up a new warehouse.
All these things are to run smoother in the future, but it took a lot more time than I anticipated.
Matthew and I both got sick with the flu, which delayed us about another week. Matthew also has a day job and is doing BrewPi development in his free time.
I know that our website is horribly out of date, but I have had higher priority things on my list.
I know that I am juggling too many balls. I am going to hire one or two students to help me out with the simple tasks that should not take up my time, like processing orders and assembling products/kits.
We were managing our sprints in Jira, but are going to try moving towards GitHub issues with ZenHub on top for our next sprint. This will make our road map and current activities public and will allow to community to help if they can.
I do realize that mashing has been the reason for a lot of people to buy our hardware. The main addition that is needed in the software for this is PWM support. PWM is needed to be able to not run the heating elements on full power. The first implementation for this will be fairly simple, but already better than any STC-1000 can do:
The HLT/Fridge temperature error will result in a PWM value by simple scaling it (configurable).
The beer PWM will get its value from the PID + scaling.
With these two new actuators, you can have a direct beer heater for fermentation or a coupled HLT+ mash, where the HLT temp is dynamically set by the mash PID.
This will be part of the next sprint.
Multiple control loops
To run multiple control algorithms at once (multiple fermentors, mash + fridge at once), much bigger changes are needed. Every bit of the controller, data logging and web UI should be flexibly configurable. We suddenly don’t have a chart with 3 lines, but have a configurable chart with any number of lines. This requires a new database and a new graphing framework. Our prime candidates are inFluxDB and Grafana.
We already started with the controller, but decided to get something working with the old framework first.
To summarize: I fully understand your frustration and I have been feeling frustrated myself.
There have been many tasks that I did not account for, but now we are finally hitting a point where we are not fixing old bugs and can focus on new functionality. Please hang in there. The hardware you bought is capable of all the things I promised and we are working as hard as we can to implement all features in software. We are going to release often, but needed to make sure the update process was smooth first and the foundation was sound.
I understand that most of the frustration is about not knowing what our progress is and that most of you guys just want better updates. With moving our development planning to GitHub, I hope we can offer that transparency. We will also have an easier to read road map on this community.
0.2.8: OneWire and serial stability updates, new controller UI (no touch), compiling for Arduino again
0.2.9: touch UI, preliminary mashing support (with control based on 2 sensors)