Settings

Theme

Show HN: I made an app for designing Embedded Systems and code generation

fsmpro.io

25 points by faiszalkhan 5 years ago · 11 comments

Reader

faiszalkhanOP 5 years ago

A few years ago, I was working as a consultant for a leading Automotive supplier which specialised in Embedded electronics and worked with leading Auto manufacturers.

They used State Machine design regressively for business logic implementation across all their products. Embedded system code is meant for deploying on Microcontrollers and usually written in a low level language like C. The dependency on state machine was excessive to a point that they made a tool for designing state machines which perfectly made business sense.

As a engineer, I liked the uselfulness and lightweight nature of the tool but it crashed often and was not maintained. After sometime they discontiued the tool and purchased Enterprise Architect which helps in designing state machines but originally meant for doing other things. Unlike the previous tool, the code generated by Enterprise Architect was not clean enough and not used.

I researched and picked up the core idea of the tool created a better version of it with FsmPro. I made sure it is cross-platform so that it could reach most users. It is available as a free download and comes with all the features to support development and codification of state machines.

Please try and let me know what you think.

person_of_color 5 years ago

How is this different to https://www.state-machine.com or dare I say it, Simulink?

  • faiszalkhanOP 5 years ago

    I have working knowledge of Simulink. It has a learning curve to it. Getting a basic Simulink License could set you back by 3000$. Also, if you just want to design basic state machines for your project, why should you pay the steep fee they ask for. It's a great tool for modelling, simulation and what not. But what if you just want to design state machines for your project(not even simulate), why should you pay that amount for a single license?

    QM again does a host of other things apart from state machine design. You have to work with their framework to get the work done and also getting the license is expensive.

    You can design however you want in FsmPro. There is no model to adhere to. You can design state machines, talk to other state machines and just inlcude them in your projects with a single header file inclusion.

    I make my argument clear in this piece: https://medium.com/@FsmPro/introducing-fsmpro-a-tool-built-w...:

antoineMoPa 5 years ago

This looks cool!

A few points: The post title should mention finite state machines, I think.

In the page you say « FsmPro is xml based which reduces the possiblity of data loss »: How and compared to what?

  • faiszalkhanOP 5 years ago

    Thanks!

    Losing work is expensive.

    A project file could get corrupted for a myriad of reasons. If the format of the file is proprietary or could not be deciphered easily, you would lose your data. This is a very common problem with Microsoft and Adobe files to name a few.

    Having a standard xml format makes it easy to repair had the file get corrupted by accident. Also, it makes it easier for anyone to run scripts to get the data out of the files. Ex: Custom code generate with a script that scrapes the xml file.

huntik17 5 years ago

Nice project! Could you please list the supported micro-controllers and some examples?

  • faiszalkhanOP 5 years ago

    Thank you. It can work on any micro-controller platform given that it is platform agnostic. FsmPro has a provision for including header files which can be your microcontroller driver files. You can also graphically link dependencies with other modules.

    On installing the tool, you would have an example project open by itself which should help. There are multiple examples in the installation directory of your computer. I hope I answered your query.

qu-everything 5 years ago

but what about sources?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection