wave2wave: A waveform format converter, alpha preview - Page 1
Forum section: electronics / testgear

author: ivan747
author_rank: Super Contributor
timestamp: December 02, 2014, 02:16:21 am
content: Note that I added a poll. It applies to the finished product, with at least dozen formats and options, not this alpha versionHi guys,We have been working on a very cool program. The idea is to convert between waveform formats. You know, one can get waveforms from oscilloscopes, circuit simulators, dataloggers, math programs, CSV files and a multitude of sources. And one often needs to get this waveforms to somewhere else... CSV is fine for excel and maybe Matlab, but what about that arbitrary waveform generator or LTspice or other stuff?Our idea here is to have a converter that can understand all these formats and convert them easily in batches.So I present outalpha version: wave2wave 0.01Right now it:converts from a Rigol DS1052E's CSV file, even at full memory depth (example attached below)outputs an LTspice PWL file, you can configure LTspice to reate a custom voltage waveform (like an arbitrary function generator) if you load a PWL file into it.can select one or more of the Rigol's channels and produce separate PWL files for eachcan process a batch of filesremembers its settingsHow to use:Select on the left pane in which directory you have your Rigol CSV files] (the program will look for the .csv extension)Select on the right pane where you want your output files going toSelect which channels you wish to convertClick convertAttached files:*zip file containing program and some file samples*screenshot of the program*screenshot of a waveform captured from a real world switchmode power supply, fed into LTspiceMore formats and features are coming soon and we are definitely listening to your feedbackWe hope you like it-Ivan and Marco

author: c4757p
author_rank: Super Contributor
timestamp: December 02, 2014, 02:24:52 am
content: Any plans on sharing source?

author: ivan747
author_rank: Super Contributor
timestamp: December 02, 2014, 02:55:37 am
content: Quote from: c4757p on December 02, 2014, 02:24:52 amAs of yet, we haven't figured out how we're going to distribute (and/or sell) future versions. I have no idea whether to open source or not. Don't take me wrong, but no matter what, you'll be able to integrate it into your programs by calling the executable with some parameters.There are advantages on open source, we can get a lot of test equipment to be compatible but I feel that everything will sort of becomes a mess eventually. Maybe we could release the source code and accept collaborations. But... If there are collaborations to be made, they would all pass through out hands, and I know that a lot of people do not like that in open source, so that's a con.But what I definitely have plans for is documenting all the formats I decode and releasing that documentation.What are your opinions on this? What sort of sales models you tolerate more? Open source+donations, freeware where we accept donations, 1 time purchase, free with purchased API or free with paid extras? Anything else?-Ivan

author: c4757p
author_rank: Super Contributor
timestamp: December 02, 2014, 03:08:25 am
content: I really don't have any patience for the fidgety "this is open source, this isn't" crap a la "they would all pass through our hands, and I know a lot of people do not like that in open source" - I just like there tobesource available. Preferably under an open license so other people can distribute the changes they've made at their own discretion, but why bother managing it as if it were a big project?Iamrather a fan of the Github model - if you put the code there, people can fork your repository, make whatever changes they want, and then either just keep them, distribute them, or (best) submit them back to you using the built-in system for that (you can just choose to keep or reject).But I just like some combination of "source available" and "we won't airdrop lawyers on top of you if you do things with it"!Paid is fine by me too - but I'd probably warn that I don't know as if this is really complex enough to justify paying for it, for most people. You might find nobody ends up using that if you do it. But it's up to you, I'll tolerate whateverQuote from: ivan747 on December 02, 2014, 02:55:37 amExcellent.

author: ivan747
author_rank: Super Contributor
timestamp: December 02, 2014, 12:00:32 pm
content: We've not decided about source, but information needs to be free.I think some people share your opinion too, so I added a poll, let's see how that turns outAh, and just remember this is an alpha version, there's a truckload of stuff missing. Next in the list is a binary formatI got it reverse engineered and half documented.

author: artag
author_rank: Super Contributor
timestamp: December 03, 2014, 11:26:21 am
content: What OS are you targeting ?I think a totally open project has benefits in encouraging other people to add formats and OS support. If you do it all yourself, you're going to have to charge a lot, because it's a lot of work. And that reduces your customer base, so you have to charge more ..

