Friday, November 6, 2009

Eureka!



Well.... I've finally managed to acquire a waveform... Granted, it is only the positive side of the waveform... I would need a splitter from the freq generator, and take the other lead and plug it into AI1 and then take the "lead ground" and put it to positive voltage source so the negative part of the waveform has a potential sink. Not really worth trying to figure that out currently, but it would be child's play if need be. As you can see, I'm losing precision in the sampling, but I ran out of time to figure out if it was from forcing the data to a lower precision, or I had max'd out the precision on the A/D.


Well.. Now I am off to the next part of this project, and that is quite exciting.


Coincidentally, I did goto NITS in huntsville, al this past tuesday. Stands for National Instruments Technical (or training?) Symposium. I learned a lot of very interesting things, but most of the juicy information wasn't "how do I do this" kind of scenario. It was picking up the little nuances of Labview that would trip the newbie up. For example, if you use a while loop in your FPGA code, it will throw your loop timing completely off, as the while loop takes quite a few clock cycles to actually work, where a special timed loop forces it to run on clock speed. The list goes on, but alas, my time has come to a close for today.

Au Revoir Mon/Ma Amie!

-Kyle

Friday, October 2, 2009

Real Time continued


Alright. I've been away for a bit. Was sick, and then had a car show... The break has given me some fresh air to hit it hard when I came back...


I've been working on the real time module to work at getting some samples from the frequency generator I have hooked up to the sbRIO board. It looks promising, but there are soo many layers with funky timing that it seems a little convoluted. Anyways... The real time wizard spits out a project explorer that I then went and dumped in an FPGA vi to acquire some data from the AIO port on the sbRIO board. Then the data input, I linked into the shared variable engine which let me tie that data up to a variable that can be accessed on a higher level VI, which can then be manipulated with the whole control palette instead of the limited FPGA stuff. I'm still a bit floundering in the dark, so I posted my progress on the ni forums to maybe get some insight about what I am doing right/wrong. I'll post my post recent project explorer so you can see kind of how the realtime project flows.

Friday, August 21, 2009

Real Time

I think I am kind of geared in the right direction by doing a real-time measurement. When I go into the real time wizard though, and it completes the wizard, it throws some error about missing some Variable timing engine. I looked it up online, and it says you need to install it through MAX. I went into MAX, and it is already installed. Not quite sure.. I love errors that compound my confusion.

Friday, August 14, 2009

Frustrating

I'm banging my head against the wall a bit, but that's nothing new... Trying to wrap my mind around the whole idea of getting some data up to the host vi, let alone putting it into a more useable format that just an indictaor... The getting started guide wasn't much help when it talks about waveforms, as it sees a continuous stream of data, where I will be waiting for the FIFO buffer to fill up, assert interrupt request, pass data up to host vi, then concatecate the data into an array, and then spit it into some useful waveform, or distribution, or plot, or some psuedo-oscilliscope.

Anyways, that's enough of my ranting.. Until next friday.

-Kyle

Friday, July 31, 2009

What's the frequency Kenneth?

So yeah, the subject is the name of a REM song. It was big when I was a teenager. Anyways..

Dr. He and I had a little chat today. Kinda got me going in a better direction. I broke out the signal generator, and hooked it up to one of the analog inputs. That wasn't the hard part.

I even got the FGPA VI done for it. Working on the Host VI side of it though. Getting the data seems to be pretty easy, but getting it into a workable form is another story. Since it is sampled data, it is a digital signal so to speak. Here is where I'm lacking a bit of knowledge.. Do I dump the digital signal into a 1D array, then generate a waveform? Or is there a way to take the digital data, and drop it straight out to a waveform that I can see? Still working on that.. Until next friday.

-Kyle

Friday, July 24, 2009

Progresso

Soo.... John had a lot of questions today, and we worked on a couple VIs. This capturing sound idea is quite a bit to chew. Just taking in a lot of information, and it is taking me down some complex roads. We'll get there though, or at least have a pretty good understanding of why we can't get there. Pick one.

Have a great weekend.

-Kyle

push it to the limit

So today we did a lot of research and conversations about things we were working on. I will post the updated VI from before for download as an edit to this blog entry later.

fixed the blinkers


With the help of Kyle we figured out that since we were plugged into the digital I/O and the high pins we needed to change the vi somewhat to reflect this. This sort of thinking about problems helps. We must remember that we are not only writing code (or perhaps drawing it in this case), we are also interacting with an electronic circuit board. Picture of the VI is included.

Thursday, July 23, 2009

