What IDE are you using ? - Page 1
Forum section: electronics / general

author: anishkgt
author_rank: Frequent Contributor
timestamp: November 23, 2018, 04:17:25 pm
content: Hello All,What IDE is everyone using.I am trying to use the Atom which can support the arduino code unfortunately it does not seem to be working for me. Has anyone been successful with it ? Steps to it are available but they don't seem to be straight forward for beginners like myself.

author: HB9EVI
author_rank: Frequent Contributor
timestamp: November 23, 2018, 04:19:44 pm
content: a recurring questionI use Eclipse for most purposes; sometimes also Code::Blocks, mostly for AVR programming

author: anishkgt
author_rank: Frequent Contributor
timestamp: November 23, 2018, 04:22:15 pm
content: I use arduino most of the time hence looking for something like Atom. I would love to get it to work, if i can again.

author: HB9EVI
author_rank: Frequent Contributor
timestamp: November 23, 2018, 04:38:33 pm
content: afaik Eclipse supports Arduino; don't know Atom nor do I use Arduino, so cannot compare

author: Siwastaja
author_rank: Super Contributor
timestamp: November 23, 2018, 10:57:23 pm
content: No IDE. No need. Text editor + make = quick and productive workflow for me. Every time I find myself needing some "IDE features" I recognize I'm writing total crap and need to get my shit together.

author: anishkgt
author_rank: Frequent Contributor
timestamp: November 23, 2018, 10:59:20 pm
content: Just got atom to work with arduino. I prefer the arduino IDE but with long codes it is very frustrating to move back and forth.Www.Georgehobby.wordpress.comEquipments: DSO104z, Hakko FX888D, Brymen BM869sSent from my iPhone using Tapatalk

author: netdudeuk
author_rank: Frequent Contributor
timestamp: November 23, 2018, 11:02:05 pm
content: VSCode with PlatformIO

author: lucazader
author_rank: Regular Contributor
timestamp: November 23, 2018, 11:12:44 pm
content: VScode + gcc on top of linux.Powerful and free.Side note: If anyone here has a decent size codebase that is built using gcc and are currently using windows, try the same compliation on any linux distro (not in a virtual machine though!). You will find it will compile 2x faster or more. just my 2c on why the ntfs file system needs replacing.

