Advanced Customisation

Suggestions, Problems, Availability, etc. Everything is up for discussion.
Post Reply
Yorg
Posts: 16
Joined: Mon Jun 01, 2009 2:12 am
Bot?: No

Advanced Customisation

Post by Yorg »

Hi,
I'd like to consider the BCS as a base for a unit I am considering actually selling as part of a home brewing solution - equipment and optimised controller.
Currently, though, the BCS is intended for user configuration, and this means the interface is a little clunkier than I need and I think would be a bit confusing for the completely non-technical brewer. I want to customise the interface to optimise it to the particular equipment, and simplify it.
The wiki mentions advanced customisation, but the link is dead.
The MooCs project listed on the partners page seems to have stalled.
So is there anyone in the community that can tell me if this is a real or at this stage aspirational capability for the BCS?

Should I move on to Arduino or Raspberry PI?
JonW
Site Admin
Posts: 1726
Joined: Sun Jul 18, 2010 7:51 am
Bot?: No
Location: Huntington Beach, CA
Contact:

Re: Advanced Customisation

Post by JonW »

Yorg,

You don't mention exactly what kind of customization you want to do. Are you looking to do a custom web interface? A desktop app? A touchscreen controller?

Out of the box, the BCS can be fully customized utilizing the Open Interface API (all structures documented in the Wiki). You can read/write every aspect of the configuration and operation of the BCS. There are a few people who have started projects like the MooCS stuff, but that's not needed at all to do your own customization and really is only a wrapper to the existing API.

The file from the Wiki is simply a javascript file for adding enhancements to the HMI customizations. If you don't want the user to mess with the interface, then that may not be the way you want to go anyways. (The file has been re-loaded to the Wiki now.) There are several users on here that have done some cool stuff using the HMI builder interface options, but if you want to fully control the environment and insulate the user from changing stuff, then you probably want to use the Open Interface API with a complete custom GUI.

Tell us more about how you want your custom interface to work and maybe one of us will have some ideas for you.
User avatar
bbrally
Posts: 210
Joined: Sat Mar 27, 2010 3:59 am
Bot?: No
Location: Vancouver, BC
Contact:

Re: Advanced Customisation

Post by bbrally »

Graphical interfaces are easily done with the existing API. The Moocs would provide a higher level of access to the BCS, but it certainly isn't required.

Almost anything is possible with the will and the time.
brewery screenshot.png
brewery screenshot.png (187.28 KiB) Viewed 7156 times
JonW
Site Admin
Posts: 1726
Joined: Sun Jul 18, 2010 7:51 am
Bot?: No
Location: Huntington Beach, CA
Contact:

Re: Advanced Customisation

Post by JonW »

bbrally wrote:Almost anything is possible with the will and the time.
Very nice job! You definitely have a lot of time into that.
Yorg
Posts: 16
Joined: Mon Jun 01, 2009 2:12 am
Bot?: No

Re: Advanced Customisation

Post by Yorg »

Thanks John and BBrally for the replies.
That is very impressive B.
I am away from home and don't have a doc I'd like to post that would give a good indication of what I'm looking for - when I get back in a few days I will.
A couple of the issues I have are actually addressed in a manner in your mod bbrally, so that's very encouraging.

My project is to offer an alternative to the braumeister 'single vessel' rig. On the equipment side I am getting there. It's the control side I need to catch up on.
My main issue with the current interface is that it can be confusing to know where in the brew day one is. My target market needs something clear and simple. Simpler than current.
So for some examples of what I mean:
I have stitched together several BCS Processes in order to obtain the total number of states I need to run the total brew day process. It would be great if each process was not so limited in the number of states. One problem is web buttons stay on the screen during a whole process, and can be irrelevant to the actual state currently active. This can be confusing. Also confusing, once a process is over and spawns another process, the final state of the expired process remains on the screen. If I come back from making a cup of coffee I could be completely at sea knowing where the brew day is at - with irrelevant buttons on the screen, and an expired state that doesn't readily indicate which state is active.
This problem is due to the 'artificial' break up of the total actual brew-day process over several BCS "Processes".
In my customisation, I would like to show a series (rows) of states, with the active state highlighted, and web buttons that are relevant to that state be obviously associated - either by being on the same row, or by irrelevant buttons not appearing at all, or by some highlighting / colouring of relevant buttons - in any case, the best do-able solution that the underlying hardware can support.