Good information on data acquisition from fpga's

In my research I came across a helpful example showing a host file doing data acquisition. The downloadable file was written in labview 8.6 which is incompatible with 8.5 but the pictures of the block diagram are none-the-less interesting.

http://decibel.ni.com/content/docs/DOC-4048

Friday, July 17, 2009

What I've been doing this week

I am posting what I have been working on this week. Hopefully it makes sense to some people. I have included a link to download all of the files I have been working on.

Sound Acquisition

Hope you enjoy!

learning FPGA's

For anyone learning LabVIEW FPGA I recommend the NI demo that was recommended to Kyle. It offers a good groundwork to work from that helps the user understand what the wizard creates and how each piece works together. I have included the link for future reference.

http://www.ni.com/swf/presentation/us/labview/lvfpga/default.htm

Analog sampling, so it begins

Just reading through some tutorials about analog sampling.. Great buzz words for sampling are sampling rate, Nyquist's thereom, quantization, and dithering.

http://zone.ni.com/wv/app/doc/p/id/wv-291

Also, here is what I have been going through today as well:
http://zone.ni.com/devzone/cda/tut/p/id/3405

Quite a lot to learn.

-Kyle

Friday, July 10, 2009

Moving on to Rock -n- Roll Sampling

Alright.. John and I had a good talk with Dr. He today regarding next steps, and a little proof of concept on LEDs.

