That looks amazing. I am not familiar with the electrical workings or the concept behind how it works. After watching the video, it looks like it could be used as a very accurate tracking system. I have been trying to develop an electronic dartboard scoring system for steel darts (without using video). Could this work for that purpose? How accurate could it pinpoint a dart’s position? Would it be able to read multiple dart hits (three dart)?
That looks amazing. I am not familiar with the electrical workings or the concept behind how it works. After watching the video, it looks like it could be used as a very accurate tracking system. I have been trying to develop an electronic dartboard scoring system for steel darts (without using video). Could this work for that purpose? How accurate could it pinpoint a dart’s position? Would it be able to read multiple dart hits (three dart)?
I don't know. Hopefully!
There's lots of work to be done to figure these things out.
I've been expanding the streamer to handle ADC input and DAC output. So this effort is part of that.
Just checking streamer/PWM etc, - from memory, you have a some smart pin modes with jitter/dither, where the LSB is modulated to get higher averaged apparent precision ?
Does that also work in PWM modes ? Or, can the streamer feed a small repeating array (eg 16/32/64) to a smart pin, at 100Khz~1MHz rates ? ?
Similar to video I guess, but in PWM domain.
The use here is digital power controllers, that need finer control, but the 180MHz~250MHz gives 4ns granularity - which can be too coarse.
eg you might set a 8 bit period for 256MHz -> 1MHz switching, and 32 step fractional dither allows 13 bit precision of average out. (dither still ultrasonic)
or 9 bits from 256MHz gives 500kHz and 16 step dither also allows 13 bit precision.
What triggered this, was this OnSemi press release
Those FDMF3170/FDMF3172/FDMF3180 Power Modules look very well suited to connect to a P2. Analog Temperature and Current feedback signals, and 50~70A peak switching currents, for sub $2
Jmg, the only dithering we have now is toggling between adjacent DAC values to increase the DAC's resolution.
Very cool idea about dithering PWM digitally. Might be too late for that, but I'll look into it. The streamer is torn apart right now and getting put back together soon. I'll consider there, too. There may be some room for some kind of dithering there. We'll see.
Jmg, the only dithering we have now is toggling between adjacent DAC values to increase the DAC's resolution.
Very cool idea about dithering PWM digitally. Might be too late for that, but I'll look into it. The streamer is torn apart right now and getting put back together soon. I'll consider there, too. There may be some room for some kind of dithering there. We'll see.
What about streamer repeating some small array to the smart pin pwm ? That may give a workaround & allow users to select any dither patterns they like. (tho this does limit the total channels possible)
I think the streamer can repeat any size/start, but when it says 'to the pins' it's less clear which aspects of the smart pins it can / cannot reach ?
Jmg, the only dithering we have now is toggling between adjacent DAC values to increase the DAC's resolution.
Very cool idea about dithering PWM digitally. Might be too late for that, but I'll look into it. The streamer is torn apart right now and getting put back together soon. I'll consider there, too. There may be some room for some kind of dithering there. We'll see.
What about streamer repeating some small array to the smart pin pwm ? That may give a workaround & allow users to select any dither patterns they like. (tho this does limit the total channels possible)
I think the streamer can repeat any size/start, but when it says 'to the pins' it's less clear which aspects of the smart pins it can / cannot reach ?
The streamer talks straight to pins and DAC channels. To have it talk to smart pins would mean that you'd better not talk to smart pins in software, also, because there'd be a conflict. Neat idea though. Kind of a function multiplier.
The streamer talks straight to pins and DAC channels. To have it talk to smart pins would mean that you'd better not talk to smart pins in software, also, because there'd be a conflict. Neat idea though. Kind of a function multiplier.
Another approach could be to generate an interrupt on the PWM cycle end, and update the PWM settings on a per-cycle basis (SW dither). There are 256/512 etc cycles for this, time enough for a compact interrupt.
This would need well-behaved buffering on PWM value/compare, & it's unclear if a smart pin event like PWM period done, can connect to interrupts ?
The streamer talks straight to pins and DAC channels. To have it talk to smart pins would mean that you'd better not talk to smart pins in software, also, because there'd be a conflict. Neat idea though. Kind of a function multiplier.
Another approach could be to generate an interrupt on the PWM cycle end, and update the PWM settings on a per-cycle basis (SW dither). There are 256/512 etc cycles for this, time enough for a compact interrupt.
This would need well-behaved buffering on PWM value/compare, & it's unclear if a smart pin event like PWM period done, can connect to interrupts ?
Yes, smart pins can generate interrupts. For that matter, you could do the dithering in software.
I forgot to add, if you pick a frequency that's a prime number near the multiple of 60hz, you'll never get a beat frequency.
Good to know that.
It's what Segway did with the gears in their ride-on gizmo. It prevented resonant oscillations due to the gears being multiples of a common divisor. I figure the same would work with RF, since the right prime will never have a cycle that coincides with 60Hz.
The streamer talks straight to pins and DAC channels. To have it talk to smart pins would mean that you'd better not talk to smart pins in software, also, because there'd be a conflict. Neat idea though. Kind of a function multiplier.
Another approach could be to generate an interrupt on the PWM cycle end, and update the PWM settings on a per-cycle basis (SW dither). There are 256/512 etc cycles for this, time enough for a compact interrupt.
This would need well-behaved buffering on PWM value/compare, & it's unclear if a smart pin event like PWM period done, can connect to interrupts ?
Yes, smart pins can generate interrupts. For that matter, you could do the dithering in software.
Yes, that is what the interrupt is for (SW dither), as the dither needs to be cycle-sync'd.
The streamer talks straight to pins and DAC channels. To have it talk to smart pins would mean that you'd better not talk to smart pins in software, also, because there'd be a conflict. Neat idea though. Kind of a function multiplier.
Another approach could be to generate an interrupt on the PWM cycle end, and update the PWM settings on a per-cycle basis (SW dither). There are 256/512 etc cycles for this, time enough for a compact interrupt.
This would need well-behaved buffering on PWM value/compare, & it's unclear if a smart pin event like PWM period done, can connect to interrupts ?
Yes, smart pins can generate interrupts. For that matter, you could do the dithering in software.
Yes, that is what the interrupt is for (SW dither), as the dither needs to be cycle-sync'd.
Yes. The PWM output value is double-buffered, so you have a whole PWM cycle to come up with the next value.
P16 = Goertzel Reference signal
P12 = Adhustable sample signal
P8 = Goertzel in
I have linked P8 to P12 via 270R resistor.
Use PST to control the phase & amplitude of the sample signal.
To start press 'enter' in PSST.
You then need to scale the rho output by:
Press 'x' to reset rho min/max/range values
press '0a' to set amplitude to 0%
press 'm' or '100a' to set amplitude to 100%
Then '<' and '>' to adjust phase
'd' and 'u' to adjust amplitude
I'm running long simulations now to see if higher bias in the front end results in better precision. I'm on the 2nd simulation that takes an hour now.
I tried speeding up the front end, but to no avail. I can bias it up, though, to get more swing out of the WOTAs (wide-output transconductance amps), which should amount to increased resolving power. I'm hoping the simulation results on the current ADC design (that is being simulated now) will show 11-bit quality. If it does, that will be a good indication that I've got a hold on the current performance. The 3x-biased-up version that I simulated already showed not even a 1-count difference over two spans of 15,000 samples. I need to see higher error in the one simulating now. We'll see.
Sorry for the late reply but referencing the post where you said "... No need for foil or ground, necessarily. You just need conductors to establish a field and then some pin or pins to read the field strength and phase..."
I did something similar only on a large scale using two Propeller 1's about 50 feet from one another on the edge of a Bluff at Lake Michigan to determine the location of our cottage from the beach. (<-- Cottage not visible from the beach) Each propeller only had about a 6 inch Ariel running at two different frequencies close to a carrier frequency I was able to tune in with a digital short wave radio. The beat frequency of the two Propellers was audible on the receiver. As I walked along the beach 140 feet below the bluff with the short wave radio the audible signal was only present when I was somewhere within the two Propeller beacons with the signal strength being the strongest when I was located at the midpoint of the two beacons. If I were to look at the signal on a scope you would be able to visually see the phase shifting and signal strength as I moved from one beacon to the other.
Expanding on this concept, if you had 4 transmitter antennas or conductors with a center receiver where only 2 adjacent conductors were energized at any given time, using a round robin approach for all pairs. Then taking the sin and cosine of each pair would provide direction while the hypotenuse (<- effectively the I Q product) would provide the relative signal strength.
Beau, I don't know if you realized from that demo, but there were four live phases and a single receiver. The receiver would get proportional sine on the vertical and cosine on the horizontal. The X,Y scope was showing the raw (cosine, sine) accumulator values, shifted down somewhat to get rid of the noisier bits.
I saw that... wasn't sure if all four phases were active. On a budget you could still do it with only two adjacent conductors active at a time. Either way take the sqrt(sin^2 + cos^2) to determine signal strength regardless of the X or Y position. The hypotenuse should give reliable Z axis information.
"I want to set this up in a room. Call it personal local positioning. " - mount your foil pattern about a foot from the top of the ceiling.
You can also reverse think this entire thing, and have one transmitter with multiple receiving antennas. I worked on a project with a hospital that used something like this to monitor equipment location. The receiver's were drop down PoE devices designed to look at the signal strength of a particular signal. by triangulation of the signal strength from multiple known points the position could be calculated. Fortunately I didn't need to figure out the math, I just made the PoE devices for them. I made several hundred PoE's for them, so I assume it worked well for them.
I have an idea to reduce the phase-shift problem with the ADC during Goertzel use:
Instead of using the ADC, configure the pin for logic input with 150k negative feedback. This will balance the pin near the threshold, so that it can easily be bumped up and down at the radio frequency.
I have an idea to reduce the phase-shift problem with the ADC during Goertzel use:
Instead of using the ADC, configure the pin for logic input with 150k negative feedback. This will balance the pain near the threshold, so that it can easily be bumped up and down at the radio frequency.
Use:
WRPIN ##%0000_001011011_00_00000_0,pin
I'm testing this now.
First test @ 2MHz is showing a 5 degree reduction in phase error.
Seems to be more jitter in theta and rho values seem to be coarser now.
I have an idea to reduce the phase-shift problem with the ADC during Goertzel use:
Instead of using the ADC, configure the pin for logic input with 150k negative feedback. This will balance the pain near the threshold, so that it can easily be bumped up and down at the radio frequency.
Use:
WRPIN ##%0000_001011011_00_00000_0,pin
I'm testing this now.
First test @ 2MHz is showing a 5 degree reduction in phase error.
Seems to be more jitter in theta and rho values seem to be coarser now.
Makes sense. Was worth a try, though. Thanks for checking that out, OzPropDev.
Comments
There's a way to achieve this using DAC (to set threshold) and comparator though, right?
I'm pretty sure we worked out how to do fast 1v8 interfacing. It just didn't involve the ADC
Good to know that.
I don't know. Hopefully!
There's lots of work to be done to figure these things out.
Just checking streamer/PWM etc, - from memory, you have a some smart pin modes with jitter/dither, where the LSB is modulated to get higher averaged apparent precision ?
Does that also work in PWM modes ? Or, can the streamer feed a small repeating array (eg 16/32/64) to a smart pin, at 100Khz~1MHz rates ? ?
Similar to video I guess, but in PWM domain.
The use here is digital power controllers, that need finer control, but the 180MHz~250MHz gives 4ns granularity - which can be too coarse.
eg you might set a 8 bit period for 256MHz -> 1MHz switching, and 32 step fractional dither allows 13 bit precision of average out. (dither still ultrasonic)
or 9 bits from 256MHz gives 500kHz and 16 step dither also allows 13 bit precision.
What triggered this, was this OnSemi press release
Those FDMF3170/FDMF3172/FDMF3180 Power Modules look very well suited to connect to a P2. Analog Temperature and Current feedback signals, and 50~70A peak switching currents, for sub $2
Very cool idea about dithering PWM digitally. Might be too late for that, but I'll look into it. The streamer is torn apart right now and getting put back together soon. I'll consider there, too. There may be some room for some kind of dithering there. We'll see.
What about streamer repeating some small array to the smart pin pwm ? That may give a workaround & allow users to select any dither patterns they like. (tho this does limit the total channels possible)
I think the streamer can repeat any size/start, but when it says 'to the pins' it's less clear which aspects of the smart pins it can / cannot reach ?
The streamer talks straight to pins and DAC channels. To have it talk to smart pins would mean that you'd better not talk to smart pins in software, also, because there'd be a conflict. Neat idea though. Kind of a function multiplier.
Another approach could be to generate an interrupt on the PWM cycle end, and update the PWM settings on a per-cycle basis (SW dither). There are 256/512 etc cycles for this, time enough for a compact interrupt.
This would need well-behaved buffering on PWM value/compare, & it's unclear if a smart pin event like PWM period done, can connect to interrupts ?
Yes, smart pins can generate interrupts. For that matter, you could do the dithering in software.
It's what Segway did with the gears in their ride-on gizmo. It prevented resonant oscillations due to the gears being multiples of a common divisor. I figure the same would work with RF, since the right prime will never have a cycle that coincides with 60Hz.
Yes, that is what the interrupt is for (SW dither), as the dither needs to be cycle-sync'd.
Yes. The PWM output value is double-buffered, so you have a whole PWM cycle to come up with the next value.
Here's my Goertzel test code with VGA output and PST control.
These are some of the phase errors i'm seeing here P16 = Goertzel Reference signal
P12 = Adhustable sample signal
P8 = Goertzel in
I have linked P8 to P12 via 270R resistor.
Use PST to control the phase & amplitude of the sample signal.
To start press 'enter' in PSST.
You then need to scale the rho output by:
Press 'x' to reset rho min/max/range values
press '0a' to set amplitude to 0%
press 'm' or '100a' to set amplitude to 100%
Then '<' and '>' to adjust phase
'd' and 'u' to adjust amplitude
Here's a capture of PST output
I'm running long simulations now to see if higher bias in the front end results in better precision. I'm on the 2nd simulation that takes an hour now.
I tried speeding up the front end, but to no avail. I can bias it up, though, to get more swing out of the WOTAs (wide-output transconductance amps), which should amount to increased resolving power. I'm hoping the simulation results on the current ADC design (that is being simulated now) will show 11-bit quality. If it does, that will be a good indication that I've got a hold on the current performance. The 3x-biased-up version that I simulated already showed not even a 1-count difference over two spans of 15,000 samples. I need to see higher error in the one simulating now. We'll see.
No.
Sorry for the late reply but referencing the post where you said "... No need for foil or ground, necessarily. You just need conductors to establish a field and then some pin or pins to read the field strength and phase..."
I did something similar only on a large scale using two Propeller 1's about 50 feet from one another on the edge of a Bluff at Lake Michigan to determine the location of our cottage from the beach. (<-- Cottage not visible from the beach) Each propeller only had about a 6 inch Ariel running at two different frequencies close to a carrier frequency I was able to tune in with a digital short wave radio. The beat frequency of the two Propellers was audible on the receiver. As I walked along the beach 140 feet below the bluff with the short wave radio the audible signal was only present when I was somewhere within the two Propeller beacons with the signal strength being the strongest when I was located at the midpoint of the two beacons. If I were to look at the signal on a scope you would be able to visually see the phase shifting and signal strength as I moved from one beacon to the other.
Expanding on this concept, if you had 4 transmitter antennas or conductors with a center receiver where only 2 adjacent conductors were energized at any given time, using a round robin approach for all pairs. Then taking the sin and cosine of each pair would provide direction while the hypotenuse (<- effectively the I Q product) would provide the relative signal strength.
You can also reverse think this entire thing, and have one transmitter with multiple receiving antennas. I worked on a project with a hospital that used something like this to monitor equipment location. The receiver's were drop down PoE devices designed to look at the signal strength of a particular signal. by triangulation of the signal strength from multiple known points the position could be calculated. Fortunately I didn't need to figure out the math, I just made the PoE devices for them. I made several hundred PoE's for them, so I assume it worked well for them.
I have an idea to reduce the phase-shift problem with the ADC during Goertzel use:
Instead of using the ADC, configure the pin for logic input with 150k negative feedback. This will balance the pin near the threshold, so that it can easily be bumped up and down at the radio frequency.
Use:
WRPIN ##%0000_001011011_00_00000_0,pin
Or wear a tinfoil hat!
I'm testing this now.
First test @ 2MHz is showing a 5 degree reduction in phase error.
Seems to be more jitter in theta and rho values seem to be coarser now.
Makes sense. Was worth a try, though. Thanks for checking that out, OzPropDev.