My problem is that I need someone who has the skills I don't to advise on what is do-able and actually perform the customisation.
I have considered going to one of those freelancer sites -I am willing to pay for the customisation - but I'm not sure what the skills are that I am looking for.
What skills would the person I need have?
How would I put them together in a kind of job spec? I am betting that they don't need to be BCS experts as such, and with the relevant skills and some familiarisation could go for it.
User avatar
bbrally
Posts: 210
Joined: Sat Mar 27, 2010 3:59 am
Bot?: No
Location: Vancouver, BC
Contact:

Re: Advanced Customisation

Post by bbrally »

All of your desires are doable. Its just time and experience (and this just requires time), or if you're getting someone else to do the programming, money.

No BCS expertness would be required. When I started I didn't know what an API was or how to even conect the BCS to the router let alone get a program to talk to it. But I had time and desire.

I originaly started mine as just a graphical representation of what was programmed in the BCS. Then one thing led to another until I had finally written a complete stand alone product to do things that the BCS wasn't designed to do through it's internal program. My software now only queries the BCS for temperatures and to confirm output states. My program does all of the tracking and controlling of timers, temps, outputs, states.

I carried on with the original design of 8 process with 8 states. But I could have just as easily had only one process with a thousand states or no input buttons with the option for one, two, three... or.... You get the idea.

The design can be completely up to you, whatever you could dream.

As for a job spec. Maybe there's someone on here that programs, or deals with programmers for a living that could get you started. Or do what I do, dive in, ask lots of questions from different people, on different forums, with skills you're interested in learning something about (which you are now doing), and never believe something isn't possible until you've proved it for youself.
Yorg
Posts: 16
Joined: Mon Jun 01, 2009 2:12 am
Bot?: No

Re: Advanced Customisation

Post by Yorg »

OK. Very interesting.
Well, I have some money to devote to it.
I don't have the time for the learning curve.

But what kind of programming skills you didn't mention what skills you had to deploy?
It seems there are a few specific domains, so am I looking for C or php, html5 - the word 'programming is a bit general?
I'm looking for a programmer with skills in X. What's "X"?

Cheers.
User avatar
bbrally
Posts: 210
Joined: Sat Mar 27, 2010 3:59 am
Bot?: No
Location: Vancouver, BC
Contact:

Re: Advanced Customisation

Post by bbrally »

I think the type of interface you are interested in will influence the language you program in. Although probably all langages could produce anything you desire, some will be able to do it with less work.

Mine has a fair bit of animation, so I used what seemed like the obvious choice to me after a ten minute google search.

The programming for the logic and organization was pretty straight forward and I would think that any programmer could do this in any language without dificulties (If I could do this in my spare time with no experience, someone who does this for a living should have no problem). An interface may be different story depending on the level of complexity.

I only have the bare minimum of experience with languages, but C++ seems to be the language of choice although this is also a more involved language that requires more work/knowledge. An aquantance who is a C++ programmer told me that my interface would have been a tremendous amount of work to write in C++.

I wrote mine in actionscipt for the flash platform. With Adobe air I was able to port that to my tablet as well as my computers (Mac and PC). I spent weeks learning, but today I could write the animations in day or two. This may not be the best language for long term use as it seems to be falling out of favour. But it was easy to write in and did everything I could ask.

Html5/Javacsript would have possibly been a more preferred option due to the fact that every computer/phone/tablet has a browser on it, but same origin policies may give you grief. I've played with Adobe edge and it allows for easily created animations in html5.

I would guess the thing to do is write up a very short explaination of what you want the program to do and look like and then contact some programmers. If they can't do it, or they express reservations, they could probably direct you to someone who would be more suited.
User avatar
cscade
Posts: 49
Joined: Wed Sep 16, 2009 1:54 pm
Bot?: No

Re: Advanced Customisation

Post by cscade »

JonW and bbrally have both done some really neat customization stuff, and from different approaches too. I echo what they have said about it being possible to do pretty much anything you want. The device is not the limitation, your imagination and design skills are.

Like JonW mentioned above, projects like MooCS (I am the author) are abstractions, or wrappers, for the native device APIs. They are not required at all, they merely aim to do some of the hard work of translation and communication for you so you can concentrate on interface design. They're just tools - you can certainly build your own.

Your project will require a completely custom UI, so you can at least assume you will need some sort of additional hardware between the BCS and the user, since the BCS interface is more or less fixed (interface customization is possible, but your goals are to hide the complexity from the user completely, not just change how it looks). My opinion would be that some sort of HTML-driven interface would be your most cost effective route to your goal. I think the BCS is a great choice for the control layer, so you're off to a good start!
Post Reply