Welcome to Laser Pointer Forums - discuss green laser pointers, blue laser pointers, and all types of lasers

Buy Site Supporter Role (remove some ads) | LPF Donations

Links below open in new window

FrozenGate by Avery

Peregrine - The Free, Open Source LPM Interface

Trevor

0
Joined
Jul 17, 2009
Messages
4,386
Points
113
Peregrine - The Free, Open Source Universal LPM Interface

I started this project in April 2012 when Seoul_lasers was experimenting with trying to get his LaserBee logging to Mac OS X. Peregrine started life intended to be solely a utility for OS X, but has evolved into a lightweight but robust cross-platform tool for interfacing with all currently available hobbyist laser power meters.

hcs849a.png


Licensing & Legal

Because there have been no negative consequences for LaserBee owners using programs other than the bundled datalogger to view the serial output of the LPM, it is safe to say Peregrine is perfectly fine to use. Should this change, this thread will be updated.

However, because of unpleasantness that swirled around the inception of the project, it will, for the time being, remain closed-source.

UPDATE: As of April 11, 2013, Peregrine is now open-source. It is released under the GNU GPL v3. A good, plain English explanation can be found on Wikipedia. Basically, if you have modified Peregrine and want to distribute it, the source should be available and also distributed under the GNU GPL v3.

That being said, I do ask developers to link to this thread rather than distributing copies of Peregrine.

Why Peregrine?

Peregrine is a fully featured datalogger utility, designed to work with any currently available hobbyist LPM. It gives Windows users the choice between the datalogger bundled with their LPM or Peregrine - leaving them free to use whichever program better suits their needs. It gives Mac OSX users an option that does not involve buying a Windows computer just for LPM datalogging, running a VM, or emulating a Windows runtime environment - and Peregrine is a purpose-built utility, not a catch-all serial terminal. The Linux version of Peregrine brings LPM datalogging to various distributions of Linux.

It allows developers to build LPM's that are compliant with one of current protocol standards and not have to worry about developing a brand new datalogging program. All that I ask is that developers provide a link to this thread, rather than bundling Peregrine with their product.

General Information
  • Supported Operating Systems
    • Windows (The 32-bit build works on both 32-bit and 64-bit systems.)
    • Mac OS X
    • Linux (untested)
  • Supported Protocols
    • Simple
      • To support even the most basic LPM datalogging.
    • OpenLPM
      • ARGLPM and ARGraph
      • Can read the datastream from any other OpenLPM compliant device.
    • Kenometer
      • Kenometer USB
      • Kenometer Pro
    • LaserBee
      • Any LaserBee running Ellipsis
      • Any LaserBee running stock firmware
        • LaserBee I ( 1W )
        • LaserBee I-X ( 2.1W )
        • LaserBee II ( 3.2W )
        • LaserBee USB ( 2.5W )
      • Any LPM using the "DL-Module," including the 5W LaserBee
  • Features
    • Basic autoranging graphing functionality
    • Monitoring mode, a 60-second rolling window of laser power readings
    • Timed measurements
    • Export of a graph
    • Export of a dataset
    • Configurable data protocol
    • Configurable baud rate
    • Interactive graph for viewing particular values, local peaks, and local averages
    • Built-in serial monitor for developers

Interface and Menus
  • Serial
    • Available devices are listed in the dropdown menu on the main window.
    • To refresh the list of devices, press the "Refresh" button.
    • To connect, press the "Connect" button.
    • Baud rate can be changed in the "Meter" menu.
  • File Menu
    • Export / Graph Image - Render and save an image of the current dataset. This option is only available when a timed measurement is completed.
    • Export / Dataset - Output the dataset from the previous completed timed measurement to a CSV file.
    • Exit - Quits Peregrine
  • Meter Menu
    • Datastream - Use this menu to specify the input data formatting that your LPM uses.
    • Baud - Use this menu to specify the bitrate of the serial connection to the LPM. Must be selected before connecting.
  • Measurement Menu
    • New... - Open the dialogue window to start a new timed measurement.
    • Monitor - Go into monitor mode to view a rolling 60-second window of laser power.
    • Stop - Stops graphing.

