The new firmware is available on my GitHub page here.
I rewrote the code for plotting graphs on the TFT display to make it easier to add more or different sensors and it will be easier to reuse in other projects.
The next step will decided on the final hardware components and designing a circuit board. I want to try and create a finished "product" with the unused pins broken out for possible future expansions to the system.
Version one of the swimming pool controller was always intended to be just a proof of concept and to be replaced with a more advanced firmware once we knew what needed improving.
First of all, the original system worked worked really well. The main functionality was that of reading temperature sensors and decide whether the pump was allowed to run and if a specific valve needed to be open or closed. Nothing to complex there. The main focus was on the electronics and collecting data for a future replacement.
So what improvements will be made?
Graphical User Interface
The original had a basic 4 x 16 character display showing only the most important information. It will be replaced by a 320 x 240 color TFT display. To be able to work with so many pixels the microprocessor I will be using will be a Teensy 3.0. The display will be used for the following:
The previous system only provided error messages. Now a menu and a communications interface will provide the means of changing system settings and changing the between views on the display. There are two ways you can communicate with the system:
General Software Changes
To make a stable and more versatile system the system will rely heavily on error handling when a sensor fails. When a sensor fails the system should go to a "safe" state and enable the buzzer for an audio feedback that the system needs to be checked. The menu provides a means to override the system in case maintenance to swimming pool filtration system is required.
There will be a few little hardware changes. Some of these are part of future proofing the design for possible upgrades.
My student license for Solidworks expired and for the time being I will be using SketchUp for designing some models for 3D printing. By default SketchUp isn't very useful for 3D printing, But by installing two extensions we will be able to output 'solid' STL's.
Solid Inspector² is an extension that will analyse your model, point out possible errors and give you the option to automatically repair the model for you. In SketchUp it is very easy to miss these errors if you analyse the model manually. You can download Solid Inspector² here.
By default SketchUp doesn't provide support for the import and export of .STL files. Support is added by installing SketchUp STL which you can download here.
I start SketchUp and use the template "3D Printing - Millimeters". When you finished designing your model, select the whole model, right click and click "Make Component". Give it a sensible name and click "Create". While your component is selected (blue box around it) click the Solid Inspector² to analyse it for any errors. Resolve errors if you encounter them. otherwise go File->Export STL. Enable "Export selected geometry only.", Export unit: Millimeters, File format: Binary and click "export".
Choose a location to save your STL.
Before printing I tend do a "print preview" with my slicer and look at all the layers if I can spot any funny travel moves that shouldn't be there. If there are you will have to go back to your SketchUp model and manually check what might be causing it. Remove all unnecessary lines form your model. Try View->Face Style->Wireframe to see if you have any lines within your model that you can get rid off.
Unfortunately they are not responding to my email and message to remove it from their website. My license clearly states non commercial and on the website that sells these there is not a single reference to the original source or attribution.
George Timmermans, Research Toolmaker, Software Engineer and Tinkerer