TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: How to get started with practical hardware?

29 pointsby thepablohansenover 1 year ago
Hi HN!<p>For a long time, I&#x27;ve wanted to learn how to build projects which &quot;bridge&quot; the gap between software and hardware. I&#x27;ve learned to solder decently well and operate 3d printers, but have found myself absolutely stumped with progressing to a real practical project.<p>Sample projects which get me excited: microcontroller to turn coffee machine on some basic SMS controlled minibot- really anything practical, so I can start to deeply understand the harware construction process &#x2F; first principles of hardware.<p>Are there any seminal (and practical) guides, books, or projects which could get a software engineer well-acquainted with the basics of hardware?

13 comments

jiayoover 1 year ago
Check out Ben Eater at eater.net, he has 2 kits, one where you build an 8-bit CPU, and another where you build a custom computer using a 6502 CPU, all on breadboards (no soldering). The newest third kit is a very primitive VGA card. His Youtube videos are a great resource and really help you understand without just painting by numbers.
评论 #38668847 未加载
mamcxover 1 year ago
A particularly well-suited project is to make a (mech) keyboard.<p>It is good because the basics are simple, and you can &quot;complicate&quot; it in any dimension:<p>- Weird shape? Check - Add a trackball? Check - Crazy layout? Check - Add a mini-lcd screen? Check - Get nuts with actuation points? Check<p>It has a large and healthy community, and people are receptive to nuts ideas.
评论 #38670890 未加载
评论 #38670692 未加载
StayTrueover 1 year ago
Get an Arduino and write HelloWorld. Then add sensors (inputs) and actuators (outputs) to make something more according to your interests. Rinse and repeat.
nobodyandproudover 1 year ago
Why not start with some lowkey Arduino or Raspberry Pi Pico projects?<p>I found the cost (five years ago) was what put me off, but it only took me a few hours to get up and running with a very simple led flashing project.<p>Then life got in the way, but simple temperature sensors, light sensors, etc. can make for some interesting quality-of-life projects.<p>Edit: For additional context, it was a self-driven project (no instructions). Incredibly easy to get into.<p>Getting a simpler CUDA program running took me longer; and I gave up altogether on OpenCL after spending a frustrating 12 hours.
sargstuffover 1 year ago
Mechanical or Electrical with software applications?<p>A search engine(s) can provive a way to explore&#x2F;find specific diy project(s) of interest.<p>A few diy project sites [0][1][2][3] and&#x2F;or ready made kits[3] starter examples.<p>[0] : <a href="https:&#x2F;&#x2F;www.openhardware.io&#x2F;explore" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.openhardware.io&#x2F;explore</a> &#x2F; <a href="https:&#x2F;&#x2F;hackaday.com&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;hackaday.com&#x2F;</a><p>[1] : <a href="https:&#x2F;&#x2F;www.hackster.io&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.hackster.io&#x2F;</a><p>[2] : <a href="https:&#x2F;&#x2F;www.instructables.com&#x2F;projects" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.instructables.com&#x2F;projects</a><p>[3] : <a href="https:&#x2F;&#x2F;shop.evilmadscientist.com&#x2F;directory" rel="nofollow noreferrer">https:&#x2F;&#x2F;shop.evilmadscientist.com&#x2F;directory</a> <a href="https:&#x2F;&#x2F;www.thingiverse.com&#x2F;tag:diy_projects" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.thingiverse.com&#x2F;tag:diy_projects</a> <a href="https:&#x2F;&#x2F;makezine.com&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;makezine.com&#x2F;</a><p><a href="https:&#x2F;&#x2F;www.colorado.edu&#x2F;faculty&#x2F;bogatin&#x2F;projects-students&#x2F;web-sites-project-ideas" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.colorado.edu&#x2F;faculty&#x2F;bogatin&#x2F;projects-students&#x2F;w...</a>
rramadassover 1 year ago
I found the following books quite useful in my study of &quot;Embedded Systems&#x2F;Hardware&quot; coming from a purely Software background. Without overwhelming you they provide just the right level&#x2F;amount of Hardware knowledge to get you going.<p>1) <i>Designing Embedded Hardware</i> by John Catsoulis.<p>2) <i>Introduction to Embedded Systems: Using Microcontrollers and the MSP430</i> by Manuel Jimenez et al.<p>3) <i>Prototype to Product: A Practical Guide for Getting to Market</i> by Alan Cohen.<p>You can also look at using Digilent equipment (eg. Analog Discovery 3 or 2) and learning materials along with Arduino&#x2F;MSP430&#x2F;whatever to get better practical insight into your system - <a href="https:&#x2F;&#x2F;digilent.com&#x2F;reference&#x2F;landing" rel="nofollow noreferrer">https:&#x2F;&#x2F;digilent.com&#x2F;reference&#x2F;landing</a> and <a href="https:&#x2F;&#x2F;digilent.com&#x2F;reference&#x2F;learn&#x2F;start" rel="nofollow noreferrer">https:&#x2F;&#x2F;digilent.com&#x2F;reference&#x2F;learn&#x2F;start</a>
simneover 1 year ago
It depends, on what you want to do. - Electronics is now huge, and have few extremely different parts, which could be all in one project.<p>As example, you mentioned 3d printers, they have digital part, power electronic part and some could have optic (vision) part.<p>To be honest, in University typical person learn few years, and become master in one part, and learn others by books or now by videos.<p>What I see from my experience, nearly all programmers absolutely don&#x27;t understand chemistry, and it is really important for electronics, because you could damage expensive components with wrong chemistry.<p>Second thing, physics, probably astronomy good fit.<p>Electronics itself is not hard, if you know enough chemistry and physics, but without them, will be constant impostor syndrome.
评论 #38669011 未加载
评论 #38669909 未加载
BrandoElFollitoover 1 year ago
My journey to IoTs was through home automation, specifically using Home Assistant.<p>It allows to quickly integrate some hardware through a unified protocol (MQTT, or worst case HTTP) and your van write hardware code easily if you have any dev experience. Or just use ESPHome and YAML.<p>Coupled with 3D printing you can build near stuff (I will have the surprise of a 3D printer for Christmas :))
评论 #38686054 未加载
jareklupinskiover 1 year ago
reposting this tutorial I made some time ago to help bridge the divide between the internet and microcontroller pins, at the end you get a physical Hacker News Badge - <a href="https:&#x2F;&#x2F;github.com&#x2F;jareklupinski&#x2F;hackernews-badge">https:&#x2F;&#x2F;github.com&#x2F;jareklupinski&#x2F;hackernews-badge</a>
petefordeover 1 year ago
Having spent 2023 doing exactly what you aspire to do, I have some casual friendly advice: go into this problem-first.<p>While everyone learns differently and finds motivation in unique ways, nothing pushes me through all of the layers of frustration and learning like having an end-goal that I&#x27;m passionate about realizing. On the contrary, just hitting a list of things to learn in an arbitrary order hoping that it will stick when I actually need to get something done is like driving high speed into a wall.<p>When you approach a problem, the correct answer to &quot;what next&quot; is usually pretty apparent. In my case, for example, I had no idea that transitioning from software development to &quot;hardware&quot; (which really is just software running on hardware) would involve detours into learning Solidworks CAD so that I could model enclosures as well as render out what things will look like before they exist.<p>Another major area that I drastically underestimated was connecting the dots between the parts&#x2F;components I use and the logistics of sourcing and using those parts. For example, the parts that are easily available on demand at JLCPCB are not only vastly different than what you can get from Digikey and Mouser, but they often need to be ordered in quantities of 100+. It&#x27;s also &quot;fun&quot; realizing that if you want KiCAD to have nice looking 3D renders of your future board, you often have to go off hunting for 3D step files of each part. You are about to learn how it&#x27;s common to make an order at Digikey that is actually shipped to JLCPCB so that they can assemble your board. They will even hold on to your parts in between orders.<p>Get comfortable with Octopart!<p>One project that I recommend is to actually implement your own MCU board instead of relying on prefabricated Adafruit or Arduino boards. Not only will it give you more flexibility, but there is something really gratifying about fully understanding how and why everything is working. While there are many tutorials on how to do this, I personally really like working with RP2040 chips and I found this three part series excellent: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=RNH-CL8GrF8" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=RNH-CL8GrF8</a><p>One bit of parting advice (feel free to ask more) is around the concept of switch debouncing and hardware interrupts. I&#x27;ve found that there&#x27;s a sort of &quot;stages of grief&quot; where people go through a dozen increasingly complex ways to make 1 press = 1 event. The short version is that there&#x27;s no perfect way to do it in software, and where software is involved, you want to move away from polling pin state in your loop to using interrupt handlers ASAFP because sleeping in your loop is the root of all evil.<p>IMO, the only correct way to do switch debouncing is to use resistors and capacitors; this is known as an RC debounce (Google it). You then send those signals into a hex inverter like the 74HC04, and then into a digital pin on your MCU (which is then captured by an ISR hardware interrupt).<p>Every other path will just lead to pain. This might seem like a digression, but you&#x27;ll thank me later.<p>Finally, you will be pleasantly shocked by how amazing GPT is at talking through schematics. It knows the datasheets, can explain circuits and alert you to quirks and gotchas.<p>ps. if you find yourself without interesting problems to solve, I highly recommend buying some cheap Nerd Musician courses and building some MIDI controllers! <a href="https:&#x2F;&#x2F;www.musiconerd.com&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.musiconerd.com&#x2F;</a>
dv35zover 1 year ago
I suggest searching for a makerspace &#x2F; hackerspace in your city, and scheduling a tour. Day 1, you’ll meet interesting people working on projects like that - meeting them and geeking out, you might quickly have a local advice &#x2F; how-to &#x2F; project partner buddy.
aprdmover 1 year ago
Buy an fpga
eternityforestover 1 year ago
Embedded tech here! There are many ways to get started but since you seem to be interesting in the practical, modern, IoT centric way it makes things a lot easier.<p>This is all quickly typed on mobile:<p>The first thing to do is to check out this online simulator and get a sense of basic circuit theory: <a href="https:&#x2F;&#x2F;www.falstad.com&#x2F;circuit&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.falstad.com&#x2F;circuit&#x2F;</a><p>The first thing <i>not</i> to do, is to buy a bunch of random junk. Buying stuff is a fun hobby but it is very different from actually doing projects and learning!<p>You will probably want a good multimeter, but I can&#x27;t recommend a good affordable one. They are all pretty OK these days, but the current &quot;Really nice one everyone likes&quot; changes every few months or so as they change the models. Probably all the same chips inside...<p>You&#x27;ll probably want an ESP32 development board with USB-C, some random sensor modules, whatever happens to interest you, maybe some relay modules, etc.<p>After that, you&#x27;ll want to try out some breadboard projects, but I think you might quickly want to move on from that, and start doing PCB design. It&#x27;s so cheap and easy these days.<p>and a soldering iron. I suspect you will want a Pinecil, and the thumb screw upgrade for said pinecil. I have a similar one but haven&#x27;t tried the pinecil itself, this stuff changes fast. It&#x27;s about $25.<p>SMD breakout boards are a good way to learn surfaces mount soldering while still doing breadboard stuff.<p>Eventually you&#x27;ll want to do a project with just a bare microcontroller, if you&#x27;re serious about learning. I don&#x27;t ever actually do this in real life because I don&#x27;t do high volume work, and IMHO using modules just makes so much more sense if you&#x27;re making 10 of something custom that&#x27;s hand-assembled.<p>But I&#x27;m glad I know how to, even if I don&#x27;t generally need to.<p>You do not need a bench supply till you get a bit more advanced, very basic stuff can all be done on USB.<p>If you <i>really</i> are serious about this stuff, you&#x27;re probably gonna want to learn some math if you&#x27;re not already a math person, and maybe look into FPGA work, because there seems to be lots of jobs these days doing pretty high end advanced stuff.<p>A Coffee machine microcontroller seems like a simple enough starting point.<p>Stuff to consider:<p>How will you interface with the machine? Will you be switching 120vac? That of course requires lots of caution and you shouldn&#x27;t mess with it till you actually know what you&#x27;re doing.<p>But there are power strips with control voltage inputs that essentially abstract away the dangerous part in a professionally made box.<p>For an SMS controlled bot, you have a couple challenges that are all pretty independent.<p>First you need a source of power, and protection and charging for said power. I like to just use modules for that, but it might be fun to do that yourself on a PCB.<p>You need motor drivers and motors.<p>You need the mechanical side, for me this would be the hard part.<p>You need a microcontroller, and some kind of modem. They don&#x27;t have to be on the same device, maybe you have a 4G gateway device that sends commands over WiFi to the bot, or maybe it&#x27;s all onboard.<p>There&#x27;s always lots of possibilities. Modern tech is basically just tiny computers with different IO, and computers allow a ton of creative freedom.<p>And you need to figure out how it all connects. Will you breadboard, use modules and jumpers, or go straight to a PCB design?<p>Once you generally know how electronics works(A simulator will greatly aid this), pick a project, pick a subsystem, and research all the ways that subsystem could be implemented.<p>I started pretty much just by jumping in. Arduino is the classic place to start and it&#x27;s pretty nice. PlatformIO is even better these days.