Blog

New Beta Android App+Firmware Release

Hi Reader,

For the last few months I’ve been hammering on firmware and app updates.  They ended up going way deeper than I meant to; the firmware and apps had accrued a lot of technical debt getting the Mooshimeter out to market as fast as possible.  The new features have just been released to Android beta, you can join the beta here.

I haven’t released the new features for iOS yet, I’ll be working on porting the features as soon as I’m done with this blog post.

New Firmware Features

Power Computation on the Mooshimeter

Up to now, real power analysis has only been available in buffer mode of the graphing screen, with no numerical output.  Now real power calculation is built in to the firmware itself, allowing you to see real vs. apparent power and power factor in the main numerical display.  Also it allows logging of real power and power factor to the SD card, which wasn’t previously possible since that math was being done in the app.

Much Faster Buffer Mode Streaming

In buffer mode of the app, you’ll see graphs loading about 3x faster now.

Reformatted Logging CSV Files

Previously, the Mooshimeter logged both AC and DC analysis for the channels being measured.  This means about half the data being written to the CSV file was simply not useful.  Now the Mooshimeter respects the user’s choice of AC vs. DC analysis and only writes the appropriate values to the CSV file.  This means smaller CSV files and longer battery life while logging.

Workarounds for Android Bug

Some Android phones have a “phantom connection” bug that is biting users.  Basically, the Android phone maintains a connection to the Mooshimeter at the operating system level, but doesn’t give control of the Mooshimeter to the app.  The only way out of this state is to reboot the phone or the meter.

The new firmware will automatically disconnect itself when it hears no activity from the other side of the link for 20 seconds, breaking the phantom connection.

Simplified API for Developers

The new firmware uses a much more orderly protocol than the old version.  More on that soon.

New Android App Features

Screenshot_2016-04-10-19-44-42

Mode Selection Through Menus

In the first version of the app, you cycled through settings by repeatedly tapping a button.  The “just keep poking” interface works, but it’s much more civilized to have all the options visible in a menu.

Speech Mode

The app will now read values to you using Android’s text-to-speech.  It will read a value every 10 seconds, or whenever the value changes by a certain threshold.  I’ve found this quite useful with headphones in because I don’t have to take my eyes off my work.

A “Math” Channel

There are a variety of new analysis options available that use a mix of the two measurement channels, and I wasn’t sure the right way to present this to the user.  I borrowed a page from the oscilloscope interface and added the new options as a third channel.  This channel allows you to see the result of analysis without blocking the underlying readings of the measurement channels.

My coffee got cold writing this blog post and I can prove it.

My coffee got cold writing this blog post and I can prove it.

Thermocouple Support

The new math channel supports K type thermocouples.  To use this, plug the thermocouple in to the C and Ω terminals.  The Mooshimeter will use the auxiliary voltage input to judge the thermocouple temperature relative to the cold junction, and use its internal temperature sensor to get the cold junction temperature.

Fahrenheit!

Yes, Celsius is better in almost every way, but some people (myself included) still need Fahrenheit to make intuitive sense of the world.  This option is now available under the global preferences.

Adds Better Battery and RSSI feedback

It’s much easier to track down your meter now with the signal strength indicator, and the battery indicator helps you know when to replace the batteries.

Screenshot_2016-04-10-19-55-18

No More “Tilt to Graph”

This feature was fun for demonstrating the Mooshimeter, but feedback from the field says it’s less than ideal for users who need to move around because it means their phone’s orientation is switching the meter between two modes.  Now there is simply a button to move to graph mode.

Manual Scaling in the Graph

This was a frequently requested feature because the autoscaling graph made it hard to use for resistances (where disconnected probes made the graph shoot to infinity).  Now the graph axes can be individually scaled.

More Graphing Enhancements

You can specify the number of points on screen, and scroll back through the data to the beginning of the graphing session.

Formatting Improvements

The app should look better on smaller screen sizes now.

Next Steps

On the technical front, these improvements need to be ported to iOS, so I’m working on that now.  There are some website updates in the works as well, including a new product video.  The last few months have really been a slog, but hopefully now that I’m through the lion’s share of technical debt I will release updates more frequently.

That’s all for now, thanks for reading!

~James

