[Tool]FemtoIDE

release
tool
open-source

#41

Next step a waveform generator?


#42

Need to implement PWM support in the emulator first. Still thinking about the best way to do it: should it actually emulate the PWM wave or should it output a float? :thinking:


#43

Sounds very demanding… Probably it will not be precise enough, generating a stable pwm over a operating system will never be glitch free, usually it’s a job for some special kernel drivers


#44

True, a float would be much less demanding.


#45

Using this IDE for 2 days.
It is really clunky and i don’t use the sprite editor at all.
It cant remember or open projects outside the projects folder.
But its the only idea that just works. its far superior then the 2 options given in the wiki.
Would like to see the pop packager added if possible.


#46

There is another option.

I’m guessing the wiki mentions Mbed and Embitz?
(Mbed is pretty bad. Embitz is alright, but can be fiddly if you aren’t used to playing with IDE settings.)

There’s also PlatformIO, which can be used with various different editors, but it can be a bit fiddly to set up.
(And there’s makefiles for the command-line addicts. :P)


#47

Also not a turnkey solution (PlatformIO). currently can use vscode by letting FemtoIDE create a project and opening that folder in vscode. this could probably be improved with some CLI stuff in future.

There is also a control problem, if say Embitz site goes down, or mbed has trouble with the github repo for some reason, or platformIO is has way to much configuration and if any of these updates or changes somthing. its allot of hassle for no good reason.


#48

I wouldn’t really say clunky, as much as young.
Use your text/bitmap editors of choice and the worst that can happen is you’ll need to close and reload if something falls out of sync.


#49

It has been in development for far less time than Embitz or VSCode, so clunkiness is to be expected. Polish takes time and it usually doesn’t come in version “0.0.14b”. Getting it to version “1.0.0” still requires a lot of work and feedback, so if something bothers you, go ahead and point it out.

As for not using the sprite editor, that’s totally alright. I don’t expect it to replace Aseprite or Photoshop, if that’s what you have at hand, but it will come in handy for those who don’t have anything better or in a pinch.


#50

Im not dishing the project, to point out that i kinda like it. and it seems to work well or better for pokitto development.

my main issues i really have right now is its a bit random to hide the debug output window.


#51

You mean the pane on the right, with the local variables and the stack trace?


#52

bottom window looks like a terminal but cant type in it


#53

It clears the log before a build, so as not to mix messages from the previous build.

It’s not documented yet, since it might change at any minute it’s a bit of an easter egg, but you can type in it:

Commands prefixed with an = are evaluated as javascript, so =1+1 prints 2.
Commands prefixed with # are executed in your shell. #python script.py will call the python executable with an argument.
Without a prefix, commands vary depending on the mode. If you’re debugging, they’re sent directly to GDB.


#54

OMG thanks, i just dug in and added a clear button XD


#55

It doesn’t work out of the box, but the setup is still pretty minimal,
and once it has been set up it just works from there on in.

That’s pretty much an occupational hazard when it comes to IDEs.

There’s no such thing as a perfect IDE, they all have various failings.

Technically PlatformIO is open source, so it could be forked, simplified and modified to create something Pokitto specific if any of that became a problem, but I doubt anyone can be bothered to do that.

If make weren’t so fiddly then makefiles would probably provide the most flexible solution.


#56

Probably better off using Femto’s tool-chain and interface directly with vscode/atom.

Or can hack in something into FemtoIDE like in config.js under APP.bindKeys("global", {

"C-t": ()=>{ document.getElementById('logContainer').innerHTML = '';},

if you want the log out of the way


#57

Or simply:
"C-t": APP.clearLog,


#58

ohh that’s how you call it, i was really confused why clearLog() wasn’t working outside the console


#59

Yeah, the console adds the APP. part so you don’t have to keep typing it all the time.


#60

Do you think it be possible to move this to electron, or would that just be a waist of time?
I know there’s a thing to have automatic updates and have a bit more control on the windowing.