<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Makers - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Makers - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Thu, 04 Jun 2026 05:20:41 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/makers/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Hardware Fundamentals: what exactly is a microcontroller? ]]>
                </title>
                <description>
                    <![CDATA[ By Taron Foxworth At the fundamental level, a microcontroller is a just tiny computer. Being a “tiny computer” doesn’t really tell us much, though. So let’s go deeper. Many people associate microcontrollers with Arduino. But it’s important to point o... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/hardware-fundamentals-what-exactly-is-a-microcontroller-8a502a3650dc/</link>
                <guid isPermaLink="false">66c34c23a7aea9fc97bdfb42</guid>
                
                    <category>
                        <![CDATA[ arduino ]]>
                    </category>
                
                    <category>
                        <![CDATA[ hardware ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Internet of Things ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Makers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 24 Apr 2017 13:18:27 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*WKKNCMKqg6yEkowj28CHng.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Taron Foxworth</p>
<p>At the fundamental level, a microcontroller is a just tiny computer.</p>
<p>Being a “tiny computer” doesn’t really tell us much, though. So let’s go deeper. Many people associate microcontrollers with Arduino. But it’s important to point out that <strong>Arduino is not a microcontroller</strong>. Arduino is a complete platform which spans across software and hardware.</p>
<p>Arduino makes devices like the <a target="_blank" href="https://www.arduino.cc/en/Main/arduinoBoardUno">Arduino Uno</a>:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*GT8uC4hwFJfFb818C5g7LA.jpeg" alt="Image" width="800" height="534" loading="lazy">
<em>Arduino Uno</em></p>
<p>The Arduino Uno is not a microcontroller, either. It’s a breakout board based on the <a target="_blank" href="http://www.microchip.com/wwwproducts/en/ATmega328P">Atmel ATmega328P microcontroller</a>.</p>
<p>Here is what the Atmel microcontroller looks like:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*dGZ5XWLj4osrGlUf79mW1w.png" alt="Image" width="800" height="578" loading="lazy"></p>
<p>If you were to have just the Atmel microcontroller in hand, as a beginner, it wouldn’t be very useful. This is where the breakout board comes in.</p>
<p>The breakout board “breaks out” the pins on the microcontroller into a larger device (like the Arduino Uno). This larger device makes the microcontroller easier to use.</p>
<p>For the Arduino Uno, the breakout board gives you the ability to insert a USB cord, give it power, program the device, and more.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*jmPJwZqvF1QqNR0Xr_rmCw.jpeg" alt="Image" width="500" height="375" loading="lazy">
_[Image credit](https://www.hackster.io/hmkim/remote-controlled-8x8-led-matrix-e2b79a?ref=part&amp;ref_id=8233&amp;offset=18" rel="noopener" target="<em>blank" title=")</em></p>
<p>Without the breakout board, for a beginner, this would be a daunting task. This problem is the very reason that Arduino exists — to make it super easy for you to learn about hardware.</p>
<h3 id="heading-ah-so-its-like-the-raspberry-pi">Ah, So it’s like the Raspberry Pi?</h3>
<p>Well, not entirely. Both the Arduino and the Raspberry Pi are still computers by definition. But the Raspberry Pi is considered a <a target="_blank" href="http://maxembedded.com/2013/07/introduction-to-single-board-computing/">single-board computer</a>. A single-board computer is <a target="_blank" href="https://en.wikipedia.org/wiki/Single-board_computer">a full computer built on a single circuit board</a>.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*iK9lfwT4cpJsY4lWQ2ul0Q.jpeg" alt="Image" width="800" height="800" loading="lazy">
<em>A Raspberry Pi</em></p>
<p>Your laptop is also technically a single-board computer — just a powerful one. The Raspberry Pi is a simple version of the same hardware in your laptop. Just as your laptop runs an operating system (Windows, Mac, or Linux), the Raspberry Pi runs a Linux operating system.</p>
<p>Now, back to Microcontrollers. Microcontrollers can’t run an operating system. Microcontrollers also don’t have the same amount of computing power or resources as most single-board computers.</p>
<p>A microcontroller will run just one program repeatedly — not a full operating system. We can see this in Arduino programs because they only need two functions: <code>Setup</code> and <code>loop</code>. <code>Setup</code> will run once and <code>loop</code> will run indefinitely.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*2zfsMFC_vB9OMA81Hl5ITA.png" alt="Image" width="460" height="475" loading="lazy">
<em>Setup and Loop</em></p>
<h3 id="heading-so-whats-a-microcontroller">So, what’s a microcontroller?</h3>
<p>A microcontroller is a small computer with low-memory and programmable input/output peripherals.</p>
<h4 id="heading-inputsoutputs">Inputs/Outputs</h4>
<p>As you probably know, everything with a computer eventually starts with binary (0 or 1).</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*GFnxrpbOLyCUBuhnwxIHNA.png" alt="Image" width="800" height="517" loading="lazy"></p>
<p>An input means that the microcontroller will read binary. An example input would be a sensor.</p>
<p>An output means that the microcontroller will send binary. An example output would be to control a motor or LED.</p>
<h3 id="heading-why-do-we-need-microcontrollers">Why do we need microcontrollers?</h3>
<p>Well, these were “computers” before we arrived at the idea of the computers you know today. Microcontrollers stuck around because some computing tasks are incredibly trivial and require simple logic. For example, flipping a switch or controlling small components — like a LED light — don’t require the same resources we need for day-to-day tasks like sending an email.</p>
<p>We use them today because their low-powered and low memory makes them low-cost. Microcontrollers are part of the reason the <a target="_blank" href="https://en.wikipedia.org/wiki/Internet_of_things">Internet of Things</a> is possible and successful today.</p>
<h3 id="heading-how-do-i-get-one">How do I get one?</h3>
<p>Which microcontroller you’ll want to get depends on which problem you want to solve. If you are doing something simple — turning things on and off, or reading a sensor — pretty much any microcontroller will do.</p>
<p>If you want to play games or have more complex ideas, you’ll need more compute power, so you’ll need to move up to single-board computers, like the Raspberry Pi.</p>
<p><a target="_blank" href="https://www.adafruit.com/">Adafruit</a> and <a target="_blank" href="https://www.sparkfun.com/">Sparkfun</a> both have TONS of kits and hardware that are all amazing. You can also make use of their tutorials.</p>
<p><a target="_blank" href="https://losant.com">Losant</a> also has some cool <a target="_blank" href="https://docs.losant.com/getting-started/losant-iot-dev-kits/builder-kit/">kits</a> available. You could build your own <a target="_blank" href="https://docs.losant.com/getting-started/losant-iot-dev-kits/door-sensor-kit/">door sensor</a> — to be notified when a door is left open for too long.</p>
<p>If you don’t have a specific problem you want to solve, just grab some hardware and play around with it.</p>
<p>Here are some things you can buy to get started:</p>
<h4 id="heading-1-a-board-called-the-nodemcuhttpamznto2oyaluf">1. A board called the <a target="_blank" href="http://amzn.to/2oyalUf">NodeMCU</a>.</h4>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*lVu30df4maR8KAoG1vKDlg.jpeg" alt="Image" width="800" height="532" loading="lazy">
<em>Node MCU</em></p>
<p>The <a target="_blank" href="http://amzn.to/2p3YDEu">NodeMCU</a> is a board based on the ESP8266 microcontroller. This board is special because it’s cheap and WiFi enabled. It will only run you about $8.79 on Amazon and is even less on Ebay.</p>
<p>Not all microcontrollers are WiFi-enabled. The fact that this one is opens the door to a number of projects you can build with this device. For example, you can collect data and send it to the cloud ☁️.</p>
<h4 id="heading-2-youll-need-some-sensorshttpamznto2ocln7o">2. You’ll need some <a target="_blank" href="http://amzn.to/2ocLN7O">Sensors</a></h4>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*tJrDBAK3Gi1gd3EucYqsnw.jpeg" alt="Image" width="800" height="800" loading="lazy">
<em>Bread Board</em></p>
<p>You can’t have hardware without sensors. Sensors give you the ability to detect the environment and the world around you. They’re also a great tool for learning.</p>
<h4 id="heading-3-youll-need-a-breadboardhttpamznto2oul4zw-amp-jumper-wireshttpamznto2p0stym">3. You’ll need a <a target="_blank" href="http://amzn.to/2oul4zW">Breadboard</a> &amp; <a target="_blank" href="http://amzn.to/2p0stYM">Jumper Wires</a>:</h4>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*hzlbvjGieO28VE7VKbFFZw.jpeg" alt="Image" width="800" height="684" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*-Ts_mndGd90p9JEImUouDQ.jpeg" alt="Image" width="800" height="600" loading="lazy"></p>
<p>To connect a sensor and the microcontroller together, you’ll have to plug them into the Breadboard and use the Jumper wires to connect them.</p>
<p>Remember: everything is cheaper on <a target="_blank" href="http://ebay.com/">eBay</a> and <a target="_blank" href="https://www.aliexpress.com/">AliExpress</a>. You’ll just have to wait a couple weeks for shipping</p>
<h3 id="heading-what-should-i-build">What should I build?</h3>
<p>Again — and I can’t stress this enough — it’s way easier to start with a project in mind. Now that you understand what a microcontroller is and how to get one, take a different look at the world around you. What can you control? What can you automate? Once you start to answer those questions, you’ll find a project.</p>
<p>While thinking of projects, <a target="_blank" href="https://www.hackster.io/">Hackster</a> is your best friend. Hackster has a ton of <a target="_blank" href="https://www.hackster.io/esp">ESP8266 projects</a> and some cool Arduino projects:</p>
<p>For example, you can live out a childhood dream.</p>
<p>You can even build robots.</p>
<p>The point is, you just need an idea.</p>
<p>Sometimes programming the real world is more fun than programming virtual ones.</p>
<h3 id="heading-whats-next">What’s next?</h3>
<p>Microcontrollers are only the beginning. You have a world of hardware to explore. Happy Hacking ??</p>
<h4 id="heading-further-reading">Further reading:</h4>
<p><a target="_blank" href="http://forefront.io/a/beginners-guide-to-arduino/"><strong>The Absolute Beginner's Guide to Arduino</strong></a><br><a target="_blank" href="http://forefront.io/a/beginners-guide-to-arduino/">_Over the Christmas break from work I wanted to learn something new. I've been eyeing up Arduino for some time now, and…_forefront.io</a></p>
<p><a target="_blank" href="https://twitter.com/anaptfox"><em>Taron Foxworth</em></a> <em>is a hardware hacker and the Developer Evangelist at <a target="_blank" href="https://www.losant.com">Losant</a>. His goal is to translate technology for people to learn, love, and be inspired.</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Hardware fundamentals: how pull-down and pull-up resistors work ]]>
                </title>
                <description>
                    <![CDATA[ By Taron Foxworth If you’ve ever wired up a button to an Arduino, you’ve come across this diagram: At first, this can be confusing. My first thoughts: “Why do I need a resistor? I just want to it to tell me whether the button is being pressed.” Afte... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/a-simple-explanation-of-pull-down-and-pull-up-resistors-660b308f116a/</link>
                <guid isPermaLink="false">66c3433c0bafa8455505c667</guid>
                
                    <category>
                        <![CDATA[ arduino ]]>
                    </category>
                
                    <category>
                        <![CDATA[ hardware ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Internet of Things ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Makers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 17 Mar 2017 19:40:27 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*SMTqmqkvw4LnRckc2Wj9RQ.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Taron Foxworth</p>
<p>If you’ve ever wired up a button to an Arduino, you’ve come across this diagram:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/5z3GVJwnEtxRQZnrIeMa6806A0l45ZDHoLLc" alt="Image" width="729" height="283" loading="lazy"></p>
<p>At first, this can be confusing. My first thoughts: “Why do I need a resistor? I just want to it to tell me whether the button is being pressed.”</p>
<p>After a lot of reading, there wasn’t a simple explanation.</p>
<h3 id="heading-whats-going-on-here">What’s going on here</h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/lnCBI4aQPD72ryakAoXRZOOIscOKzO1TN8T-" alt="Image" width="316" height="316" loading="lazy">
<em>Diagram 1</em></p>
<p>In that button — AKA a switch—the wires are shaped in the form of an “H”. But the middle isn’t connected — or the circuit isn’t connected — until we press the button.</p>
<p>In reality, we want to read from the Arduino a <code>0</code> when nothing is connected and a <code>1</code> when the button is pressed.</p>
<p>On the Arduino, this is called General Purpose Input Output (<a target="_blank" href="https://en.wikipedia.org/wiki/General-purpose_input/output">GPIO</a>).</p>
<p>So, we can do something like this:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/ei-WY10bPEXDJh5eHRZ8VW0K1Xp0E-fWPQz5" alt="Image" width="316" height="343" loading="lazy">
<em>Diagram 2</em></p>
<p>We connect positive (5v, 3.3V, or VCC) to the left side of the circuit.</p>
<p>Now, when the button is pressed, the GPIO will read a <code>1</code>, and all is good.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/WjBnoryrJcaJusAFgohNgpnKrR0mKXYI7fmd" alt="Image" width="316" height="343" loading="lazy">
<em>Diagram 3</em></p>
<p>Well, no. Let’s take a look at Diagram 2 again:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1T7hhKBigZliDdNhgut-kKK8KMmgId1jEAEv" alt="Image" width="316" height="343" loading="lazy">
<em>Diagram 2</em></p>
<p>We wanted a <code>0</code> when nothing is connected, but how can you guarantee this? Currently, there is no way to guarantee the GPIO to be <code>0</code>.</p>
<p>There is also electromagnetic frequencies in the air that could draw your GPIO to <code>0</code> or <code>1</code>. It could even fluctuate between the two! This way, we can’t be positive it’s a <code>0</code> (I’m so bad at puns). This is also known as a logical <code>0</code>.</p>
<p>One way to get a logical <code>0</code> is to tie the pin to Ground:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/mZLL1wlSMz6ReTNeJZDAQMaIOVnkOTrg5qqY" alt="Image" width="316" height="365" loading="lazy"></p>
<p>Yay! So, now it’s a guaranteed logical zero. While pushing the button, it’s going to be <code>1</code> now. Right?</p>
<p>Well, No.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/sMUiXkmyybe-DrcMuYHb0IqpU3FFLtTYm-uy" alt="Image" width="316" height="365" loading="lazy"></p>
<p>You just created a <a target="_blank" href="https://en.wikipedia.org/wiki/Short_circuit">short circuit</a>. ?</p>
<p>This is where the resistor comes in. To avoid a short circuit, we need to add resistance to our circuit. The resistor keeps things under control.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/T3HTmawK4YN37wNqYke-QQdh5EVmFnNY8nec" alt="Image" width="316" height="408" loading="lazy"></p>
<p><a target="_blank" href="http://ecmweb.com/content/path-least-resistance">Electricity will take the path of least resistance.</a> Your GPIO will now register a <code>1</code> when the button is pressed. Like so:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/yLtF3UnfFhhhZ4Kjdqg81d4MvXqVDsYuCclh" alt="Image" width="316" height="408" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/msnI0gnXpKvs5h6JuTVHExkeAWJuzxyl7J2x" alt="Image" width="500" height="375" loading="lazy"></p>
<p>Woo Hoo! Now we’re working with something.</p>
<p>Now let’s look at the opposite: pull-up resistors. It’s the same thing but in reverse. While the button is not pressed, the GPIO will register a <code>1</code>. When you pressed the button, the GPIO will be <code>0</code>.</p>
<p>While not pressed, we have the GPIO connected to positive ( VCC ). So, any current that is there will be pulled-up so that the GPIO registers a logical <code>1</code>.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/zUGnUEh9axrnFyaWOvkUNt1B5uCZxQBewETh" alt="Image" width="316" height="422" loading="lazy"></p>
<p>It’s important to note here that, electricity always wants to go to Ground. So, when we press the button, the current that’s flowing will flow to Ground. Thus, any current that would have been going to the GPIO goes with it, leaving the GPIO at a logical <code>0</code>.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/4NW0bqGqmZbUolmRv4LObF5qR8fccQ1z9zl0" alt="Image" width="316" height="433" loading="lazy"></p>
<p>? The End.</p>
<h4 id="heading-why-did-i-write-this">Why did I write this?</h4>
<p>I joined <a target="_blank" href="https://losant.com">Losant</a> in September of 2016 with no hardware experience. Every single hardware starter kit gives you a button with no explanation of this concept. Hopefully, this helps your light bulb go off too. ?</p>
<p>This only scratched the surface. If you want to dig deeper, check out these resources:</p>
<p><a target="_blank" href="https://learn.sparkfun.com/tutorials/pull-up-resistors"><strong>Pull-up Resistors - learn.sparkfun.com</strong></a><br><a target="_blank" href="https://learn.sparkfun.com/tutorials/pull-up-resistors">_Another thing to point out is that the larger the resistance for the pull-up, the slower the pin is to respond to…_learn.sparkfun.com</a></p>
<p>I love feedback. So, please let me know if this could be improved. <strong>If I totally missed the ball on this, <a target="_blank" href="http://twitter.com/anaptfox">let me know</a>!</strong> I would love to make it better for others.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Raspberry Pi just turned 5. Here’s a brief history of the world’s tiniest hobbyist computer. ]]>
                </title>
                <description>
                    <![CDATA[ By Terren Peterson Raspberry Pi just turned five years old. In this short period of time, twelve million of these devices have been sold, enabling countless maker projects around the world. Let’s walk through the evolution of these devices, and explo... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/raspberry-pi-just-turned-5-d4210cc29230/</link>
                <guid isPermaLink="false">66c35d4aa365c359945c9b38</guid>
                
                    <category>
                        <![CDATA[ Makers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Raspberry Pi ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 11 Mar 2017 22:04:14 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*7GJdUsrLnqQ3RLdBz4rOVQ.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Terren Peterson</p>
<p>Raspberry Pi just turned five years old. In this short period of time, twelve million of these devices have been sold, enabling countless maker projects around the world.</p>
<p>Let’s walk through the evolution of these devices, and explore how they can be used on projects.</p>
<h3 id="heading-in-the-beginning">In the beginning…</h3>
<p>The first generation of the Raspberry Pi devices came out in 2012. You could fit one on a 3" x 2" card (not including protrusions from add-ons). They used a standard SD card as their local drive, and featured two USB ports.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*OSKRsxwiE_21fMktNr_QUg.jpeg" alt="Image" width="800" height="535" loading="lazy">
<em>Hardware for first generation Raspberry Pi</em></p>
<p>The price point was extremely low (initial targets were $35 and $25 for just the Pi). Hobbyists like me quickly snapped them up and got started on Internet of Things projects.</p>
<p>Users like me quickly realized that you needed a number of hardware extensions before you could get the device onto a wireless network — or to even connect it to a keyboard and mouse. You also wanted to mount it inside a durable case to prevent wear and tear on the board.</p>
<p>We purchased our first one for Christmas in 2013. My daughter and I used it for her science project, which involved creating an LED alarm that could detect when an intruder ventured near her <a target="_blank" href="https://www.raspberrypi.org/learning/getting-started-with-minecraft-pi/">Minecraft castle</a>. The device supported scripting in Python, and all of the relevant extensions to make remote HTTP/S calls using the Minecraft SDK.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*NQZW2wbaER_kCp2FZkvb0A.jpeg" alt="Image" width="800" height="535" loading="lazy"></p>
<h3 id="heading-generation-2">Generation 2</h3>
<p>Raspberry Pi added major improvements to their second generation, which they released in early 2015. This included a doubling of the number of USB ports. This eliminated the need for a USB hub. Instead, you could plug a wireless adapter, keyboard, and mouse all directly into the device at the same time.</p>
<p>To make way for an expansion of GPIO pins, they removed the little-used RCA and 3.5mm ports and added a smaller microSD card for the local drive. They upgraded the onboard CPU from a single to a quad core, expanding the processing capabilities of the device.</p>
<p>While the visual changes to the device were small, these were major upgrades were all based on the community’s usage and feedback.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*tKRzlUEkT19jlTZiDTH8dg.jpeg" alt="Image" width="800" height="535" loading="lazy">
<em>Side-by-side Gen 2 and Gen 1 Devices</em></p>
<p>In experimenting with this next generation of device, I found that the GPIO pins were great for running sensors. The size and power were ideal for <a target="_blank" href="https://www.hackster.io/terren/simple-gardening-service-manage-indoor-gardens-using-iot-be95d1">indoor gardening projects</a>, too.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*Zz0tmv-oDBExbSg4xoWHrA.jpeg" alt="Image" width="800" height="600" loading="lazy"></p>
<p>I could use a single unit mounted within my experiment to record humidity, temperature, and soil moisture content. I could also capture time-lapse photos by adding a camera, then upload all of the data to the Cloud for processing and pushing out to a website.</p>
<p>I could also use the GPIO pins to control relays that instruct motors to turn off and on. This could be very useful when building a <a target="_blank" href="https://www.hackster.io/terren/roxie-the-voice-activated-pitching-machine-94e4f2">voice enabled pitching machine</a> like the one in the video below.</p>
<h3 id="heading-shrinking-to-zero">Shrinking to Zero</h3>
<p>Raspberry Pi released a second line in late 2015: the Raspberry Pi Zero. The target price dropped as well, with $5 being the new standard (although it was difficult to find a retailer with them at stock.)</p>
<p>While the Zero didn’t have the same number of ports — just one micro USB — it did have a massive advantage in size and power consumption. It weighed in at just 9 grams, and the board was just one-third the size. It continued to support the addition of a camera, and the operating system was the same as with the larger models.</p>
<p>The Zero’s power consumption was less than a Watt, enabling it to draw minimal power from either a direct USB power source or a local battery. While the Model B had gotten more powerful, it also was drawing up to 4 Watts — more than double the initial model. This could be a limiter when doing remote data collection in situations where a steady source of power wasn’t available.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*JGmS1vrsjE72qNQ4Ft5hww.jpeg" alt="Image" width="800" height="535" loading="lazy">
<em>Raspberry Pi Zero vs. 2nd Generation Model B</em></p>
<p>The reduction in size allowed for the device to be hidden easier in Internet of Things projects, including this image recognition system I built for <a target="_blank" href="https://medium.freecodecamp.com/how-i-built-a-fully-automated-system-that-restocks-my-kitchens-coffee-from-amazon-87072b65efd0">monitoring my coffee bean supply</a>.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*G1MQH50H359-2HKD9fTuFQ.jpeg" alt="Image" width="800" height="1066" loading="lazy">
<em>JavaWatch based on a Raspberry Pi Zero</em></p>
<h3 id="heading-whats-next">What’s Next?</h3>
<p>As part of their five year anniversary, Raspberry Pi <a target="_blank" href="https://www.raspberrypi.org/blog/#raspberry-pi-zero-w-joins-family">just announced</a> a new wireless version of the Zero with a price point of just $10! Looking at the photo above, it’s easy to see the benefit. Given that wireless connectors need a USB port, you need an adapter so large that it can make the small device look awkward with projects like this.</p>
<p>The latest version puts the WiFi connection on the board itself, eliminating the need for a dongle and the extra expense of a separate WiFi adapter.</p>
<p>My guess is that the next version will upgrade to a multi-core CPU to handle greater processing. There’s parity with most of the other capabilities of the larger model, so you might not need to many other add-ons.</p>
<p>The number of uses for these devices are limitless. They will surely stay in high demand.</p>
<p>Thanks for reading. I hope you get to experiment with a Raspberry Pi soon.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Best Gitter channels on: Hardware, IoT & Robotics ]]>
                </title>
                <description>
                    <![CDATA[ By Gitter If you’re into some high-tech tinkering, maker culture & creativity — we have something for you on Gitter as well. Check out those communities dedicated to hardware, Arduino, IoT, or even a software for drawing robots! Johnny-Five — Johnny... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/best-gitter-channels-on-hardware-iot-dd136c6af664/</link>
                <guid isPermaLink="false">66c345a19972b7c5c7624e1b</guid>
                
                    <category>
                        <![CDATA[ arduino ]]>
                    </category>
                
                    <category>
                        <![CDATA[ iot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Makers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ robotics ]]>
                    </category>
                
                    <category>
                        <![CDATA[ robots ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 12 May 2016 09:21:05 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*1mPYpxUgeRaF2R1MOpG2rA.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Gitter</p>
<p>If you’re into some high-tech tinkering, maker culture &amp; creativity — we have something for you on <a target="_blank" href="http://gitter.im">Gitter</a> as well. Check out those communities dedicated to hardware, Arduino, IoT, or even a software for drawing robots!</p>
<ul>
<li><a target="_blank" href="https://gitter.im/rwaldron/johnny-five?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>Johnny-Five</strong></a> <strong>—</strong> Johnny-Five is an Open Source, Firmata Protocol based, IoT and Robotics programming framework, developed at <a target="_blank" href="http://bocoup.com/">Bocoup</a>. Johnny-Five programs can be written for Arduino (all models), Electric Imp, Beagle Bone, Intel Galileo &amp; Edison, Linino One, Pinoccio, pcDuino3, Raspberry Pi, Particle/Spark Core &amp; Photon, Tessel 2, TI Launchpad and more!</li>
<li><a target="_blank" href="https://gitter.im/firmata/arduino?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>Firmata/arduino</strong></a> <strong>—</strong> A protocol for communicating with microcontrollers from software on a host computer. The <a target="_blank" href="https://github.com/firmata/protocol">protocol</a> can be implemented in firmware on any microcontroller architecture as well as software on any host computer software package.</li>
<li><a target="_blank" href="https://gitter.im/platformio/platformio?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>platformio/platformio</strong></a> <strong>—</strong> An open source ecosystem for IoT development. Cross-platform code builder and library manager. Continuous and IDE integration. Arduino and MBED compatible. Ready for Cloud compiling.</li>
<li><a target="_blank" href="https://gitter.im/z3t0/Arduino-IRremote?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>IRremote Arduino Library</strong></a> <strong>—</strong> Infrared remote library for Arduino lets you send and receive infrared signals with multiple protocols.</li>
<li><a target="_blank" href="https://gitter.im/esp8266/Arduino?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>ESP8266/Arduino</strong></a><strong>—</strong> This project brings support for ESP8266 chip to the Arduino environment. It lets you write sketches using familiar Arduino functions and libraries, and run them directly on ESP8266, no external microcontroller required.</li>
<li><a target="_blank" href="https://gitter.im/FreeCodeCamp/Hardware?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>Free Code Camp Hardware</strong></a> <strong>—</strong> Free Code Camp’s chat about<br>chat about computer hardware and Internet of Things.</li>
<li><a target="_blank" href="https://gitter.im/paparazzi/discuss?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>Papparazzi</strong></a> <strong>—</strong> Paparazzi is an attempt to develop a free software Unmanned (Air) Vehicle System. As of today the system is being used successfuly by a number of hobbyists, universities and companies all over the world, on vehicle of various size (100g to 25Kg) and of various nature (fixed wing, rotorcrafts, boats and surface vehicles).</li>
<li><a target="_blank" href="https://gitter.im/PX4/Hardware?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>PX4 Hardware</strong></a> <strong>—</strong> PX4 Hardware designs. PX4 is an open hardware design, following the OSHW 1.1 definition licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. Website at: <a target="_blank" href="http://pixhawk.org/">http://pixhawk.org</a></li>
<li><a target="_blank" href="https://gitter.im/ajfisher/node-pixel?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>Node Pixel</strong></a> <strong>—</strong> Library for using addressable LEDs (such as NeoPixels/WS2812) with Firmata and JohnnyFive.</li>
<li><a target="_blank" href="https://gitter.im/evil-mad/robopaint?utm_source=blog&amp;utm_medium=content&amp;utm_campaign=hardware"><strong>Robopaint</strong></a> — Software for drawing robots, and your <a target="_blank" href="http://watercolorbot.com/">friendly painting robot kit, the WaterColorBot</a>!</li>
</ul>
<p>Looking for something else? Check out our <a target="_blank" href="https://gitter.im/explore/tags/javascript,php,ruby">Explore</a> section or easily <a target="_blank" href="https://gitter.im/home#createroom">start your own channel here.</a></p>
<p>Did we miss an channel that you think should be featured? Drop us a line in the <a target="_blank" href="https://gitter.im/gitterHQ/gitter">Gitter HQ</a> and we will add it to the list.</p>
<p>Happy tinkering!</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