35 Responses to “New Beta Android App+Firmware Release”

  1. krs013 April 10, 2016 at 8:46 pm #

    I was thinking about buying a Mooshimeter and wanted to check if the platform was still active or if the app was vaporware like those whiny (iOS) app store reviews claimed. This was a very timely post for me :)

    • James April 10, 2016 at 8:54 pm #

      Hooray! Now I can feel good about working on Sunday :)

  2. Seth April 11, 2016 at 4:59 am #

    Great work, James! I’m really & continually impressed by the features & updates you’re providing for a product I’ve owned for over 2 years now (I backed this on Dragon Innovation). Keep up the great work!

    • James April 11, 2016 at 12:05 pm #

      Thanks Seth :)

  3. Paul April 11, 2016 at 11:58 am #

    I wonder if this fixes the buffering problem I shared with you? (See emails from Nov 16, 2015.) Hope so, but even if it doesn’t, it sounds like a nice improvement.

    • James April 11, 2016 at 12:04 pm #

      I just briefly reviewed our conversation – the graphing activity has had a major overhaul and is more configurable now. I’m not sure if it will fix the buffering issue you were seeing, because I think that was happening on the Android side, but I think it’s worth trying the new beta.

  4. Paul April 14, 2016 at 3:29 am #

    Loving the new app+firmware updates.

    The new graph mode is great – but two quick observations:
    – Would be great to keep the graph session config and data when you back out to meter mode and then revert to graph mode once more – sometimes want to zip out to see actual figures. Could the actual current figures be displayed at the top of the graph screen – or with the y-axis title?
    – Chanel 1 axis metrics missing on my screen.
    – Sometimes the channel 2 metrics are overwriting the title
    – Can’t get a grip of the manual scale function and/or zoom/pan… probably just me though!

    Just wondering if the data could be made available to Tasker (other automation tools are available blah blah blah…) via intents, broadcast or otherwise, or a plugin? A global config to broadcast values at a set interval whilst the app is running would be awesome. Maybe even a way for tasker to wake up the app and get a single value?

    • James April 14, 2016 at 12:02 pm #

      Hi Paul,

      This is great feedback thank you! I think I’ll put together a demo of how the zooming is supposed to work because it’s a little confusing, due to the fact that both graphs have to share the same background to make the size usable.

      Basically each channel can be “auto zoom”, “manual” or “locked”. Auto-zoom will adjust the Y axis to fit the data that has arrived. Manual allows you to zoom in Y without the readings changing your axis. Locked means the Y axis won’t change with new data or with your screen interactions. This was necessary to allow individual manual zooming of both channels.

      The X axis is determined only by the number of samples on the screen, which is settable in the pop-up menu.

      Plotting the math channel: definitely on the to-do list. The math channel is a weird special case in the code so making it work with all the app functionality is ongoing.

      Persisting the data on the graph: Yes, also in the works. It’s mostly a code design issue that makes the app drop data between activities. I’m trying to unify data capture between the activities in the app, the amount of data coming in from the meter is quite small compared to contemporary storage options, so the strategy will probably just be to save the last few MB of data and make it available to send/share. I haven’t used Tasker before but I love the idea of publishing the data to intents. Are you an Android developer?

      Best
      ~James

  5. Paul April 14, 2016 at 3:43 am #

    I forgot to add – could we please graph the “maths” channel?

  6. Duane April 14, 2016 at 5:13 pm #

    James, Really happy to see new app/firmware. Thanks! I hope the following will be useful to you.
    – – – Duane

    Comments are based on Samsung S3 cell phone running android 4.4.2 with Mooshimeter V.1 PCB:008 (stamped Rev1 04/2015) with newest Playstore app version 1.0.20 (1769) and beta firmware Build 1460332895 both downloaded 14 April 2016.

    1. After changing the Logging interval from 1s to 10s or 1min and then going back to the main display then entering settings again, the setting display button reverts back to 1s. Minor issue since it appears the actual logging is correct.

    2. Even with your instructions to Paul, I cannot not figure out how to manual zoom the Y axis in GRAPH manual mode. For example, with probes in 120VAC house outlet, how would I manual zoom to set the graph display range to be around 100 to 140? Seems like even with one channel graph off, I can get the desired scale only when PAUSE. Then when PLAY, the scale changes even in manual. Also with two channels being graphed, the lock does not appear to lock a channels Y axis. At least I cannot get it to work.

    3. It looks like the logging is getting mixed up between the two channels. The meter probes were inserted into my standard 120VAC house wall socket and logged every minute. It looks like the first two entries are correct, and then the internal temperature logs from channel 1 are logged for channel 2. I tried this multiple times with similar results.
    PCB: 008
    ASM: 000
    LOT: 00000
    FW: 1460332895
    CH1: DEGC 60C
    CH2: VOLT 600V
    SMPL: 0256 4000Hz
    UTC TIME SEC CH1 DEGC DC CH2 VOLT AC
    1460677116 2.92E+02 1.22E+02
    1460677177 4.97E+05 1.22E+02
    1460677239 4.97E+05 4.67E+05
    1460677300 4.96E+05 4.66E+05
    1460677362 4.96E+05 4.68E+05
    1460677424 4.96E+05 4.69E+05
    1460677485 4.96E+05 4.70E+05
    1460677547 4.96E+05 4.66E+05
    1460677608 4.96E+05 4.67E+05
    1460677670 4.96E+05 4.68E+05
    1460677732 2.92E+02 3.88E-02

    • James April 17, 2016 at 9:32 pm #

      Hi Duane,

      Regarding graph zooming: I plan on releasing a video soon showing how it’s supposed to work, it’s difficult to describe exact sequences of pinching and zooming in text.

      Regarding logging: That’s very interesting, I haven’t seen that issue before. It looks to me like after the first sample in your logfile, the readings are just… wrong. When you connect back up to the meter does it show the correct readings?

      Thanks

  7. Pierre April 14, 2016 at 11:53 pm #

    Hi James,
    Very good evolution of your software!
    If I can make suggestions :
    – It will be fine to have a continuity test function (beep)
    – It will be fine to have a customizable unit and coefficient. Example : when measuring current with a shunt —> display AMP = Volt X coef.

    Now with the working zero function, I can do milliohms measurement.
    For that, I do a zero resistance with a “Short Circuit Banana Plug”.

    In AC voltage mode, what are the min and max frequency usable ?
    Do you have a calibration procedure for the Mooshimeter ?

    All the best from France
    -Pierre

    • Julia Truchsess April 15, 2016 at 11:34 am #

      I second Pierre’s suggestion for a customizable unit and coefficient. I use the moosh to monitor thermocouple temperature _after_ a conditioning IC, so I have 5mV/ºC and always have to multiply voltage by 200 in my head to get temperature.

    • James April 17, 2016 at 9:36 pm #

      Hi Pierre,

      Regarding arbitrary multipliers: Working on it :)

      Regarding AC mode frequencies: The analog input filters cut off around 1kHz, and by default in AC mode the digital sampling is at 4kHz. With default settings, the Mooshimeter should give valid AC readings up to around 500Hz. Above that, the reading will get smaller as the frequency increases.

      Calibration: Unfortunately the meters can only be calibrated in the factory right now.

      Best
      ~James

  8. Julia Truchsess April 15, 2016 at 11:31 am #

    Great enhancements, I hope they will come to IOS soon!

  9. Tim April 16, 2016 at 8:38 am #

    It’s great to see ongoing support for the Mooshimeter, and I was very pleased to try out the new beta app. I’ve listed below a few little bugs I’ve noticed so far – I hope that’s useful.

    Welcome screen: sometimes gets stuck at “Initialising…”
    Ch1: Can’t select Voltage input
    Ch2: Can’t select Current input
    Thermocouple: doesn’t work with ch2
    Thermocouple: should be in ch1 / ch2 input menu, as resistance and diode
    Internal temperature: “zero” button shows “out of range” (should be disabled/greyed-out)
    Pressing ch2 “zero” button causes ch1 to be affected

    • Tim April 16, 2016 at 8:39 am #

      Forgot to mention: Nexus 5 with Android 6.0.1

    • James April 16, 2016 at 9:24 am #

      Thanks very much Tim! Most of these are not bugs, just weird artifacts from development. But the issues you pointed out with the zero button are real issues and I will add them to the list, thank you. Also the “getting stuck on initializing”.

      The reason Current is not listed in CH2 inputs and Voltage is not listed in CH1 inputs is a carry-over from the Mooshimeter hardware itself… at the heart of the Mooshimeter is an ADS1292 from TI, which has 2 channels that are mapped by default to current and voltage. Either can be set to measure from the auxiliary input, but they can’t be swapped. In theory I could make this swap happen in software at the app level, but it introduces some weird edge cases regarding the different calibration of the two channels.

      Thanks again, keep the feedback coming :)
      ~James

  10. John April 16, 2016 at 11:15 am #

    James,

    Thanks for keeping the app updated. The whole bluetooth multimeter concept has so much potential, and you’ve developed the hardware to unlock that. We know you’ve got a lot on your plate at Mooshim, while you’re single handedly nudging metering technology forward. Well, we appreciate it, and we hope that your efforts are handsomely rewarded.

    A bug or two
    – I sometimes get an error when trying to connect to the meter. I’ll post more details when I next get the error.
    – The graph doesn’t keep the manually chosen scale, the scale can’t exceed the highest measurement (so the graph line is always at the very top), and the axis shifts randomly without any user input. Also, the axis labels for a channel should turn off when that channel is turned off.

    A suggestion or two
    – +1 to graphing the math function.
    – There should be an ohm math function.
    – Wouldn’t it be easier to split the app up, into a multimeter-like app, an oscilloscope-like app and a chart recorder-like app? Each could then get all the controls that normally come with that instrument, without needing to accommodate the functions and controls of the other instruments.
    – I’d like to transfer log files over bluetooth.
    – This is a long term thing, and something I’d do myself if I wasn’t so busy/lazy/clueless when it comes to android development, but I’d love a battery analyser app. Something like (with a resistor in parallel) 1. Measure voltage, measure current, calculate resistance. 2. Wait 10, 20 or 30 seconds and repeat. Then store the time stamped data on a per battery basis (maybe with a barcode reader to identify batteries or battery banks.)

    Anyway, thanks again for the hard work.

    John.

    • James April 17, 2016 at 9:59 pm #

      Hi John,

      Thank you! The bug reports, and kind words, are much appreciated. Getting the business taxes together this year forced some reflection, I’ve been on this full time for a little over 2 years now. I think I’ll try to write about it soon. There aren’t many 1-man manufacturing entities out there so I expect others who want to try to bootstrap a product could learn from my mistakes. But first, must stabilize the apps more.

      Now to your suggestions:

      Ohm math function: That is a great idea. Thanks. On the list.

      Splitting up the app: I try to separate them out in to separate activities within the app because there’s a lot of connection state that needs to be tracked. If numerical view and graphing view were different apps entirely, you’d have to go through the connection process every time you switch between apps. So I agree with the principal but the limitations of the platform make splitting up the app impractical.

      Transferring logs over BLE: This was originally on the list for this big update, but I got far enough behind that I pushed it off. It’s next after porting changes to iOS.

      Battery analyser app: I love this idea, but don’t have the bandwidth to do it right now. The good news is that the Mooshimeter API is much cleaner since this last update, so if you or someone you know wants to try their hand building an app, it’s easier now. And I’m usually here to help.

      Thank again
      ~James

  11. Jerry Arch April 20, 2016 at 6:41 pm #

    Hi James,
    Love the Android beta! The major problem I have is; after I have disconnected for a period of time the Mooshimeter seems to turn OFF. No slow flash like in hibernation….no flashing at all. When I try to reconnect, nothing is found, can not wake up the meter. The only way I can wake up the meter is with a meter reset, or a short battery disconnect. Then it is found in a scan and all is well.
    I am using a Samsung S3 cell phone running android 4.4.2 with Mooshimeter V.1 PCB:008 (stamped Rev1 04/2015) with the beta firmware build 1460332895 downloaded around 11 April 2016. I am thinking of adding a reed switch to save the threads on the screws.
    Thanks for everything.
    Jerry

    • James April 21, 2016 at 2:02 pm #

      Hi Jerry,

      I think you may be suffering from a bug that has hit me as well – I use a Samsung S4. It seems that sometimes the phone maintains a “phantom connection” to the meter. The meter is connected to the Android OS, but the Android OS doesn’t give the connection to the app. So the meter just sits there and doesn’t advertise because it thinks it’s already connected, and the app doesn’t display it in the scan list because there are no advertisements. Rebooting either the phone or the meter seems to fix it. Next time you see the problem, can you try a phone reboot and see if that fixes the issue? It would be a helpful datapoint.

      Thanks!

  12. Jim April 21, 2016 at 7:32 am #

    The app and firmware are working great. I like the battery level and Bluetooth signal indicators, anong with many of the other enhancements. I am looking forward to the math channel be able to have graphing and data-logging. I will echo that I like to transfer the file over BLE. I’ve used the app for a few days and it’s been working just fine. Keep up the good work.

  13. Greg Fordyce May 12, 2016 at 3:29 am #

    James, I can’t figure out how to get the “burst” mode on the new app. In the old app you could select it from the graph display. Did you make that video yet showing how the new app works?

    Keep up the good work,

    Greg

    • Greg Fordyce May 12, 2016 at 3:34 am #

      Further to my question, I can’t figure out how to toggle between trend and buffer modes in the new app.

      • James May 12, 2016 at 10:13 am #

        Hi Greg,

        In the beta app, the toggle to switch to burst mode is in the options menu of the graphing screen. You can access it by pressing the option button while the graph is open (it’s a physical key on most Android devices next to the home button). On some Android devices (I forget which manufacturer does this), there is no separate option button, but a long-press of the back button will do the same thing.

        Hope this helps, best
        ~James

        • Greg Fordyce May 13, 2016 at 1:39 am #

          I can’t get to the options menu on any of my devices. The app is installed on both versions of the Nexus 7 and Samsung S5 Neo. On all three devices I have a home button, back button and overview/recents button. I have tried various things but can’t access the option menu in the graph mode. The home button takes you out of the app as expected. The back button takes you out of the graph mode, a long press also takes you out of the graph mode. And the overview/recents button just lets you choose a recent app.

          There are also 5 grey buttons at the bottom of the graph screen labelled AUTO 1, AUTO 2, 32pt, PAUSE and >. I understand the first 3 but don’t quite grasp what the last 2 buttons do.

  14. Greg Fordyce May 17, 2016 at 7:00 am #

    Hi James, That didn’t work either. My phone is the S5 Neo which was released after that article was published. On my phone a long press of the fast-app-switch brings up a split screen option (not supported by your app and something I have not used in any app). On my Nexus 7 devices I also can’t get to the option menu.

  15. Greg Fordyce May 18, 2016 at 6:16 am #

    It looks like you need to provide the option menu in the app instead of relying on a menu button on the device. Samsung was actually slow in removing the menu button from their devices but most new devices won’t have a menu button. That would be why I can’t access the options menu. How long before you can correct this? Can I roll back to the old version of the app? Some info below.

    https://developer.android.com/guide/topics/ui/menus.html

    • James May 20, 2016 at 1:52 pm #

      Hi Greg,

      Thanks for this (and your May 17 comment). Sorry for the inconvenience, I was unaware that the menu button was being phased out. I already figured out a reasonable way to work around it for the iOS beta (trying to release next week) and will port the change back over to Android.

      ~James

      • James May 20, 2016 at 2:15 pm #

        Oh! On mental review I realize I didn’t actually answer your questions, sorry.

        1. How long to fix?
        I don’t want to lose too much time context switching back from iOS, which is where my head is right now. I am trying to push iOS beta in the coming week, then hopefully address the Android beta feedback that’s accumulated

        2. Roll back to older android app version:
        Yes, you can leave the beta program and reinstall the app from the google play store. The link to enroll/leave the beta is here:
        https://play.google.com/apps/testing/com.mooshim.mooshimeter
        Note: if you upgraded your Mooshimeter firmware, you will need to downgrade it to work with the older app version.
        ~James

        • Greg Fordyce May 21, 2016 at 1:57 am #

          Thanks for the update. I will probably stick with the beta program for now and wait for the fix. I use the meter for automotive diagnosis and it has been very useful. The buffer mode can be used to show excessive alternator ripple caused by bad diode rectifiers. My wish list would being able to save some user defined presets in the graph mode. For example in the graph mode when I have it set up and capturing a good readable pattern in buffer mode I could then save those settings as say “alternator” and then in the future I can just select “alternator” from my presets list and the buffer mode is then configured for me.

          Keep up the good work,

          Greg

  16. AKA the A June 13, 2016 at 12:49 am #

    What is the module for the thermocouple you are using in the pics?

    • James June 13, 2016 at 11:39 am #

      Hello,

      The part number is MS3206

Leave a Reply