ACE: Apple Type-C Port Controller Secrets
blog.t8012.dev
blog.t8012.dev
Isn't this sort of reinventing USB on top of USB?
A quick look at the USB-A port spec, and pin locations on the similar-to-USB-but-proprietary DS charging port indicated it was a very simple construction.
Amazingly, this hack worked successfully and I was able to have my yearly Elite Beat Agents binge. The hardest part was actually not building the "cable" but balancing and bending it all just right so that the pins actually maintained contact.
Now, in the days of complex calculated power delivery negotiation, a hack like this would be impossible.
And for good reason. Devices are safer now, more compatible with each other's chargers, and can charge faster. And the things we can do with USB-C/USB-PD are fantastic. I discovered yesterday that if for some reason I really want to, I can charge my MacBook Pro from my Android phone.
But my little foil hack was fun at the time.
It’s hard not to be annoyed at them about this. Enough to not buy Apple again? No, not yet, but I’d be lying if it’s not a reason why I’ve delayed purchasing a new device. It leaves a bad taste in my mouth, and makes me grumpy. So I’ll wait to upgrade to the last moment.
On a similar note, it seems Nintendo with the switch has hobbled USB-C in some way that standard equipment won’t work with it, like charging over generic USB-C, is this accurate? Has Sony similarly hobbled the spec for PS4/5?
(No clue whether it's as effective as the included charger, but certainly works well enough.)
They just removed chargers from the iPhone box because 'everyone has one' - if they suddenly changed to USB-C on iPhone it would create a LOT of ewaste.
I still think they should switch, but I reckon it's because they'd get accused of hypocrisy if they deprecated it.
Or the apple way: an adapter.
I've been putting an Apple Watch SE through its initial paces over the past week and was mildly disappointed to find that only Series 6 ship with a Type C cable in the box - the SE uses Type A.
The same split is true for iPhone 12 Pro, so far as I can tell, even though (curiously) my 11 Pro from last year did include a 20W Type C Power Adapter in the box.
Or, if they want to get really wild: they can openly talk about the other usb-c devices that you might have.
Some chargers are tolerant of Nintendo's mistakes, others aren't.
There is zero possibility that third-party licensing income for the Lightning port standard is a consideration in any engineering decisions at Apple.
(Still looking for a decent replacement -- I unfortunately cannot use the kind that has those rubber seal plug things, I must have the hard plastic style like the non-pro Airpods)
On the flip side, cleaning out USB-C sockets from the same types of fluff is a pain because the data pins are in an island in the middle of the socket. Which gives you both less room (is requiring you to use a thinner implement) but also a greater risk of damaging the socket.
USB micro had the same problems as well.
I really with USB would address this because, with the best will in the world, devices sometimes get dirty.
A flattened wood toothpick works great for this. Take a regular round pointy toothpick and flatten the end 5mm or so by squeezing it in a pair of pliers or some such.
I was ready to replace my phone until I learned this trick. I had already tried cleaning the port out, but obviously not well enough.
Most USB-C sockets I can find are waterproof only with a matching cable plugged in.
Also accessories. Sure there's a sunk costs fallacy component to it, but still: it wasn't that long ago that apple users needed to replace all their ADC accessories with lightning ones.
I’m actually guessing that they have a long tail of hardware designs that all need to be changed, and that process takes a while. Even their new headphones are lightning based, though they were under development for 4 years... that’s as far as I’ll give them.
This left Apple in a weird spot. They could keep the iPhone on Lightning and users could continue using the same cables and peripherals they have been since 2012. Or, they could switch. This would require many users to buy new accessories, but they could be generics that work with any phone.
The switch from Lightning to USB-C is not as advantageous as the switch from the old 30-pin connector to Lightning was. To users already invested in the Apple/Lightning ecosystem, a switch to USB-C would not bring much benefit.
Ipad pro and the new ipad air have a type C connector. My phone and watch use cables that plug into the same Type C brick I use for my Mac.
But nitpicking examples aside I agree that they should ditch lightning. It's still entrenched for all the other devices.
On Switch, I did charge mine from a powerbank with a USB-A to USB-C cable, it did work but there clearly wasn't enough power. The battery kept draining but very slowly.
My work HP laptop has USB-C charging but won't charge at all without PD. I tried it with a USB-A - C cable and a fairly hefty adapter without PD.
I did the same thing for my 2DS XL, but instead modded the device with a non-PD USB-C breakout board. Works great with both USB-PD and regular USB-C chargers and cables. https://nullsum.net/posts/usbc-mod-new-2ds-xl/
Now, in the days of complex calculated power delivery negotiation, a hack like this would be impossible.
The only devices I've seen _require_ USB-PD are PC's. All the modern phones, headphones, and gaming handhelds I've seen with USB-C do not require USB-PD and charge just fine with a USB-A to USB-C cable.
Better yet, these devices all use a standard USB-C port instead of a proprietary one. The only gotcha is that some USB-C devices break spec and don't work with some USB-C to USB-C cables. Both the Pi 4 and RG351P suffer from this.
I should have realised this was obvious - new phones still charge just fine off any old USB-A charger just fine, provided you have a USB-A to C cable -- they'll just slow charge.
FEC isn't free(~2x overhead per bit recovery if I remember right) so if your error rates are infrequent then it's worse to use FEC over just resend/reread.
It's not on top of USB, it's a completely independent side-channel. And it cannot be on top of USB, since its second main use (besides negotiating the voltage and current in the main power pins) is to negotiate the alternate modes used for the pins which normally carry USB (not only the USB 3.x pins, but also the USB 2 pins in the VirtualLink alternate mode). You could think as USB-PD being below USB, except that it's also not true since you can use USB-C without USB-PD (using only the resistors in the CC pins to detect cable orientation and maximum current).
"There's your problem, you need 'USB 3.2 Gen 2 × 2.' You idiot!"
The Bluetooth radio chip in your phone and the RF chip in your car's key fob already have multicore CPUs inside.
Even your optical mouse has a multicore CPU in it to handle image processing and translate the optical feed into motion packaged into USB HID frames.
Your fast phone charger has a CPU in it to monitor and negociate power delivery to not burn down your house.
Even your basic budget electric toothbrush has a 4-bit CPU inside it made by Swatch.
CPUs cores are in everything these days [happy NSA noises]
A lot of them use 8051, presumably because it's cheaper and smaller: https://www.bunniestudios.com/blog/?p=3554
Think about your toothbrush. All important timing parameters are configured digitally and you can easily change it. You can technically do the same with resonators but it would take much more board space, be less precise, require inductors which you want to avoid in the circuit, etc.
> You can technically do the same with resonators but it would take much more board space, be less precise, require inductors which you want to avoid in the circuit, etc.
Not only do you save the costs of using a crystal, you also save two pins - which was useful in the days of 8-pin microcontrollers like the ATtiny85.
As internal RC oscillator drift rates can be as much as 10% (and vary with temperature) they're not precise enough to run a serial connection, let alone a USB connection. That's why products like Arduino tend to go directly to using a proper crystal (which gives you a 0.01% drift rate for a few pennies).
Every chip brand would have their own protocol and provide their own programming hardware that could speak it.
You can also, well, use a regular toothbrush. What is actually important in a toothbrush has nothing to do with electronics.
No, I don't need any special functionality other than to clean my teeth but if you were to design a toothbrush you would most likely be asked to implement those.
I doubt, pretty much anything that has electronic circuitry has got a micro processor - it's an off the shelf component, well understood, much easier to change/modify and test than custom built analog circuitry. For example - what's the option to save any end user settings with analog devises - knobs/potentiometers.... Compared non-volatile memory like NAND, the cost (and space and weight) differences are orders of magnitude.
I put into just about everything I build these days regardless of how small it is.
The backlight is going to be a box supplied directly from AC, connecting up to 6 strips of individually addressable WS2812 RGB LEDs, providing up to 10A at 5V (50mA per LED == 200 LEDs at full power). It will be connected using galvanically isolated Full-Speed USB to the PC.
For now I will have some pre-programmed sequences but I plan to make a piece of software that will make it possible to match LEDs to the borders of image on the screen though I have no idea how to do that at the moment.
This works for now because my primary use-case is ambient lighting when the room would otherwise be dark. I'm planning to build some larger-scale higher-density light panels to provide more illumination for those dark winter days.
For prototyping I use both breadboards and perfboards. I use breadboards for small fast prototypes and perfboards when I know I am going to develop it over a longer time or when I have some special requirements (like AC power on board or a component that has 2.54mm pitch but is not breadboardable) that exclude or make it more difficult to use on a breadboard.
For breadboard I would default to use STM32L432 Nucleo-32 which is breadboardable and doesn't use much space.
For perfboard I default on either STM32L452 Nucleo-64 or STM32F303 Discovery. I don't solder them to board but instead just insert it in the board and then put couple of pieces of plastic from 2.54mm pitch header with the metal pins removed. This mounts the board securely in place without having to solder it. I use dupont jumper wires to connect it to the rest of the board where I would typically solder the rest of components (unless I also don't want to solder them in for some reason).
I would typically solder in things that are disposable to me that I don't want to flap around.
A rather surprising number of devices run very powerful application processors. An amusing example is Apple's Lightning to HDMI adapter, which has an ARM SoC with 256MB of RAM and boots a Darwin kernel in order to decode a H.264 compressed video protocol. Depending on what exactly they put into it (wouldn't be surprised if they borrowed the Apple TV chip for a relatively low-volume product like this) it may be more powerful than a fairly recent computer.
Anyone want to buy a few and make the first cluster of HDMI adapters?
Imagine a beowulf cluster of them.
I was looking at a sensor package (light, temp, humidity, particulates) earlier and it comes with a cellular modem and a free SIM with a modest data allowance for 2 years to send readings to the cloud.
Plus, all of the stuff controlled locally means the latency is sooooooooo much lower. It's awesome being able to hit a switch in the homeassistant app and have the corisponding plug or light turn on instantly. It's like you're flipping a physical switch.
That is essentially what Thread is:
https://en.wikipedia.org/wiki/Thread_(network_protocol)
It takes the Zigbee protocol, but adds encryption and makes devices IP-adressable. All of the major players are committed to supporting it, too!
A couple of examples that I've noticed :
There's a sports good store near here where they attach some form of RFID tag to each item (including individual protein bars), to automate the scanning. That means these are RFID tags intended to be scanned exactly once.
There's also the case of "digital" pregnancy tests, which consist of a regular paper pregnancy test, a processor to read out the results, and an e-ink display to show the results. All of this is included in the single-use disposable predictor stick.
Already way way way way past that point. There's an article that does the rounds on here about it, but I can't remember the name.
Just as useful, although currently still more likely to be done with barcode scanners is to identify the products in the logistics chain. Right now you need scanning ports with at least 4 cameras/scanners or humans manually scanning each barcode, with RFIDs the port would be simplified further.
https://www.youtube.com/watch?v=KAm7qAKAXwI
I still agree that it's amazing that our society can make functional structures with feature sizes in the nm/µm ranges so cheaply that we can afford to throw them away.
I think a lot of projects will be targeting ARM CPUs in the next era of computing, and I hope one day we will see entire processes moving off the cpu and onto peripherals.
Give me a RAID controller that can run Postgres directly on it, or an SSD that can run SQLite. Give me a network card that runs eBPF, or even nginx.
These become so low-cost that corporate buyers pretty much have no choice, but to use them.
The result, is things like expensive Bluetooth headsets, crapping out, after a year. I have been through quite a few.
I/O ports see a lot of use (even virtual ones). Those are some of the hardest-working chips in a device. Not a good place for cheap dross; but they are also present in almost every device out there. Lots of money to be made.
To give Apple credit, I think they are fairly serious about keeping the quality of their internals up to snuff.
> cursed looking trampolines
I like that.
BTW: I do think this is an awesome write-up, and things like it, are why I like this place.
(Mis)quoting Randy Fromm, "the things that work the hardest fail the most."
I've always liked that quote, even though at the time he was referring to CRTs and the color output transistors (well, mostly). It generalizes to most anything electronic.
1 year iirc, but I still recommend extending it via AppleCare (and also other methods like credit card warranty extensions.)
Just crazy to think about.
the "end result" of the appl feature is exactly the same as the samsung one described in this paper https://ntnuopen.ntnu.no/ntnu-xmlui/bitstream/handle/11250/2...
I think the only thing to do is require open implementations and open standards.