author: EEVblog
author_rank: Unknown
timestamp: December 03, 2014, 11:36:45 am
content: I hate to burst your bubble, but such a niche program is unlikely to financially break even.So my vote is just open source and ask for donations. Buy muffins with the donations, I recommend Bob And Pete's.

author: ivan747
author_rank: Super Contributor
timestamp: December 03, 2014, 06:19:19 pm
content: Well I think the message from everyone is clear, in regards to open source. We're moving the development from Delphi to Code::Blocks and wxWidgets. That means it's going to be C++, C and cross platform. So in a sense, the source code will be ready to be released when we decide to pull the plug (probably when it's useful enough and can convert a handful of formats).Something that a lot of people might not know is that, wihle you can handle CSV files in Excel, it can only take about 100k rows of data. Nowadays even an ancient DS1052E can produce more than that. This program easily adapts the format in under 10 seconds on a modern computer (without any optimizations).It could also open up some nice possibilities for those who need it, like the LTspice example. It could also add cross compatibility with different AWG and oscilloscope brands, specially the obscure chinese ones, like Owon (I got their UltraWave format figured out now, you can use that on AG series AWGs).But I still understand it's a niche.Something good about Code::Blocks and wxWidgets is that it's cross platform. I like that because there are not many frameworks to work with test equipment on Linux, that I know of. There's no LabView equivalent for example. There's some python stuff here and there but still, the more we give to them, the betterI'd like to switch to Linux, but doing electronics stuff on Linux is more of a sacrifice than anything for the moment.

author: novorado
author_rank: Newbie
timestamp: April 01, 2015, 08:48:37 am
content: Hey folks, here is a quick write of RIGOL 2 LTSpice C++ converter that seem to do the job just fine. Mod it as you want or ask us to extendhttps://sourceforge.net/p/rigol/code/ci/master/tree/

author: Lukas
author_rank: Frequent Contributor
timestamp: April 01, 2015, 01:40:14 pm
content: It'd be nice if the functionality of the waveform converter is available as a library so that it can be incorporated into other applications dealing with waveform data. Or make it available as a simple tool that reads data from stdin and dumps it on stdout.

author: nuno
author_rank: Frequent Contributor
timestamp: April 01, 2015, 09:50:21 pm
content: You're building on Rigol format information you reverse-engineered yourself or on what's available around?

author: ivan747
author_rank: Super Contributor
timestamp: April 01, 2015, 11:02:58 pm
content: Quote from: nuno on April 01, 2015, 09:50:21 pmIt's a CSV file, so it's very universal, but technically, yes, it was reverse engineered by us, although it wasn't hard.PWL was a little less trivial because I couldn't really find an authoritative source that described the format, so some guesswork went into it.

author: ivan747
author_rank: Super Contributor
timestamp: April 01, 2015, 11:06:00 pm
content: Quote from: novorado on April 01, 2015, 08:48:37 amExcellent, thanks for your workThis was an attempt at something bigger but the feedback wasn't as I expected and then there is sigrok, which in the future is going to do what I intended this to do. I'm not good enough at programming to really help with sigrok.

author: nuno
author_rank: Frequent Contributor
timestamp: April 01, 2015, 11:09:06 pm
content: This would be a good candidate to implement in something like TCL/Tk, cross platform without need to compile.

author: alex.forencich
author_rank: Frequent Contributor
timestamp: April 03, 2015, 02:04:02 am
content: Quote from: nuno on April 01, 2015, 11:09:06 pmI would personally be most interested in a Python library. Cross platform, no compilation required. Interactive. Also has access to and can be used with powerful libraries like numpy and scipy for signal processing, matrix manipulation, etc. Don't know if there is a similar set of libraries (basically matlab equivalent functionality) in TCL/Tk.

author: Warhawk
author_rank: Frequent Contributor
timestamp: May 08, 2015, 06:53:50 pm
content: Hi, I would like to point out that this application works only when a period is used as a decimal delimiter in the OS settings.

author: ivan747
author_rank: Super Contributor
timestamp: May 09, 2015, 11:38:14 pm
content: Very interesting, I'll tell the person who programmed it because he uses the same IDE for other projects of his own. Thanks.