Share your FreeMASTER dashboard designs, get a free board!

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Share your FreeMASTER dashboard designs, get a free board!

brendonslade
NXP TechSupport
NXP TechSupport
2 13 7,518

Share your FreeMASTER dashboard designs, get a board!

 

Calling all FreeMASTER fans!

 

Are you an experienced FreeMASTER user who has already created custom dashboards, or are you an HTML/Javascript coder who is new to this great tool and keen to share your creative ideas? With all the possibilities that resources such as jqWidgets, Google, PrimeUI, Plotly.js combined with FreeMASTER offer for creating engaging dashboards to control and/or demo your application, we'd love you to share your creations with the NXP Community. We are giving away* 50 NXP evaluation boards (20 each of the i.MX RT1020 and LPC55S28 EVKs, and 10 of the S32K144EVB) as a thank you to those of you who are willing to share your dashboards with our community.

 

If you aren’t familiar with FreeMASTER dashboard coding yet don’t despair! Our upcoming, 4-part series on FreeMASTER should tell you what you need to know. The webinar series starts with introductory sessions then moves into what you need to know for dashboard coding (assuming you have some familiarity with HTML and Javascript): Click here to register for your session of interest.

 

How to participate?

  1. Submit your idea to the NXP FreeMASTER community using #freemasterdash in the title by June 19, 2020.
    NOW EXTENDED UNTIL TO JULY 31ST!
  2. Link to your idea post in the comments section below within this blog and include your board preference (choose from the MX RT1020 EVK, LPC55S28 development board and S32K144EVB). Boards will be provided on a first come, first served basis until quantities are depleted. Please note: Your final code submission is not limited to the above boards, but can use any Kinetis, LPC, i.MX RT, S32K, S12Z or other supported 32-bit MCUs.
  3. Once you’ve created your code example, post a brief description and a screenshot of your dashboard along with a ZIPped code to this blog comment thread below. Be sure to:
  1. Keep each dashboard code as simple as possible so it serves as a good reference design.
  2. Please only post code that you are ok with others using. Be sure to acknowledge all sources and include licenses as needed! We'd prefer you to avoid code under GNU licenses and this may limit what community members can do with it. All official ‘terms of use’ apply.
  3.  

What we'd like to see in your design:

  • Define an HTML page which runs in a standalone Chrome browser or embedded in FreeMASTER view switched to Chromium mode. This is a requirement!
  • Make use of JSON-RPC wrapper component as demonstrated in FreeMASTER Lite or described in FreeMASTER 3.0 User Guide section 6.8.2
  • Demonstrate use of graphical HTML5 widgets from vendors including (but not limited to) jqWidgets, Google, PrimeUI, Plotly.js. You can also write your own, but please only use these if you are prepared to share.
  • Create one or more demonstration dashboards (one dashboard = one HTML page), showing use of at least one widget (see some widget ideas below)

 

Additional suggestions (not required!):

  • Use the out-of-box FreeMASTER example application and its "var16", "var32" and other variables running on any Kinetis, LPC, i.MX RT, S32K, S12Z or other supported 32-bit MCU.
  • Angular or linear gauge (different to the one we already provide in the NXP examples) to visualize variable values
  • Sliders, knobs or other controls for variable value modification
  • Interactive graph components showing variable values in time
  • Push buttons, input fields, table grids for variable value control

We look forward to hearing your creative ideas!

 

*Development boards are available on a first come, first served basis until quantities are depleted. The board itself is free, however recipients will be responsible for shipping charges; shipping charges may vary by country. 

13 Comments
peijia_she
Contributor I

#freemasterdash Hope get one board, MX RT1020 Evk

Thx

brendonslade
NXP TechSupport
NXP TechSupport

Hi Peija, 

Thanks for your interest - to be eligible we would need to hear about your idea for a dashboard (see "How to enter" in the blog above).

Regards,

Brendon 

fred27murphy
Contributor II

I've posted an idea for using FreeMASTER for a project that I've currently got in the prototype stage using a FRDM-K64F. This is the post (which is currently awaiting moderation): https://community.nxp.com/message/1317481 

An i.MX RT1020 might be an even better fit than the K64F so that would be my board preference. I'm even wondering whether that would be capable of hosting the JSON-RPC side of things without the need for a PC.

monicavelez
NXP Employee
NXP Employee

