Tag: Curves

  • Curves – Infinite Control

    Curves – Infinite Control

    Looking for a visual way to record and display variables that change over the course of a roast? Curves are your answer. Control curves and Reading curves offer a graphical way to record, view, and compare any type of numerical data.

    Let’s face it – most of us roasters are tweakers by nature. We fiddle and adjust until we’ve honed in on the perfect balance of all the variables that let us consistently attain what is, to our taste buds, perfection in the cup. Curves are your means to that end. A visual way to record any variable that changes over the course of a roast.

    Temperature is the most obvious of these variables – and the one that most home roasters are concerned with. Professional roasters may have others to contend with. Whatever you want to track, curves can accommodate, and are designed to be extremely flexible and easy to modify.

    How do they work?

    Curves contain time-stamped nodes, or setpoints, for values as they change over the course of a roast. The roasting window displays each curve inside the roasting timeline as a colored line graph.

    Each roasting curve you create can be either a “Control” or “Reading” curve. Both operate similarly in Roastmaster, but are very different in what they actually represent.

    Control Curves

    Control curves represent exact values that are constant between changes, and graph as stair-stepped lines. These usually represent a control on your roaster, like gas flow, air flow or drum speed.

    Reading Curves

    Reading curves represent gradually changing temperatures, and graph as a smooth curve. These usually represent a reading from a measuring instrument, like a thermocouple or pressure gauge.

    How Many Curves Can I Have on a Roast or Profile

    You can have as many curves per roast as you wish. Should you need to track two separate temperature readings, along with heat and airflow, Roastmaster can accommodate. If you need to track each of the three burners on your tricked-out gas grill separately, go right ahead.

    How do I create a curve?

    In the main roast console, tap the curve button next to the graph to create a new Data Curve in the roast.

    Simply tap the blue button near the roasting gauge in the roasting console to create a new curve in a roast–the new curve screen will appear. If you want to track temperature, set it to “Reading”, if you want to track a machine control (like heat, fan or gas) set it to “Control”, and enter the maximum value of the control on the roaster. e.g. If you are tracking Amps, and the amp control on the roaster ranges from 1 to 10, set the maximum value in Roastmaster to 10. Tap “Save” to dismiss the curve screen.

    You can define as many curves as you wish per roast. For instance, you may want to create 1 control curve for the heat setting, 1 control curve for the fan setting, and 1 reading curve for the bean mass temp.

    As you roast, simply tap the digital curve readout to enter a value into the currently selected curve. It will appear time-stamped to the current time on the roast.

    To select a curve, tap the roasting graph to select the next curve in your list of defined curves, advancing through the list with each successive tap. When you reach the end of the list, the selection will be empty, allowing easier comparison of the curves in your roast. Tapping the graph again will start over, selecting the first curve in the list.

    The LED readout displays the value of the selected curve at the current time in the roast (in the curve’s color), or the value of a node (in white) if an individual node is selected. You can select individual nodes, either toward the left or the right, by swiping in that direction on the roasting graph while a curve is selected. If a node is selected, altering the LED readout will change the value of the selected node. Once you’ve changed the value of a selected node, the selection will be cleared so you are ready to enter a new time-stamped node when the value changes on your roaster.

    Can curves be defined for repeated use?

    Absolutely! Three different objects can store curves in Roastmaster: profiles, programs and roasts. Curves can be added directly to a roast and modified while roasting, or be inherited by a roast from the profile and/or program that the roast is using to be used as guides for target temperatures, or machine settings.

    A roast makes no distinction where a curve comes from. The roasting console always displays the sum of all curves that reside in these three locations. So, you can create any number of profiles or programs for your roaster, each containing your favorite curves. When you assign one of these to a roast, its curves will be assigned as well.

    Profiles and Programs are designed to store existing, pre-configured curves as a reference in future roasts. For these situations, Roastmaster also provides a snapshot feature for Profiles and Programs, allowing you to alter curve data slightly during a roast as a means of experimentation, while keeping the master Profile or Program intact.

    If, however, you want to record new data to a curve during a roast you should create a new curve within the roast: control curves for machine settings, and reading curves for temperature readings. These can later be copied and pasted into a Profile or Program as a reference for future roasts.

    The end result of using a profile or program with pre-configured curves, is an easy way to store digital “recipes” for achieving constant roast results from batch to batch. When you load a profile or program in a roast, you’ll have its curves displayed in the graph. From there, just create the curves you want to use to capture new data inside the roast, and record the values throughout the roast.

    Incorporating Curve Templates into a Profile

    You can define “Curve Templates” within a profile or program to speed your workflow. Whenever you roast with a profile or program containing curve templates, new blank copies of those curves templates will be created in that roast for the purpose of capturing data.

    So, when defining profiles and programs, the “Curves” section should contain the pre-configured curves, with data you want to match on new roasts, and the “Curve Templates” section should contain templates that will be duplicated in new roasts for the purpose of capturing data in the new roast.

    Can inherited curves be edited without altering the original profile or program?

    Yes. As you roast, you may want to experiment and alter an inherited curve. Roastmaster will create a snapshot of the profile or program, and changes will be made to the snapshot instead of the master. This allows you complete freedom with curves, so tweak all you want.

    Snapshots always know what master they were created from. When the roasting console polls your past roasts to display data, and you have the profile and/or program selectors enabled, both snapshots and masters are considered a match regardless of whether or not their curves are the same as your current curves. For this reason, we advise always having the curves selector button enabled – this will check all curves inside a roast, profile or program against those in your current roast, profile or program (respectively) to ensure that matches are only made with roasts whose curve structures, and their corresponding nodes, are similar to the current structure.

    Manual Editing

    Curves can also be edited with the standard iPhone table view like other Roastmaster variables. Tap on any curve in a table view (or the blue disclosure button if not in edit mode) to show the curve details view. You can change any of the nodes’ values or timestamps, as well as the name, notes, rating, and even display color. Custom colors make it easier to remember which curves are which.

    Copying and Pasting

    Curves can be copied to a dedicated clipboard by tapping the action button at the top of a curve details screen, then selecting “Copy”. You can paste copied curves into a program or profile via the action button at the top of their details screen, or a roast by tapping the middle button in the curve editing wheel.

  • Using Behmor 1600 Curves

    Using Behmor 1600 Curves

    Roastmaster provides the ability to create curves that match those on the Behmor® 1600 roaster. Behmor curves are display in the roasting graph just like standard curves, can be copied and pasted to profiles and programs, and can be time-shifted using the same algorithms the Behmor 1600 uses when performing time-shifts on the roaster’s console.

    The 1600 is unique in the way that it handles its internal roasting curves. They are calculated on-the-fly, based on 3 things:

    1. The Profile (the shape of the curve)
    2. The Program (the length of the roast calculated as a factor of the weight setting)
    3. The Weight setting (higher weight settings yield greater Program times).

    The 1600 allows some degree of customization based on the time shifts you apply to a curve. Time shifts you enter before a roast starts adjust every leg of the calculated heat curve evenly, adjusting each leg in proportion to fit the new time. Time shifts you apply after the roast begins affect only the final leg of the roast.

    How do I use them?

    You can create Behmor curves on the fly the same way you create regular curves in a roast as needed, or you can have them created automatically in roasts by turning the “Auto Behmor Curves” preference on in the preference settings. Then, whenever you choose an appropriate Profile, Program and Custom “Weight” Setting that is named in a way Roastmaster can identify, it will create the necessary curve automatically.

    Manual Behmor Curves

    The only thing you need to do is make sure the roaster entity in Roastmaster that represents your 1600 contains the string “Behmor” in the manufacturing field. Once you tag a roaster in a roast that meets this criterion, the “Create Behmor Curve…” option will be displayed when you tap the dark blue curve button on the roasting console.

    Automatic Behmor Curves

    Starting in Roastmaster iOS 7, you can simply select “Behmor 1600” in the add roaster setup assistant that appears when adding a new Roaster. Roastmaster will automatically create a Behmor roaster pre-configured for automatic Behmor curves, as well as enable the “Auto Behmor Curves” preference setting.

    First, verify that the “Auto Behmor Curves” preference setting in the Utilities section is turned on. Then, whenever you roast, you’ll need to choose the appropriately named Roaster for your roast, followed by one of its Profile, Program and Custom Weight Settings. These three entities are defined in the Roaster definition screen, and must all be present and chosen in a roast to trigger the creation of an automatic Behmor curve.

    To get started using automatic Behmor curves…

    1. Navigate to the Roaster section of the Utilities screen. Create a new roaster, and set the “Manufacturer” field to “Behmor”, and the model field to “1600″
    2. Within that roaster, create 5 Profiles, called “P1″, “P2″, “P3″, “P4″ and “P5″
    3. Create 4 Programs, called “A”, “B”, “C”, and “D”
    4. Create a Custom Setting Type called “Weight”, and within that Custom Setting Type, create 3 Custom Settings named “.25″ (or “1/4″), “.5″ (or “1/2″) or “1″.
    5. Save the Roaster, and you’re ready to roast.

    Or, simply import this Roaster definition on an iOS device to import directly into Roastmaster.

    In a new roast, simply choose that Roaster, and then the appropriate Profile, Program and Custom “Weight” Setting that correspond to the settings you will use on the Behmor itself. Roastmaster will reward you by automatically creating the necessary Behmor 1600 curve.

    Note: for any of the string patterns listed, the name must either match that string, or begin with that string followed by a space – e.g. a Profile titled either P1″ or “P1 Behmor Profile” would both be considered a positive match.

    How do they work?

    Once you’ve created a 1600 curve, and saved it to the current roast, selecting that curve in the graph will turn the new graph scale buttons (the “+” and “-” buttons) into time shift buttons. Tapping these buttons will apply the same logic to the curve that the Behmor 1600 applies to its internal curves, with respect to whether or not the roast is currently in progress. So, for every time shift you enter on the appliance, apply the same time shift to the selected Behmor 1600 curve in Roastmaster.

    If you need to look up the Behmor 1600 information contained in a 1600 curve, just go to the details screen of that curve. Swipe to the notes section – it will report the settings used to create the curve, as well as any time shifts you’ve applied to it – both before, and during, the roast.

    A few words about the design of Behmor 1600 curves in Roastmaster.

    Behmor curves are “opt-in”. Many 1600 users I’ve spoken with don’t care to track curves. They are quite happy roasting with the default settings, and not experimenting with time shifts. That, coupled with the fact that it is but one of the many roasters that folks are using, led me to design them to function modularly – the same way all other curves in Roastmaster work. In other words, a Behmor curve has no relationship to the details of the roast that contains it. The curve doesn’t care if you’ve tagged P1 in the roast – all it cares about is the setting you entered when you created the curve itself.

    Why? Well, Roastmaster is complex enough already, and at the end of the day simpler is better. If a Behmor 1600 curve were intrinsically linked with the profile/program data of the current roast, then (aside from making the interface more confusing) it would not be a viable curve outside of the context of a roast. Having a modular design gives you the freedom inherent in all curves, and will afford you the option to create custom Profiles for the 1600, based on curves you’ve tried and had success with.

    For instance, while testing the Behmor curves functionality, I happened upon a curve combination of P4/D that turns Central American beans into wonderful SO espresso! Go figure – surprised me too. The combination of the long roast time, and P4 heat ramp is a real winner.

    In future roasts where I want to target this same P4/D curve, I can record the Behmor details the standard way, and rely on the graph selector strip to find similar roasts for me, using the profile, program and curve buttons. In this scenario, the Behmor curves of previous roasts would be visible in the graph behind any current curves. I could create a new Behmor curve for each roast, and time shift to match the curves from the past roast(s) shown in the graph.

    I could, alternatively, copy and paste that P4/D curve into a new profile called “Central SO” that will sit along with the standard P1 – 5 default profiles, and tag only “Central SO” in the roast, ignoring the weight and program settings if I choose. In this scenario, every new roast with “Central SO” would automatically inherit that curve, and I could just look up the profile, program and time shift data in the curves detail screen, and set the Behmor console accordingly, ignoring all of the other custom Behmor settings. This would make roasting a bit quicker for often-used settings, as I wouldn’t have to do anything except tag the “Central SO” profile.

    I’ve learned a lot about this wonderful little (big) roaster while coding and testing 1600 curves. I hope it sheds a lot of light and helps you hone in on some winning combinations like it did for me.

  • Introducing the ThermoTooth 3000!

    Introducing the ThermoTooth 3000!

    Here it is – what I’ve affectionately dubbed the ThermoTooth 3000 – a fully wireless, dual channel, K style thermocouple prototype. She had her first successful Bluetooth session with my Mac tonight, and even with her limited code, she’s quite a smart gal! Over a simple wireless serial connection via terminal, I am able to select which thermocouple to monitor, and trigger individual Celsius or Fahrenheit readings, or both. No special drivers – just a Bluetooth serial connection.

    For the geeks like me, she’s built on an Arduino Uno prototyping controller board. Stacked on top of that is an XBee shield, providing the networking connectivity beyond the basic USB already present on the UNO. The XBee shield currently houses a Seeed Studio Bluetooth Bee, which provides the Bluetooth connection layer. The two K-style thermocouples connect to the Uno via two Max6675 chips, each providing cold-junction compensation and digital conversion of the thermocouple voltages for its independent channel. The sheer amount of electronics here is definitely overkill – I’m sure the cumulative brains of this could drive a car, but that’s how prototyping works.

    First off – it’s not meant for live production. I built it in the hopes I could pair it with an iOS device, and negotiate a wireless serial connection via Bluetooth. I know the device functions well, but the external connectivity of iOS itself still holds unknowns for me. The XBee shield offers the advantage of being able to swap a regular wireless network interface for the Bluetooth module in case the Bluetooth method is unsuccessful.

    Hopefully, a more permanent solution is on the way. I’ve been contacted by a manufacturer who is currently developing a Bluetooth thermocouple they plan to bring to market this fall. Naturally, this is great news for a lot of us looking for automated readings. They have not discussed the expected price, but the product itself sounds great! The manufacturer has agreed to sending me a prototype for evaluation once the release date gets closer, but in the mean time – I needed something to develop with now.

    This is why I built the TT3000. The majority of the code involved to implement thermocouple support will likely be designing the Roastmaster interfaces and its internal data structures, and setting up the communications framework to be used between roasting curves and wireless devices in general. The Bluetooth serial protocol has seemed quite easy to work with while prototyping the TT3000, so I’m hoping that this venture will be successful, and that adding support for the new product (as well as any others that may crop up), will be fairly easy to add ONCE I get support for wireless thermocouples in general built into Roastmaster.

    I’ll post back here with updates as development progresses. This isn’t at the absolute top of my development list – there are several feature requests/tweaks I want to finish up first, but I plan to be working on this until I find a workable solution.

    As always – if you have any input – please let me know.

    Cheers, Danny

  • Version 2.1

    Version 2.1

    I’m sitting at the kitchen counter, roasting some Sulawesi Toraja AA, thinking it’s a really good time to introduce version 2.1. Yes – you heard correctly – finally! I’ve been in contact with many of you about things you’d like to see, many of you have been very, very patiently waiting. Thank you for your patience – I believe you will be vary happy with this update. I’ve uploaded it to iTunes – hopefully will be less than a week for the approval process.

    So what’s new? Well, most probably most importantly is an official “Reading” mode for curves. Each curve can now be set to function as a “Control” or “Reading” curve. If in reading mode, you can choose between Celsius or Fahrenheit systems. Reading curves graph as traditional point-to-point graphs (diagonal lines, connect-the-dot style). They are also excluded from past roast matching.

    The second most requested feature is a larger graph. Well, hold onto your britches – this update has a full-screen graph. It responds to device orientation, displaying either landscape or portrait, and can be pinch-zoomed, scrolled, panned, etc. You can even increase or decrease the resolution of the x-axis to show more detail. It is interactive – you can tap individual nodes to select them and change their value (assuming they do not belong to a past roast, or master profile or program), or enter a new value with a curve selected to record a new time-stamped node. At the moment there are no roasting controls in the full screen graph window. I will be adding those, but for now this is a great start. Any type of control I add will be in the form of a pop-up console. I don’t want to devote any screen real estate to extraneous buttons. I want to keep it all for the graph.

    I fixed a few bugs with data entry that cropped up in iOS 4.x, after Apple changed some things internally related to the slot-machine style picker views, and added support for larger inventory amounts in the database.

    Oh yes, this one’s fairly cool… You can now publish a roast to your Facebook wall. That’s one of those things I’ve been wanting to get done for a while now. I you like this, please let me know and I’ll extend it to Blends and Cuppings as well.

    I’ve done a little behind-the-scenes work to prepare for a port to iPad. As I’ve told some of you, I really doubt that it will be possible to create a universal app (1 app for both iPad and iPhone/iPod). Roastmaster is a very complex app, and having only one codebase that conditionally perform and allows different functions, controls and layouts for each view, would be horrendous and error-prone. I’ll have to decide once I get started, which will be the easiest path. I’ll keep you updated on the progress, and be in touch with those of you that have said you’d like to beta-test.

    Well, that’s it for now. Be on the lookout for the update.

    Happy roasting!

    Cheers,
    Danny

  • Expanded Curves

    Expanded Curves

    Figured a take a minute and let everyone know what I’m working on at the moment. I’m wrapping up work on expanding the concept of curves to include temperature data collection.

    Turns out there are a lot more people using thermocouples than I thought. For them, the concept of roasting curves is a little lacking. Curves were designed to provide a way to record the settings you adjust throughout a roast – i.e. roaster controls. I had always planned on implementing temperature reading curves in addition to control curves, it was just a little further down on the list (along with a full screen graph – more on that in a moment). I’ve received a lot of email feedback on the subject, and happy to report that temperature curves are now my main focus.

    So… thanks to everyone for the email feedback – and suggestions. The next update is close to being done. Unfortunately, Apple is closing the iTunes Connect portal that developers submit to on Thursday, and it won’t reopen until the 28th. I should be able to submit the update after that. Then we’ll just have to wait through the usual approval process – probably a week.

    So, what’s new? Temperature reading curves, mainly. They can operate in either Celsius or Farehnheit, and are the same entities as the existing control curves. They can be assigned to profiles, programs or a roast. They only two main differences beyond the existing control curves are: they are exempted from past roast matching (since they are readings and not controls) and they graph as a standard line graph (connect-the-dot style as opposed to stair-stepped style). If you’ve been entering your temperature readings in curves as you roast – all you’ll have to do is tap a toggle switch on each of these curves to convert them to the new temperature reading style.

    If you’re left wondering how you’ll fit all those readings on the minimal screen real estate of the graph, don’t worry. Help is on the way. This is going to have to be accomplished over the course of a couple of updates. The upcoming update will introduce a preference setting for the default graph time. This is an interim solution for those anxious to start collecting temp data. You can set the graph to display any interval from 1 to 30 – and should go a long way to eliminate node-congestion on the graph for shorter roast times.

    After this update, I want to turn my attention to creating a full screen graph. A zoomable and pan-able graph that will take over the screen whenever the device is rotated to the horizontal orientation. I think this will be a fast and intuitive way to clear the screen of the details of a roast and let you concentrate on the data. This has been in the plans for Roastmaster since the beginning – it’s exciting for me to finally be to the point of making it happen.

    Here are a few screenshots from the upcoming update.

    As always – let me know your thoughts on Roastmaster.

    Danny