<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Powerhouse Electronics</title>
	<atom:link href="http://ph-elec.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://ph-elec.com</link>
	<description>Powerhouse Eletronics</description>
	<lastBuildDate>Thu, 02 Feb 2012 03:45:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Comment on Automovtive Ultrasonic Hacking HowTo by James</title>
		<link>http://ph-elec.com/archives/ultrasonic-sensor-hacking-step-1/#comment-68</link>
		<dc:creator>James</dc:creator>
		<pubDate>Thu, 02 Feb 2012 03:45:08 +0000</pubDate>
		<guid isPermaLink="false">http://ph-elec2.com/?p=186#comment-68</guid>
		<description>RichD,

Yes and no.  Yes, the transmitting of commands and data to the sensor could be done using a standard UART Tx.  However, the return echo is not standard communications and would make no sense on a Rx pin of a UART.  The echo return from the sensor is in raw pulses that must be timed by the master CPU.

When probing the Bosch ECU and sensors, while they were being tricked into thinking they we actually operating in a vehicle, I saw two different initialization sets.  One set for the two outboard sensors and a different set for the middle two sensors.  In my code, I simply initialized all four sensors with the same block of data.  However, I included the unused senMidInit array for future use.

The two inboard sensors (or middle sensors) act very similar.  Well, for that matter, the two outboard sensors act similar too.  So, there is little reason to keep four sets of initialization patterns.  As a retired supplier to GM, I know it&#039;s hard enough to calibration two sets - four sets would just double the work.

Yes, the sensors in this demo are all from Bosch.  Last I knew, there were three suppliers of ultrasonic systems to GM.  In the old days (pre 2006) it was only Bosch.  My company was second which got started back in 2006.  Again, last I knew, all ultrasonic OEM supplies both the ECU and sensor as a calibrated set.  Otherwise, there would be too much finger pointing when things go bad.  Plus, each OEM holds their sensor intellectual property tight.

No, I have no way of knowing what the actual init bytes represent.  And yes, it would be cool to know.  My guess, the init bytes set gain values for different distances.  So, the middle sensors probably have a hotter set of gain values compared to the corner sensors.  All speculation on my part.  But it would be easy to test out by trying different values and then testing the sensor&#039;s ability to detect objects at different distances.

Good luck,
Jim</description>
		<content:encoded><![CDATA[<p>RichD,</p>
<p>Yes and no.  Yes, the transmitting of commands and data to the sensor could be done using a standard UART Tx.  However, the return echo is not standard communications and would make no sense on a Rx pin of a UART.  The echo return from the sensor is in raw pulses that must be timed by the master CPU.</p>
<p>When probing the Bosch ECU and sensors, while they were being tricked into thinking they we actually operating in a vehicle, I saw two different initialization sets.  One set for the two outboard sensors and a different set for the middle two sensors.  In my code, I simply initialized all four sensors with the same block of data.  However, I included the unused senMidInit array for future use.</p>
<p>The two inboard sensors (or middle sensors) act very similar.  Well, for that matter, the two outboard sensors act similar too.  So, there is little reason to keep four sets of initialization patterns.  As a retired supplier to GM, I know it&#8217;s hard enough to calibration two sets &#8211; four sets would just double the work.</p>
<p>Yes, the sensors in this demo are all from Bosch.  Last I knew, there were three suppliers of ultrasonic systems to GM.  In the old days (pre 2006) it was only Bosch.  My company was second which got started back in 2006.  Again, last I knew, all ultrasonic OEM supplies both the ECU and sensor as a calibrated set.  Otherwise, there would be too much finger pointing when things go bad.  Plus, each OEM holds their sensor intellectual property tight.</p>
<p>No, I have no way of knowing what the actual init bytes represent.  And yes, it would be cool to know.  My guess, the init bytes set gain values for different distances.  So, the middle sensors probably have a hotter set of gain values compared to the corner sensors.  All speculation on my part.  But it would be easy to test out by trying different values and then testing the sensor&#8217;s ability to detect objects at different distances.</p>
<p>Good luck,<br />
Jim</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Automovtive Ultrasonic Hacking HowTo by RichD</title>
		<link>http://ph-elec.com/archives/ultrasonic-sensor-hacking-step-1/#comment-67</link>
		<dc:creator>RichD</dc:creator>
		<pubDate>Thu, 02 Feb 2012 01:17:42 +0000</pubDate>
		<guid isPermaLink="false">http://ph-elec2.com/?p=186#comment-67</guid>
		<description>Thanks Jim!

Some questions about the initialization string:  I believe you said the init string appeared to be 9600 Baud serial data.  Could it be simulated with a standard serial port, (Tx channel only)?  In looking at the Logic Analyzer waveform it looks like it might be negative logic (i.e. low voltage is logic 1).  If your Logic Analyzer thinks the signal is standard serial port stuff, does it provide details like number of data bits, parity, stop bits, etc?

You define a table for senMidInit[], but I don&#039;t see it used anywhere in the code.  Apparently this table is for initializing the middle sensors?  Why do you suppose there are only 2 unique init strings instead of 4?

Are the sensor modules in this demo made by Bosch?  Somewhere I think you said GM uses Bosch sensor modules.  If so, does Bosch provide application data for their modules?  Knowing the purpose of the various bytes in the initialization string might be very useful.

RichD</description>
		<content:encoded><![CDATA[<p>Thanks Jim!</p>
<p>Some questions about the initialization string:  I believe you said the init string appeared to be 9600 Baud serial data.  Could it be simulated with a standard serial port, (Tx channel only)?  In looking at the Logic Analyzer waveform it looks like it might be negative logic (i.e. low voltage is logic 1).  If your Logic Analyzer thinks the signal is standard serial port stuff, does it provide details like number of data bits, parity, stop bits, etc?</p>
<p>You define a table for senMidInit[], but I don&#8217;t see it used anywhere in the code.  Apparently this table is for initializing the middle sensors?  Why do you suppose there are only 2 unique init strings instead of 4?</p>
<p>Are the sensor modules in this demo made by Bosch?  Somewhere I think you said GM uses Bosch sensor modules.  If so, does Bosch provide application data for their modules?  Knowing the purpose of the various bytes in the initialization string might be very useful.</p>
<p>RichD</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Automovtive Ultrasonic Hacking HowTo by James</title>
		<link>http://ph-elec.com/archives/ultrasonic-sensor-hacking-step-1/#comment-66</link>
		<dc:creator>James</dc:creator>
		<pubDate>Wed, 01 Feb 2012 14:24:38 +0000</pubDate>
		<guid isPermaLink="false">http://ph-elec2.com/?p=186#comment-66</guid>
		<description>RichD,

Very cool.  You gotta send me your source code with finished.  I&#039;ll create another page dedicated to Arduino with your source attached.

The Mbed source code I posted pings four sensors.  However, only the right sensor echos are measured.  This is done by attaching an interrupt to the rising and falling edge on the Rx line coming from the right sensor.  In the main loop, you can see the right sensor is pinged, then a 50ms loop runs to allow echos to come back.  The interrupt routines senRxIrqRise and senRxIrqFall capture timestamps into an array.  After 50ms in the main loop, any timestamps that have been captured are printed out.

The Mbed code above is not very good.  Looks like there is a bug in senRxIrqFall one the line &quot;tmrEchos[ indEchos++ ] = timer.read_us();&quot;.  This should have been (I think - it&#039;s been a while) &quot;tmrEchos[ indBuff ][ indEchos++ ] = timer.read_us();&quot;

So, all four sensors are pinged but only the right sensor&#039;s echos are captured and sent back to the PC through the serial port.  The Mbed code was just an attempt to get the hardware up and running and to prove echos could be captured.

Good luck and send more feedback with questions and your successes.  Would love to see pics of your Arduino talking to some sensors.

Hope this helps,
Jim</description>
		<content:encoded><![CDATA[<p>RichD,</p>
<p>Very cool.  You gotta send me your source code with finished.  I&#8217;ll create another page dedicated to Arduino with your source attached.</p>
<p>The Mbed source code I posted pings four sensors.  However, only the right sensor echos are measured.  This is done by attaching an interrupt to the rising and falling edge on the Rx line coming from the right sensor.  In the main loop, you can see the right sensor is pinged, then a 50ms loop runs to allow echos to come back.  The interrupt routines senRxIrqRise and senRxIrqFall capture timestamps into an array.  After 50ms in the main loop, any timestamps that have been captured are printed out.</p>
<p>The Mbed code above is not very good.  Looks like there is a bug in senRxIrqFall one the line &#8220;tmrEchos[ indEchos++ ] = timer.read_us();&#8221;.  This should have been (I think &#8211; it&#8217;s been a while) &#8220;tmrEchos[ indBuff ][ indEchos++ ] = timer.read_us();&#8221;</p>
<p>So, all four sensors are pinged but only the right sensor&#8217;s echos are captured and sent back to the PC through the serial port.  The Mbed code was just an attempt to get the hardware up and running and to prove echos could be captured.</p>
<p>Good luck and send more feedback with questions and your successes.  Would love to see pics of your Arduino talking to some sensors.</p>
<p>Hope this helps,<br />
Jim</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Automovtive Ultrasonic Hacking HowTo by RichD</title>
		<link>http://ph-elec.com/archives/ultrasonic-sensor-hacking-step-1/#comment-65</link>
		<dc:creator>RichD</dc:creator>
		<pubDate>Tue, 31 Jan 2012 23:14:57 +0000</pubDate>
		<guid isPermaLink="false">http://ph-elec2.com/?p=186#comment-65</guid>
		<description>I&#039;m trying to translate the Mbed code to Arduino (because that&#039;s what I have).  I understand most everything except &quot;senRxRIrq.rise&quot; and &quot;senRxRIrq.fall&quot;.  Are these functions for setting interrupt registers?

Best I can tell the Mbed is only exciting the sensor modules, measuring the time interval of the echo return is not included.  Correct?

RichD</description>
		<content:encoded><![CDATA[<p>I&#8217;m trying to translate the Mbed code to Arduino (because that&#8217;s what I have).  I understand most everything except &#8220;senRxRIrq.rise&#8221; and &#8220;senRxRIrq.fall&#8221;.  Are these functions for setting interrupt registers?</p>
<p>Best I can tell the Mbed is only exciting the sensor modules, measuring the time interval of the echo return is not included.  Correct?</p>
<p>RichD</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on STM32F4 + FreeRTOS + TRUEStudio = Awesome-O by James</title>
		<link>http://ph-elec.com/archives/stm32f4-freertos/#comment-64</link>
		<dc:creator>James</dc:creator>
		<pubDate>Fri, 27 Jan 2012 04:29:07 +0000</pubDate>
		<guid isPermaLink="false">http://ph-elec.com/?p=659#comment-64</guid>
		<description>JohnDS,

Wow, looks like you have done a lot of digging into floating point on the F4.

Here is a link to another forum that also has a lot of really good info about floating point + FreeRTOS:
http://sourceforge.net/projects/freertos/forums/forum/382005/topic/4761747

My source code was based on the work done by Thomas Kindler who is the moderator of the forum on SourceForge.  He&#039;s a good guy and very helpful.  He was the guy who sorted out how to get FreeRTOS to perform preemptive task switches on the F4 Discovery board while using floating point.  He appears to me to be a real expect on this stuff.

Jim</description>
		<content:encoded><![CDATA[<p>JohnDS,</p>
<p>Wow, looks like you have done a lot of digging into floating point on the F4.</p>
<p>Here is a link to another forum that also has a lot of really good info about floating point + FreeRTOS:<br />
<a href="http://sourceforge.net/projects/freertos/forums/forum/382005/topic/4761747" rel="nofollow">http://sourceforge.net/projects/freertos/forums/forum/382005/topic/4761747</a></p>
<p>My source code was based on the work done by Thomas Kindler who is the moderator of the forum on SourceForge.  He&#8217;s a good guy and very helpful.  He was the guy who sorted out how to get FreeRTOS to perform preemptive task switches on the F4 Discovery board while using floating point.  He appears to me to be a real expect on this stuff.</p>
<p>Jim</p>
]]></content:encoded>
	</item>
</channel>
</rss>

