<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>FPGA on William&#39;s Notes</title>
    <link>https://whb.io/categories/fpga/</link>
    <description>Recent content in FPGA on William&#39;s Notes</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <copyright>©2022 William Breidenthal</copyright>
    <lastBuildDate>Fri, 15 Mar 2013 05:16:18 +0000</lastBuildDate>
    
        <atom:link href="https://whb.io/categories/fpga/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>FreePBX Syslog Setup</title>
      <link>https://whb.io/posts/freepbx-syslog-setup/</link>
      <pubDate>Sat, 10 Aug 2019 04:53:01 +0000</pubDate>
      
      <guid>https://whb.io/posts/freepbx-syslog-setup/</guid>
      <description>&lt;p&gt;How to setup FreePBX to log to a syslog server. In my case I am using graylog with a syslog UDP input at port 1514.&lt;/p&gt;
&lt;p&gt;Modify &lt;code&gt;/etc/asterisk/logger_logfiles_custom.conf&lt;/code&gt; to add the desired items to be logged:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;syslog.local0 =&amp;gt; notice,warning,error,security
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Modify &lt;code&gt;/etc/rsyslog.conf&lt;/code&gt; and add the following line, matching the above destination:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;local0.*                                  /var/log/asterisk/syslog
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To forward to graylog I also uncommented the following in &lt;code&gt;rsyslog.conf&lt;/code&gt;:
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ### begin forwarding rule ###&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# The statement between the begin ... end define a SINGLE forwarding&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# rule. They belong together, do NOT split them. If you create multiple&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# forwarding rules, duplicate the whole block!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Remote Logging (we use TCP for reliable delivery)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# An on-disk queue is created for this action. If the remote host is&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# down, messages are spooled to disk and sent when it is up again.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$ActionQueueFileName&lt;/span&gt; fwdRule1 &lt;span class=&#34;c1&#34;&gt;# unique name prefix for spool files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$ActionQueueMaxDiskSpace&lt;/span&gt; 1g   &lt;span class=&#34;c1&#34;&gt;# 1gb space limit (use as much as possible)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$ActionQueueSaveOnShutdown&lt;/span&gt; on &lt;span class=&#34;c1&#34;&gt;# save messages to disk on shutdown&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$ActionQueueType&lt;/span&gt; LinkedList   &lt;span class=&#34;c1&#34;&gt;# run asynchronously&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$ActionResumeRetryCount&lt;/span&gt; -1    &lt;span class=&#34;c1&#34;&gt;# infinite retries if host is down&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;*.* @10.0.1.38:1514
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ### end of the forwarding rule ###&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
Finally restart the asterisk logger and rsyslog:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;asterisk -rx &amp;quot;logger reload&amp;quot;
service rsyslog restart
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The following resources were helpful in getting this setup:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/Monitoring_id264504.html&#34;target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/Monitoring_id264504.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://community.freepbx.org/t/is-it-possible-to-export-freepbx-logs-to-syslog/51676/4&#34;target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://community.freepbx.org/t/is-it-possible-to-export-freepbx-logs-to-syslog/51676/4&lt;/a&gt;
&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>VHDL VU Meter</title>
      <link>https://whb.io/posts/vhdl-vu-meter/</link>
      <pubDate>Fri, 15 Mar 2013 05:16:18 +0000</pubDate>
      
      <guid>https://whb.io/posts/vhdl-vu-meter/</guid>
      <description>&lt;p&gt;This is a pseudo-VU meter written in VHDL. I did it for an afternoon project to see what I could do with VHDL quickly.&lt;/p&gt;
&lt;p&gt;&lt;img  src=&#34;https://whb.io/img/Basys-VU-600x450.jpg&#34;
        alt=&#34;VU Meter&#34;/&gt;&lt;/p&gt;
&lt;p&gt;I take the line level audio output from my computer and run it through a Schottky diode ( half wave rectification ), and then straight into a serial ADC. The rest is done on the Xilinx Spartan 3E FPGA.&lt;/p&gt;
&lt;p&gt;A true VU meter would translate the volume level of the output signal to a certain dB level. Mine just peak detects the output of the ADC and then scales the output until I get good dynamic range out of the LEDs available. The end result could use some refinement, but I was happy with the rough draft.&lt;/p&gt;

&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
  &lt;iframe src=&#34;https://www.youtube.com/embed/VxDJme-X7e0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; allowfullscreen title=&#34;YouTube Video&#34;&gt;&lt;/iframe&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>About Me</title>
      <link>https://whb.io/pages/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://whb.io/pages/about/</guid>
      <description>&lt;p&gt;I graduated with a B.Sc. degree in Electrical Engineering from the University of California San Diego in 2012. While there I focused on semiconductor materials and devices; I had the opportunity to work in a clean room creating diodes, LEDs, and MOSFETs from silicon wafers. I also worked with analog and digital circuits, a selection of different microcontrollers, and both Xilinx and Altera FPGAs.&lt;/p&gt;
&lt;p&gt;I worked as an Electral Engineer at Innoflight in San Diego from 2013 until 2019 building RF transceivers for small satellites. In 2019 I  had the opportunity to move out to Bulder, CO to work at Blue Canyon Technologies as an RF Systems Engineer.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>