Author Topic: Does this exist (and if not, is it a good idea)?  (Read 1695 times)

0 Members and 1 Guest are viewing this topic.

Offline injbTopic starter

  • Regular Contributor
  • *
  • Posts: 64
Does this exist (and if not, is it a good idea)?
« on: November 30, 2018, 07:13:03 pm »
I'm a bit of a noob, so I'll have to try and describe the thing I'm looking for: an API-controlled multi-channel signal generator. In other words, I'd like to be able to create multiple arbitrary waveforms, to be generated on separate channels, and then write a program to control them. The idea of having an API is so that I can define arbitrary relationships between the various signals. I might want one (or more) of them to have a certain phase or frequency relationship to another etc.

Does anything like this exist? It seems to me like it would be very useful if you want to mimic the signals generated by some piece of machinery etc. (which is exactly what I want it for).
 

Online Fungus

  • Super Contributor
  • ***
  • Posts: 16650
  • Country: 00
Re: Does this exist (and if not, is it a good idea)?
« Reply #1 on: November 30, 2018, 07:15:34 pm »
Yes, it's called a "PC sound card".
 

Offline glarsson

  • Frequent Contributor
  • **
  • Posts: 814
  • Country: se
Re: Does this exist (and if not, is it a good idea)?
« Reply #2 on: November 30, 2018, 07:20:20 pm »
Yes, multichannel arbitrary function generators can do this.

The TTI TGA12104, as an example, can generate four arbitrary waveforms at the same time. The channels can trigger each other and be synchronized and summed in various ways. If more than four channels are needed then several units can be connected together.

https://www.aimtti.com/product-category/arbitrary-generators/aim-tga12100series
 

Offline helius

  • Super Contributor
  • ***
  • Posts: 3642
  • Country: us
Re: Does this exist (and if not, is it a good idea)?
« Reply #3 on: November 30, 2018, 07:22:13 pm »
For a more professional market, you are looking at Multifunction IO (MIO) cards. The major name in this category is National Instruments, but there are many others. The cards have both digital and analog IO, which means that it can generate arbitrary (time-aligned) signals in both the digital and analog domain, as well as receive signals as inputs to your program. The cards can be programmed in LabView (from NI) and with lower-level APIs in your own software.
 

Online tautech

  • Super Contributor
  • ***
  • Posts: 28378
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Does this exist (and if not, is it a good idea)?
« Reply #4 on: November 30, 2018, 07:37:30 pm »
I'm a bit of a noob, so I'll have to try and describe the thing I'm looking for: an API-controlled multi-channel signal generator. In other words, I'd like to be able to create multiple arbitrary waveforms, to be generated on separate channels, and then write a program to control them. The idea of having an API is so that I can define arbitrary relationships between the various signals. I might want one (or more) of them to have a certain phase or frequency relationship to another etc.

Does anything like this exist? It seems to me like it would be very useful if you want to mimic the signals generated by some piece of machinery etc. (which is exactly what I want it for).
Most of the 2ch AWG's can do this and provide 20V p-p HiZ or 10V p-p 50 Ohm outputs. With their trigger or sync outputs you can gang them together for as many channels as you need.
Have a squiz at one of the cheaper ones:
https://www.siglentamerica.com/waveform-generators/sdg1000x-series-functionarbitrary-waveform-generators/
Avid Rabid Hobbyist
Siglent Youtube channel: https://www.youtube.com/@SiglentVideo/videos
 

Online Fungus

  • Super Contributor
  • ***
  • Posts: 16650
  • Country: 00
Re: Does this exist (and if not, is it a good idea)?
« Reply #5 on: November 30, 2018, 07:46:34 pm »
It depends a lot on how many channels you want.

 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 11743
  • Country: us
Re: Does this exist (and if not, is it a good idea)?
« Reply #6 on: November 30, 2018, 07:59:22 pm »
OP, you don't provide enough detail to know if there is something that would work for your case but certainly there is hardware like you describe.   I have used some equipment that has had this feature internal.   One was an old 68??? HP development system for in-circuit microcontroller development.  There was a stimulus card with some number of digital probes that could be tied to your controller.  Many of the more modern logic analyzers support something similar.   

I 've seen some fairly large digital stimulus boards.  GEOTest used to make some fairly fast ones. 

I wanted to make an engine simulator for a motorcycle.  There are sensors on the engine to read crank and camshafts angle along with reading things like fuel and spark ignition signals.  All of this has to be done synchronous.   In this case, I rolled my own from scratch as it's a bit an odd ball application and I wanted something physically small.   If you are interested, I have a few videos showing it.