author: newbrain
author_rank: Super Contributor
timestamp: November 23, 2018, 11:23:55 pm
content: I use two, depending on what I am doing.The first one isVisual Studio Community, free as in beer, together with the non-free (but reasonably priced)VisualGDBadd-on.VS is definitely a powerful and mostly intuitive IDE, VGDB supports a wide variety of MCUs (it's not difficult to add your own, if really needed) and just works for my projects.The other one is rather an advanced editor with compilation and debug support than a full IDE:Visual Studio Code.It is free and Open Source-ish (eh, still Microsoft...), multi platform, able to run in WSL and (still) quite fast, well integrated with git, has lots of handy extensions and developers that listen to the users.It has replaced Emacs in most of my day-to-day edit tasks, even at work: that's quite a feat for me (sorry RMS)!.Both IDEs support bare metal AVRs and Arduino: VS via VisualGDB or the non-totally-free "Visual Micro" extension, and VS Code via the "Arduino" extension (MIT license).I sometimes use AVRs, but never Arduino, so I cannot vouch for the quality of these extensions.Eclipse, I try to keep at a distance. I find it cranky and poorly refined, slow and confusing.As a cherry on top: I cannot understand how it's possible to have a bodged dark theme in 2018...But, TBH, I mostly tried some of the vendor supplied Eclipse based IDEs (TrueStudio, MCUxpresso), not the bare-bone Eclipse with the just needed plug-ins.

author: HB9EVI
author_rank: Frequent Contributor
timestamp: November 23, 2018, 11:29:37 pm
content: yea, Eclipse is really slow and often not responsive enough, specially on not too recent computers.often I catch myself stucking in vi or emacs; but at the latest for compiling/linking I realize it, since I hate to write makefiles.

author: newbrain
author_rank: Super Contributor
timestamp: November 23, 2018, 11:38:05 pm
content: Quote from: lucazader on November 23, 2018, 11:12:44 pm(OT) Try disabling the anti-virus: most of the slowness seems to be due to that in WSL (I'm not advising to leave it disabled, just for comparison).But then, being able to run 95% of my linux stuff (even with X11) without firing a VM or connecting to a real one is really nice.

author: anishkgt
author_rank: Frequent Contributor
timestamp: November 23, 2018, 11:52:28 pm
content: Quote from: newbrain on November 23, 2018, 11:23:55 pmThis is just a hobby for me so am not so much into hard core coding. I’ve used sublime, atom and MS visual code of all I find MS visual code to be more user friendly but I lost it since I could not configure it. Hence now with atom.I like to see my code easy to read and manage. One thing I miss from the arduino IDE is that when compiling it takes you to the line that has the error unlike Atom. Sublime has it too.Www.Georgehobby.wordpress.comEquipments: DSO104z, Hakko FX888D, Brymen BM869sSent from my iPhone using Tapatalk

author: brucehoult
author_rank: Super Contributor
timestamp: November 24, 2018, 12:13:15 am
content: emacs.I used a *lot* of IDEs in the 80s and early 90s: THINK C, Think Pascal, MPW, CodeWarrior, even Visual Studio. Then in 1997 I learned emacs and since then I use it pretty much exclusively.It's available on Windows and Mac as well as any Unix/Linux, plus you get to use the same editor on a machine 10000 km away as on your local desktop, using just ssh not some slow and clunky and bandwidth-sucking remote desktop software.

author: cncjerry
author_rank: Unknown
timestamp: November 24, 2018, 05:49:20 am
content: Eclipse and/or AC6 from Openstm32.org. The compiler is slow and the rebuild builds everything again on a whim.Jerry

author: technix
author_rank: Super Contributor
timestamp: November 24, 2018, 01:48:23 pm
content: Stock Eclipse CDT for ARM work and Linux-specific work, Xcode for general UNIX, macOS and iOS, Simplicity Studio for generic 8051 work.

author: NorthGuy
author_rank: Super Contributor
timestamp: November 24, 2018, 01:53:19 pm
content: I use a simple text editor where I can. If I decide to adopt new toolchain, I add code to invoke appropriate compilers when I press F9. It's universal approach.

author: knapik
author_rank: Regular Contributor
timestamp: November 24, 2018, 03:17:47 pm
content: Emacs, and I'm too used to its wonky keybindings that I don't think I can ever change.

author: diyaudio
author_rank: Frequent Contributor
timestamp: November 24, 2018, 03:33:37 pm
content: Keil to compile and debug. VisualStudio Code to format, search basically manage code.

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: November 24, 2018, 08:14:36 pm
content: VSCode is the way to go

author: dmills
author_rank: Super Contributor
timestamp: November 24, 2018, 09:05:29 pm
content: Vi plus scripting language of choice.Regards, Dan.

author: kfnight
author_rank: Regular Contributor
timestamp: November 24, 2018, 10:29:01 pm
content: I use Notepad++ in Windows for editing and then do compilation / simulation in a RHEL VM.

author: brucehoult
author_rank: Super Contributor
timestamp: November 25, 2018, 01:22:01 am
content: Quote from: ali_asadzadeh on November 24, 2018, 08:14:36 pmVSCode is three years old. Some of us have been programming for 40 years. Ok, VSCode is hot now, but will it still be the hot thing in even 10 years? Doubtful.

author: Dubbie
author_rank: Unknown
timestamp: November 25, 2018, 01:28:56 am
content: Visual studio community + VisualGDB for me.Nice combo that reduces toolchain related head scratching and time wasting. I really like the debugger too.

author: tablatronix
author_rank: Regular Contributor
timestamp: November 25, 2018, 01:37:00 am
content: Mostly sublime text and deviot(platformio plugin by gepd) not the best but lightweight, cant stand bloated ides. But I am going to have to find something more advanced with gdb etc

author: Whales
author_rank: Super Contributor
timestamp: November 25, 2018, 02:27:04 am
content: General thoughts on IDEsI don't like the lock in. One of the most important things for me is knowing that my projects can quickly be taken over by other people without needing special software. The other is knowing they can still do this ten years down the track, without needing a period PC with period software.I tried following some IDE tutorials when I first started programming. The IDEs had always changed so much that the tuts were useless and I ended up horribly confused.Simple text editors on the other hand: interchangeable, they're much simpler for both newbies and professionals alike, and I expect they will still exist 100 years from now.On Linux:Geany. It's a text editor with some IDE-like features, but everything is optional and it doesn't dump "project" config files all over your folders.I then use an appropriate toolchain (SDCC, stcgal, avrgcc, avrdude, gcc, etc) to get code where I need to go. I tend to throw the commands into a short shell script and keep that with the project, so I know how to recompile and burn the code later. I've found this is even useful for Windows users, because if they can't run the shell script then it's now a documentation plaintext file(On that note: please don't use complex build setups. If your code cannot be compiled and installed in a few short lines of shell/batch then you need to reconsider your perspective on life. Don't write another chrome.)On Windows:Notepad2. It's like the built-in notepad, but with syntax highlighting and support for LF line endings.

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: November 25, 2018, 06:23:22 am
content: QuoteThen you can wait 10 years and then use it!of-course we should use things when they are better than others, if something better comes along I would switch to that too

author: newbrain
author_rank: Super Contributor
timestamp: November 25, 2018, 11:46:14 am
content: Quote from: brucehoult on November 25, 2018, 01:22:01 amThat would be me, for one.I see your point, and it has some merit, but as much as I fondly remember flipping switches and using hex keypads (and not so fondly fighting Univac card punchers) I was able to move onOh, Idolove emacs: I was hooked in May 1990 (first job), personalizedEVE/TPUto mimic it as much as possible, and even wrote a lookalike* in 8086 asm for DOS...so if/when what I'm using today fades away I can probably still fall back to it.*File size limited to 64k, and very basic syntax highlighting. No lisp though, I wrote and embedded a FORTH native code compiler. It all fit in ~15kB, IIRC.

author: Siwastaja
author_rank: Super Contributor
timestamp: November 25, 2018, 11:52:24 am
content: Painting the instructions as pixels in MSPAINT to generate the binary directly.

author: legacy
author_rank: Super Contributor
timestamp: November 25, 2018, 12:35:29 pm
content: Quote from: newbrain on November 25, 2018, 11:46:14 amHow can you find Forth useful and productive? it's horrible

author: legacy
author_rank: Super Contributor
timestamp: November 25, 2018, 12:57:45 pm
content: The real question is: exactly what do you need?- a tool able to edit a text file?- a tool able to highlight the C syntax?- a tool able to drive you inside the code by a tag from a list of functions and variables?- a tool able to compare two C-source files highlighting the differences?- a tool able to support Makefile so you can compile the project? and upload the hex to the target?- a tool able to present you the project by which module depends on which module?- a tool able to automatically presents modules dependencies?- a tool able to support a debugger/ICE? so you can follow the code, step by step?- a tool able to support, collect and analyze "triplettes" for dynamic coverage? and to plot the graph ?- a tool able to automatically generate the Makefile for all the above features?

author: legacy
author_rank: Super Contributor
timestamp: November 25, 2018, 01:51:42 pm
content: anyone has ever triedsourceinsightyet? any review?

author: newbrain
author_rank: Super Contributor
timestamp: November 25, 2018, 02:27:19 pm
content: Quote from: legacy on November 25, 2018, 12:57:45 pmYes!And your answer would be (honest question)?For me, VS Code (and VS + VGDB) do almost all of the above, for free or a reasonable price:Y- a tool able to edit a text file?Y- a tool able to highlight the C syntax?Y- a tool able to drive you inside the code by a tag from a list of functions and variables?Y- a tool able to compare two C-source files highlighting the differences?Y- a tool able to support Makefile so you can compile the project? and upload the hex to the target?N- a tool able to present you the project by which module depends on which module?N- a tool able to automatically presents modules dependencies?Y- a tool able to support a debugger/ICE? so you can follow the code, step by step?N- a tool able to support, collect and analyze "triplettes" for dynamic coverage? and to plot the graph ?N/Y- a tool able to automatically generate the Makefile for all the above features?Quote from: legacy on November 25, 2018, 12:35:29 pm(OT) First, consider that it was quite some time ago...That said, RPN is second nature for me (learned to use a calculator on father's HP), and Forth interpreters are remarkably compact, simple, space efficient, and fast.More desire could you what? A less quirky syntax? Pffttt...kids these daysPS: What are "triplettes" in a code coverage context? The only thing my mind associates with the word is

author: legacy
author_rank: Super Contributor
timestamp: November 25, 2018, 04:10:28 pm
content: Quote from: newbrain on November 25, 2018, 02:27:19 pmThe reverse polish notation is a thing that I appreciate, in fact, the expression evaluator of my Arise-v2 compiler uses an RPN approach supporting variables, constants, functions, and common logical, bitwise, and arithmetical operators.You give an expression, it gives you back an RPN vector of tokens in an order that can be easily processed by a stack-oriented machine!But, Forth is not a simple RPN engine to convert expressions into something that can be easily digested by a stack-oriented machine ... Forth adds the conditional branches, loops, and this makes it very horrible since it's too cryptical and obscure (unnatural) to be used.Note there was a machine called "j1" used to implement the first generation of "GameDuino". Sort of VideoDisplay adapter with graphical features for gaming. It was intended to help people at developing easy video games combining an Arduino-mega + a special J1-VGA shield.J1 is a pure Forth machine, their creators come from a university project which claimed it would have been a success, hence they said it's no problem if their J1 understands only the Forth language and you can only program it in Forth (reasons here, they claimed that supporting J1 by a C compiler was not a good deal).Result? Nobody has ever used it. Epic failure, product retired after 6 months, and for the generation two (GameDuino2), they switched to a mini VDU programmable in C.

author: legacy
author_rank: Super Contributor
timestamp: November 25, 2018, 04:15:19 pm
content: Quote from: newbrain on November 25, 2018, 02:27:19 pmThis is a feature that you rarely find implemented, but for me, it's very important.IDEs like Avocet have it, but it's not for cheap. Keil's should have something.

author: newbrain
author_rank: Super Contributor
timestamp: November 25, 2018, 11:41:18 pm
content: Quote from: legacy on November 25, 2018, 04:10:28 pmOh, that's exactly how my Occam compiler for the PC (my master thesis) worked!And I don't find FORTH more unnatural than other languages: apart the IF ELSE THEN thing, all the rest is quite "normal", but then, I used to like APL...

author: brucehoult
author_rank: Super Contributor
timestamp: November 26, 2018, 02:33:55 am
content: Quote from: legacy on November 25, 2018, 12:57:45 pmOnly the first three are the business of the text editor. And even then I don't really want Fisher-Price syntax highlighting as much as automatic indentation and matching of brackets and other structure. A subtle calling out of comments and maybe literals from other things is useful, but not much else.For all the rest, you don't want to have the IDE intimately tied to the commands and data structures and conventions of some particular project or vendor tools. What you (or anyway, I) want is the ability to write arbitrary programs and shell scripts and tie them to function keys (or arbitrary key combinations) in the IDE so that they are called with appropriate arguments and the results are displayed in the IDE.Then you can use the same IDE with wildly varying projects and toolchains over the decades .. or even in the same day.emacs does all this. And the build in programming language is great, compared to most of the rest.So does Eclipse, but it's just soooo heavyweight and opaque. And takes forever to launch. Ugh.

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: November 26, 2018, 06:27:18 am
content: Quote from: brucehoult on November 26, 2018, 02:33:55 amDo you actually know what "IDE" stands for?I always wonder why people find it so hard to answer the OPs question rather than spout irrelevant opinions.

author: nfmax
author_rank: Super Contributor
timestamp: November 26, 2018, 08:20:56 am
content: I use the JetBrains family of IDEs. Main languages are JavaScript/NodesJS, C, Python, and occasionally Java. All are supported, with essentially the same UI. Judging by some of the comments above, some people have no idea about what a modern IDE actually does. I have seen no mention of things like on-line static analysis, such as highlighting unused functions and unreachable code; code refactoring operations, such as extracting code into a method; instant 'F1' API documentation; on-line syntax & style checking; and extensive support for VCS, branching, merging, comparing, and diffing not only between repository versions but also with the editor undo history. And you can add your own (or third-party) scripts and tools to any of the innumerable hooks put there for the purpose. Well worth the money.

author: IconicPCB
author_rank: Super Contributor
timestamp: November 26, 2018, 08:32:15 am
content: JGRASP

author: brucehoult
author_rank: Super Contributor
timestamp: November 26, 2018, 09:37:37 am
content: Quote from: donotdespisethesnake on November 26, 2018, 06:27:18 amWould that be "Integrated"?My point, in case you missed it, is that it's better to have flexible Integration you can configure and tweak yourself than someone else's one-size-fits-all solution that works for .. I don't know .. C++ and Visual SourceSafe, but not Python or PHP and not git or subversion.

author: emece67
author_rank: Frequent Contributor
timestamp: November 26, 2018, 10:57:08 am
content: .

author: legacy
author_rank: Super Contributor
timestamp: November 26, 2018, 12:46:36 pm
content: Quote from: newbrain on November 25, 2018, 02:27:19 pmEach time a code under dynamic coverage encounters a conditional branch the engine(1) saves the condition on which the branch takes the way for "then"-path or for the "else"-path.Code:if ( logical_expr(A, B, C) ){}else{}Vectorcast is one of these tools, and it calls "triplettes" the saved condition because it forces you to have a maximum ofthree variablesfor the branch-condition.Code:ABC wh.branch-------------000 then/else001 then/else010 then/else011 then/else100 then/else101 then/else110 then/else111 then/elseThis table is what you get for each conditional branch. VectorCAST calls it the "tripplets-(table)" for a given line of C code corresponding to a branch condition.Switch() { case: .... default: } is not considered "tripplets" so each "case" condition is only registered as "taken" or "not taken". Common lines of C code are also handled this way: "taken" or "not taken".At the end of the session, you get a screen with C-lines colored in two different colors:red: this line has been never taken during the test-cases running. It's potentially dead code, the behavior is untested.green: this line has been taken. If it's the line is a conditional branch you also know on which condition it has been taken. Which is mandatory for DO178B level A,B. For certifications levels C,D you can ignore the triplettes.(1) usually, it's performed in HW by an ICE. In avionics, we have a specific equipment (2) for this. Of course, it can also be analyzed in SW. E.g. Avocet WU comes with a module, integrated inside of the IDE, able to perform the dynamic coverage when you execute the code in a sort of testbench software simulator with virtual signals used as stimulus.(2) VectorCAST software + a hardware module for the ICE, plus a module to extract data at high speed from the target under testing

author: newbrain
author_rank: Super Contributor
timestamp: November 26, 2018, 12:48:35 pm
content: Quote from: emece67 on November 26, 2018, 10:57:08 amIn my case, yes.Actually, that is the main context I assumed in answering (not that the answer would have been much different).I would add that this is a hobby for me, so I don't want to/cannot invest large amount of money for professional environments.At work, I don't code since (too) long time, but still have to review and follow code (mostly Linux based). VS Code is my default tool.For VS Community, I already described the use of VisualGDB.As I'm not affiliated with them in any way, except for being their customer, I don't want to harp on it too much, lest I sound like a shill...For VS Code, these are the embedded related (or in general useful for embedded coding) extensions I use, in more or less importance order:C/C++: intellisense and more for C or C++.Cortex DebugorNative Debug: gdb connection to debuggers through e.g. OpenOCDLinkerScript: basic syntax highlight for ld scripts.Git History: handy graphical git log.Hexdump: Meta-x hexl-mode.Intel HEX format support.Verilog HDLPlus some others for python, PowerShell etc...

author: spudboy488
author_rank: Regular Contributor
timestamp: November 26, 2018, 12:50:55 pm
content: MPLAB v8.92

author: anishkgt
author_rank: Frequent Contributor
timestamp: November 26, 2018, 01:09:04 pm
content: For me an IDE should* Format the code* take me to the line of errors after built* color code* auto complete functions* Mini map* peek function in MSv code* on the fly error correctingSupport for arduino (for me) is essential.Www.Georgehobby.wordpress.comEquipments: DSO104z, Hakko FX888D, Brymen BM869sSent from my iPhone using Tapatalk

author: legacy
author_rank: Super Contributor
timestamp: November 26, 2018, 01:35:49 pm
content: Quote from: brucehoult on November 26, 2018, 02:33:55 amHave you ever worked with AdaMulti (Green Hills Software for Avionics).AdaMulti is an IDE, with all the features I listed above! And it's what we daily use for business.QuoteWindriverhas spent a lot of time on IDEs, deciding then to turn the opensource projectEclipseintoWorkbench, that has been dedicated to theWxWorks RTOS, for which the IDE does what I have listed above through plug-ins.It's a good idea! Except ... it's a dead elephant unless you can run it on fast (i7 + a lot of GB or ram) computer.The WR Workbench is able to create a dependency list from given modules (C files) and create a Makefile. This is also useful for code analyzing since you can literally pass internal data (in RAM) to the plugin that performs the analysis. Unfortunately, it uses a silly metadata approach which is very fragile and prone to disasters, especially if you don't properly do your backups. You have to save the metadata with attention to their timestamps, which requires a special flag used when you invoke tar|gzip or whatever tool you want to use for archiving.When you extract a project toDoors, or toStood(here I wish they weren't external programs, I wish they were plugins), you'd best first backup it. People usually forget the proper flag, or worse still, they do backups on through a network file system (which sometimes exposes time-skin), and when people try to resume the backup ... catastrophic bitter ends then follow .... and you end for being obliged to recreate the project from the scratch.Well, no C file will get lost, but all the constraints goneedit:Quote from: brucehoult on November 26, 2018, 09:37:37 amAh, ok! If this was the point. I agree. AdaMulti is only for { C89-99, C++ (limited support), Ada95-2000 }.But usually, for PHP and Python, I use dedicated tools, different from what I use for C programming.

author: legacy
author_rank: Super Contributor
timestamp: November 26, 2018, 01:56:26 pm
content: What do you use guys, for Java programming?

author: newbrain
author_rank: Super Contributor
timestamp: November 26, 2018, 02:55:03 pm
content: Quote from: legacy on November 26, 2018, 01:56:26 pmHoly water and exorcisms.

author: nctnico
author_rank: Super Contributor
timestamp: November 26, 2018, 03:13:17 pm
content: Quote from: brucehoult on November 26, 2018, 02:33:55 amFortunately you can tune Eclipse to work faster. A bit of Google-fu is all you need. I'm using Eclipse for everything code related and I have used for several languages. Often I use a vendor provided IDE only to compile a project (like Xilinx ISE) and do the editing in Eclipse.

author: djacobow
author_rank: Super Contributor
timestamp: November 26, 2018, 04:06:31 pm
content: I'm probably a broken record on this at this point, but consider life with a powerful text editor and no IDE.Vim has syntax highlighting and full programmability.There are add-ons for syntax checking (syntastic), code completion (youcompleteme), git integration (fugitive) and much more.Throw in the make utility of your choice, and you've got an "IDE" that you never have to abandon, ever.

author: SiliconWizard
author_rank: Super Contributor
timestamp: November 26, 2018, 05:54:29 pm
content: Quote from: newbrain on November 26, 2018, 02:55:03 pm

author: SiliconWizard
author_rank: Super Contributor
timestamp: November 26, 2018, 07:00:35 pm
content: The first rule of picking an IDE is: you don't use an IDE.The second rule is... you don't talk about using an IDE.

author: rsjsouza
author_rank: Super Contributor
timestamp: November 26, 2018, 07:37:04 pm
content: Quote from: legacy on November 25, 2018, 04:15:19 pmWow... That is a name I haven't heard in 20 years. I couldn't find them on my Google searches - are you sure they still exist?

author: JVR
author_rank: Regular Contributor
timestamp: November 26, 2018, 07:44:49 pm
content: Silicon is cheap, my time is not. So I have multiple Eclipse installs in version control for Java, Python and C/C++.Next step is to get them running in a Vagrant + Ansible environment, so I don't have to care about backing up entire folders. The recipe stays the same.

author: Bassman59
author_rank: Super Contributor
timestamp: November 26, 2018, 08:22:11 pm
content: Quote from: legacy on November 26, 2018, 03:36:49 pmI remember when Sigasi first appeared. It's an Eclipse-based editor with a lot of cool features. And the guys pushing it were all "this will get you to stop using emacs for your VHDL!"Except that it was ridiculously expensive -- I think something like $80/month. For an Eclipse-based editor! If you go to their website and look underPricing, what do you see. Well, you don't see prices. You see a contact form. And that's always a sign that "you can't afford it." And for the money they charge, it should be more than an editor/code viewer/organizer -- it should also be a simulator.So for me, emacs and its vhdl-mode remain the standard. Typepr-tab and bam, a process skeleton. Put the mouse in the entity's port list, choose "VHDL - Port - Copy" and then elsewhere choose "VHDL - Port - Paste As Instance" and voila, a new instance of your entity. And tab-completion works.Nothing else really comes close.

author: richardman
author_rank: Frequent Contributor
timestamp: November 27, 2018, 02:09:52 am
content: Quote from: legacy on November 26, 2018, 07:54:38 pmhttps://www.cosmic-software.com/? They don't exist anymore?

author: richardman
author_rank: Frequent Contributor
timestamp: November 27, 2018, 02:11:29 am
content: I eat my own dogfood and use our IDE, which is derived from CodeBlocks. The AVR compiler is ours and the new Cortex compiler is GCC, but the IDE works very much the same with the same visual debugger.

author: DimitriP
author_rank: Super Contributor
timestamp: November 27, 2018, 05:14:30 am
content: Quote from: djacobow on November 26, 2018, 04:06:31 pmStumbled on this while on a different quest altogetherhttps://medium.com/commitlog/why-i-still-use-vim-67afd76b4db6

author: newbrain
author_rank: Super Contributor
timestamp: November 27, 2018, 09:06:15 am
content: Quote from: DimitriP on November 27, 2018, 05:14:30 amThat data is seriously out of whack, at least for VS Code.On my work laptop (middle of the range Elitebook, Windows10) all that stuff is almost immediate (i.e. my fingers are slower than the editor), same with Emacs.Loading is in the 1s range.The memory occupation is correct, though: I suspect some swapping was going on for the large editors.I'll try at home with the slowest machine I have (NUC i3-3217u), maybe I'll yank out some of the RAM to bring it to 4GB.

author: brucehoult
author_rank: Super Contributor
timestamp: November 27, 2018, 10:01:02 am
content: Quote from: newbrain on November 27, 2018, 09:06:15 amI don't know where he got 5 MB from for vim. On my NUC i7-8650U with Ubuntu 18.04 vim shows 9252 KB RSS and 3300 KB anon (i.e. non-shared), so I don't know which (if either) he's talking about.In comparison emacs -nw gives 33128 KB and 13888.So emacs is bigger than vim, but you can't say it's ridiculous.Interestingly, sshing into a dual U74 64 bit RISC-V machine running at 100 MHz on an FPGA (and which actually has 4 GB RAM) I get for vi 2604 KB RSS and 392 KB anon.That one is also vim, not vi:VIM - Vi IMproved 8.1 (2018 May 17, compiled Jun 20 2018 02:44:05)Included patches: 1-89Modified by pkg-vim-maintainers@lists.alioth.debian.orgCompiled by pkg-vim-maintainers@lists.alioth.debian.orgSmall version without GUI. Features included (+) or not (-):

author: richardman
author_rank: Frequent Contributor
timestamp: November 27, 2018, 10:51:14 am
content: Quote from: legacy on November 27, 2018, 08:16:04 amWell, Cosmic did not own the 68K compileras it was from Whitesmiths. I actually wrote most/all of the 68K code generator. My ghod, it has been so long and I have written so many compilers since then that I don't rememberMaybe it was just the 68020 improvements. It was my second major task at Whitesmiths after fixing bugs with the P2C Pascal to C compiler. Then I wrote a machine independent optimizer based on Barry Rosen's structured dataflow analysis...

author: djacobow
author_rank: Super Contributor
timestamp: November 27, 2018, 03:37:31 pm
content: Quote from: brucehoult on November 27, 2018, 10:01:02 amI can't speak for the exact resource requirements, but I think we can all agree that Vim compares favorably with IDEs. But a fair comparison would be between a "big" vim (like one compiled with gui and syntax highlighting) and an IDE. Many Linuxes seem to ship with a "small" tty-only Vim that was compiled with a minimal list of features, so that makes a size comparison somewhat biased in Vim's favor.Still, even the biggest Vim binary is smaller than the smallest modern IDE.

author: colorado.rob
author_rank: Frequent Contributor
timestamp: December 01, 2018, 02:33:49 am
content: I use Eclipse for most stuff, including embedded C/C++ (AVR, ARM, etc), Python, and Java; Android Studio (IntelliJ) for Android work; and Xcode for iOS. My primary development environment is Linux, with OSX as secondary, and Windows tertiary for all the proprietary development tools that aren't written with portability in mind (thanks Microchip!!).This is all I have for those doing significant development in vi and Emacs:I use vi to bang out a quick shell script, or Geany if I need to whack out a quick Python script. But anything going it to source control is a project and is mananged in an IDE. A single mouse click has my update compiled and running on the device in a graphical debugger with ITM output.Ain't nobody got time to mess around with vi when your project has scores of source files, an equal number of test suites, markdown documentation, and needs to be debugged on an embedded platform.

author: djacobow
author_rank: Super Contributor
timestamp: December 01, 2018, 03:26:30 am
content: Quote from: colorado.rob on December 01, 2018, 02:33:49 amI deal with large, complex projects with vim all the time, and can build and deploy from within the tool. And in fact, I can do it withzeromouse clicks.Well, everything except the debugging. For that I'll use gdb, which to a first approximation doesn't care if your are debugging on the host or an embedded target. however, I do not find interactive debugger-based debugging particularly useful on embedded platforms, where in addition to being embedded they are interrupt drive, and asynchronous, and stopping to inspect code at a breakpoint isn't very helpful. If I have an RTOS running, sometimes I can get the debugger to stop some high level code while some important low-level interrupts keep working, but that is often more trouble to set up than it's worth. Printing to a serial console is often easier, or even flashing leds if printing itself is problematic.Perhaps you meant to say "I don't have time to learn how to use vim" -- which is a reasonable. But I just told you I do it that way, and I haven't much spare time, either, and last I checked, I ain't nobody.

author: brucehoult
author_rank: Super Contributor
timestamp: December 01, 2018, 03:36:46 am
content: Quote from: djacobow on December 01, 2018, 03:26:30 amAgreed.Console can often be a bit slow and interfere with timing. Just sending the actual binary values to be printed, along with some kind of ID of a printf string, and doing the formatting on the host, cuts the overhead a *lot*. Or, lz4 (or zlib) is less work if you've got limited bandwidth but plenty of CPU and a bit of code and buffer space to spare.

author: NorthGuy
author_rank: Super Contributor
timestamp: December 01, 2018, 02:25:41 pm
content: Quote from: legacy on December 01, 2018, 08:58:20 amI don't typically use debugger for embedded things. I rather manipulate a set of pins with my program then capture this and analyze the results on PC in the off time. I may also transmit some binary data through UART or SPI. It only takes one write to the peripheral register to write a byte.

author: colorado.rob
author_rank: Frequent Contributor
timestamp: December 03, 2018, 04:15:07 am
content: Quote from: djacobow on December 01, 2018, 03:26:30 amI have likely forgotten more about vi and vim than most will know. Seriously -- I've been doing software development for 3+ decades, and cut my teeth on ancient Unix variants few have seen. I have done large-scale software development using vim. I have also grown as a developer. So I can tell you -- as someone who was an ace with vim -- that modern IDEs are more productive.

author: richardman
author_rank: Frequent Contributor
timestamp: December 03, 2018, 05:03:19 am
content: Quote from: colorado.rob on December 03, 2018, 04:15:07 amI wasn't going to mention something similarWhile I just barely missed TECO, ed/ex and regex were my friends... and IDE is much better. I think that big slow thing like Eclipse (seriously, I couldn't get Atollic to do ANYTHING) gives people a bad impression. IMHO.

author: djacobow
author_rank: Super Contributor
timestamp: December 03, 2018, 03:29:00 pm
content: Quote from: colorado.rob on December 03, 2018, 04:15:07 amSometimes the arrogance displayed on this board just blows my mind. I mean, you can't even bring yourself to say "this works better for me" you can't help yourself from making a universal claim that is not just unprovable, but easily falsified by a single programmer who is more productive in his preferred environment than yours. Which I have already done.Seriously, what would cause you to behave this way? Is this something you learned in three decades of software development? FFS.

author: rsjsouza
author_rank: Super Contributor
timestamp: December 03, 2018, 07:13:35 pm
content: I tend to use Eclipse (Code Composer Studio) for most of my work. To me the project management abilities of this IDE are absolutely critical to consider any alternative. The most useful things for me are:- single keypress (F3) to jump to the definition or declaration of the variable/function/object/class/whatever anywhere in your 100s or 1000s of source files so I can see its implementation;- code shading/highlighting depending on precompiler directives;- on a single key combination I can comment, indent, format or wrap code/comments;- mouse hover to have a glimpse on the variable/function declaration - if the debugger is running, it shows the target address for pointers or variable values;- Source file or project outline that helps navigate the code;- Code completion, including struct/object/class elements;- Search in Files, in project files (using only C syntax elements), etc.- A history of modifications done to a file during the editing session;- Built-in file compare tool (even more than two files)And other less used features (at least for me).

author: colorado.rob
author_rank: Frequent Contributor
timestamp: December 03, 2018, 08:11:33 pm
content: Quote from: djacobow on December 03, 2018, 03:29:00 pmI'm sorry to have upset you. Please accept my apology.

author: Sal Ammoniac
author_rank: Super Contributor
timestamp: April 25, 2019, 01:26:44 am
content: What I use:ARM: Rowley CrossWorks for ARM -- lightning fast IDE and good debugging support. The editor is a bit primitive, but not too bad.PIC32: MPLAB X.C#: Visual Studio -- the IDE that includes everything, even the kitchen sink (well..., considering how popular add-ons like ReSharper are this really isn't true).Java: Wouldn't touch that abortion of a language with a ten foot pole.SystemVerilog/VHDL: Vivado, and, for general editing, VS Code with Verilog and VHDL plug-ins.I generally tend to avoid Eclipse when I can, but when I can't I use the bare bones Eclipse with just CDT and Segger hardware debug support and nothing else.

author: MarkF
author_rank: Super Contributor
timestamp: April 25, 2019, 01:43:20 am
content: Visual Studio 2013 --> Windows C/C++MPLAB X + XC8 --> PICsArduino IDE --> Arduino UnoNEdit + GNU g++ --> When I use to build Red Hat Linux programsI also heavily used the NEdit custom syntax color coding

author: techman-001
author_rank: Frequent Contributor
timestamp: April 25, 2019, 10:17:00 am
content: I'm using my own IDE design, it uses a collection of applications written by others, like many IDE's.I wrote a "Project Builder' application which pulls in all the needed programs, files, templates, data etc and creates a IDE tailored for each new project in about 1 second.It's designed for STM32Fxx 32 bit MCU's tho I tend to only use STM32F051 QFN (64KB Flash, 8KB Ram) MCU's so far as they have far more resources than I'll ever need.My design environment is near real time and uses cooperative multitasking, in other words I can light a LED driven by a GPIO by a command typed in the IDE, then turn it off the same way. I can see the contents of any MCU register in near real time, any time I want, while a LED is blinking.The many benefits of interactivity are too many to list, but one of my favorites is examining the effect on the MCU when a bit or bits ares changed in a register to confirm what I *think* should happen when I find the STM documentation ambiguous. Even the "simple" STM32F051 has 37 peripherals, 413 registers and 3044 register bit-fields so you can imagine the humongous number of different combinations.My system doesn't use a compiler on the PC, so it doesn't need the usual edit, compile, upload, test, repeat methodology of C. Overall my code runs about three times slower than that produced by a optimized C compiler, however it's a price I'm more than happy to pay for the interactivity of the system.Everything I use is GPL or FreeBSD CopyrightElements integrated into my IDE are:Editor: GvimSerial Terminal: GnuScreenSchematic Capture: GedaFlowchart: GraphvizSCM: FossilOS: Mecrisp-StellarisThe IDE:http://hightechdoc.net/misc/ide-tp-1600.jpgThe SCM which is in a separate window being Web Browser based:http://hightechdoc.net/misc/ide-fossil-1024.jpg

author: newbrain
author_rank: Super Contributor
timestamp: April 25, 2019, 10:39:17 am
content: @techman-001Very interesting setup, forth is always an handy resource for its balance between interactivity and performance.

author: techman-001
author_rank: Frequent Contributor
timestamp: April 25, 2019, 01:01:59 pm
content: Quote from: newbrain on April 25, 2019, 10:39:17 amI think Forth on Cortex-M0 is a hard to beat combination as the resources available are just mind boggling. My STM32F051's cost 0.56 USD each, and for that I get8 timersplus all the usual serial (usually two of each), adc, dac and GPIO suspects and 48MHz operation, easily overclocked to 96 MHz (if I want to raise the power usage by about 4x).One resource I spent a fair bit of time creating and which is not apparent in my description or screen-pics is the automatic creation of all memory mapped resources for the MCU using CMSIS-SVD. These are created in the 1 second it takes for the Project Builder to set up a new project.For instance, Words forevery oneof the 413 registers and every one of the 3044 register bitfields for all 34 peripherals in the STM32F051 are created automatically.In the IDE screenpic you can see the list of bitfields for the RCC AHBENR register, complete with the bitfield description in Gvim, partially reproduced below. Including the description in the bitfield file saves me a lot of time searching the databooks for bitfield functionality:-\ RCC_AHBENR (read-write): RCC_AHBENR_DMAEN %1 0 lshift RCC_AHBENR bis! ; \ RCC_AHBENR_DMAEN DMA1 clock enable: RCC_AHBENR_SRAMEN %1 2 lshift RCC_AHBENR bis! ; \ RCC_AHBENR_SRAMEN SRAM interface clock enable: RCC_AHBENR_FLITFEN %1 4 lshift RCC_AHBENR bis! ; \ RCC_AHBENR_FLITFEN FLITF clock enable: RCC_AHBENR_CRCEN %1 6 lshift RCC_AHBENR bis! ; \ RCC_AHBENR_CRCEN CRC clock enable...The GnuScreen part of that picture shows the real time value of all RCC_AHBENR register bitfields at the moment I hit the enter key. There are 130 register bitfields for RCC alone spread across 14 registers.Solving the Cortex-M memory mapping issue makes Forth application development from scratch much easier, I mean if I had to make up each Word by hand it would take me a lifetime plus using CMSIS-SVD provides consistency at the register and bitfield level of Forth programs for Cortex-M.I've written about this process in my Forth notes. They're a bit out of date as I'm the only maintainer, so apologies for any errors or omissions :http://hightechdoc.net/mecrisp-stellaris/_build/html/register-generator.html#svd2forth

author: Sal Ammoniac
author_rank: Super Contributor
timestamp: April 25, 2019, 03:47:33 pm
content: Quote from: techman-001 on April 25, 2019, 01:01:59 pmI use various Cortex-M4 parts, particularly the Infineon XMC4000 series, and wrote a forth extension language in ARM assembly code. It's great for doing little things interactively, but I must admit to a definate love/hate relationship with forth. I love the architecture of its internals and love using it to do simple interactive things, but doing anything complex in it just puts me off.

author: panoss
author_rank: Frequent Contributor
timestamp: April 25, 2019, 04:44:17 pm
content: Quote from: techman-001 on April 25, 2019, 10:17:00 amThis sounds exrteamelly interesting even though there are lots of thing I don't understand.If you could make a 'tutorial' on how to implement this interactivity I 'd be gratefull.I had seenwhere microPython was used (with an interpreter on the MCU I suppose), so no need for compilation.Have you done something similar, only you 're using Forth instead of microPython?

author: NorthGuy
author_rank: Super Contributor
timestamp: April 25, 2019, 05:36:00 pm
content: I'm not sure I understand the interactivity claim. Any decent debugger should allow setting/reading bits or whole registers. And the debugger does this without sacrificing any performance. Is this the same sort of interactivity?

author: drescherjm
author_rank: Contributor
timestamp: April 25, 2019, 05:57:22 pm
content: At work Visual Studio. I currently have 2013, 2017 and 2019 installed all for native / standard c++ development. Although I do have code that dates back to the 1990s here at work that if I needed to build I would have to access a VM to build using an old version of VS (not to clutter my development box with a rarely used IDE).I also use Arduino IDE when I am working on Arduino projects but that is at home.I also do have KDevelop and Qt-Creator installed at home on my linux machines.

author: badman
author_rank: Newbie
timestamp: April 25, 2019, 06:11:29 pm
content: I prefer to use Source Insight when possible. Has a great reference/symbol window that I use. With the micro I'm working on now I'm using Eclipse, but mostly just for the big "build" button!

author: ale500
author_rank: Frequent Contributor
timestamp: April 25, 2019, 06:21:40 pm
content: I use IAR Workbench for 8051, it is far from perfect but usable. It has column highlight. I wish it was like Notepad++... some features work erratically like show declaration/Implementation. For what it costs gimme Eclipse any day, it works better for me.I use Notepad++ for most not 8051-related things, verilog, VHDL, Python, C.I use Visual Studio Code, it has a nice integrated console but colum highlight and copy/paste works differently than in NP++ don't like it much.Eclipse for C and some Embedded thing.Netbeans for Java (been using that since it was Forte for Java...), and MPLAB X for PIC32.jEdit on Linux because... we cannot install anything there... that one I have been also using for ages.Spyder for some Python, it is quite slow.

author: techman-001
author_rank: Frequent Contributor
timestamp: April 25, 2019, 09:54:43 pm
content: Quote from: panoss on April 25, 2019, 04:44:17 pmI have made some Youtube videos showing Forth in use, here is a stepper motor controller demoI'm only using Forth for a number of reasons. One is that there is no way that Micropython can run on a 64KB Flash Cortex-M0, the second is I would find the whole Python process tedious and the third is that I can fairly easily modify the Forth OS to my needs at the assembly level, which I do for a number of reasons.One assembly code mod I do is to raise the standard serial speed from 115K Baud no handshaking, to 460800 Baud with RTS handshaking.Micropython, eLua and even the old BASIC are interactive just like Forth, however they need a LOT more resources and the time taken to provide Garbage Collection (where a part of the OS) can interfere with real time performance.

author: techman-001
author_rank: Frequent Contributor
timestamp: April 25, 2019, 10:08:37 pm
content: Quote from: NorthGuy on April 25, 2019, 05:36:00 pmI can't really say that Forth is like anything else people use for embedded development.Can you define 'decent debugger' ? Do you mean some interactive serial bootloader/debugger on a MCU with no JTAG, SWD ? or a modern hitech MCU with JTAG, SWD or similar and using GDB etc?Forth interactivity isn't at all like GDB over SWD as Forth interactivity is immediate however the the results are the much the same.When you ask, "without sacrificing performance" are you referring to the performance of the MCU or the performance of the developer on a new project ?

author: NorthGuy
author_rank: Super Contributor
timestamp: April 25, 2019, 10:50:47 pm
content: Quote from: techman-001 on April 25, 2019, 10:08:37 pmI mean any hardware debugging interface. JTAG is an example. I work a lot wih PICs, they have proprietary debugging interfaces, but it doesn't matter. The debugger, such as GDB, or a GUI version, lets you watch/change anything. Depending on hardware, you either need to halt the device to make changes/watch, or you can do it without halting. Or you can automatically halt/read/restart.Quote from: techman-001 on April 25, 2019, 10:08:37 pmWhat do you mean by "immediate"?Quote from: techman-001 on April 25, 2019, 10:08:37 pmMCU performance. I mean you do not alter your program, it runs the same as without the debugger (unless you halt it, of course).

author: rsjsouza
author_rank: Super Contributor
timestamp: April 26, 2019, 01:10:24 am
content: I am curious about those points as well. For a Cortex M class of devices, accessing MMRs via the DAP (through JTAG) can be done unobtrusively w.r.t the CPU and the major pain is having absolutely ALL registers, bitfields, comments, etc. created by the manufacturer or someone else.I work with TM4C/MSP devices from TI and their Eclipse-based IDE has all this (it has other idiosyncracies, but this works well).

author: techman-001
author_rank: Frequent Contributor
timestamp: April 26, 2019, 01:38:18 am
content: Quote from: NorthGuy on April 25, 2019, 10:50:47 pm

author: techman-001
author_rank: Frequent Contributor
timestamp: April 26, 2019, 02:22:01 am
content: Quote from: rsjsouza on April 26, 2019, 01:10:24 amHopefully some of these questions have been resolved in a earlier reply, but if not, please feel free to rephrase until I produce a satisfactory answer for you.The post I initially responded to was regarding which IDE people use, and being a Forth user I'm trying to avoid any and all flame wars with people who love their editor,SCM, MCU and programming language dearly, however I'll try and answer any questions providing members here understand that I believe the best editor,SCM, MCU and programming language is the one that suits THEM the best, not the one I happen to useWhile I'm no expert with Eclipse I have used it when I evaluated such IDE's as Atollic Studio and I could see the attraction, but the fact that I'd need a i7 with 32GB ram to run it in a reasonable time, and given the humongous complexity lurking underneath meant that I lost interest within a couple days.I have Forth running on TM4C/MSP devices, in fact I have a MSP430 (target) JTAG tethered Forth running *from* a Ti Connected Launchpad (host) which is doing live compilation for the target which means I can (seemingly) write a Forth program and run it interactively on the target MCU even if it only has a couple of hundred bytes of Flash, because the host is sending machine code to the target. At the end of my development the host will produce and flash the completed turnkey application binary to the target via the same JTAG used for the tether. Tell me that's not cool ?The interactive Forth that *seems* to be running on the target, is actually running on the Host. Hardware speed of the Forth target is about 20 times slower than when it's running the completed binary image produced by the host, however the interactive Forth speed of the target seems normal at 460800 Baud.If you're interested please seehttp://hightechdoc.net/mecrisp-across/_build/html/index.htmlbut be aware it's all beta level, and I'm not the creator, just a user.Thanks to various (mainly Rust) users I have also made CMSIS-SVD's for TM4C/MSP devices which can then be used for automatic memory mapped Forth Word creation. One sure needs this when using a TM4C because the sheer number of registers and bitfields are just *unbelievable*!The MSP430 on the other hand is just a cute lil thing, a master of low power and interrupts with the sweetest Assembly Language seen since the MC6800 (imho).

author: Tomorokoshi
author_rank: Super Contributor
timestamp: April 26, 2019, 02:59:03 am
content: No matter what the development environment is, make an instruction document on how to install the IDE, compiler, source control, licenses, utilities, tools, etc. from zero. Then show how to load up the project, check out and check in files, compile and build, program the target, run the debugger, etc. This can easily run to 20 or 30 pages with pictures. Save in native format and in PDF in the project.

author: NorthGuy
author_rank: Super Contributor
timestamp: April 26, 2019, 03:06:35 am
content: Quote from: techman-001 on April 26, 2019, 01:38:18 amSince debuggers use hardware, what you can do depends on the hardware capabilities. For example, PIC24/dsPIC33 lets you watch/change variable without halting. You just put the variable onto the watch window and you can watch as the value changes when the program runs.

author: josip
author_rank: Regular Contributor
timestamp: April 26, 2019, 09:57:38 am
content: Quote from: techman-001 on April 26, 2019, 02:22:01 amSame here.Quote from: techman-001 on April 26, 2019, 02:22:01 amNever used Forth. I am using free assembler with good macro possibility in combination with my own pre build source code injector / translator.I see that you are using TI devices, and they (F5xx/F6xx/FR) have mailbox system that can be used for exchange data between master and free running target device. Yes, high baud rate UART can be used for this, but mailbox system doesn't need any setup, device peripheral or pin. Communication is going by existing SBW / JTAG lines.I used at the beginning extra CDC line from target device, for fast logging, but later switched to mailbox system and using it for years. It is not fast as CDC (of course, depend on SBW / JTAG speed), but it is fast enough and simple. Unfortunately, it is not suported by TI tools and I am using it with my own tool.

author: ehughes
author_rank: Frequent Contributor
timestamp: April 26, 2019, 12:49:00 pm
content: Whatever IDE gets me going the quickest for a particular project.Lately it has be MCUXpresso for NXP stuffSegger Embedded Studio for Nordic NRF52Vivado for Xilinx.Visual Studio for C# stuffSpyder for PythonJupyter Notebooks for Julia

author: cloudscapes
author_rank: Regular Contributor
timestamp: April 29, 2019, 11:47:11 pm
content: MikroC for ARMI have my grievances with it. It's not the most stable and sometimes bugs out/crashes for no reason. It's pricey, and for a package that's being sold, has some glaring omissions in its examples and library (no DMA, and they never really bothered to help their users with setting up I2S despite selling a codec board for years). Among other things that annoy me.But alas I do need some hand-holding, without going full arduino. It's only a hobby and have a limited amount of time, so I'm not about to install/learn linux or have to learn how to separately install/make an IDE and compiler work nice together. The only stuff I want to debug is my own code, not the environment. I'm also bad at registers/machine language. The more things look like real words and C, the better for me.That said, I've read you can integrate the STM32 SPL within MikroC, so I may do that once I'm done with my current project. Small steps.

author: maurizze
author_rank: Newbie
timestamp: May 08, 2019, 06:52:32 pm
content: VSCode with PlatformIO, works flawlessly eventhough there was a learning curve for me in the beginning.