Theres plenty of smaller, lower volume silicon fabs doing larger scale work, like Cmos 1micron and some doing sub micron down to what was cutting edge ~15 years ago.
Honetly kinda crazy that only one manufacturer can do the current modern stuff, but barely anything other than high end CPU need to be that small.
Realistically, you can’t really compete in a market where ASML is the monopolist. Not because ASML is an ass, but simply because building just a single factory costs billions. Intel regularly invests 10 billion or more in just a single factory that doesn’t even have all the necessary tools in-house to produce a chip end to end.
Smaller manufacturers usually serve the long tail, that is rather old process nodes for use cases where bleeding edge performance isn’t needed. Bosch for example had its own manufacturing branch.
Also bleeding-edge processes mean smaller, thinner gates. That’s what gives them the fast switching speeds, but it reduces the max allowable voltage. For parts that need to handle more than 1.8V or so a modern 5nm process will just end up using bigger gates than the process is optimized for. May as well go with an older process (bigger minimum gate size) that’s better suited to switching the voltage needed. For Bosch (automotive parts, power tools, etc) they’re making a lot of parts with really big output transistors (switching 14V, 48V, etc) and not super high-performance processors.
The big disadvantage with particularly old processes is that they used smaller wafers. So fewer chips per wafer processed, meaning lower overall yields and higher price/chip. The switch from 200mm wafers to 300mm in 1999 meant the wafer area increased by a factor of 2.25! 300mm wafers also required fully-automated factories due to the weight of a wafer carrier (a front opening wafer pod, or FOUP, is 7-9kg when loaded with 25 wafers), which save on labor costs. So processes older than 1999 (around the 180nm node) are sometimes not worth it even for power electronics.
CMOS silicon logic can be chemically “printed” using photolithography and commercially available mercury lamps. From the wikipedia article, if I read between the lines those are good down to feature sizes of about 1 micron (1.0µM or 1000nm), limited of course by the accuracy of your wafer setups between processes and the printing of your lithography plates. this is the process used to produce the Intel 80486 which fit 1 million transistors on a chip. seems that laser lithography using KrF lasers can be good down to much smaller but your litho plates become the limiting factor.
so, conservatively- 1µm features would be attainable for a sort of “home brew” startup with little to no venture funding but the correct industrial knowledge. with more funding though i’d guess older laser lithography machines would be attainable on the used market and potentially usable down to 0.4µm or smaller.
There is an answer but you’ll probably only manage to get it by going through semiconductor devices history and determining the hardware required at each improvement step, and the cost and acquirability of that hardware. This would take hours - potentially days - of research.
A quick search yielded this blog post though of someone attempting - and managing - production of a basic 1200-transistors semiconductor device in their garage, which I found rather neat. That’s with no cleanroom, and with chemicals the purity of which are far removed from the ones the industry uses.
We’ve had open-source chip design software since the 1980s. Magic VLSI, for example. There are quite a few OSS tools for various parts of the chip design process.
I would make sure the solder connection between wire and resistor is very solid, and then encase the stuff in heat shrink tubing with glue in it. (Adhesive Lined Heat Shrink Tubing)
Thanks for taking a look! SG is set to 50Ohm output, cable is 50Ohm, terminated “through” 50Ohm at scope end. Also, SG output looks normal on a different scope (same cable/terminator arrangement). Not sure what else I could do to match the impedance here.
Does this scope do Fourier analysis? If so, can you see which frequencies are being suppressed? Does this suppression at this frequency also occur with generated white noise?
Thanks! I tried but I don’t see the effect with noise gen, maybe my measurement is not quite right. Simply punching in a couple of frequencies (60Hz and 200Hz) that I’ve already seen differ in amplitude with the Measure function also has different peak amplitudes in FFT output. Since the frequencies are so low I’ve verified stability of siggen amplitude output with an AC voltmeter and it’s stable within 50uV or so, nowhere near the diff in magnitude measured by the scope. Hmm…
The most important thing is to tackle projects frequently and get yourself involved with other people doing the same. Learn by doing! I found books, videos, and so on of limited utility by comparison. I’ll include an unreasonable quantity of my notes below.
Some useful resources:
Learning Python – a decent programming language to start with since it’s flexible and enforces some good habits : python.swaroopch.com
Websites with details on other people’s cool projects: hackaday.com
You should also learn C / C++ (unless you are an assembly-language degenerate like me)
KiCAD is fantastic these days (and free!): www.kicad.org
I’ll point out that Microchip Studio is awful and buggy but for some microcontrollers you’re stuck with it. Everyone working with embedded systems gets stuck with some lousy manufacturer-supplied software sometimes.
List of initial things to learn:
How to read component datasheets (you will be doing this a lot). Actually I think a lot of my electronics knowledge was picked up from just absorbing datasheets like a weird sponge of some sort.
How to order from Mouser / Digikey / RS Components / Arrow / McMaster (these are also a great source of datasheets)
Basic laws of electricity and magnetism (any freshman university physics textbook is OK – these pop up used all the time, and even an old one is OK). Just do all the problems in each chapter and you’ll be fine. Or you can tackle “The Art of Electronics” if you like.
Soldering is actually pretty easy, just buy some resistors and some prototyping board and get some practice in. You’ll need to learn surface mount soldering to get access to good and cheap parts later on, but thankfully, it is way easier than it looks. Like, really a lot easier than people make it look.
How to order manufactured circuit boards from a factory using a design in KiCAD (this is actually pretty easy and cheap!)
These days, a lot of components can be purchased on pre-built ‘modules’ that fufill a certain objective. For example, a temperator sensing module might have a sensor and all the supporting components on a little board, so you just connect power+ground and data. These are made specifically with learning in mind and are made in Asia at a very reasonable price – do note though that reading the actual datasheet of the parts in question will give you much deeper knowledge over time.
Tools to buy:
A soldering station. Some people suggest fancy expensive stuff, but frankly, some brands of Chinese tools have gotten quite good. Yihua is a good and affordable brand of soldering station. You can get a soldering-iron-only version if you need to save money, but I’d recommend a model that also includes a hot air rework tool. This makes fixing mistakes on boards way easier, lets you salvage components more easily from junk and failed projects, and also adds a lot of flexibility later on.
A multimeter / parts tester. Should measure voltage, current, capacitance, resistance and diodes. Pro’s Kit is an OK brand from Asia.
Eventually you will need an oscilloscope, but not at the start. Hantek, Rigol, and Unit-T make good entry level ones. Siglent is midrange. Tektronix is for rich kids. An old used scope is fine but often shipping is expensive if it’s one of the heavy ones.
Tweezers, wire cutters and strippers. Lots of protoboard and solder.
If you’re really into low-level microcontroller stuff, an AVR-ICE will be pretty cool to have a few years down the line :)
Platforms and Communities to Consider:
Arduino – largest friendliest community with the most tutorials, but as such has a ton of beginners and students looking to copy/paste code without understanding. So sometimes it’s hard to find someone knowledgeable, and if you do, they might be sort of exhausted. It’s probably the best place to start these days overall.
AVR Freaks – the opposite of Arduino. Hostile, but super knowledgeable. I’ve learned so much by searching their forums, I’ve never needed to ask a question! They are great too, but really not a place for beginners to ask questions. It is a good forum to read if you want to learn assembly / C for microcontrollers, but has a steep learning curve – I’d save it for later :D
Raspberry Pi – makes everything super easy, generally at the cost of being horribly inefficient and somewhat expensive. It can be a good place to start, but be careful not to learn bad habits here – e.g. using a whole computer system with Linux to blink an LED. You’ll end up having to unlearn a lot to make reasonable battery-powered devices later on. Awesome where processing power is actually needed – machine vision, some robotics, and AI. The raspberry Pi Pico has fewer of these problems (and you can code in Python!) – it’s pretty fantastic and I would personally choose it as my first microcontroller.
Other Stuff:
Avoid playing with mains power / high voltage until you know what you are doing.
Avoid selling things until you know what FCC / CE is. You can teach courses on what you’ve learned to fund your studies though! I bootstrapped this way.
Lithium batteries can be sort of tricky / hazardous. When starting out with them, use the metal cylindrical cells at first. The TP4056 is an OK charge controller to use, and pre-built modules are like a dollar in bulk.
I own a prototyping company in Asia, this introduces some bias on my tool recommendations: low cost, high value – but only ‘good enough’ performance and convenience. I also hate solderless breadboards and consider them more trouble than they are worth – some people disagree with me and they are also correct. I also find surface-mount soldering way easier and more reliable than through-hole (most people disagree with me but it’s worth thinking about). Finally, I’m a 700 year old Taoist immortal that still uses a slide rule and writes poetry in Assembly language. So I’m part of an older engineering tradition and it’s worth keeping that in mind when weighing my advice.
Oh wow! this is a lot of great detail! is Rust at all useful for embedded applications, or am i essentially restricted to C/C++? Is Adafruit also a good resource or not as much as the others? Also, besides the obvious differences in form factor and ease of use, what’s the objective difference between the RP2040 chip, and, for example, Sparkfun’s “Pro Micro” or “Thing Plus”, or is the ease-of-use by itself the main selling point?
There are a lot of differences, but I’ll try and go over the high level ones. The RP2040 is a chip, and the others are boards – so I’ll compare the chips on them.
The RP2040 chip is really powerful overall, and does some odd things with I/O that let you do a bunch of very fast, precise things. You also get a lot of I/O pins and they are very well-behaved. The main advantage though is that it works well in both Python and C++, and is well-supported.
The ESP32 based board (Thing Plus) has integrated WiFi. The ESP32 is a great chip, I use it a lot, but it has some unfortunate quirks. First, it has a very high clock speed and decent memory, making it quite powerful. However, if you glitch out the network stack via your code, it can have some problems with unexpected resets. This was much worse with the earlier-generation ESP8266. Secondly, the I/O work much more slowly than the system clock (if I recall correctly), and they are picky about what state they have on startup – some go high as part of the boot process, others must be high or low on boot but can be used after. This is actually quite a pain sometimes. It’s a great chip overall though and works well in C++.
The Pro Micro uses an ATMEGA32 chip. I’m a huge AVR fan so I don’t have many bad things to say, I like it a lot. It is much slower than the other two chips though, and has less memory. Probably it’s best to use C++, but you ought to be able to use Assembly too if you like. The I/O on AVRs are really well-behaved and usually operate at the same speed as the chip, which is nice when you need precise timing! The best thing about it though, is it can use much less power than the other two options, if you use the sleep modes right. So you can build neat battery-powered applications. Finally AVRs have excellent datasheets – there’s rarely any ambiguity on exactly how any system on the chip works.
Overall, I’d choose an RP2040 board if I wanted to use Python and do IoT/Robots/whatever (you can buy boards with or without WiFi), an ESP32 based board if I wanted to do IoT stuff in C++, and the Pro Micro if I wanted to do low-level, low power embedded stuff in C++ or assembly (and maybe branch out into other AVR chips). The C++ options mean you can use the Arduino IDE and their libraries.
Holy shit (sorry)! You really know your stuff, or at the very least, I don’t know my stuff! I’ll keep in mind the stuff you said about the ESP32 and the ATMEGA, but I was more so referring to the editions of those dev boards that use the RP2040!
After reading a bit more, it seems that pretty much the only difference is the IO and other supporting hardware besides just the chips. If someone (me) were working on a project where solutions like these particularly-powerful microcontrollers are required, when would it make more sense to use one of these pre-made boards for computing rather than making your own PCB designs including the chip? Is it mostly for projects where extremely compact form factors (and/or other shenanigans) aren’t necessary?
Besides the I/O and supporting hardware, the clock speed is wildly different between these 3 chips – that’s worth considering. By that metric, the ATMEGA based designs are the slowest by far – although somewhat faster than you’d estimate since they usually operate 1 instruction per clock cycle, whereas the other chips are a few clock cycles per instruction (they are still way faster than the ATMEGA line though).
Regarding pre-made boards vs. your own? I think there are three things to consider:
Pre-made boards are awesome for prototyping. Making sure the damn thing will work (feature-complete) before designing your own board is a good idea. Then, make your first board with all features added in (this is important), but expect to iterate at least once (make revisions and order boards a second time). There’s no such thing as premature optimization in hardware design – it’s not like software where you can just design the core of an application and then build features as you go. This is why always designing prototypes to be feature-complete is a good workflow, and generic development boards are a good starting point for this.
Designing your own board is really easy for AVRs. I do this all the time, lately with the Attiny10. Honestly there are a ton of AVR chips out there, and not all of them have affordable / popular development boards, so often it’s worth making your own for use in item 1 above (…really you just need at minimum power and a header to break out the pins for ISP programming). Then when you want to make your final widget, you just expand your development board design, which lets you make a really miniaturized and streamlined thing! You will need an ISP programmer though, like the AVR-ICE (which has a nasty but minor bug in the design – ping me before buying one and I’ll save you 2 days of headaches setting up).
A neat trick is to design your own boards and still use a dev board (so making your own boards and buying premade dev boards are not mutually exclusive options). This is especially useful with the Pi Pico and ESP32 (where making a dev board is less beginner-friendly) – a cheatcode is “castellated mounting holes”. These let you solder (for example) a Pi Pico dev board directly to your own design as a surface-mount component. You can do this by just adding a socket and using header pins too, but SMT + castellated mounting holes lets you keep the design small and reliable.
BTW when designing your own boards, committing to SMT parts (where possible) early on is one of the things I’m really glad I did. You don’t need much tooling to do it. Just a solder paste syringe, a toothpick or pin, some tweezers, and a hot air rework station (included in some soldering stations). Even 0402 parts (about the size of two grains of salt) are pretty easy to do by hand. It’s amazing the level of miniaturization that you can achieve these days this way, as a private individual with a very modest budget!
Finally, the Arduino products are generally very good dev boards, whether or not you’re using the Arduino IDE (you can still program them ASM or non-Arduino C++). So for any chip that an Arduino exists for, it’s an excellent starting point – although you may want to design your own board one day to remove unnecessary stuff if it comes out cheaper and you go through a lot of them, or just for the experience.
I guess my question to you would be what are your goals? Do you have a project in mind? Do you have a technology, Analog, RF, MCU, FPGA, embedded design? I tend to learn a new thing better when I have an end goal or project to work towards. Depending on where your starting from, a pi might be a good place to start too. You still have most of the I/O and busses of an Arduino, but you can program everything in python, and you have the resources of a full OS too.
Probably stuff like microcontrollers/embedded applications! (I’d like to think) I already know much of the higher-level concepts of computers and how they work, I’ve messed around with programming in Rust or C#, I’ve been daily-driving linux for a few years, I’ve wrote software to do basic tasks for me, but my end goal is to apply my experiences to the physical world. I know very little about the basics of electronics, the physics of it, why PCBs are designed the way they are, etc.
I guess I’d like resources for the lowest-of-the-low-level stuff? Like “How electricity in general works”, “Use-cases for resistors”, “Why you sometimes see capacitors in weird places”, etc.
I’m just now realizing how vague my original question was? i’m sorry about that haha.
I don’t have a particular goal in mind though, i just think this stuff is cool, and I’d like to at some point be able to sit down and make something wacky or useful with KiCad/similar.
I’ll start off with your questions are a outside of what I know well. In general to do stuff with electronics, you don’t need to know the physics behind it, but the equations that pop out. Mainly V=IR, Almost everything goes back to that. Behind the scenes are lots and lots and lots of differential equations. Alpha Pheonix has a few good visualizations for resistance. He has a water based demo to visualize voltage and resistance, and a maze demo showing how electricity “finds” the path of least resistance. ElectroBoom probably won’t teach you too much, but can show some interesting things you can do. EEVblog has some good lectures. For specific applications Digikey and Texas Instruments have some basics, and there are many lectures online available.
I think the questions you asked are a little more on the physics side than the electrical side, and the specifics I think of as a dark art that comes with experience. In general most capacitors you see are blocking DC on an AC circuit, coupling capacitors that are smoothing the power circuit, or capacitors to control/tune something specific. Those control values would be given in a datasheet. Resistors are often going to be current limiting, voltage dividing, or “pulling” a high impedance signal. To design something you often just need the rule of thumb, and not necessarily a deep understanding of “why”.
Are the changes in pitch alone, or does the amplitude change as well?
What happens if you set the frequency to something extremely low? I know that 50Hz is unusable, it will flicker, but does something still hum at 50Hz? What about if you increase the frequency in steps until you approach 200Hz?
Your multimeter couldn’t measure anything when you went to 25kHz? That may be an issue of the microcontroller not supplying enough current to charge the gate capacitance on the mosfet in time, or not drain it fast enough to turn it off. If you disconnect the esp from the rest of the circuit, can you measure something then?
If yes, then you’ll want to use a push pull pair for driving the mosfet. Or get a mosfet driver, but a bc547/bc549 pair and a bit of passives will be fine, available in through hole, and considerably cheaper.
If no, then either the esp can’t go that fast in this implementation (was it a software PWM?) or your multimeter doesn’t work in that range.
Interesting suggestions, I would not have tried such low frequencies except based on your suggestion and it turns out that going very low, below 1000Hz and even down to 100Hz causes the power supply whine to almost entirely go away. I also have a 470uF capacitor in between the power rails now too.
This range is a usable - there is no visible flickering even at very low duty cycles.
From what I understand in the reference guides the LEDC library attaches directly to the 80mhz or 40mhz esp32 hardware clock for PWM. Intuitively I’d have guessed that higher frequency would always mean less discernable audible feedback, but seems not in this case.
This range is a usable - there is no visible flickering even at very low duty cycles.
Before deciding on the frequency, and then mounting the strip in a position where the LEDs are directly observable, you should try moving the LEDs fast relative to your eyes. Eg. take the end of the strip and wave it from side to side. You may notice flicker at frequencies below 200Hz.
Ok, good thinking. I settled on 1000Hz and also made it something in remotely reconfigure should the need arise. That combined with the other suggestions, and getting a better power supply has made the system whisper quiet now.
Based on the experience I gathered in repair cafes:
Some old power switches generate an arc (spark?) when flipping them. Cleaning their insides with an "electrical contact cleaner" spray can sometimes help.
Defective electrochemical capacitors do NOT always swell or leak. If it is worth it swap them all for new ones (We sometimes desolder what we think are good ones from dead appliances to be re-used).
All domestic appliances around here (France) have an "anti surge" (?) capacitor soldered just after the power cable and power switch. If I understand it correctly, its job is to prevent a "parasitic" current spike to travel back on the domestic electric network when the equipment is switched on. That's the one I would replace in priority to see if it fixes your problem.
Disclaimer : I have no degree in electronics / electrical installations. Take what is above with a grain a salt as I might be dead wrong.
Always unplug the appliance from the mains before tinkering and discharge ALL the capacitors which are on the 110 V /220 V side of the electronics before touching the PCB on which they are soldered.
Good luck with your repair. It would be nice and helpful if you have a chance to post some pictures :)
askelectronics
Newest
This magazine is from a federated server and may be incomplete. Browse more on the original instance.