Author Topic: Customizing waveforms for FY6900 function generator - is it worth the effort?  (Read 2833 times)

Offline sorveltaja

  • Hero Member
  • *****
  • Posts: 605
To take a break from that stepper business, I thought why not test, if FY6900 that I have, if it's possible to expand it a bit by using it's PC software.

There appears to be very little documentation, or any other info available on the net about that piece of software. I started to wonder, why is that, because these Feeltech's(plus other re-branded ones, I have Dominty) function generators seem to be rather popular among hobbyists for their price.

Anyway, I downloaded software and usb driver from Feeltech website.

Installing that usb driver was not a breeze - I use W7, and had to go to device manager and install it by selecting usb device from the list, and then selecting CH341SER.INF -file.
Installing PC software itself wasn't encouraging either, but finally after some fiddling I got it installed.

So, how about using that software? It seems to have "list of bugs, that is longer than its source code", as someone commented on the net. Can it then be used for anything at all? I think it's possible, once one learns how to not make it crash.

One might say that it's a piece of crap, but as there aren't any other alternatives to transfer custom waveforms from pc to this device - why not test and see, what is possible.

At least in my case, once I draw some waveforms, and click "send data" -button, it transfers just fine to the function generator(haven't tested how the shapes look on the scope yet, though).

Its waveform editor doesn't have any tools to edit waveforms in precise way - it's just for freehand drawing.

And, what's most fascinating, when I save that waveform to .FY -file, and open it in the program - it isn't same anymore. It's just garble. Possible reason for that is, that the program saves all 8192 decimal values using commas.  When I open that .FY -file in text editor, and replace commas with dots(or periods or whatever), and save it, open it again in the program, the waveform appears just like I drew it earlier...

What comes to the program's main window, there is a button for opening files. But when trying to open FY -files, it always crashes with a message "Run-time error '6': Overflow".

Is there any ways to open/import data to this program? Yes there is, by first selecting waveform window. then selecting a waveform file from the left side, and clicking "Add waveform" -button and, then "Loading waveform" -button:



And there we have another trap - Cycle and Amplitude values - if one uses dot, instead of comma, when entering the values, it crashes with message "Run-Time error '13': Type mismatch".
Personally I just avoid entering anything in those fields, as I haven't yet found them to be useful anyway.

Control window, where other functions can be adjusted, haven't looked much into it yet, as all that I have so far needed/used, can be done with the device itself:



Another way to insert data is text window, where one can paste copied values, as far as number of them doesn't exceed the 8192 limit, and then click 'Import waveform Window' button, so that the waveform shows in the waveform window(Text_window.jpg).

So, to create and/or edit waveforms is preferably done by using other program(s).

An example of custom waveform:



I used Openoffice's Scalc(similar to Excel) to edit values manually. It's kind of easy for simple waveform like that, but also tedious thing to do.

There is also another possible candidate, which I have tested a bit. It saves waveforms in .bkw -ascii format, which contains the data just in same form, that this Feeltech's program accepts:

https://l.bkprecision.com/wavexpress.html
 
I used it to make exact same, chopped sine waveform:
« Last Edit: October 23, 2023, 05:42:56 PM by sorveltaja »

Offline sorveltaja

  • Hero Member
  • *****
  • Posts: 605
There is another, a lot easier way to manipulate waveforms - by using an audio file editor, which has an option to modulate the waveform with another one.

How it can be done, differs between programs, as one might expect. But usually it seems to be involved with the effects section.

To begin, I created an audio file with 8192 Hz sampling frequency, and proceeded from there.

I've been testing it with Goldwave and Audacity. Former one has an option to save the file in ascii .txt format, where the data is in form, which the Feeltech's software accepts(opening that text file and copying its content to the text window).

So, although it has its limitations, if one wants to make custom waveforms, which have an exact ratio between them(for example, 1 Hz sine wave modulated with something like 32 Hz square wave), this is one way to do it.

Offline sorveltaja

  • Hero Member
  • *****
  • Posts: 605
I've been testing yet another way to make waveforms - by using 2D point cloud(well not much of a cloud, as it's a flat one), made of some random silhouette picture:



But when trying to use more regular shapes, like these(Rhino_points.jpg):



there is some odd factor that makes the vertical, or Y-values 'exaggerated', to look like this:



I've used Rhinoceros to make the point cloud, and tried to scale that shape down vertically, but it doesn't seem to have any effect to the end result.

Perhaps it has to do with ratio between horizontal (X) sampling(8192 points) and vertical (where Y has a range between 1.0 and -1.0, using 16 digits), not sure at this point.
------
sort of an off-topic:

There is also one thing about ascii point cloud format, that I haven't noticed before - seemingly erratic order of X and Y values. But it might be possible to re-arrange those values, when transferring data between programs.

More about that later, perhaps.



« Last Edit: October 23, 2023, 05:47:36 PM by sorveltaja »

Offline sorveltaja

  • Hero Member
  • *****
  • Posts: 605
This is about one of my noob 'aha' -moments. As I mentioned in previous post, that the  waveform which I made has exaggerated Y-values, when looked on the scope - it's just an example of subjective (the way I want it to be) vs objective view(the way it is, no matter what my take on it is).

Anyway, it's similar to looking at, say 1Khz sine wave on the scope, and scaling scopes x and y values(correct terms escape me) to whatever one chooses - there are at least two variables involved, which dictate how it shows on the scope.

So, after all, maybe there is some chance to create arbitrary waveforms, by using methods mentioned earlier for this device.
« Last Edit: October 23, 2023, 05:48:16 PM by sorveltaja »

Offline Joules

  • Hero Member
  • *****
  • Posts: 1271
  • Country: gb
 :thumbup: From a fellow Rhino user, what format do you export the Rhino data in ? Try a full size pulse (approx x2 the signal height you are trying to display) and see if they keep their proportions now.  As you say it appears to be a scaling issue with the software loading the FY6900, perhaps taking the highest point as reference, my guess.
Honour your mentors, and pay it forward.

Offline sorveltaja

  • Hero Member
  • *****
  • Posts: 605
:thumbup: From a fellow Rhino user, what format do you export the Rhino data in ? Try a full size pulse (approx x2 the signal height you are trying to display) and see if they keep their proportions now.  As you say it appears to be a scaling issue with the software loading the FY6900, perhaps taking the highest point as reference, my guess.

I don't remember exact details, but I used just a .txt file format to export the data. Depending on what other application/program is (to which that data is imported/fed or whatever), there is usually a need to replace commas with points(or remove quotation marks), so .txt file format may - and usually will have countless formats in itself.

There are, again, countless options to transfer data between programs. And when one is testing things, there are no readily made or automated solutions, so the needed conversion is tested manually to see what works. That's what I did by using text editors like Excel, Openoffice, or even Notepad.

But yeah, when there are quite a few things involved/to consider(softwares and hardware(like a scope)), there is always possibility to misunderstand the results at some point(as I've already demonstrated).