43 ms·
I've worked on smartphone electronics and it's not as exciting as you think. I'm pretty sure they chose the i.MX8 because they couldn't source Snapdragons so th
by akiselev 6y ago
I've worked on smartphone electronics and it's not as exciting as you think. I'm pretty sure they chose the i.MX8 because they couldn't source Snapdragons so they got a little luckier with NXP, but the vast majority of the engineering done on a smartphone is in firmware and software with absolutely shitty support from the manufacturer. Bug fixes that only get distributed to customers after they've ran into the bug and struggled with it for weeks (instead of just putting the bug fix into the BSP), no version control or historical view of vendor drivers or modified kernels, firmware that has "hello world" levels of polish, documentation that is only available under three levels of NDAs, and few open source projects to learn from for what are usually almost-but-not-quite bespoke PCBs. Worst of all, consumer hardware products can sell at such scale that it's worth it to keep an engineer working on a single bug for months at a time only to find out that it was a bug in vendor silicon all along - it is soul crushing. Silicon manufacturers have very little respect for software and it really makes the entire process a lot more painful than it should be.
Iterations in electronics are really expensive (my last project cost $30k for 10 assembled prototypes not including of our labor) so most people just copy as much of the manufacturers' reference design as they need. They pour over PCB layout notes and look at how the manufacturer or other customers did and mostly just copy them. Most of my engineering decisions are based on about a dozen black box helper apps that take in my fab's capabilities and signal specs and spit out DRC rules. It gets a little trickier with antenna design but that's often outsourced because you need very specialized facilities for FCC certification anyway.
All in all, it's just like working on a complex distributed system. There are so many things to juggle like R&D budget, per unit COGS and space budget, suppliers and part availability, and supply chain orchestration that it ends up being lots of boring work just to coordinate between all the different experts involved with small bursts of productivity when everyone is properly aligned.
- dkdk8283 6y agoSounds more like writing open kernel drivers, except you get paid. Still aspiring to work on something challenging is healthy and I respect GP’s sentiment!
- google234123 6y agoAnd NXP is generally considered a very good vendor to work with!
- wott 6y agoYes, only because the reference point is the average of all manufacturers :-) Last time I checked, they hadn't corrected the documentation of their previous line of SoCs (almost 10 years old), despite acknowledging the errors I reported many ears ago. You can either consider that personal support was good, or that, by not correcting stuff they know is false, they don't give a damn about wasting every other user's time (and wasting the support staff time again and again each time a user will ask the same question). I also remember using a simple piece of software from them (a GUI for pins assignment, which basically consisted of a list of checkboxes, or some kind of simple spreadsheet if you want): that super basic thing leaked several gigabytes of memory per hour, just idling. Well, I couldn't let it on 1 hour, I had to take the habit to stop and restart it after 15-20 minutes...
- akiselev 6y agoI can't believe I forgot to mention the errata! A mentor got so pissed off at Qualcomm one time that he delayed the start of his next contract by a month so he could farm a list of professional electrical engineers working for companies that use Qualcomm chips and developed a relationship with many of them just to create a secret errata sharing network of EEs that were covered under Qualcomm's NDAs. Even a few lawyers at one of the biggest companies who got wind of the idea decided it was worth the risk. Sadly he passed away before he had the time to really get it off the ground.
- ChuckNorris89 6y agoI've been around the block in major, Top 10 silicone companies. The app you talk about was probably developed by some summer intern on a tight schedule and never documented, then someone else took over. They literally don't give a flying fuck about software. One manager I had once was so clueless, he couldn't understand that the GUI of the C# app I made had no code behind it, and kept asking why clicking the buttons isn't doing anything no matter how many times I tried to explain that a GUI can exist without functionality and it's a separate effort to implement that. Certain apps we were using internally were based on same Java version from 12 years ago since the person who developed it is now a senior line manager and also the sole maintainer. Then they brought in some Agile/Scrum consultant to increase efficiency and he implemented 45 minute daily stand-ups with 10 people and half of them remote via phone from another country and then he spent most of the day chasing us around the building asking how soon story X will be done. Then they outsourced the whole thing to Poland. Working in that industry as a SW developer has been a colossal pain and a huge setback for my career I try to slowly erase from my resume.
- m-ee 6y agoCurious what helper apps you're using, I've always set my own DRC rules but have been mostly on the R&D side so it wasn't as critical
- akiselev 6y agoIt's been a while since I moved up the stack to frontend development so I don't remember most of them but the primary one was the Saturn PCB toolkit [1]. There was one that we used in place of Saturn PCB toolkit that was far easier to automate but I can't find it now. I wrote lots of custom scripts to turn Excel formulas into Altium rules and there were quite a few crappy WinForm apps from fabs. Edit: Nowadays I only do electronics for personal projects and since I stick to three fabs (a local one one I've got a relationship with and two Chinese specials), I've just got a few manually created DRC templates per fab, # of layers, and max signal speed with a few templates just for RF that I got from a mentor. [1] https://saturnpcb.com/pcb_toolkit/ https://saturnpcb.com/pcb_toolkit/
- deleted 6y ago[deleted]
- solarkraft 6y ago> Silicon manufacturers have very little respect for software and it really makes the entire process a lot more painful than it should be. Do you know why? In my eyes that would make them a crazy unattractive supplier.
- wott 6y agoI doesn't make a difference because in the industry they all are the same and always have been. Except when they are worse. :-/
- akiselev 6y agoI don't know much about that side of the industry so this is only what I've gleamed from mentors and account managers at suppliers: silicon fabrication is extremely conservative and naturally monopolistic because of the sums of money involved and these two factors interact in weird ways. The gross margins on chips are 90%+ but because of the large amounts of upfront capital, they have to strike a balance between derisking the R&D and maximizing profit. Since it is so expensive, demand for specialized chips can only support so many customers per design which limits competition and redesigns are so expensive that clients are locked into their suppliers. The vendors know this and they know that hardware designs are locked in whereas customers have a lot more control over their software so when it comes to derisk the project, investment into software quality is always the first to get cut to the bone. Afterwards, due to that derisking, most of their software engineers spend time chasing bugs in the barebones software and supporting customers so they never get to invest in the software after release before they have to move onto the next product. This isn't the kind of environment you'd find many passionate software engineers because most of them leave for greener pastures unless they really care about the product they're working on, but they're rarely qualified to run developer experience departments.
- ignoramous 6y agoSounds like the silicon fabrication industry is ripe for disruption ala Stripe / Monzo. May be, since you know so much, you should build one. :) You spoke of the Basebands...that reminded me that Fabrice Bellard works on the other side of the equation [0]. May be, if we are lucky, he turns his attention to fixing mobile phones [1]. [0] https://www.amarisoft.com/about-us/ https://www.amarisoft.com/about-us/ [1] https://osmocom.org/projects/baseband https://osmocom.org/projects/baseband
- zozbot234 6y ago> I'm pretty sure they chose the i.MX8 because they couldn't source Snapdragons I'm pretty sure that it was expressly chosen because it's reasonably documented unlike most SoC chips. Not that this solves the expense and effort with iterating hardware, of course.
- akiselev 6y agoBack when it was Freescale, I don't remember their documentation being that much better than Qualcomm's. The software support sure was better at first but given the RaspberryPi community size, I think it'd be a wash - although I don't know when LibRem started development. The biggest difference I experienced was that you could download iMX documentation along with all the reference designs without breaking into a Freescale employee's house or proving to one of their account managers that you could sell millions of units.
- tonyarkles 6y agoThat is, by far, the thing I loved the most about the i.MX6 design I worked on: it was a high cost low volume board, but we could still get parts from Digikey and just download the reference material off the website. A company like Qualcomm wouldn’t have given us the time of day.
- imtringued 6y agoThe raspberry pi is based around a graphics chip with a proprietary threadx based operating system. Librem's "software support" standards are high enough (no proprietary software) that this qualifies as worse support than a random Allwinner SoC.
- Waterfall 6y agoThis project feels like how the Pandora project was. It was expensive for it's time, promised to do cool things and then was in suspended animation for years while the world changed. Snapdragons got mainlined. Phones got cheaper. Other Linux phones that worked completely came out. They should have delayed it and just put in a mainlined snapdragon processor.