Next milestone so to speak.. The ultimate goal is to sample a sound card out of a computer.
That has a lot of facets, of which, I need to explore exactly how to do it. Just a sampler of requisites for sampling sound is: For accurate measurements, the sampling rate of the system should be at least twice the frequency of the signals being acquired. Pulled that off the NI website. (http://zone.ni.com/devzone/cda/tut/p/id/7110#toc1)

Then from there, off to photomultipliers, and sampling them, but that would be getting ahead of ourselves. Anyways... I'm off to do some more research on sampling sound. I'm going to start on the above link, and follow the proverbial rabbit hole.

-Kyle

Friday, June 26, 2009

Kyle University

http://www.ni.com/swf/presentation/us/labview/lvfpga/default.htm

Okay, I am showing john this great presentation, the first part of it is pretty useless, but once you get down to the demos it has some real juicy information. We went through this presentation with lots of stops to show nuances within labview, and the subtle differences that a labview operator is aware of.

Friday, June 19, 2009

Friday......

Boy is it hot outside... Glad to get inside, and cooled down.

Haven't made a lot of show able progress today, but I've been going through a lot of FPGA documentation on the Developer Zone on NI's website. Learning a bit more about DMA FIFO memory access, as well as using interrupts. Basically... You compile an FPGA VI to get a specified amount of data from a channel, let's say.. Collect 5 analog samples of a temperature sensor, when it has 5 samples, the FPGA VI, sends it up to the Host VI. Host VI then says, okay, this temperature is out of spec, let's compare it to the last couple values. Okay, it has been out of spec for 6 cycles, therefore, I want to open the cooling valve by Pi()/64 radians, which sends this procedure to a sub-VI that opens the cooling valve a little bit. Once that Sub-VI is done, it goes back to the Host VI, and says, ok, I'm done. The Host VI says, okay, in order for the system to return to steady state from the transient state I just put it in, I need to wait 40 seconds. So... Wait 40 seconds... Then, go back to FPGA VI, and take more samples.. Repeat...

Makes sense to me...

-Kyle

Friday, June 12, 2009

Okay, so the digital LED went well.... but....


I have struggled a bit after getting the digital LED thing going... I thought I was going to jump right into other stuff... As the day wound down, I ended up going with an analog LED VI.. Right around 1.8 volts the LED starts to come on, but is very dim.. After 2 volts, it doesn't really get any brighter, and the rail is like 16volts..

Anyways, here is the VI for it.

Tada........



Well... Here it is.. Wish I had a video camera to show you, but this is the blinking LED. I put it so it is logic 1 for 500ms, and logic 0 for 500ms, so it blinks on and off once per second.. I thought about going through gyrations of speeding up the blinking light, and slowing it down, or even putting it on a random number generator, but I think I got the premise down, and time to move on to bigger and better things.

Let's see about doing a little digital input!

-Kyle

Friday, June 5, 2009

Another week goes by, and progress it is!!!!


This is what I go so far.. It makes the LED blink on and off like I want, but not at the rate at which I want... I did notice though that when you pull the digital output to ground on the multi-meter, that the voltage is not the logic 5v I expected, but right at the point where its leading edge is high enough to push it into the 1 slot,, 3.2 volts or whatever...

-Kyle

Friday, May 29, 2009

Getting there......


This is the simple VI I built, and if I put a boolean true on the DO(Port0/DIO1) shouldn't it then light up the LED if I have the other lead on the LED going to GND? Also, vice versa for if I put a boolean false?

I posted in the thread on NIs website to get some more info.

-Kyle

Wednesday, May 27, 2009

help in labview


So this is interesting. I found it here, a thread Kyle started, I am assuming given his description of events, and I have continued. Going through these help files should be helpful. It is explained in the thread that whatever is suitable for the compactRIO should be suitable for the sbRIO as well. This may explain why when creating the FPGA project it always has a window that says "discovering compactRIO" even though we lack that hardware.

learning

Some days I feel like NI not only wants our money for Labview and the sbrio's but also doesn't mind taking it for lessons on how to use said hardware and software. I found this online tutorial that is somewhat less of a tutorial and somewhat more of a "buy our product" presentation, however! The pictures are worth a look. I have included a link.

~ John

Friday, May 22, 2009

buttons

So I don't think the button we have is suited for our needs. It should switch to turn on and switch to turn off. I wasn't able to get a resistance reading off it on the multimeter which leads me to believe it may be broken inside as well. Any help on this would be appreciated. ~ John
I hit the jackpot. The nice fellow who pointed me in the right direction in the forums send me to this awesome place that has FPGA learning stuff out the ying!

http://zone.ni.com/devzone/cda/tut/p/id/3555#toc0

I've printed out the first 3 powerpoints for my viewing, I'll leave whatever I'm done with on the same desk as the sbRIO board. Or just print/view them yourself... I will be posting interesting things from these powerpoints because I think they have pretty much everything we are going to need to get off the ground.

-Kyle
Interesting read as one of the benefits of FGPA Logic in LabVIEW
-Multi-loop analog PID loop rates exceed 100kHz on embedded RIO FPGA hardware.

Excerpt from the below wiki:

The PID controller calculation (algorithm) involves three separate parameters; the proportional, the integral and derivative values. The proportional value determines the reaction to the current error, the integral value determines the reaction based on the sum of recent errors, and the derivative value determines the reaction based on the rate at which the error has been changing. The weighted sum of these three actions is used to adjust the process via a control element such as the position of a control valve or the power supply of a heating element.

http://en.wikipedia.org/wiki/PID_controller

Another something I learned

If your wires are broken when you attach them it is because the output from one device is not the same as the input of the same device. So if you have a 3x3 matrix output you cannot input that into a Boolean device. See attached screen shots.

WRONG


RIGHT

Thursday, May 21, 2009

walkthrough on NI website

So I found this:

http://zone.ni.com/devzone/cda/tut/p/id/6359

on the NI website while surfing to find help to create a input program that would display the input on screen in some sort of graph. I think this zone.ni.com website might be helpful in the future. This particular page seems to be heading me in the right direction. I'll keep us posted.

Edit: When trying to utilize this it was less than helpful. Hopefully someone can pull something from this article.

Tuesday, May 19, 2009

An Idea I Have Been Thinking About

We should enable remote desktop on the PC in 256. This would enable all of us to work from home, elsewhere in school, China, etc. This would give us more the ability to have more face time with labview and if and when we get busy, the ability to continue working without having to show up. Kyle would be able to work more during the week if he chose to do so, I would be able to work more while I am working at Emory because I wouldn't have to come to school to work. Dr. He will be able to work from China if he so chooses. Just an idea on how to be more productive, for free I might add!

Edit: In an effort to be helpful I have included a link detailing how to set it up on the PC. Forwarding the ports would have to a job left to the network administrator.

http://www.microsoft.com/windowsXp/using/mobility/getstarted/Remoteintro.mspx

Monday, May 18, 2009

Running Amuck

John and I have been running amuck on the RIO board.
http://www.thefreedictionary.com/Running+Amuck

At least it feels like it sometimes...

There there is quite a lot of information to absorb. Each friday though, when I leave, I feel I have a better understanding of the board. Hopefully, we will make a breakthrough that will give us the clear understanding to manipulate this versatile board. We hope to have a Christmas tree by the end of May!

-Kyle

Friday, May 15, 2009

First entry to this blog, hexc

This blog is mainly for the advanced physics lab projects at Georgia State University.   Currently, students are working on a National Instrument RIO board with LabView.  We will use this blog as the main format for documenting the progresses to be made.