#i also need a microcontroller
Explore tagged Tumblr posts
Text
slowly putting together my plan to make a much much improved momo costume (i even have a spreadsheet and everything!!) but the amount of new things i'd have to buy is kind of scary tbh
#uhhhh me#the leds alone costs 30$ plus shipping...#i also need a microcontroller#a nano controller is $20 plus shipping#at least the programs are free thank god indie developers ilysm#ya ya i know ~$60-70 is not expensive by most people's standards#but i'm frugal ok#esp for this new territory. i don't know shit about computer science
2 notes
·
View notes
Text
Miata Mod Master Mᴉsɥlᴉsʇ
[I had to spell Wishlist upside down to keep the alliteration going]
So, here's my first original post in quite a while. Apparently, the last one was a whole hundred followers ago - immense thanks to all 400 of you!!! And also, Tumblr informed me I got 1000 likes and kindly generated a picture for me to thank y'all for them with!
Given that's 2.5 likes per follower, I assume they mean 1000 likes just on my original posts, which would track considering most of my posts are additions, and liking all of those either counts towards that tally as just one like to my original post, or if you liked it through a reblog potentially nothing at all, because maybe likes to reblogs aren't counted even if they're reblogs of my own posts. But don't think I'm a numbers-chaser, this is just me wondering. Really, the only reason I even look at the activity chart of my blog is because I started trying to make that line as straight as possible for giggles (and then some of my posts blew up and ruined it, ecksdee). The thought of someone having enjoyed what I wrote has me smitten every time I see it, and I can barely even comprehend the idea that it happened a literal thousand times. I still can barely wrap my head around four hundred people all having decided they actively want to hear more from me. (Usually it's the opposite, har har.) I love all of you for it. The freaks, the puritans, the children (wait I just said that OOH GOTTEM), the adults, the uncomfortably weird, the hyper-organized users that use different blogs for each one of their passions, the hyper-random users that reblog my posts right after diaper fetish art. (And if you thought that was some whiplash, imagine the guy who followed a diaper fetish art blog getting shown me.)
But this is just me buying time, isn't it. Alright alright, let's talk about the wishlist, beginning with its premise.
This is not advice. This is not a list that makes sense at all, really - most of these items are way far down the list of things I'd do with the money they cost and/or the effort they'd take. This is a dream, where those aren't a factor. Just like some people's dream car is a ten million dollar hypercar that was built directly into the bodies of five Middle Eastern oil moguls, my dream car is a Miata with exactly these bits. (And a Seven, but I really need to stop confusing y'all with them being tied for the favorite car top spot.)
This list is based on a note I started in middle school for the fun of it (which is hopefully understood as the driving motive behind this all) and gradually updated through high school and sort of left behind after that, having kind of run out of bits to add to it. It's split into six sections:
Exterior
Interior (i.e. cabin, trunk and engine bay)
Drivetrain (i.e. anything that plays a role in making the wheels spin)
Chassis and suspension (i.e. chassis and everything that connects the wheels to it)
Electronics (i.e. electronics/microcontroller-related features)
Miscellaneous
This will be a chance for me to check the prices of all the things I listed and, at the end of it, tally up their total cost and feel feelings about its enormity. But of course, we'll need to start with a thing that was not in the note, as it was a given to me: the base car. So that will be the subject of my next addition to this post.
Because I can't make this a single post. Absolutely no chance. Even just any workaround to the image limit being about a fifth of the length of this list would be a nightmare for me to execute and for y'all to navigate. And frankly, the length of the task would make me, if not outright give up, at the very least skimp on the kind of explanations and discussions that I must assume are why you're all here. So I will need to make additions to this post (in the form of a reblog, of course) each going over one section at most. But truth be, even doing one reblog per section presents those problems, so some sections would need splitting in a number of parts. Or I could go to the other extreme and made one post per item (or when appropriate group of items), which would allow me to expand upon every which one as little or as much as appropriate while still keeping a tidy presentation. But to do this I would need to hide all the information bar the name under a Read More, because if I put as little as one picture before it by the time I'm at the end of the list every time this post appears in your dash you'll have to scroll past some hundred pictures to get to the bottom of it; also, of course, this would mean this post showing up in your dash upwards of a hundred times - though of course you could just ignore it a bunch of times and when you feel like it go through all the parts you've not read yet at once.
Right now I'm leaning towards the one post per item approach, which would allow me to work towards the completion of this abomination in small daily steps rather than in age-long parts which would also help addressing your other submissions. But it's very hard for me to figure out what y'all would prefer, as it's kind of hard for me to figure out who would actually want to read through the entirety of this. So, y'all are welcome to leave your feedback in the replies or through this non-binding format poll.
Links in blue are posts of mine about the topic in question - if you liked this post, you might like those!
#i would have set something like two or three days but since day and week are the only options week it is#tumblr milestone#thank you#i am pretty sure those were tags included with the post but you know what I feel them so let's leave them in#mazda miata#mazda mx-5#eunos roadster#miata mod master wishlist
92 notes
·
View notes
Note
WARNING: LONG ASK INCOMING
For hobby electronics there’s two major kinds of processors: Microcomputers and Microcontrollers. Microcomputers are small full computer systems like the Raspberry Pi, they typically run a general-purpose OS (typically some flavor of Linux) and are useful for the kinds of projects that require basically a full computer to function, but not necessarily individual sensors. They’re a great place to start for people who don’t know a whole ton about programming or working with individual components because they typically can output a true GUI to a screen and have the capabilities of a regular desktop computer. They have a main processor, true RAM, and either large on-board storage space or a way to read a storage device, like an SD card.
Microcontrollers are less complicated (component wise) than microcomputers, but as a result are more difficult for total beginners to begin working with. They’re typically primarily a SoC (System on a Chip) processor without discrete RAM modules and a very small EEPROM (on-ship storage space) and need to have components wired and configured to them to be able to do much more than being a fancy calculator. They’re used for when you need something to carry out electronic functions or get sensor readings, but not necessarily a full operating system, so they’re best suited for small/integrated applications. Your helmet uses a microcontroller to control the LEDs you used in the Cunt Machine post.
I build high-power model rockets as a hobby and with my university team, so I work with both kinds of processor as part of designing payload systems. I typically prefer microcontrollers in these as most of what we do doesn’t need an actual OS to run, and they’re smaller/lighter than microcomputers. One of the advantages of a microcontroller is that it runs a Real-Time OS (RTOS) which forgoes all the user-friendliness of things like windows and linux to instead be the bare minimum backend necessary to run code uploaded into the processor.
The main advantage of using a microcontroller is really that they’re typically a lot cheaper than microcomputers are and are plenty powerful for really embedded applications. They also make other parts of whatever system is being built cheaper/easier to integrate because they require less overhead to function - the raspberry pi needs a minimum of 5 volts of power to work, while a chip like an ESP32-PICO can run at 1.8V.
The main way you make sensors/buttons/peripherals work with a microcontroller is via digital communication busses. There’s a few protocols, the most common being I2C, SPI, and UART. I’ll talk about I2C since that’s generally the most common. With I2C each component is assigned a 2-byte “address” that they’re identified by. When the controller sends a request signal on the I2C data bus, every sensor along the line will return their own signal, marked with their address so that they can be identified. It allows for a large number of devices to be put on the same lines and you can daisy-chain them through each other to the microcontroller.
I’ll be honest I really can’t think of a good way to say much more on the subject as like a starting message because I’ve been working with computers so long all the tech stuff for me is second nature, but if you have any questions ask away I can probably answer them or google them.
.
#AAAAAAAAAAAAAAAAAAAA TY INFORMATION#no yeah this is either really beginner friendly or. friendly to how much i have learned so far#tysm!!!! your insight is consistently so helpful <3#ask#lobsterbitches
27 notes
·
View notes
Text
I impulse-purchased a few LED boards from a surplus operation recently, and I'm not sure if it was a good idea or not.

Each unit is a WS2812B, which are pretty common addressable LEDs. You can hook power and ground to the board and use one wire from a microcontroller to set any of the 56 lights to a different RGB color, letting you make colored lights or animations easily; each LED hooks to the next and you just wire them together to make long strings or panels. This particular board has four pins on the back, which made me hopeful that they were for power, ground, input, and output.
Well, unfortunately, testing turned up that the output isn't in that pin header. If I want to daisy-chain these I'd need to solder an extra wire onto the far right end — there's a tiny copper pad, at least, so I wouldn't need to wire directly onto the chip — to plug in the next panel. Now, microcontrollers generally have more than one output pin, so it's also pretty straightforward to wire a few of these in parallel instead of in series, but it's more of a hassle than just changing the number of LEDs in your string.
Unfortunately I kind of got these without a specific use in mind, so I'm not sure what they'll go into. These are the dangers.
#diy#electronics#i didn't get all that many either#not sure what particular use a roughly 15x19 display would be
2 notes
·
View notes
Text
Heck yeah! Got my super dirty diy audio oscilloscope probe circuit working on the first try!


The Pi is just producing a 1kHz test signal with PWM stepping back and forth between 0-100% duty cycle.
The scope is xoscope which is GNU software I'm running on my Ubuntu machine.
The circuit itself is very simple:

Also really noisy... I can probably do a lot better with an instrumentation amplifier, but I also feel like I need something a little more robust than the scavenged headphone cable I'm using to connect to the microphone port. Also could probably get better sample rates with a microcontroller, but there's a bunch of development I gotta do before that.
This is good enough to get started on some stuff though, and it's good to finally get my hands dirty.
#still got a bunch of crap in a digikey cart waiting to order#i should probably do that#synth diy#diy electronics
12 notes
·
View notes
Text
Sega Genesis Game Pads and the Mode Button


I had a Sega Mega Drive (aka Genesis) as a kid, and also a 6-button game pad. Actually still have, but I haven't used them in forever.
The 6-button controller has shoulder-button labeled "MODE" and I only learned what it's for recently. When you hold it down while starting the console, it will disable the extra buttons and act like an old 3-button controller. Ok, that's pretty boring. The interesting part is why I didn't need to know that.
3-Button Controller


Basically, the 6-button pad Just Works because the 3-button pad already had one button too many. The controller uses a connector with 9 pins. One pin each for power and ground leaves you with 7, but it has 8 inputs: UP, DOWN, LEFT, RIGHT, A, B, C, START.
To solve this, the controller contains a multiplexer. By setting the voltage on one of the pins, the console can select which inputs it wants the controller to report.
When voltage on the select pin is LOW, the controller indicates that it is present (so you can distinguish "no controller connected" from "no buttons pressed") and reports the state of the inputs UP, DOWN, A, START.
When voltage on the select pin is HIGH, the controller reports UP, DOWN (again), LEFT, RIGHT, B, C.
This makes it backwards-compatible with Sega's earlier console Master System, with B and C corresponding to buttons 1 and 2 on the MS controller, and A and START doing nothing.
The way a 3-button game normally interacts with the controller is that for each frame, the game briefly sets the select pin LOW, records the inputs, then sets it back to HIGH and records the rest. These are then the inputs for that frame. This is also called a pulse.
6-Button Controller
Instead of a multiplexer, the 6-button controller has a microcontroller that counts the number of pulses received. For the first two pulses, it behaves like a 3-button controller. Also, the counter resets after not receiving a pulse for 1.5 ms. That way, a 3-button game running at 60 fps that reads the controller once per frame will only see the behavior that it expects. Unfortunately, a small number of 3-button games don't behave this way (Ms Pacman for example), so that's why the MODE button is needed.
A 6-button-aware game interacts with the controller by rapidly pulsing it three times every frame. When the select pin is set LOW for the third time, a 6-button controller will indicate that it is in fact a 6-button controller. If a game isn't 6-button-aware and somehow gets the controller in this state, this looks as if you're pressing UP and DOWN simultaneously, so that's where the problems start.
When the pin is set to HIGH again, the controller reports the X, Y, Z and MODE inputs. So you can also use the MODE button as a normal game button. Only a handful of games do this though, and some of them only for cheat codes. (I actually happen to own one of them: Vectorman)
I just thought this is very hacky and also really cool! I wonder if I could manage to read out my old controllers with an Arduino or something!
Sources
"Sega Six Button Controller Hardware Info" by Charles Rosenberg
"How To Read Sega Controllers" by Jon Thyssel
Sega Retro page
5 notes
·
View notes
Text
Arduino Due vs. Mega: A Comprehensive Comparison
What is Arduino Due and Mega?
The Arduino platform has revolutionized the world of DIY electronics, providing hobbyists and professionals alike with versatile and powerful microcontroller boards. Among the myriad of options, the Arduino Due and Arduino Mega stand out for their advanced features and robust performance. The Arduino Due, introduced in 2012, is the first Arduino board based on a 32-bit ARM core microcontroller, the Atmel SAM3X8E. In contrast, the Arduino Mega, built around the 8-bit ATmega2560 microcontroller, is known for its abundant I/O pins and memory. Understanding the differences between these two boards can help in selecting the right one for specific projects, enhancing both functionality and efficiency.
Processing Power and Performance
The processing capabilities of the Arduino Due and Mega are distinctly different, primarily due to their core microcontrollers. The Arduino Due, with its 32-bit ARM Cortex-M3 processor running at 84 MHz, offers significantly higher processing power compared to the Arduino Mega's 8-bit ATmega2560, which operates at 16 MHz. This difference in architecture and clock speed means that the Due can handle more complex calculations and tasks faster and more efficiently than the Mega. For projects requiring high computational power, such as real-time data processing or handling multiple sensors simultaneously, the Due is the superior choice. However, for simpler tasks, the Mega's processing power may suffice.
Memory and Storage Capabilities
Memory is another critical aspect where the Arduino Due and Mega diverge. The Arduino Due is equipped with 512 KB of flash memory for code storage and 96 KB of SRAM for data. On the other hand, the Arduino Mega has 256 KB of flash memory and 8 KB of SRAM. Additionally, the Due features a Direct Memory Access (DMA) controller, which allows for efficient memory operations, freeing up the CPU to handle other tasks. These memory enhancements make the Due more suitable for applications requiring large codebases and significant data handling, such as advanced robotics or sophisticated control systems. The Mega, with its more modest memory, is ideal for less demanding applications.
Input/Output Capabilities and Expansion
Both the Arduino Due and Mega are renowned for their extensive input/output (I/O) capabilities, yet they cater to different needs. The Mega boasts a whopping 54 digital I/O pins, 16 analog inputs, and 4 UARTs, making it ideal for projects that require multiple sensors, actuators, or communication interfaces. The Due, while offering fewer digital I/O pins at 54, includes 12 analog inputs and 4 UARTs, along with additional features like two DAC outputs for analog signal generation and enhanced PWM capabilities. These features provide the Due with superior analog output capabilities, making it suitable for applications like audio processing or advanced signal generation.
Power Consumption and Compatibility
Power consumption and compatibility are practical considerations when choosing between the Arduino Due and Mega. The Due operates at 3.3V logic levels, which makes it more power-efficient than the Mega, which uses 5V logic levels. This lower voltage operation is beneficial for battery-powered projects where energy efficiency is crucial. However, the 3.3V logic also means that the Due is not directly compatible with 5V components without level shifters. The Mega, with its 5V logic, offers broader compatibility with existing Arduino shields and components, making it a versatile choice for a wide range of projects. Understanding these power and compatibility nuances can help in making an informed decision based on the project's specific requirements.
2 notes
·
View notes
Note
what's the plan for the jukeboxes? curious about how v2 is coming along 👀
also i love mine to bits, wanna wire it up for a soundboard at some point hehe
OH BOY I GET TO TALK ABOUT MY OTHER WEIRD PROJECTS!
Jukebox development has been on hold for a while now! Between the work on the next version (which would've been v4, btw, not v2. (I've been working on this for fuckin ever dude good god) Fun fact, you and some others got a v3!) and life just kind of happening to me, I haven't made much progress. Part of that life bit was also because I'm actually going to be doing an independent study with a prof at my university to develop the (hopefully last) version of the Jukebox.
The plan is to use a cheaper microcontroller (v4 had one that cost $2.50 to $4 per chip, v5 will be using one that's only $1 with a $0.25 memory chip) but keep pretty much everything else the same from the previous version. That means USB-C, Cherry MX and Kailh Choc key switch support, and open source everything. It would also have another 4 keys for the "modifier" (ctrl, alt, shift, super) keys for even more hotkey-ability.
I actually have a bunch of v4's built, and have been meaning to give them away to local friends or swap them with existing Jukeboxes I have given/sold to people. I also use a v4 with some "relegendable" key caps.
Ideally, the final version of the Jukebox would be sold with these (or similar) key caps, with a fun sticker sheet or something. The current "stickers" are made of printer paper, held in by the top and bottom halves of the keycap. I regularly use this while streaming and when I'm in Discord calls. It's great!
A big part of the reason the Jukebox still isn't finished, even with the whole independent study thing, is that I want it to be basically "finished" when I release it. Nothing new should need to be done with it once its out in the world. No firmware revisions, no bloated desktop applications. I want it to be something you can buy once and be happy with for the rest of your computing days, because lord knows we already have enough e-waste in the world. Designing products that last and that people want to use can be hard, especially when you're self funded and solo!
But I still have more plans for this thing, like this screen add-on for monitoring PC performance for weird PC building nerds like myself (or just anything, because it's a screen), and hopefully by next May it'll be ready for order proper. (Also ideally any old jukeboxes out there would just get a simple swap with the new ones. I'm already super in-the-red in terms of profit off these things, going in further wouldn't be so bad if it meant I got some of my old equipment and stuff back so I can use it for other things :D)
7 notes
·
View notes
Text
The Universal Serial Bus is often not universal...
So there is this problem you often run into when doing development. You come up with a solution. You research the solution, and find only tiny amounts of people talking about it, and/or they seem to say many different things and disagree. Most of the time, that is for 2 reasons 1: it is a very novel solution, so no one have tried it much, and everyone who have, has made very custom versions of it. 2: There are variables that makes it impossible to do it in one single way. I needed a rechargeable battery system to power my robot. These can get... VERY complicated, and pre-made solutions can quickly be expensive and you might end up with batteries catching fire, or destroying the batteries so they can never be used again. You need protections on them, but which kind depends on a bunch of things. I know electronics, but I am mainly a software guy, and I know when I do not know enough about electronics to do it myself. This being such a case. So, I came up with the idea to use powerbanks. One for each steppermotor, and one for the microcontroller(so the noise fromt he motors could not cause issues).If I use ones that can output enough amperage, they should just work and they are cheap. They are meant to be used by normal costumers, so have all the protection needed, and are quite idiot-proof(Which is a very handy thing when you are an idiot, like me) so should be easy to use. But I could not find much info about doing this... and I did not realize I was looking at reason 2. Basically, BECAUSE powerbanks are idiotproof, they do not want to discharge themselves unless there is a real device at the end of the USB cable. So if they cannot detect one, they turn off after about a second. How do they determine if there is a real device? Depends on the power bank.... No really, there is NO standard way to do it, as far as I can tell. And it does not depend on the power bank MODEL. I have 2 identical power banks, bought at the same time, and they do NOT behave the same. Which means that when I connected the powerbanks to supply my system, they (SOMETIMES) did not supply anything. Some check how much current is being drawn, which can be faked with a resistor wasting some power. 500mA was being quoted a lot, but that is more of a "That is probably enough to get it going". Others check for impedance(Basically, also resistance, but from frequency dependent sources). Those can be "faked" by having a coil or a device that acts like one to the faking resistor. I wanted a tiny 5 volt fan to cool the stepper motor drivers anyway, so I had one power bank also power that. That ensured that it actually stayed on (But if I used the other, (identical!) power bank it just turned off anyway). The other one could be connected up directly. If I used the powerbanks lower amperage socket. If I used the high amperage one, it just turned off. So now it works... I have 2 powerbanks for the motors, each with painters tape marking which powerbank and socket to use for what. Took me a week longer than I had hoped to figure all this out and do all the experiments. Sometimes, things that should be simple are just headaches.
7 notes
·
View notes
Text
we did not in fact finish the lab due this morning or come even close BUT he’s giving us the next week with no late penalty bc it turns out one of the pins we were trying to use to communicate Actually Does Not Exist #slay
#personal#the engineering chronicles#it’s literally listed as an i2c pin in the tables but i overheard the student assistant say it’s not a real pin when i got into lab and was#like ?!?! and looked it up in the data sheet and for our version of this microcontroller yeah they replaced it with a capacitor for some#inexplicable reason and Left The Pin Label There. also need to stress that where it says it’s an i2c pin it IS listed under our specific#microcontroller like. technical writer of this data sheet when i catch you ‼️#so anyway. that was NOT the only issue we had even if the pin did exist it was supposed to be set for i2c2 and we accidentally set it for#i2c1 and also none of us has any clue what command to send to make the led on the other board like up but he doesn’t need to know that 🤫#*light up#even my prof didn’t know abt the secret nonexistent pin and he said no student of his has ever had this issue which actually i don’t think#is true bc i’ve been trying to avoid the b port all semester Specifically bc i remember having weird issues with the pins not working on it#last year and i suspect this is why but. yeah no consequences YIPPEE 🥳
3 notes
·
View notes
Note
🪩
From the “I’ll make up the questions myself” ask game
🪩 Opinions on weird lighting?
The best weird lighting solutions are the ones you build yourself, with a soldering iron, and also a PCB and a microcontroller and perhaps some Neopixel addressable lights. I love me building some weird lights, but sometimes find I get bored with the results quickly. I need to build more.
Also, the term "addressable LED" for Neopixels bothers me. The things don't have addresses, just positions in a chain. They're individually controllable even in long strings, which is great, but there is no address, you just say "colors for the first LED, colors for the one after that, colors for the one after that…" and so on. I guess the term Neopixel, being a marketing term coined and probably trademark by exactly one dealer, is not great either, but I like it more.
2 notes
·
View notes
Text
tbh one of the things I really like about the PC platform is that it's still - despite all the attempts to make it less so - a relatively open and flexible platform in a way that few others really are, especially these days. You can mix and match hardware from all over the place, sometimes even surprisingly old hardware with the right conversion bits, and several interfacing standards are open and documented to the point where you could literally make your own USB devices or ISA/PCI/PCIe expansion cards given the proper hardware and know-how.
And sure, most of us are never going to have either the tools or technical expertise necessary to make our own PC components or peripherals, but the platform is still open enough to have the kind of wide cross-compatibility where at least in theory any peripheral or piece of hardware could in theory be adapted to work with it - it's simply a matter of someone figuring out a way to make it work and giving others the means to replicate what they did.
I could take literally any kind of input peripheral, be it a joystick, keyboard, gamepad, mouse, or whatever, and chances are someone out there will already have made some kind of adapter to let me hook it up to my PC if I wanted - and in the rare case that none exists to buy, there's still likely to be enough information around that I could use a cheap USB microcontroller as a go-between to make it work.
also look you basically have no idea how excited I am to have discovered that the mainboard I'm looking to get for a much needed PC rebuild somehow has an old 9-pin header for a serial COM port
4 notes
·
View notes
Note
physicist and embedded systems engineer??? what did you do for college I need your life
I just did physics, like the whole route, Bachelor's, Master's, PhD, although heavily specializing in numerics, so 90% of my phd was programming.
Realized academia is a trap (and also fundamentally incompatible with the life I want), so I applied for software engineering positions instead of postdocs. Got hired into an embedded software team and learned how to program microcontrollers. Turns out it's surprisingly similar to programming supercomputers :)
3 notes
·
View notes
Text
it's also super dependent on what you're doing and the materials at play. jewelry, depending on what's in it, can be DIRT CHEAP from a material and sometimes time cost (even if you pay yourself very, very well for the time) before accounting for future self-investments, but those future self investments can be expensive because it can mean "means to recycle silver and gold from trimmings" or better tools and anvils and molds and shapers and and and. Any kind of fabric craft requires a lot of material and a TON of time for something that looks "easy" on the surface. and it's not easy to make changes once it gets far enough in without just going "this is a new commission."
woodworking? depends on what wood you're using, whether you're using tools like a CNC or similar or have to do everything by hand (or with less sophisticated means), the complexity of the project... not to mention needing to account for even more wood and time should something go wrong (it will). metalwork? same as woodworking.
any kind of microcontroller work? if you're hand soldering tiny components you gotta account for at least one fuck-up per part per project. gotta account for all the code effort, design work, and testing to make sure stuff has continuity and shit. And the inevitable time spent doing a redesign because one company stopped producing a part and you can't find a cheap-ish drop-in.
Craft work in general is expensive from a time point alone, especially once you get beyond "simple" hobby work (that's still hard). Materials could range from from twenty bucks to hundreds before thinking of if shit happens.
Shit's expensive, your time is expensive, and people just don't realize how much everything costs these days and how, especially if you're trying to (or already are) doing this full-time you NEED to pay yourself and any potential assistants super well. It's fucked.
I feel for every creative, every maker, who struggles to increase prices because people don't realize how expensive shit gets, especially once you consider errors or mistakes or changes from the commissioner that mean re-doing a lot of work. It's hard to strike that balance between "paying yourself well" and "charging the price that you know is subpar but people will actually pay you for."



True facts.
48K notes
·
View notes
Text
A Comprehensive Guide to Firmware Development

In the world of embedded systems and smart devices, firmware plays a critical role in enabling hardware to function effectively. Whether you're developing IoT devices, automotive systems, or industrial machinery, firmware development is the backbone that bridges hardware and software.
In this blog post, we’ll explore what firmware is, its importance, the development process, tools used, and best practices to ensure efficient and secure firmware solutions.
What is Firmware?
Firmware is a specialized type of software that provides low-level control for a device's specific hardware. Unlike regular software applications, firmware is tightly coupled with the hardware and is often stored in non-volatile memory such as ROM, EEPROM, or flash memory.
Examples of devices with firmware include:
Smartphones
Routers
Smart TVs
Medical devices
Automotive control units (ECUs)
Why is Firmware Important?
Firmware is essential because it:
Controls hardware operations: Without firmware, the hardware components of a device would be non-functional.
Ensures device functionality: It manages startup routines, I/O operations, sensor integration, and communication protocols.
Supports software-hardware integration: Firmware acts as a middle layer, allowing high-level software applications to interact with low-level hardware components.
Enables updates: Firmware can often be updated to fix bugs, enhance performance, or add features.
The Firmware Development Process
1. Requirements Gathering
Understanding the hardware specifications and the device’s purpose is crucial. Developers need to gather requirements from both hardware engineers and end users.
2. Architecture Design
This involves deciding on the architecture and communication protocols (e.g., I2C, SPI, UART), memory usage, and timing constraints.
3. Choosing a Development Platform
Most firmware is written in C or C++ due to their efficiency and hardware-level access. You’ll also need:
Microcontroller/microprocessor datasheets
Board Support Packages (BSPs)
RTOS (Real-Time Operating System), if required
4. Coding and Integration
Firmware code is written to interface directly with hardware. This includes writing drivers for peripherals (LEDs, sensors, motors) and managing power consumption, timing, and interrupts.
5. Testing and Debugging
Testing includes:
Unit testing
Hardware-in-the-loop (HIL) testing
Simulation and emulation tools
Debugging tools such as JTAG and SWD are used to step through code and analyze performance.
6. Deployment
Once tested, firmware is compiled and flashed onto the device using programmers or over-the-air (OTA) update mechanisms.
Tools Used in Firmware Development
Integrated Development Environments (IDEs): Keil µVision, MPLAB X, STM32CubeIDE
Compilers and Toolchains: GCC, IAR Embedded Workbench
Debuggers/Programmers: JTAG, ST-LINK, AVR ISP
Version Control Systems: Git
Simulators/Emulators: QEMU, Proteus
Best Practices for Firmware Development
Write modular and reusable code
Follow coding standards (e.g., MISRA C for safety-critical systems)
Optimize for memory and power consumption
Document thoroughly for maintainability
Implement fail-safes and watchdog timers
Secure your firmware (e.g., with encryption and secure boot loaders)
Plan for firmware updates with mechanisms like OTA updates
0 notes
Text
Intelligent Integration: The Evolution of Tactile Switches in High-End Equipment

With the increasing demand for intelligence, precision, and visual aesthetics in modern electronic devices, traditional tactile switches are undergoing a technological evolution. In particular, integrating tactile switches with LED light pipes has become a popular solution in high-end applications such as industrial control panels, medical diagnostic devices, automotive cockpits, and smart home systems. This article will delve into the trend of intelligent integration of tactile switches, explore the technological implementation of combining tactile switches and LED light pipes, and present typical application examples.
1. From Basic Function to Smart Module: The Intelligent Evolution of Tactile Switches
Traditionally, tactile switches have functioned as simple input components. However, as devices become more intelligent and user interfaces more interactive, tactile switches are now required to provide not only accurate tactile feedback, but also visual cues, integration with status indication, and remote control capability.
The concept of intelligent tactile switches has evolved to include:
Integrated LED light pipes or indicators for instant visual feedback
Embedded control ICs or communication modules (e.g., I²C, CAN)
Flexible circuit integration with sensors or signal processors
This shift makes tactile switches part of the broader intelligent system rather than isolated mechanical units.
2. Technology Focus: Integration of LED Light Pipes and Tactile Switches
One of the most successful trends is combining tactile switches with LED light guides or light pipes, forming a compact and intelligent interaction module.
Structural Design:
LEDs are placed beside or below the tactile switch, with specially designed light pipes guiding light to the button surface.
The light pipes are often made of transparent polycarbonate (PC) or acrylic (PMMA), with precise light-path control for uniform illumination.
Benefits:
Space-saving design: Integration minimizes the need for separate light indicators.
Improved user interface: Users receive both tactile and visual feedback (e.g., light on = switch activated).
Customization flexibility: Multi-color LEDs (RGB) allow dynamic state representation.
Example: Smart Medical Equipment
In high-end medical diagnostic devices, a control panel might include tactile switches with integrated blue LED light pipes to indicate sterilization mode. Medical staff can easily identify the function status even when wearing gloves, enhancing safety and usability.
3. Application in Automotive and Industrial Control Panels
In modern automotive dashboards, tactile switches are integrated into steering wheel or console modules. For example:
Engine start buttons with LED light rings
Climate control or seat heater buttons with colored LED indicators
These switches not only provide intuitive control but also blend with the vehicle's ambient lighting system, creating a consistent and elegant UX.
In industrial control interfaces, tactile switches with light pipes are used in:
Machine status indicators (green = ready, red = fault)
Operation confirmation buttons (light blinks on press)
They improve operational clarity and reduce error rates in complex environments.
4. Extended Integration: Tactile Switches + Control Logic
Beyond LED integration, some advanced tactile switches embed microcontrollers or digital logic for:
Signal filtering and debounce
Smart mode switching (e.g., long press vs. short press)
Wireless connectivity via Bluetooth Low Energy or Zigbee
This is especially valuable in smart home systems, where wall-mounted control panels use such intelligent switches to control lighting, curtains, and scenes—sometimes with touch + LED feedback + wireless all-in-one.
5. Challenges and Opportunities
Design Challenges:
Thermal management of LEDs within compact switch modules
Optical path optimization for consistent brightness and minimal power loss
Signal interference shielding between LED drivers and sensitive switch contacts
Future Opportunities:
Transparent or capacitive tactile switches with embedded lighting
Flexible light guide + tactile membrane combinations for curved surfaces
Custom programmable LED light patterns integrated with AI-based interface logic
Conclusion
The integration of tactile switches and LED light pipes is reshaping the interaction between users and machines in high-end electronic products. Through intelligent design, these switches provide not only precise control but also smart feedback and visual communication. In the future, as electronic systems become more compact and intelligent, the demand for integrated tactile switch modules will only grow. Manufacturers that can combine precision mechanics with advanced light-guiding and smart logic will take the lead in the next generation of interactive hardware interfaces.
en.dghongju.com
0 notes