My employer has an EE/embedded team of 3, and we still rely on a local design house to rev our PCB's, do the generic infrastructure components of the embedded s/w, and design test fixtures. We write specs for electronics and keep the "secret sauce" firmware in house. There are other benefits -- as I write this we have an expensive instrument that we could never justify purchasing sitting on our lab bench because we borrowed it from our design house. We can get a few hours of specialist time here and there for things like FCC compliance testing to augment our in-house expertise.
One person who has been around the track enough laps to be able to write good specs and do program management is sufficient in the early days.
Thing I've found with embedded, is the pay is generally not as good as other work, and it's generally not as flexible (no remote). If you can do either generic webdev, or other things, those often look like better options.
Personally, I couldn't stand doing generic webdev -- I'd rather spend eight hours a day poking myself in the eye with a sharp stick. I've always lived on the EE/software boundary. I suppose staring at logic analyzer traces is some other person's sharp stick, but it works for me.
It doesn't really cost that much and I wouldn't see it as a limiting factor.
But it's kind of moot because the work isn't really available.
That's great that you'd rather poke yourself in the eye with a sharp stick than do web dev. But I have skilled embedded dev friends writing php because the alternative is working at a supermarket (they're not location flexible).
- soldering iron and supplies
- "helping hands"
- misc parts/supplies like wire, breadboards, switches, LEDs etc.
- batteries, USB chargers, couple of PC power supplies for power supply
- using a simple 2x1 .1 inch header convention with red and black wires for plugging in DC power
Desk is a basic folding table from Staples.
I would like to figure out where to find a better table/desk (I assume with outlets/etc.) and what other things I don't know about you'd recommend.
While I don't own one, the TS100 [0] is supposed to be an amazing soldering iron. [1] As a plus, the hardware and software are open source. [2]
> "helping hands"
Realacc six arm third hand. [3] It's fantastic for the price.
> misc parts/supplies like wire, breadboards, switches, LEDs etc.
AliExpress? YMMV for quality though
> batteries, USB chargers, couple of PC power supplies for power supply
Can't recommend batteries or USB chargers from China, too much counterfeit junk. For PC power supplies, Seasonic is a well priced, quality brand. There are a bunch of ATX power switches available (e.g. AntMiner) on eBay for a few dollars.
[0] https://www.banggood.com/MINI-TS100-Digital-OLED-Programable...
[1] http://hackaday.com/2017/07/24/review-ts100-soldering-iron/
[2] https://github.com/Ralim/ts100
[3] https://www.banggood.com/Realacc-Strange-Third-Hand-Six-Arm-...
Soldering iron: I like the Hakko FX-888D. $90-110 or so. They have better if you can afford it, but that one's very good. The FX-951 is the next step up, and can take micro-soldering handpieces and has the quick-change tips. It's about $240.
Get a chisel tip, eg Hakko T18-S3, a bevel tip (T18-S6), and a bent-conical tip (T18-BR02). The conical tip is perfect for lots of general purpose work, you can use the fine point or the sides of the bend. The back of the bend can be used for drag soldering, the inside of the bend makes soldering wires together easy. The chisel tip is good for soldering things with more thermal mass (PCB-mount heatsinks) and the bevel tip is pretty necessary for drag soldering on QFP and similar surface mount packages.
Hot air station: Probably something cheap from china, there aren't any particularly affordable name-brand ones that I know of. Weller has the WHA900 for around $600.
Magnification: Get at least one of the magnifying headsets ($8-10 on Amazon) and a desk magnifier with LED ring light. Better option is an AmScope stereo microscope, such as the SM-4NTP and a ring light for it like the LED-144W-ZK. $480 total.
PCB vise: I have an Aven 17010, it works pretty well. MUCH better than trying to hold a board in the helping hands.
Flux: Get liquid flux with a syringe. Amtech is the best, but there is a lot of counterfeit stuff out there, and Amtech doesn't sell it directly (bulk orders only). https://mailin.repair/amtech-nc-559-v2-30-cc-16160.html sells the real flux.
Tweezers. Any ESD safe set.
Fume extractor: VERY important for health. You do NOT want to be breathing in flux fumes. A high-volume HIPAA air purifier on the desk works, ($150 or so) or a dedicated device like the Hakko FA430 is even better ($625). Oscilloscope: Rigol DS1054-Z. 50MHz, hackable to 100MHz bandwidth easily. $400. There's no better cheap scope at the moment (IMO).
Function generator: Siglent SDG805. $270. Needed to give you analog signal inputs. Part of the big-3 of 'scope, power supply, and function gen.
Power supply: Get a linear supply. The Tekpower TP3005D-3 is $200, and is an actual linear power supply. The knobs are coarse adjust only (it's analog), I replaced the control potentiometers with 10-turn versions which substantially improved the accuracy of the output. There's also the Siglent SPD3303X-E ($340) if you want a digital panel version. You definitely need arbitrary +- voltages for lots of very basic circuits, PC power supplies are very limiting and too noisy if you do any sensitive analog design.
Multimeter: Get a safe one (HRC fuses, proper transient voltage suppression, etc.) Can't go wrong with Fluke, of course, but Extech, Brymen, and some others have cheap and capable handheld meters. $100-300, depending on brand. Be sure it has a micro-amp range! The really cheap ones don't, and you WILL need it if designing embedded stuff.
Logic Analyzer: Get a LogicPort. pctestinstruments.com. They're $390, for a 34-channel 500MHz device, very nice for the money. Needed if doing much digital work. (Keysight's 34-channel standalone analyzer is $12165 base price. 5GHz, but still, twelve grand...)
Spectrum Analyzer: If you're doing RF work (radio design), you'll need one. Otherwise skip it. The Siglent SSA3021X with tracking generator add-on is $1764 (pretty cheap) and quite capable (9kHz to 2GHz). It's also hackable / software upgradeable into the 3.5GHz model. The Rigol DSA815-TG is $1550, but significantly worse (smaller display, worse resolution bandwidth, max 1.5GHz, etc).
Be sure to get a GFCI outlet and a GFCI adapter or two. The oscilloscope, function gen, spectrum analyzer, etc, all are mains earth referenced, and should each have their own GFCI plug. If you accidentally connect the ground lead of any of them to something other than ground the GFCI will trip and prevent the ground traces from being blown up inside the device. They're about $20 each, well worth it IMO.
You might want an anti-static mat and wrist-strap.
Get a bunch of small drawers, eg https://www.amazon.com/gp/product/B000LDH3JC. Print labels for them, use them to store resistors, capacitors, and other types. You can fit two values of component in each drawer (though they don't come with enough dividers :/). You want at least 96 drawers for resistors and 32 for capacitors assuming you're buying 1% or 5% resistors and 10-20% capacitors (pretty normal). I bought a kit of resistors (https://www.amazon.com/gp/product/B017L9GKGK) and (https://www.amazon.com/Joe-Knows-Electronics-Value-Capacitor...) for capacitors (Joe Knows Electronics kits are good for stocking up, they have more of the most common components in their kits.)
Get some desoldering wick and a solder sucker too. Also some tip tinner, and/or a sal ammoniac block. Make sure you have a roll of kapton tape to hold parts down while you solder them (it survives high temperatures). If you'll be doing a lot of surface mount you'll want a reflow oven and solder paste.
EDIT: One tip I forgot, very important: When you buy parts (on DigiKey/Mouser or similar) make sure you buy extras. At least the number needed for the first volume discount or 10, whichever you can afford. 3x the number needed for the project at the minimum. You WILL drop parts, burn them out, and otherwise damage them. It's much easier if you already have spares, don't have to wait for shipping, and don't have to pay for shipping. This will also help you develop a parts library, as you do more projects you'll be likely to re-use common parts and already have many left over from past work.
The most important thing for me is the scope because I develop bare metal firmware (includes drivers etc) for both SoCs and microcontrollers. I use a Rigol 100MHz scope and I really like it. Of course I could not go for the higher speed scopes because of the budget.
Also for some of the instruments I have found that Tek and Keysight provides refurbished stuff for much lesser prices. Have you tried getting any refurbished stuff and what is your opinion on it?
For the logic analyzer I found it a waste as a separate instrument. I would prefer to have the analyzer in the scope itself as all in one so that I can do analysis on only one screen.
The advantage of the PC-based logic analyzer is in the ease of use, mostly in setup. Also in the number of channels, the ones built into scopes tend to be 16 channels. The two-screen thing is a bit of an issue, it would be better if Rigol's PC software for controlling the scope was halfway decent. Tek's software is much better.
Hot Air Station: YIHUA 650W. Avoid fakes, they can be dangerous!
Multimeter: Extech EX330 DMM
Soldering iron: if you can't get the Hakko, the Ersa RDS80 is decent.
In Germany, the Tekpower TP3005D-3 is called Komerci QJ3005EIII and can be bought on Amazon. Its the same device, only ~150€.
>> Wish there was a save feature, I just saved this to a text file.
Click on the time tag (next to the user name), then click on 'favorite'.There is: select/click timestamp/"go to" the post[1] - click "favourite". Will be listed under favourite posts in your profile.
Or just get to [1] and bookmark in browser.
[1] eg for your reply, go to the url: https://news.ycombinator.com/item?id=14853064
- Digilent Analog Discovery 2: Low-end 30MHz oscilloscope+function generator+logic analyzer controlled via USB. $279 (or $179 with student discount) I think of it as 'swiss army knife' of electronics: it's not as good as a real oscilloscope, function generator, or logic analyzer, but it does the basics of all those roles and fits in your pocket. http://store.digilentinc.com/analog-discovery-2-100msps-usb-...
- Xprotolab Plain: Same general idea as the Analog Discovery, but only $20 and therefore an order of magnitude crappier. Only 20kHz bandwidth. Suitable for an absolute beginner on a tight budget. http://www.gabotronics.com/oscilloscopes/xprotolab-plain.htm
- Extech EX330 multimeter: It's a multimeter, the most basic instrument you'll need. $53 on Amazon. I recommend getting some alligator clip probes; I find them much more useful than the pointy probes it comes with. https://www.amazon.com/gp/product/B000EX0AE4
A "real" scope is a workhorse that lasts forever with the features and the convenience you don't get from those cheaper options. You also want real scope probes. In my area I see someone selling a TDS220 for $200 which would be a good buy. Also an older 4 channel 100MHz Analog scope...
Quality multi-meters are also workhorses.
I haven't gone far enough in electronics to run into limitations of the above equipment; I figure I'll upgrade when I need to.
- I'd get a used good scope. Personal preference would be a digital Tektronix. A logic analyzer can probably wait.
- A digital multimeter. My preference is Fluke. You'll want a buzzing continuity tester in whatever you get.
- You might want to invest/experiment in some method for home manufacturing of PCBs. Breadboards are a pain ;) We used to do wire-wrap back in the day, probably no one does that any more :)
- I find that you can do a lot with two hands. You figure out all sorts of clever way to hold your work, wires and the soldering iron ;)
- Heat shrink tubing.
- Crimping tool(s) and various connectors that are convenient for what you're working on. It's a bit of an investment but you want to connect stuff easily and reliably.
- One of those magnifiers on an arm with a light built in...
I disagree about home made pcbs. Its just too much fuss and mess, and there are a lot of places that can give you cheap 4 or 5 day boards in small Quantities. AP Circuits usually is a good deal for my hobby stuff, but I always price out others, too.
One word for PCB beginners: DO NOT obsess over making every board perfect. It wont be. For one-off hobby quantites an x-acto knife and some wire will fix most basic mistakes in a few minutes. PCB design is like golf, low scores are better, holes in one are rare. Too often beginners fear fabbing a board because they think it is cast in stone. Mistakes just arent that costly at low volume.
Including holding the soldering iron from the wrong side, as it happened to me once.
(Personally, I found the low-level hardware/OS/algorithms courses fascinating in my CS degree, but went into webdev because it paid more and gave me more career options, and then some data science because the combination of UI skills + data wrangling skills means I can actually build useful things on my own. No regrets on my career path, but if I get lucky and cash out on a startup, I think I'd love to do embedded & hardware stuff.)
Until then informatics was a specialization from the EE degree at that university.
Most of those EE engineers ended up doing coding work, because a tiny country like Portugal couldn't absorve so much electronics related work.
...
>> "Yes, the pay isn't as good for some reason"
Don't these seem related to anyone?
I'm not an expert on business or anything, but maybe the reason companies are having trouble finding people to work embedded jobs is they aren't willing to pay them enough?
>> "Perhaps embedded developers as a group are poor negotiators."
I don't know of a better negotiation tactic than just going to do something else you can also do that pays better (a lot of people I know with deep embedded skills are doing higher level mobile app work these days for exactly this reason) because the industry has some weird preconceived notion of what you are worth...? "Fuck you, pay me".
My biggest problem with web development is the users. I've made a few internal websites to manage some our stuff at work, which only has to deal with a small number of users (100 or so) who are all technologically competent engineers, and I still find it ass annoying, dealing with all the weird ways they use my very simple webpages. Sure hardware can have its quirks but they're not like people.
Yeah, I miss having a scope on my desk. But my pay is nice enough that I can afford my own EE workbench at home, should I want one.
I much prefer lower level programming, preferably programming the hardware I designed. I know the hardware limitations, side effects, and overall the how-to behind the hardware that allows the software to do its thing. Most software engineers I know have no want to understand the underlying mechanics (they're certainly capable of it - they just don't care).
I'm currently trapped in a "devops full stack" with much of the tooling as NIH. My routine day is a mix of keeping the trains rolling on time, and getting horrid stuff like " my $database_root_password = <password> " out of SVN...
I keep applying to positions in my wider local area (Midwest). But so far, only headhunters that want to waste my time with endless "pre-interviews". Tomorrow, it's back to tickets, high-ho!
Another lead that I see is Chinese SoC manufacturers who would like to have Linux/Android up. I see a lot of the produce their hardware but have very little support software. The problem is I do not have any idea how to approach them let alone convince them to spend money on development.
The big companies medical and automotive) in Germany generally give work to their vendors but again they give it to the German companies and very rarely to outsiders. The contracts are very lucrative as I have seen just 1 person companies there providing very average embedded software components. Again very hard to crack the market unless you know someone there.
And the tooling is WAY behind where cloud and mobile is at.
Turns out to have been a decent career. In the end, programming is programming, and I have enjoyed most of it. There are always problems to be solved.
But I'll probably go the web-dev route too.
Web dev/backend dev for the last 10 years.
I often wonder who, in the long run, would be the ones to push the boundaries when you can get a very good pay doing some generic software engineering job (similarly I have friends go several years into a STEM phd to drop and go into CS masters program)
We used them to design and build a custom board for our Sumo robots that had our V1 built from an Arduino board and a custom board that plugged into the Arduino. We couldn't really afford to pay them a big chunk up front, but we negotiated a pretty pleasant royalty deal that comes out to a few dollars per board (which we get manufactured for less than $10/board).
They did excellent work and I highly recommend them for that type of "prototype -> production" path.
* http://www.austinelectronicdesign.com/
* http://www.technologykitchen.com/
* http://www.concurrentdesign.com/
* http://www.produktworksdesign.com/
They all have their own specialties and pros/cons, but most of them deal with small startups to help bridge the gaps. As always YMMV so due diligence is required.
I think system-on-module approaches like Samsung's or Android Things' solve those problems, though.
I listened to this mantra for about 15 years but its like anything else that "looks hard" it becomes obvious after doing it.
RF design rules are well documented and pretty straightforward once you get past the smoke, mirrors and doom mongering. All the good RF subsystem manufacturers have white papers, dev boards and fully documented layout design guides for their chips and low power ISM sub-systems under 20dBM are more or less bulletproof.
I have made several commercial designs, my first ones were just copy/pasting the gerbers off the dev boards (I did not even need to buy the dev boards as the gerbers were downloadable for free) all these worked fine and even several dBM of transmission loss due to bad RF or enclosure design is not actually a game changer in most short distance/low power applications.
My first designs I actually understood very little, now I have all the toys to do proper RF design and understand it much better and so long as you read up on the basics there is no reason not to try too. Seriously it costs $15 for a PCB delivered worldwide these days so you can afford to experiment or tell your EE/intern to do it and dont be too surprised when it works.
Most ARMs up to even a few hundred MHz are also pretty easy to lay out.
For wireless you're right, but this is more or less solved by the recent proliferation of cheap plug-in wireless modules that are already certified.
Raspbian is pretty much only supported on Raspberry Pis, so I think the worry of lock-in is worse there; and it's significant, taking into account that it's harder to go from prototype to production with a Raspberry Pi than with a SoM-based board.
The UserDriver system is another factor: Android already does sensor fusion, so if your product uses, say, a GPS receiver, you can hook it up to the OS with a short amount of user-space Java code, and all existing Android code that uses the location APIs now works with your GPS. No need to modify client code nor compile anything into the OS. And your UserDriver works on any Android Things system.
The talks of this year's Google I/O explain these kind of things in more detail.
Design is half the battle: the other half is component selection and manufacturing. If you BOM is way off, you're SOL before you even start, and most people don't get this until it's too late.
https://www.crowdsupply.com/eoma68/micro-desktop/updates/274...
(Starting at: "The issue that is of more concern is the JAE DC3 mid-mount Micro-HDMI connector."(...))
It is unbelievable that they are not able to provide a decent hardware development platform that can match Arduino in ease of use & documentation, that use decent production-grade components, that's supported for sale for > 10 years and that has a clear path to switch from dev board to own IC.
I suspect that STM and TI are of similar difficulty, but I've only seriously played with Atmel because of the Arduino dev board (and related ecosystem).
10 year guaranteed availability of the exact same part is not guaranteed, but there's a clear enough lifecycle policy and paying any attention, you'll have a chance to a make a final "lifetime" buy. (If have the luxury problem that you're selling so much product that a lifetime buy is impractical, the NRE for a redesign is probably manageable for your business.)
That last part alone stops most people from playing with ARM, because you're almost forced to get boards made. At least with AVR/PIC you can prototype most of the Atmegas on a breadboard. Obviously there's a limit to what you can do with an AVR, but you can do a lot with 20MHz.
This may be an ARM thing though. I found it much more difficult to find development documentation for Atmel's XMega platform, I didn't even look at the SAM chips.
TI's website is a rabbit hole though. Sometimes the datasheet is enough, other times you have to go to their weird Wiki which looks unfinished. Sometimes it's available for free, other times you have to log in to get the information. STM isn't much better.
It's a crying shame. ARM is more capable and often cheaper and lower power than going the 8-bit route, but it's a pain in the arse to get started.
In terms of layout though, there isn't much in it. There are datasheets from ST that tell you what the mandatory hookups/passives are. Everything else is more or less identical to any other microcontroller, though you may need to worry about speed.
The documentation for STM and TI is far, far below the standard of Atmel's, both officially and unofficially. It's more difficult to find information, there's a much smaller development community for beginners and the boards start in TQFP.
>That last part alone stops most people from playing with ARM, because you're almost forced to get boards made. At least with AVR/PIC you can prototype most of the Atmegas on a breadboard. Obviously there's a limit to what you can do with an AVR, but you can do a lot with 20MHz.
Isn't it why we have development/prototyping boards right? You can always develop/experiment your code in it and also develop your PCB in parallel. In this way when there are problems with your custom board you can always be sure of your code.
In my experience TI documentation is excellent but their software sometimes is over engineered especially TI-RTOS.
Personally I have worked on the STM32F series and I found the documentation good. Also if you want to read through the internals of the ARM architecture you will have to refer to the ARM manuals from ARM website.
The core problem why many startups get stuck with Raspberry Pi, Arduino and friends is exactly the "dev board" problem.
When building an MVP and I have the choice between a $20 Pi/Arduino/Pi Compute Board and a $1.000+ dev board, hell I'll choose the Pi option. Lots more support, especially because any combo of I/O and a Pi has been tried by someone else before in contrast to $weird_sensor+$weird_niche_devboard, and especially you will want about 10 or more units so you can afford to blow a couple boards. This will happen inevitably during development, either by "fat fingering" +12V to a 3V3 input or by blowing the wrong eFuse, and better to lose 20$ than 1k$, not to mention you have to raise the 10k first...
It's not fun figuring out a board with no documentation and shit tools that noone ever used.
It doesn't justify why they make it so hard to set an IO pin or to load a program on their chips.
As someone who co-started (and later sold) a small privately funded company doing embedded software development about 15 years ago I think I can give some insight. We were a 3-person startup, all with a software background. Most we knew was how to use a multimeter and solder a jtag or DB9 connector, which we also needed on a regular basis - but that was about the extent of our knowledge.
One of our very early projects however involved requiring some custom hardware. So we started looking for electrical engineers, and quickly found out we were absolutely clueless about how to interview or evaluate these people. With one guy we interviewed it 'clicked' - and after talking to him, we quickly realized we knew nothing about hardware design, production and everything involved. We would have hired him, but he was very honest about thinking that would be a bad idea and rejected our offer. Looking back, he was absolutely right. You don't just need electrical engineers, you need people with experience in production, hw testing and following up on all those things.
We ended up outsourcing the hardware design and production to another company, and actually recommended them the guy we found, who ended doing most of the design for our project. Stick to what you know best, if you're small and need hardware designed, try to find a company that can do this and believes in what you're trying to achieve. It's easy to lose focus when you suddenly have to learn a bunch of new things - which includes failing a lot, something you can't afford in a startup.
>>It's easy to bridge from Arduino to Atmel AVR IF you know how to do board layout. Startups need to either grow their knowledge of electronics or hire some electrical engineers.
I agree, hardware can not agile like software is. So you have to re-design your product from prototype(like Arduino).
Even more, you should outsource your hardware design to other professional hardware company, such as design house.
You have to deal with yields from the fab process, a hardware testing/debugging process that often requires an expensive oscilloscope, an up front outlay of capital just to get the pcbs produced, you have to deal with getting it certified as being 'safe'.
It's easy to bridge from Arduino to Atmel AVR IF you know how to do board layout.
Startups need to either grow their knowledge of electronics or hire some electrical engineers.
The AVR documentation is excellent, you could easily design your own board if you have anything beyond rudimentary electronics skills.
If you're doing something very simple, maybe... but If you're doing something very simple, why do you need specialized hardware? Get something prebuilt that runs embedded c or linux, write your software, attach your controllers (build a nice case), and be done with it.If you're doing something more complicated, (multiple layers, pcie, etc.) You'll never get the yields that you need (to be profitable) out of your fab process without either a very skilled/experienced EE, or a team and a bunch of money. Even with a simpler (or no) fab process you still have to worry about defects in production and testing for those defects before you ship the item. But at least without a fab process it can be arranged to be someone else's problem when the widgets don't work.
It's not that you're wrong, its just that doing your own manufacturing is either:
a.) Adding a lot of expense to something that needn't be as expensive if you can buy something that already pretty much works in bulk. If you reach the state of mass production, it could make sense to do this yourself, but at that point you may be past the startup/proof of concept phase.
b.) Necessary but very expensive (more expensive than it appears on the surface) and problematic to both your margins and cash on hand. If you go this route you better have some backers with extremely deep pockets who believe in you and are willing to throw in extra cash when the first run of your board has issues and you get a low yield on them.
I agree, however, about the value prop issue.
But that's also kind of why I think hardware is a sucker's game. Either you get screwed by having to make your own stuff, or you get screwed by being dependent on a third party who may not be reliable (or in business, or still producing the thing that you need). Or both, because you're likely getting it fabricated by a third party, which will lead to the same issues as purchasing something 'off the shelf,' plus the possibility of having no one to blame but yourself.
source: did a hardware startup.
edit: I forgot to mention one other factor... If you're doing something high performance, there's a possibility that by the time you're ready to ship the product, it is out of date and there's some faster next-gen hardware out that will do the job better. This is exactly what happened to AMD with Bulldozer (there were some other fuck-ups there too, but for the most part it was superseded by intel's more advanced fab process).
It's easy to bridge from Arduino to Atmel AVR IF you know how to do board layout. Startups need to either grow their knowledge of electronics or hire some electrical engineers.
The AVR documentation is excellent, you could easily design your own board if you have anything beyond rudimentary electronics skills.
A lot of IoT startups are dependent on attachment "blades" for interfaces. They get burned because a lot of their value proposition and profit is tied up in some other guy's blade they don't know how to build.