Usage
  • To connect to your laser power meter, select the device from the dropdown on the main window, ensure the baud rate ( Meter -> Baud ) is properly set, and then press connect. If Peregrine alerts that it is receiving malformed packets, make sure the desired datastream protocol ( Meter -> Datastream ) is set.
  • Peregrine defaults into monitor mode, where it just displays whatever readings are streaming off the meter.
  • To begin a timed measurement, select that option from the measurement menu ( Measurement -> New ), fill in the fields ( A test named "Laser Test" with a threshold of 10mW, duration of 60 seconds, and a red line color is the default. ), then press "Start" to begin.
  • Whenever there is data displayed in the graphing area, it is possible to hover the mouse over the graphing area to examine specific readings. The cursor snaps to the datapoint nearest the time value represented by the mouse position. The "Current Reading" field changes to "Selected Reading," and the reading turns the color that was configured for the line.
  • It is also possible to drag the mouse over a time range to examine the local average and local peak. Similar to the operation of the cursor, the field labels and color will update with new captions and a new color. When used in monitor mode, the selection box remains stationary at the times originally specified by the user, but will autorange to accommodate the power values in the range.
  • When a timed measurement is complete, a graph or dataset may be saved.

Configuration
  • Configuration file is named "Peregrine.conf" and is located in the /data/ folder.
  • Environment.GUI.Graph.MouseoverEffects - true / false - Enables or disables graph mouseover effects.
  • Comm.Serial.Baud - Fill in one of the standard baud rates here, corresponding with the list of options in Peregrine
  • Comm.Serial.Protocol - The desired datastream formatting.
  • Comm.Serial.Autorefresh - true / false - Allows automatic refreshing of the serial port list.
  • Environment.Threading - true / false - Implements threading for data and graph export.
  • Developer.Serial.Debugger - true / false - Enables or disables Peregrine's built-in serial debugger.
  • Developer.Environment.Debugger - true / false - Enables or disables debug mode.
  • Depending on what release you have, there might be more options present in your configuration file. These are listed below, for completeness.
  • Export.Graph.Height - NOT IMPLEMENTED
  • Export.Graph.StrokeWidth - NOT IMPLEMENTED

Notes
  • The version number is located in the title bar when Peregrine starts.
  • The graphing area does not autorange below 0mW. This was a design decision made because readings that are useful are rarely, if ever, below zero and it gives a much cleaner looking graph output.
  • The decision was made not to initially include peak and average information on the graph itself, so as to not have a cluttered view. It would not be difficult to add as a configurable option if users wish.
  • The option for importing a dataset was intentionally omitted, so as to prevent data from being tampered with then re-exported as a graph image.
  • The CPU usage can be very high due to system configuration and the number of cores. This is an idiosyncrasy of Java when doing a lot of rendering and is prettymuch unavoidable if we want a cross-platform datalogger.
  • Mac users may experience a system crash if they disconnect the LPM while it is connected to Peregrine. This appears to be a system flaw.

Getting Started
  • Download Processing from here: Download \ Processing.org
  • To compile and run Peregrine, I recommend version 2.0b7.
  • Once you've downloaded and run Processing, move the Peregrine sketch folder (it contains all of the source files, in addition to the folders that contain the compiled programs) into your Processing sketch folder, probably in your Documents folder.
  • You can open the sketch from there!
  • - OR -
  • Just open the appropriate compiled program directory and directly run the program!

To Do
  • Vector graphics export
  • Customizable coloring of the controls in Peregrine, via Peregrine.conf
  • Enlarge form elements (perhaps via a "large controls" setting in Peregrine.conf?)
  • An indicator to show whether the laser power is trending up or trending down
  • Allow configuration of the graph line width.

