<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TT’s Jottings-Blog of VU2SWX</title>
	<atom:link href="https://brainstorms.in/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>https://brainstorms.in</link>
	<description>Travails of an Indian Geek</description>
	<lastBuildDate>Mon, 21 Sep 2026 16:30:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.1</generator>
	<item>
		<title>Neural Network Explainer</title>
		<link>https://brainstorms.in/?p=846</link>
					<comments>https://brainstorms.in/?p=846#respond</comments>
		
		<dc:creator><![CDATA[VU2SWX]]></dc:creator>
		<pubDate>Mon, 21 Sep 2026 16:30:11 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<guid isPermaLink="false">https://brainstorms.in/?p=846</guid>

					<description><![CDATA[01 — The inspiration Borrowed from the brain Your brain is built from cells called neurons. Each one collects signals from its neighbors, and if those signals add up to enough, it fires a signal of its own down a long fiber to the next cell. Nothing about a single neuron is smart — the&#8230; <a href="https://brainstorms.in/?p=846" class="more-link">Continue reading <span class="screen-reader-text">Neural Network Explainer</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">01 — The inspiration</p>



<h2 class="wp-block-heading">Borrowed from the brain</h2>



<p class="wp-block-paragraph">Your brain is built from cells called neurons. Each one collects signals from its neighbors, and if those signals add up to enough, it fires a signal of its own down a long fiber to the next cell. Nothing about a single neuron is smart — the intelligence comes from billions of them, wired together.</p>



<p class="wp-block-paragraph">An <strong>artificial neuron</strong> is a deliberately crude copy of that idea, built entirely from numbers. It keeps the shape of the original — gather signals, combine them, decide whether to pass something on — and throws away everything else.Biological neurondendritescell bodyaxonsynapsesArtificial neuroninputsx1x2x3?weighted sumoutput<strong>The two do the same job.</strong> Dendrites become numeric inputs, the cell body&#8217;s summing becomes a weighted sum, and the axon&#8217;s fire-or-don&#8217;t-fire becomes a single output number.</p>



<figure class="wp-block-image size-full"><a href="https://brainstorms.in/wp-content/uploads/2026/09/1.png"><img fetchpriority="high" decoding="async" width="754" height="424" src="https://brainstorms.in/wp-content/uploads/2026/09/1.png" alt="" class="wp-image-847" srcset="https://brainstorms.in/wp-content/uploads/2026/09/1.png 754w, https://brainstorms.in/wp-content/uploads/2026/09/1-400x225.png 400w, https://brainstorms.in/wp-content/uploads/2026/09/1-300x169.png 300w" sizes="(max-width: 754px) 100vw, 754px" /></a></figure>



<p class="wp-block-paragraph">02 — The building block</p>



<h2 class="wp-block-heading">One neuron, deciding something small</h2>



<p class="wp-block-paragraph">A single artificial neuron does three things: it multiplies each input by a <strong>weight</strong> (how much that input matters), adds a <strong>bias</strong> (a built-in nudge), and passes the result through a rule that turns the sum into an output. Here&#8217;s one deciding whether to go outside.1Sunny?value = 11Free this evening?value = 10Raining?value = 0weight 0.7weight 0.5weight ?0.9?bias ?0.5sum = 0.7Go outside<strong>0.7 × 1 + 0.5 × 1 ? 0.9 × 0 ? 0.5 = 0.7.</strong> Because the result is above zero, this neuron&#8217;s rule says &#8220;fire&#8221; — output: go outside. Change the weights and it would weigh the same facts differently.</p>



<p class="wp-block-paragraph">The weights and the bias are the only things a network actually contains. Everything you&#8217;ve heard about a network &#8220;knowing&#8221; something really means: <em>its weights happen to be set to useful values.</em></p>



<p class="wp-block-paragraph">03 — The network</p>



<figure class="wp-block-image size-full"><a href="https://brainstorms.in/wp-content/uploads/2026/09/2.png"><img decoding="async" width="754" height="424" src="https://brainstorms.in/wp-content/uploads/2026/09/2.png" alt="" class="wp-image-848" srcset="https://brainstorms.in/wp-content/uploads/2026/09/2.png 754w, https://brainstorms.in/wp-content/uploads/2026/09/2-400x225.png 400w, https://brainstorms.in/wp-content/uploads/2026/09/2-300x169.png 300w" sizes="(max-width: 754px) 100vw, 754px" /></a></figure>



<h2 class="wp-block-heading">Wiring thousands of them together</h2>



<p class="wp-block-paragraph">One neuron can only weigh a few facts. Real problems — a photo, a sentence, a sound clip — need many neurons arranged in <strong>layers</strong>: an input layer that takes in raw data, one or more hidden layers that combine it in increasingly abstract ways, and an output layer that gives the final answer.Input layerHidden layerOutput layerCatNot cat<strong>Every line is its own weight.</strong> This small example has thirty of them; a real image-recognition network has millions. Each hidden neuron combines the whole input layer in its own slightly different way, so together the layer can notice edges, then shapes, then whole features.</p>



<figure class="wp-block-image size-full"><a href="https://brainstorms.in/wp-content/uploads/2026/09/3.png"><img decoding="async" width="768" height="500" src="https://brainstorms.in/wp-content/uploads/2026/09/3.png" alt="" class="wp-image-849" srcset="https://brainstorms.in/wp-content/uploads/2026/09/3.png 768w, https://brainstorms.in/wp-content/uploads/2026/09/3-300x195.png 300w, https://brainstorms.in/wp-content/uploads/2026/09/3-400x260.png 400w" sizes="(max-width: 768px) 100vw, 768px" /></a></figure>



<p class="wp-block-paragraph">04 — Learning</p>



<h2 class="wp-block-heading">Where do the weights come from?</h2>



<p class="wp-block-paragraph">Nobody sets millions of weights by hand. Instead, the network starts with random ones — it guesses badly on purpose — and then <strong>trains</strong>: it repeats a short loop, thousands or millions of times, each time getting slightly less wrong.Show a labeled example&#8221;this photo is a cat&#8221;Network guesses&#8221;73% cat, 27% not&#8221;Measure the errorhow far off was that?Nudge every weighta little, to lower the errorrepeat, millions of times<strong>This is the whole trick.</strong> The technique for calculating exactly how to nudge each weight is called <strong>backpropagation</strong> — it traces the error backward through the network, layer by layer, so every single weight gets its own precise correction.</p>



<p class="wp-block-paragraph">Given enough labeled examples and enough loops, the weights settle into values that make good guesses — not because the network understands cats, but because those particular numbers happen to separate &#8220;cat&#8221; patterns from everything else.</p>



<figure class="wp-block-image size-full"><a href="https://brainstorms.in/wp-content/uploads/2026/09/4.png"><img loading="lazy" decoding="async" width="733" height="578" src="https://brainstorms.in/wp-content/uploads/2026/09/4.png" alt="" class="wp-image-850" srcset="https://brainstorms.in/wp-content/uploads/2026/09/4.png 733w, https://brainstorms.in/wp-content/uploads/2026/09/4-300x237.png 300w, https://brainstorms.in/wp-content/uploads/2026/09/4-400x315.png 400w" sizes="auto, (max-width: 733px) 100vw, 733px" /></a></figure>



<p class="wp-block-paragraph">05 — Putting it together</p>



<h2 class="wp-block-heading">A trained network, at work</h2>



<p class="wp-block-paragraph">Once training is done, using the network is fast and simple: one forward pass through the layers, no more adjusting. Here&#8217;s a (greatly simplified) network reading a handwritten digit.pixels inthe trained networkconfidence per digit0123456789<strong>No pixel means &#8220;seven&#8221; on its own.</strong> Each hidden neuron responds to a small pattern of pixels; combined across the layers, that adds up to one output standing far above the rest.</p>



<figure class="wp-block-image size-full"><a href="https://brainstorms.in/wp-content/uploads/2026/09/5.png"><img loading="lazy" decoding="async" width="774" height="381" src="https://brainstorms.in/wp-content/uploads/2026/09/5.png" alt="" class="wp-image-851" srcset="https://brainstorms.in/wp-content/uploads/2026/09/5.png 774w, https://brainstorms.in/wp-content/uploads/2026/09/5-300x148.png 300w, https://brainstorms.in/wp-content/uploads/2026/09/5-768x378.png 768w, https://brainstorms.in/wp-content/uploads/2026/09/5-400x197.png 400w" sizes="auto, (max-width: 774px) 100vw, 774px" /></a></figure>



<p class="wp-block-paragraph">06 — Keeping it honest</p>



<h2 class="wp-block-heading">What this picture leaves out</h2>



<p class="wp-block-paragraph">Real networks are this idea taken to extremes rather than something fundamentally different. A large language model has many layers and billions of weights instead of thirty; images pass through neurons arranged to scan for local patterns rather than see every pixel at once; and training needs carefully chosen examples, because a network only ever gets as good as what it was shown — bias in the examples becomes bias in the weights.</p>



<p class="wp-block-paragraph">It&#8217;s also worth being plain about what a network is <em>not</em> doing. It has no model of the world, no goals, and no awareness of what it&#8217;s looking at — it is a fixed mathematical function, shaped by training, that turns one set of numbers into another. That function can be extraordinarily useful without there being anyone &#8220;home&#8221; inside it.</p>



<h2 class="wp-block-heading">A short glossary</h2>



<p class="wp-block-paragraph">NeuronA unit that multiplies its inputs by weights, adds a bias, and passes the sum through an activation rule.WeightA number that scales how much one input matters to a neuron. Training is mostly the process of adjusting these.BiasAn extra number added to the sum, letting a neuron fire more or less easily regardless of its inputs.Activation functionThe rule that turns a neuron&#8217;s sum into its output — often something like &#8220;pass it through if positive, otherwise send near-zero.&#8221;LayerA group of neurons that all take input from the same previous group and hand their output to the same next group.BackpropagationThe method used during training to work out exactly how much to adjust each weight, based on how wrong the final guess was.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://brainstorms.in/?feed=rss2&#038;p=846</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Lithium battery charger for radio</title>
		<link>https://brainstorms.in/?p=843</link>
					<comments>https://brainstorms.in/?p=843#respond</comments>
		
		<dc:creator><![CDATA[VU2SWX]]></dc:creator>
		<pubDate>Mon, 21 Sep 2026 16:21:03 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<guid isPermaLink="false">https://brainstorms.in/?p=843</guid>

					<description><![CDATA[Some battery bolder I purchased from amazon along with charger module link https://link.amazon/B0csERgXu https://link.amazon/B094R7QsK &#8220;This post contains affiliate links. As an Amazon Associate, I earn from qualifying purchases at no extra cost to you.&#8221;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Some battery bolder I purchased  from amazon along with charger module link</p>



<p class="wp-block-paragraph"><a href="https://link.amazon/B0csERgXu">https://link.amazon/B0csERgXu</a></p>



<p class="wp-block-paragraph"><a href="https://link.amazon/B094R7QsK">https://link.amazon/B094R7QsK</a></p>



<p class="wp-block-paragraph">&#8220;This post contains affiliate links. As an Amazon Associate, I earn from qualifying purchases at no extra cost to you.&#8221;</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://brainstorms.in/?feed=rss2&#038;p=843</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>My new book</title>
		<link>https://brainstorms.in/?p=824</link>
					<comments>https://brainstorms.in/?p=824#respond</comments>
		
		<dc:creator><![CDATA[VU2SWX]]></dc:creator>
		<pubDate>Fri, 18 Sep 2026 16:25:10 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<guid isPermaLink="false">https://brainstorms.in/?p=824</guid>

					<description><![CDATA[I wrote this last December . Now available on amazon https://link.amazon/B0hjl7FoH &#8220;This post contains affiliate links. As an Amazon Associate, I earn from qualifying purchases at no extra cost to you.&#8221;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I wrote this last December .  Now available on amazon</p>



<p class="wp-block-paragraph"><a href="https://link.amazon/B0hjl7FoH">https://link.amazon/B0hjl7FoH</a></p>



<p class="wp-block-paragraph">&#8220;This post contains affiliate links. As an Amazon Associate, I earn from qualifying purchases at no extra cost to you.&#8221;</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://brainstorms.in/?feed=rss2&#038;p=824</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>USB extender</title>
		<link>https://brainstorms.in/?p=828</link>
					<comments>https://brainstorms.in/?p=828#comments</comments>
		
		<dc:creator><![CDATA[VU2SWX]]></dc:creator>
		<pubDate>Fri, 18 Sep 2026 13:53:51 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<guid isPermaLink="false">https://brainstorms.in/?p=828</guid>

					<description><![CDATA[It was at 11 o&#8217;clock at night when I felt the need to plug 2 or 3 USB devices into my laptop at the same time. When I opened the desk drawer, this little USB extender jumped out right in front of me. I don’t remember when or where I bought it from. When I&#8230; <a href="https://brainstorms.in/?p=828" class="more-link">Continue reading <span class="screen-reader-text">USB extender</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">It was at 11 o&#8217;clock at night when I felt the need to plug 2 or 3 USB devices into my laptop at the same time. When I opened the desk drawer, this little USB extender jumped out right in front of me. I don’t remember when or where I bought it from. When I searched on Google Lens, I found it on Amazon. Link in comments. Must make sure not to lose it</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-embed is-type-rich is-provider-amazon wp-block-embed-amazon"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Portronics Mport Mino A USB 3.0 Hub (3-in-1) with USB 3.0 SuperSpeed, Compact L-Shape Design, 2-Port USB 2.0 High-Speed, USB Plug, Metal Alloy Body, for Laptop, PC, Mac (Grey)" type="text/html" width="663" height="550" frameborder="0" allowfullscreen allow="clipboard-write" style="max-width:100%" src="https://read.amazon.co.uk/kp/card?asin=B0DG2T841K"></iframe>
</div></figure>



<p class="wp-block-paragraph">As an Amazon Associate, I earn from qualifying purchases.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://brainstorms.in/?feed=rss2&#038;p=828</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Thus spake vu2swx</title>
		<link>https://brainstorms.in/?p=798</link>
		
		<dc:creator><![CDATA[vu2swx]]></dc:creator>
		<pubDate>Fri, 10 Mar 2017 06:28:47 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<guid isPermaLink="false">http://brainstorms.in/?p=798</guid>

					<description><![CDATA[My short talk on building bitx at VWN ham meet Aluva. https://youtu.be/bl5FvRUALz0 &#160;]]></description>
										<content:encoded><![CDATA[<p>My short talk on building bitx at VWN ham meet Aluva.</p>
<p><a href="https://youtu.be/bl5FvRUALz0">https://youtu.be/bl5FvRUALz0</a></p>
<p><iframe loading="lazy" title="Vu2vwn vasanth vwn ham meet 2016" width="663" height="373" src="https://www.youtube.com/embed/bl5FvRUALz0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ubuntu 16.04 Booting to text mode</title>
		<link>https://brainstorms.in/?p=785</link>
		
		<dc:creator><![CDATA[vu2swx]]></dc:creator>
		<pubDate>Thu, 08 Dec 2016 17:53:27 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<guid isPermaLink="false">http://brainstorms.in/?p=785</guid>

					<description><![CDATA[I was trying to boot a newly installed Ubuntu box into text mode.   The usual methods failed and  after googling  a little  I figured out that  Ubuntu  16,04 uses systemd  for controlling startup services.   The solution for the problem is &#160; sudo systemctl enable multi-user.target sudo systemctl set-default multi-user.target Mapping between runlevels and systemd targets&#8230; <a href="https://brainstorms.in/?p=785" class="more-link">Continue reading <span class="screen-reader-text">Ubuntu 16.04 Booting to text mode</span></a>]]></description>
										<content:encoded><![CDATA[<p>I was trying to boot a newly installed Ubuntu box into text mode.   The usual methods failed and  after googling  a little  I figured out that  Ubuntu  16,04 uses systemd  for controlling startup services.   The solution for the problem is</p>
<p>&nbsp;</p>
<pre><code>sudo systemctl enable multi-user.target
sudo systemctl set-default multi-user.target

</code></pre>
<p>Mapping between runlevels and systemd targets</p>
<table class="tg">
<tbody>
<tr>
<th class="tg-yw4l">Run Level</th>
<th class="tg-yw4l">Target</th>
</tr>
<tr>
<td class="tg-yw4l">0</td>
<td class="tg-yw4l">poweroff.target</td>
</tr>
<tr>
<td class="tg-yw4l">1</td>
<td class="tg-yw4l">rescue.target</td>
</tr>
<tr>
<td class="tg-yw4l">2,3,4</td>
<td class="tg-yw4l">multi-user.target</td>
</tr>
<tr>
<td class="tg-yw4l">5</td>
<td class="tg-yw4l">graphical.target</td>
</tr>
<tr>
<td class="tg-yw4l">6</td>
<td class="tg-yw4l">reboot.target</td>
</tr>
</tbody>
</table>
<p>If you just want to change runlevel only</p>
<pre><code>sudo systemctl isolate multi-user.target</code></pre>
<pre><code> </code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>My talk at BarCamp July 2015</title>
		<link>https://brainstorms.in/?p=782</link>
		
		<dc:creator><![CDATA[vu2swx]]></dc:creator>
		<pubDate>Fri, 17 Jun 2016 02:07:03 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<guid isPermaLink="false">http://brainstorms.in/?p=782</guid>

					<description><![CDATA[Here is my talk at BarCamp 2015. The talk is in my mother tounge,Malayalam.]]></description>
										<content:encoded><![CDATA[<p>Here is my talk at BarCamp 2015. The talk is in my mother tounge,Malayalam.</p>
<p><iframe loading="lazy" title="Layman’s Introduction to Machine Learning: Sunil Thomas Thonikuzhiyil at Barcamp Kerala Monsoon 2015" width="663" height="373" src="https://www.youtube.com/embed/Fy3a5nxq998?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Disabling touch pad while typing:- Ubuntu 14.04</title>
		<link>https://brainstorms.in/?p=773</link>
		
		<dc:creator><![CDATA[vu2swx]]></dc:creator>
		<pubDate>Sat, 09 Apr 2016 07:29:12 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<guid isPermaLink="false">http://brainstorms.in/?p=773</guid>

					<description><![CDATA[Currently, I am using an Asus X200M netbook with ubuntu 14.04 lts. The keyboard of the netbook is slighly small compared to regular laptop. This is  a slight drawback of all netbooks.  For me it took only a couple of hours to get adjusted to the new keyboard. However, while typing, my thumb inadertently touches&#8230; <a href="https://brainstorms.in/?p=773" class="more-link">Continue reading <span class="screen-reader-text">Disabling touch pad while typing:- Ubuntu 14.04</span></a>]]></description>
										<content:encoded><![CDATA[<p>Currently, I am using an Asus X200M netbook with ubuntu 14.04 lts. The keyboard of the netbook is slighly small compared to regular laptop. This is  a slight drawback of all netbooks.  For me it took only a couple of hours to get adjusted to the new keyboard.</p>
<p>However, while typing, my thumb inadertently touches the  touch pad and the cursor jumps to some random location.  I am always using an external mouse for navigation  as  I dont like to use t touch pad . So I decided to find out a way to disable the touch pad when I am typing long documents.</p>
<p>Here are the steps for disabling and  enabling  touch pad.</p>
<p>Find out the device id of your touch pad.   Open a terminal and type<br />
<code><br />
$  xinput list<br />
</code><br />
<a href="https://brainstorms.in/wp-content/uploads/2016/04/xinput_list.png" rel="attachment wp-att-774"><img loading="lazy" decoding="async" class="wp-image-774 size-medium" src="https://brainstorms.in/wp-content/uploads/2016/04/xinput_list-300x204.png" alt="output from xinput" width="300" height="204" srcset="https://brainstorms.in/wp-content/uploads/2016/04/xinput_list-300x204.png 300w, https://brainstorms.in/wp-content/uploads/2016/04/xinput_list.png 728w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Look for the id of your touch pad. In my case the touch pad is detected as a logitec mouse and the id is 13.  The other mouse shown in the figure is my external mouse. If in doubt, remove the external mouse and re run the command to find out the correct device id.</p>
<p>In order to disable touch pad type the following command.<br />
<code><br />
$ xinput set-prop 13 "Device Enabled" 0<br />
</code><br />
You can eneable the touch pad by changing 0 to 1 in the command above.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Installing latest arduino on Ubuntu 14.04</title>
		<link>https://brainstorms.in/?p=768</link>
		
		<dc:creator><![CDATA[vu2swx]]></dc:creator>
		<pubDate>Sat, 09 Apr 2016 06:31:42 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Gnu/Linux]]></category>
		<category><![CDATA[Micro controllers]]></category>
		<guid isPermaLink="false">http://brainstorms.in/?p=768</guid>

					<description><![CDATA[I have been   tinkering with NodeMCU devkit boards recently. The easiest way to program these little beasts is to use arduino platform and install the compilers and other tools from . Unfortunately the stock arduino shipped with ubuntu 14.04 is quite old.  You need a recent version of arduino  software. to get the esp8266&#8230; <a href="https://brainstorms.in/?p=768" class="more-link">Continue reading <span class="screen-reader-text">Installing latest arduino on Ubuntu 14.04</span></a>]]></description>
										<content:encoded><![CDATA[<p>I have been   tinkering with NodeMCU devkit boards recently. The easiest way to program these little beasts is to use arduino platform and install the compilers and other tools from . Unfortunately the stock arduino shipped with ubuntu 14.04 is quite old.  You need a recent version of arduino  software. to get the esp8266 board working.</p>
<p>Here is what I did.</p>
<p>Removed the existing arduio installation</p>
<p><figure id="attachment_771" aria-describedby="caption-attachment-771" style="width: 157px" class="wp-caption aligncenter"><a href="https://brainstorms.in/wp-content/uploads/2016/04/12923131_10209446994237789_4706198446812941289_n.jpg" rel="attachment wp-att-771"><img loading="lazy" decoding="async" class="size-full wp-image-771" src="https://brainstorms.in/wp-content/uploads/2016/04/12923131_10209446994237789_4706198446812941289_n.jpg" alt="My nodeMCU collection." width="157" height="118" /></a><figcaption id="caption-attachment-771" class="wp-caption-text">My nodeMCU collection.</figcaption></figure></p>
<p>$ sudo apt-get remove arduino</p>
<p>Download the appropriate arduino software from arduino.cc.  This is available for both 32 bit and 64 bit editions.  Choose the correct version.</p>
<p>The arduino software platfrom is written  in Java. So install java runtime.</p>
<p>$  sudo apt-get install openjdk-7-jre</p>
<p>Unzip the arduino software  and move it to an appropriate location. I moved it to  /opt.</p>
<p>tar -xJf arduino-1.6.4-linux64.tar.xz<br />
sudo mv arduino-1.6.4 /opt</p>
<p>Add appropriate path to .bashrc file.</p>
<p>I added PATH=$PATH;/opt/arduino-1.6.4/bin. Change it according to your arduino location and version.</p>
<p>Open a terminal and execute the new arduino.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Wireless on Asus X200M netbooks: Ubuntu 14.04 LTS</title>
		<link>https://brainstorms.in/?p=760</link>
		
		<dc:creator><![CDATA[vu2swx]]></dc:creator>
		<pubDate>Mon, 04 Apr 2016 07:40:56 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Gnu/Linux]]></category>
		<guid isPermaLink="false">http://brainstorms.in/?p=760</guid>

					<description><![CDATA[We resently bought several Asus X200 series netbooks for our faculty members. The main attraction of this  cute  netbook is its  light weight and a built in HDMI port. We plan to use them extensively for   content delivery in class rooms. These  machines are really cheap, costing around Rs17000 ( around $260).  The base model&#8230; <a href="https://brainstorms.in/?p=760" class="more-link">Continue reading <span class="screen-reader-text">Wireless on Asus X200M netbooks: Ubuntu 14.04 LTS</span></a>]]></description>
										<content:encoded><![CDATA[<p>We resently bought several <a href="https://www.asus.com/in/Notebooks/X200MA/">Asus X200 series</a> netbooks for our faculty members. The main attraction of this  cute  netbook is its  light weight and a built in HDMI port. We plan to use them extensively for   content delivery in class rooms. These  machines are really cheap, costing around Rs17000 ( around $260).  The base model comes with Intel® Celeron® Dual-Core ~ 2.58 GHz Processor and 2GB ram, DOS operating system. It has an 11.6 inch LED display.</p>
<p>Our idea was to put   ubuntu 14.04 and deploy the machines. The machine has an ethernet port and wifi port.  Installation of Ubuntu 15.10 was a smooth affair.  Unfortunately, the broadcom wifi interface did  not work out of the box. Here is what I did to fix the issue.</p>
<ol>
<li>Find out which wifi chip is used.</li>
</ol>
<p>$lspci <a href="https://brainstorms.in/wp-content/uploads/2016/04/1.png" rel="attachment wp-att-763"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-763" src="https://brainstorms.in/wp-content/uploads/2016/04/1-300x79.png" alt="broadcom wifi lspci" width="300" height="79" srcset="https://brainstorms.in/wp-content/uploads/2016/04/1-300x79.png 300w, https://brainstorms.in/wp-content/uploads/2016/04/1-768x203.png 768w, https://brainstorms.in/wp-content/uploads/2016/04/1-1024x271.png 1024w, https://brainstorms.in/wp-content/uploads/2016/04/1.png 1128w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>The wifi chip is  Broadcom Corporation BCM43142. You have to download and compile the kernel module for this chip.</p>
<p>2) Make sure that the machine is connected to internet and the apt sources are properly set up</p>
<p>3) Update  the machine</p>
<p>$ sudo apt-get update</p>
<p>4) Finally instal the  bcmwl driver.</p>
<p>$ sudo apt-get install linux-headers-`uname -r` dkms build-essential bcmwl-kernel-source</p>
<p>This will downlad necessary driver  your wifi will be up and running. The above line installs <a href="https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support">dynamic kernel module support</a>  and compiles the broadcom wireless driver.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
