Loguino 1.0

I’ve been working on Loguino for a few months now, and the first stable release is now available.  Loguino is a data-logging solution based around commodity(Arduino) hardware. Underneath is a powerful data-logging framework that can be adapted to log just about anything. Loguino focuses on data capture, rather than analysis or visualization. It was born out of the need to capture data from a Microsquirt ecu without a laptop connected, but has evolved into a more generic tool. 

Loguino can log from the following inputs:

  • Megasquirt Automotive Engine Control Units
  • LIS331 Accelerometers
  • ITG3200 3 Axis Gyro
  • NMEA Compatible GPS Devices
  • Analog Pins (Voltage)
  • Digital Inputs (High/Low)

Loguino writes output to the following outputs:

  • SD Cards
  • Serial Devices

Each poller and logger is optional, enabling and disabling features is easy using a configuration file at build time.

Loguino is built using cmake, and is designed around the arduino mega, although other boards will work just fine.

There are a few of us using it now, and I feel its stable enough that others might also find it useful. 

I have a few code improvements I want to roll out in the coming weeks to make things more pluggable as per the design, then I’ll focus on the following features:

  • Download from SD via Serial
  • Add a lifetime to metrics
  • Add throttling
  • CANBUS Support

Loguino is hosted on google code at: http://code.google.com/p/loguino/

I hope some of you find it useful, and I’d be delighted to hear from anybody who is interested in using loguino.

17 thoughts on “Loguino 1.0

  1. Hi David,

    Is it possible to use a standard Arduino with just one serial port?

    I don’t want to do the logging as I have an MS3 that does that anyway — but I want to make a simple display to show RPM, CLT, AFR etc etc


    1. Hi James,

      It is indeed possible to use a standard Arduino, the megasquirt would be connected to Serial, (As opposed to Serial1 etc) and you would disable the Serial Output.

      To write your own display code, i’d create an output module that listens for entries with the namespaces you are interested in and displays them appropriately.

      I’ll create some examples if you like. Let me know if you need any help getting cmake configured or figuring out how to get the various components talking to each other.

  2. Hi David,

    I am planning to use Arduino — hoping your MS library will connect fairly easily.

    If not, assuming I can code to pull in the data, I will just grab the data and then use a switch statement to pull out the data to be displayed as needed— just all in the loop()


    1. You have a couple of options, if you use loguino nativally you can just capture individual messages, you can also just use the megasquirt library, that will give you access to each of the entries in the main data table which if you only want to deal with the MS is probably the lightest way to do it, something like below should work:


      MegaSquirtData ms;
      byte table[MS_TABLE_LENGTH];


      If you wake a look at what MSPoller does, that should also give you an example too.

      Good luck!


    1. I think about 50/50, I’ve never tried software serial, although there is no real reason why it shouldn’t work.

  3. Hi David,

    I’m trying to use your loguino library to create a simple telemetry system to my university’s formula car project. But I’m getting stucked at some point.

    I sucessfully connected MS to the arduino board. I was able to get Signature and Revision data, but getData() function fails (it returns connection timeout when trying to dump data from command a).

    Maybe this could have anything to do with my MS version? I’m using MS2 v2.89.
    Do you have any tip to help me out?

    (Sorry if my english sucks)

    Thanks from Brazil,

    1. Hi Thiago,

      Great to hear you are using the MS code, sorry to hear you are having troubles though. It *should* work 🙂 I think I’m running 2.89 too, I’ll go check i haven’t introduced any bugs. Communication is working, so getData should only give that error if it didn’t get enough data back, once i’ve confirmed it works here, I’ll upload some test code that should give some more info. It could be that the length is variable defendant on the version, or the configuration.

      Are you using the megasquirt library directly or through loguino?



    2. Hi Thiago,

      It looks like the serial buffer size changed in Arduino 1.0, I need to update the way the interface works, should have a fix out shortly.

      1. Hi David,

        I’m using MS library directly.

        I could get things working by “cheating”. I changed the if statement for timeout on the library to accept the data even if I miss 1 or 2 bytes. But I know this is not a good thing to do.

        I’m very glad for your response,

  4. Hi David. This looks like a great project. I am giving it a serious go but unfortunately know very little on the programming side of things. I have my mega and lis331 but just cant work out how to upload your loguino software to it. I am trying to use my laptop with windows XP. Is there any chance of a more detailed step by step guide to the installation.

    At the moment the adafruit gps logger is on long term back order. Can you advise on a suitable replacement.

    And lastly ,for the moment anyway, Once have got this project going, I will have to find a way to adapt the megasquirt part to suit my Emerald system. Would you have any advice for this .

    Thanks in advance


  5. Hello David,
    What a great project !
    Currently I started building the loguino but have some problems to get the Lis331.
    Is there a (noob) way to implement for example a MPU-6050 as this have also Gyro support?
    It would be nice to have gyro and it is much cheaper too.

    Best Regards,


    1. Hi Klaas,

      There are some libraries for the gyro that would make it fairly easy to code.

      The easiest way is probably to copy the lis331 code and modify the initializer and poller code to use the mpu library. The following page has some good links that might get you started.


      Good luck, David

  6. Hi David,

    After trying different times I’m confused about how to get Cmake running.
    I,ve tryed with the windows version from cmake but do not get it.
    Would you please explain how to setup the cmake ?
    or a simpler way to get the files in arduino 🙂
    You may also reply on ndeg@h~tmail.nl

    Regards, Klaas

Leave a Reply

Your email address will not be published. Required fields are marked *