Current Change List
  • n/a

Key: Standard Priority | Elevated Priority | High Priority

Support

I am currently paying for all of the costs of this project out-of-pocket. If you'd like to support the ongoing development of Peregrine monetarily, I very much appreciate the support.



Supporters
  • Me!
  • ARGLaser
  • DJNY
  • Seoul_lasers
  • Pman
  • benmwv
  • mhemling33
  • herunotsurugi

Changelog
  • 1.0.4.2
    • Initial release.
  • 1.0.4.7 Mac OS X only
    • Fixed a bug that prevented Mac users from properly connecting.
  • 1.0.4.9 Mac OS X only
    • Removed Bluetooth options from the device dropdown.
    • Updated the size limitations of the device dropdown to prevent devices lower on the list from being hidden.
  • 1.1.2.6
    • Updated the functionality of connecting and disconnecting so that the graph will not clear unexpectedly.
    • Updated graphing functionality to render gaps in received data.
    • Added additional alerts to pass users more information.
    • Added automatic serial refreshing.
    • Added threading so that computationally intensive processes will not be done on the main thread.
    • Note: I forgot to update the version number; it still says 1.0.4.9.
  • 1.2.1.3
    • Added an option in the configuration file to remove threading for computationally intensive tasks.
    • Added debug mode back into the code. Allows viewing off all of Peregrine's internal variables.
    • Cleaned up a few areas of code for public consumption.
  • 1.3.0.2
    • Added support for additional OpenLPM protocol functionality.
      • Enabled starting / restarting measurement via "s" packet.
      • Enabled starting / restarting measurement with parameters via "sp" packet header.
  • 1.5.0.4
    • Added support for the Radiant Electronics datastream formatting.
    • Added automatic detection of datastream formatting, so that it is no longer necessary to specify a protocol.
    • Updated the baud rate selection process so that it can be changed while a device is connected; Peregrine automatically disconnects and reconnects to the device so it is not necessary to manually cycle the connection.

Downloads

Conclusion

I'm happy to finally get this project out into the world. It's been a long development process, filled with with... well, learning Java for one. But it was also pretty fun, if not filled with some unpleasantness. I'm happy to have another datalogger option freely available to the community, and excited to see what people do with it.

Any bug reports can be posted here or sent to me via private message.

Cheers!

Trevor
 
Last edited:





Re: Peregrine - The Free LPM Interface

That is cool!

I run Linux on one of my PCs, but have no LPM. If that is still somehow helpful, let me know.

I can only imagine what you had to go through to get Jerry to "endorse" this.

+1 if I can.
 
Re: Peregrine - The Free LPM Interface

This looks awesome!!! Maybe when I grow up and get an LPM one day I will take advantage of this! But for now, I think a +1 will have to do. :beer:
 
Re: Peregrine - The Free LPM Interface

Absolutely brilliant! This program is great, and makes for a very powerful combination with Open LPM! :) I'm glad there is finally a free LPM interface available for people creating DIY LPM's.

Donation sent :D
 
Last edited:
Re: Peregrine - The Free LPM Interface

Very excited to see something so cool! Great work +rep!!
 
Re: Peregrine - The Free LPM Interface

Took some graphs of various lasers with an ARGMeter :) The export graph to image function is a real treat, much much much easier to use than eagle eye! :D

473nm laser
a6JkSG5.png


532nm laser with near dead batteries
fkwtLEZ.png


5mW 405nm ebay pen laser
Ib8k83p.png
 
Last edited:
Re: Peregrine - The Free LPM Interface

Congratulations on another program Trevor! :beer:

I'll try this out with the arduino.

Tyler
 
Re: Peregrine - The Free LPM Interface

Wow amazing! The mac community has been waiting for this, for a long time!! Amazing work:gj: +3! ;) :beer:
 
Re: Peregrine - The Free LPM Interface

I just saw this thread and immediately gave it a try.
Nice work :beer::beer::beer:

PM coming your way Trevor.
Doesn't see the USB-SERIAL data at all.
 
Last edited:
Re: Peregrine - The Free LPM Interface

Legal

Good news - Peregrine is officially endorsed (or at least, tolerated) by Jerry and his lawyer!

Just to be perfectly clear....... That is a false statement...

J.BAUER Electronics does NOT Endorse any 3rd party
Software/Firmware that is not tested and/or verified by
us to not cause any damage in any way or form to any
LaserBee™ LPM Product ever sold or which will be sold in
the future.
Only Software that is bundled with any LaserBee™ product
is authorized and officially endorsed by J.BAUER Electronics
to be used with any LaserBee™ Product.

As was stated in your other threads mentioning our products...
We will tolerate (not authorize nor endorse) any third party
Data Logging software to be used on a LaserBee™ product
that competes with our EagleEye Data Logging software as
long as it does not violate our Legal Disclaimer we posted
there...

Here is a copy....

Legal Disclaimer

Please be advised that this disclaimer is for Legal reasons and
to be absolutely clear.

J.BAUER Electronics is the sole designer and manufacturer of all
the LaserBee Laser Power Meter products and is the sole owner
of all copyrights and trademarks for the LaserBee™ products and
the EagleEye™ software.

Anyone that implements/uses any unauthorized nor approved nor
tested (by J.BAUER Electronics) 3rd party firmware on any of our
products will unconditionally void any Warranty and/or any present
or future Customer Service for their LaserBee™ product.

This or any future unauthorized 3rd part mimicking of our Intellectual
Property (IP) and work product is not recognized, recommended
or approved to be used on any LaserBee™ product ever manufactured
by J.BAUER Electronics.


Jerry Bauer Pres.
J.BAUER Electronics


We do want to see the MAC OS version. That is welcome even
though we have no way of testing the MAC OS version.


Jerry

You can contact us at any time on our Website: J.BAUER Electronics
 
Last edited:
Re: Peregrine - The Free LPM Interface

It still amazes me Jerry that you can be so hostile towards someone who spent their own time to develop a program that expands the usefulness and potential market for your own products.

I also love the little about-face at the end there where after you get done with your pseudo-legal copypasta and say that you do want the mac version.
 
Re: Peregrine - The Free LPM Interface

It still amazes me Jerry that you can be so hostile towards someone who spent their own time to develop a program that expands the usefulness and potential market for your own products.

I also love the little about-face at the end there where after you get done with your pseudo-legal copypasta and say that you do want the mac version.

Quite right...
All I wanted was a Mac version of Jerry's software so that I could use his LPM on my computer. I seem to have kicked up a huge hornets nest. :(
The data off the meter is done in a 0,0 format. 100mW looks like 100,100 via a serial monitor set on 9600 baud.
As people of a common cause, can we really just all get along. :undecided: Is it really just too much to ask? :undecided:

Come on guys.... I really expect better than in fighting.
 
Last edited:
Re: Peregrine - The Free LPM Interface

It still amazes me Jerry that you can be so hostile towards someone who spent their own time to develop a program that expands the usefulness and potential market for your own products.

I also love the little about-face at the end there where after you get done with your pseudo-legal copypasta and say that you do want the mac version.

I love the fact that you always have something caustic to add
after my Posts....:crackup:

FYI... Just to get you up to speed....;)
I've never been against a MAC Version of a Data Logging
solution for our LaserBee Products and have reiterated so
in my post above...

Any other objections are noted in my Post above as well.
But thanks for your helpful input...:beer:

Quite right...
All I wanted was a Mac version of Jerry's software so that I could use his LPM on my computer. I seem to have kicked up a huge hornets nest.

You don't need to feel bad about MM's Post...
Like I said I want to see a solution to using our LaserBee
products on a MAC...
I don't know why MM's panties are wound so tight...:undecided:


Jerry

You can contact us at any time on our Website: J.BAUER Electronics
 
Last edited:
Re: Peregrine - The Free LPM Interface

Just to be perfectly clear....... That is a false statement...

J.BAUER Electronics does NOT Endorse any 3rd party Software/Firmware that is not tested and/or verified by
us to not cause any damage in any way or form to any
LaserBee™ LPM Product ever sold or which will be sold in
the future.
Only Software that is bundled with any LaserBee™ product
is authorized and officially endorsed by J.BAUER Electronics
to be used with any LaserBee™ Product.

As was stated in your other threads mentioning our products...
We will tolerate (not authorize nor endorse) any third party
Data Logging software to be used on a LaserBee™ product
that competes with our EagleEye Data Logging software as
long as it does not violate our Legal Disclaimer we posted
there...

Here is a copy....

Jerry, you seem confused. Peregrine cannot possibly damage a LaserBee - as the datastream is unidirectional and Peregrine does not get installed on the LPM itself.

Unless you wish to arbitrarily void everyone's warranty (Mac, Windows, and Linux) who views the serial stream with any other program, including Peregrine.

Just to refresh your memory...

I now agree..

So I see that your peregrine will also support the Kenometer PRO
and Kenometer USB besides the LaserBee products...

Not to worry... The meeting with our attorney was for other reasons.

After meeting with our attorney for some unrelated legal matters I brought up this
Open Source issue this morning.

The results of that discussion is simple.... once our product is sold it belongs to the
customer. If that customer wants to hook it up to another device he does so at his
own risk which then may void by his own actions any existing warranty.
It seems that a customer can do as he pleases with his product with the knowledge
that he may loose any existing warranty.

We (J.BAUER Electronics) have concluded with our attorney that there is no legal
reason that any third party making available a FREE Open Source Data Logging
Software for Multi LPM products (including the LaserBee products) would hinder
our sales.

That being said... we now welcome a Windows version along with a version for
MACs and Linux.

It will also be good for some interested Forum members to see the 2 way
communication required for Luminosity since the new Windows Free Open Source
Data logging software would work with the old Kenometer Pros and Kenometer USBs
(as state in previous Posts) along with previously available LaserBee products.

As our Lawyer had mentioned... any new Windows Free Open Source Data Logging
software being proposed/developed will also allow us (J.BAUER Electronics) to read
the source code to make sure that any previously signed NDA is not violated.

So bottom line is your Free Multi LPM Open Source data logging software projects
for Windows is a big go with no opposition from me (J.BAUER Electronics)....:beer:


BTW Trevor... Thanks for finally getting to the Free Open Source MAC and Linux Data
Logging software project...


Jerry

So, last I checked, I had a big seal of approval from you, after you paid a visit to your lawyer.

So, why is it okay for a person to use a MacOS or Linux version (which you are really happy about), but a Windows version is suddenly a warranty-voiding endeavor? It is the same code. You need to choose whether it is okay or not okay to use Peregrine with a LaserBee. You cannot have it both ways.

What gives?

Trevor
 
Last edited:
Re: Peregrine - The Free LPM Interface

Edit - info no longer relevant
 
Last edited:
Re: Peregrine - The Free LPM Interface

The only reason to void a warranty is if the software could in some way harm the product. So. Let's pretend for a moment it could. Clearly you are okay with a MAC version as it opens up your customer possibilities by giving your products a market you have previously not bothered to reach out to. So then, if a MAC version(which is the same as the Windows version) can harm a Laserbee, you wouldn't be okay with it in the slightest, and would be fighting even more against Trevor. But you aren't fighting about the MAC version, so clearly it poses no risk. Therefore, since the Windows version is the same thing, you shouldn't be upset about it.

But you are. Why are you? This is a huge contribution to the hobby as a whole, and will be bringing you money. Your software is bundled with your LPMs, so since he is not making or selling LPMs, HE IS NOT A COMPETITOR. This will not be interfering with your business, but bringing you more.

I just don't get it.
 


Back
Top