Thanks for sharing your idea, Fred. I've sent you a direct message about the board giveaway. Let me know if you have any questions in the meantime.

jc
Contributor II

Hello,

I've posted an idea for using FreeMASTER for a monitoring USB transmission on the microcontroller side.

USB transmision monitoring #freemasterdash 

My board preference is LPC55S28 Development Board, because I started the adventure with NXP microcontrollers from the LPC55 series.

Regards

Jaroslaw Czula

brendonslade
NXP TechSupport
NXP TechSupport

Hi Jaroslaw,

Thanks for your proposal - we'll be in touch with you directly about getting your board sent.

Regards,

Brendon

monicavelez
NXP Employee
NXP Employee

Thanks for sharing your idea, Jaroslaw. I've sent you a direct message about the board giveaway. Let me know if you have any questions in the meantime.

miroslawszymczy
Contributor I

I have published my idea for using FreeMASTER to analyze serial communication over buses such as SPI, I2C, UART, CAN.
Serial communication monitor #freemasterdash

For this purpose I would like to use the i.MX RT1020 EVK board.

danny30
Contributor I

I submitted my idea for using Freemaster JSON RPC lite to integrate with Electron framework, 

Create standalone Freemaster interactive MCU application with Electron.

My board selection is MIMXRT1020-EVK mainly because it has Ethernet connection available which is important and allows me to do interesting experimentation. 

monicavelez
NXP Employee
NXP Employee

Thanks for sharing your idea, Adrian. I've sent you a direct message about the board giveaway. Let me know if you have any questions in the meantime.

fred27murphy
Contributor II

It might be worth pointing out to anyone looking to get their design working with FreeMASTER Lite 3.0 that the sample code given in the documentation in (<installation folder>/FreeMASTER Lite/html/documentation/index.html) won't run as-is.

  • The main callback function is misnamed as main() rather than on_connect().
  • My_Com_Port is very misleading as this needs to be a full connection string rather than just a COM port.
  • The variable pcm is redefined in init() so is then undefined when used in main/on_connect.
  • The function GetBoardInfo does not exist and should be GetConnectedBoardInfo.
  • The JavaScript syntax is a bit off.

That's a lot of mistakes for such a small bit of html! This fixed version will give you a bit more of a chance to connect to your board:

<html>
<head>
  <!-- JSON-RPC and FreeMASTER wrapper library -->
  <script type="text/javascript" src="./simple-jsonrpc-js.js"></script>
  <script type="text/javascript" src="./freemaster-client.js"></script>
</head>
<body onload="init()">
  <script type="text/javascript">
    var pcm;  // the main FreeMASTER communication object
    
    // Wrapper initialization
    function init() {
      pcm = new PCM('localhost:8090'on_connect);
    }

    // Main application logic
    function on_connect() {
      pcm.StartComm('RS232;port=My_Com_Port;speed=115200')
      .then(pcm.IsBoardDetected()
        .then(pcm.GetDetectedBoardInfo()
          .then(response => console.log('Board Info: 'response.data))
          .catch(() => console.log('Could not get board info'))
        )
        .catch(() => console.log('Could not detect the board'))
      )
      .catch(() => console.log('Could not start the communication'));
    }
  </script>
</body>
</html>
fred27murphy
Contributor II

You should find my demo attached. As the Bootstrap framework is often used for professional UIs I decided to integrate FreeMASTER Lite with some of the standard controls that come with this. I've included toast popups confirming communication, progress bars to show values, and buttons / sliders to set values. This example UI is designed to work with the standard demo microcontroller code and was tested with fmstr_example_uart on a FRDM K64F. Obviously by changing a couple of variables it should work with any board.

I must admit I found the current documentation to be sparse, hard to follow and in some places incorrect. The Python and Node.js examples in Jupyter notebook worked, but there seemed to be very little that I could find using plain JavaScript. The use of LoadTSA to allow mapping of variables by name rather than location wasn't clear. I hope my simple JS example will help.

I could see how to attach a ZIP file, but the code is available at GitHub - FredMurphy/freemaster_bootstrap_demo: A demo of using FreeMaster Lite 3.0 and Bootstrap 4.5 

iulian_stan
NXP Employee
NXP Employee

Hi fred27murphy@gmail.com‌,

Thanks for pointing out this issue. We will address it and update the code example in the next (3.1) release.

Kind regards,

Iulian