https://youtu.be/q_89qoFMivg?list=PLZSS2ajxhiQBvWvqMVLdRQMjGofKpQUJr&t=2203
   

Offline injbTopic starter

  • Regular Contributor
  • *
  • Posts: 64
Re: Does this exist (and if not, is it a good idea)?
« Reply #7 on: November 30, 2018, 08:36:38 pm »
Thanks for the replies everyone.

OP, you don't provide enough detail to know if there is something that would work for your case but certainly there is hardware like you describe.   I have used some equipment that has had this feature internal.   One was an old 68??? HP development system for in-circuit microcontroller development.  There was a stimulus card with some number of digital probes that could be tied to your controller.  Many of the more modern logic analyzers support something similar.   

I 've seen some fairly large digital stimulus boards.  GEOTest used to make some fairly fast ones. 

I wanted to make an engine simulator for a motorcycle.  There are sensors on the engine to read crank and camshafts angle along with reading things like fuel and spark ignition signals.  All of this has to be done synchronous.   In this case, I rolled my own from scratch as it's a bit an odd ball application and I wanted something physically small.   If you are interested, I have a few videos showing it.

https://youtu.be/q_89qoFMivg?list=PLZSS2ajxhiQBvWvqMVLdRQMjGofKpQUJr&t=2203
   

That's funny, you pretty much nailed exactly what I'm trying to do! I'm building an ignition timing monitor for my car, which is an older fuel injected car with no OBD or anything like that. So I need to feed the crank sensors and ignition pulse into a microcontroller and then calculate the spark advance as an angle.

This engine uses 2 VR crank sensors - one produces a single reference pulse once per rpm, the other produces a pulse for every flywheel tooth (130 teeth). Ideally I'd like to use both signals - the flywheel tooth sensor gives accurate angular measurement relative to the reference pulse so it's a good way to measure the ignition timing. That's how the ECU actually does it in fact. (But I might cheat and just use the reference pulse and the ignition pulse - then I can figure out the engine speed and convert the time difference into an angle.)

It would be really nice to be able to mimic these signals, but that means 3 signals where:

#1 is based on rpm
#2 is a multiple of #2
#3 is related to #1 in that it's phase advances as #1 frequency increases, but only within a limited range of advance.

I knew there were multi channel signal generators, but I couldn't imagine being able to define the relationship of signal #3 and #1 with a traditional interface made of knobs and buttons. Of course, I don't *need* to be able to just modulate one and have the others track it automatically - just being able to set the 3 signals up with the frequency and phase I want would be enough -  but it would be cool! Additionally, it's not worth buying an expensive tool for this in my particular case, since it's just a small hobby project.

I haven't watched your video yet but I'll definitely check it out.
« Last Edit: November 30, 2018, 08:39:37 pm by injb »
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 11743
  • Country: us
Re: Does this exist (and if not, is it a good idea)?
« Reply #8 on: November 30, 2018, 09:06:22 pm »
I never really made a general video showing the whole HIL simulator.  These may be better.  The first just shows the waveforms, the other you can get some idea what I can do with it.   I am using a production ECM and instrument cluster.   

I've seen people make simple waveform simulators just using a micro.   I am not sure what kind of resolution they have.  I've also seen people just use the real hardware with electric motors driving it.  They then have speed controllers for the motors.   Lot's of ways to skin it but being a bit of an electronics buff, I went this route.

The ECM's micro could measure the time between teeth and then based on time calculate the angle to an even finer resolution.  My engine controls are pretty barbaric.  You have a MAP, throttle position, air pressure and temperature is about it.  No crappy O2, let alone a wideband sensor.   

If you decide to start a blog, post a link to it.  I would be interested in following along.   I had a blog for mine but it looks like the site is no longer active. 


https://youtu.be/786ELUSXLP8?list=PLZSS2ajxhiQBvWvqMVLdRQMjGofKpQUJr


https://youtu.be/6PpAJeAurr4?list=PLZSS2ajxhiQBvWvqMVLdRQMjGofKpQUJr

Offline DaJMasta

  • Super Contributor
  • ***
  • Posts: 2298
  • Country: us
    • medpants.com
Re: Does this exist (and if not, is it a good idea)?
« Reply #9 on: November 30, 2018, 10:25:13 pm »
Another direction to consider is PXIe mainframes, Keysight's USB3 arb generators, and other more modern standalone generators which can be clocked from the same reference, externally triggered, and configured over LAN/SCPI.  You don't find a ton of outputs in a standalone unit, generally, but there are a number of units that you could put a dozen of in a rack and treat as one set of outputs if you needed that functionality.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf